diff --git a/AUTHORS.md b/AUTHORS.md index ee664bf4..31493da8 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -30,6 +30,7 @@ - Dieter Plaetinck - - Dennis van Peer - - sizzlesloth - +- Xianglin Zeng - ## Translators diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 9b093c9b..33108f7d 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -888,5 +888,29 @@ "@log": { "description": "Log a specific meal (imperative form)" }, - "done": "Done" + "done": "Done", + "overallChangeWeight": "Overall change", + "@overallChangeWeight": { + "description": "Overall change in weight, added for localization" + }, + "goalTypeMeals": "From meals", + "@goalTypeMeals": { + "description": "added for localization of Class GoalType's filed meals" + }, + "goalTypeBasic": "Basic", + "@goalTypeBasic": { + "description": "added for localization of Class GoalType's filed basic" + }, + "goalTypeAdvanced": "Advanced", + "@goalTypeAdvanced": { + "description": "added for localization of Class GoalType's filed advanced" + }, + "indicatorRaw": "raw", + "@indicatorRaw": { + "description": "added for localization of Class Indicator's field text" + }, + "indicatorAvg": "avg", + "@indicatorAvg": { + "description": "added for localization of Class Indicator's field text" + } } diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 075c6ddb..b1a899b9 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -250,9 +250,9 @@ }, "delete": "删除", "@delete": {}, - "loadingText": "加载...", + "loadingText": "加载中...", "@loadingText": { - "description": "Text to show when entries are being loaded in the background: Loading..." + "description": "Text to show when entries are being loaded in the background: Loading..., changed from \"加载\" to \"加载中\"" }, "edit": "编辑", "@edit": {}, @@ -324,9 +324,9 @@ "@date": { "description": "The date of a workout log or body weight entry" }, - "weight": "重量", + "weight": "体重", "@weight": { - "description": "The weight of a workout log or body weight entry" + "description": "The weight of a workout log or body weight entry, changed from \"重量\" to \"体重\"" }, "anErrorOccurred": "出错了!", "@anErrorOccurred": {}, @@ -348,9 +348,9 @@ "@addMeal": {}, "save": "保存", "@save": {}, - "name": "名", + "name": "名称", "@name": { - "description": "Name for a workout or nutritional plan" + "description": "Name for a workout or nutritional plan, changed from \"名\" to \"名称\"" }, "description": "描述", "@description": {}, @@ -670,5 +670,39 @@ } }, "noMeasurementEntries": "您没有测量条目", - "@noMeasurementEntries": {} -} + "@noMeasurementEntries": {}, + "overallChangeWeight": "总体变化", + "@overallChangeWeight": { + "description": "Overall change in weight" + }, + "goalTypeMeals": "从饮食出发", + "goalTypeBasic": "基础", + "goalTypeAdvanced": "进阶", + "chartAllTimeTitle": "{name} 历史记录曲线", + "@chartAllTimeTitle": { + "description": "All-time chart of 'name' (e.g. 'weight', 'body fat' etc.)", + "type": "text", + "placeholders": { + "name": {} + } + }, + "chartDuringPlanTitle": "{chartName} 在计划 \"{planName}\" 期间的改变曲线", + "@chartDuringPlanTitle": { + "description": "chart of 'chartName' (e.g. 'weight', 'body fat' etc.) logged during plan", + "type": "text", + "placeholders": { + "chartName": {}, + "planName": {} + } + }, + "indicatorRaw": "原始值", + "indicatorAvg": "平均值", + "textPromptTitle": "准备就绪?", + "@textPromptTitle": { + "description": "Title for the text prompt" + }, + "textPromptSubheading": "点击右下角按钮开始", + "@textPromptSubheading": { + "description": "Subheading for the text prompt" + } +} \ No newline at end of file diff --git a/lib/widgets/measurements/charts.dart b/lib/widgets/measurements/charts.dart index e7ca60ce..49b3a524 100644 --- a/lib/widgets/measurements/charts.dart +++ b/lib/widgets/measurements/charts.dart @@ -37,7 +37,9 @@ class MeasurementOverallChangeWidget extends StatelessWidget { ? '-' : ''; - return Text('overall change $prefix ${delta.abs().toStringAsFixed(1)} $_unit'); + // ignore: prefer_interpolation_to_compose_strings + return Text(AppLocalizations.of(context).overallChangeWeight + + '$prefix ${delta.abs().toStringAsFixed(1)} $_unit'); } } diff --git a/lib/widgets/measurements/helpers.dart b/lib/widgets/measurements/helpers.dart index 85139454..000b72e3 100644 --- a/lib/widgets/measurements/helpers.dart +++ b/lib/widgets/measurements/helpers.dart @@ -77,8 +77,8 @@ List getOverviewWidgetsSeries( Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - Indicator(color: Theme.of(context).colorScheme.primary, text: 'raw', isSquare: true), - Indicator(color: Theme.of(context).colorScheme.tertiary, text: 'avg', isSquare: true), + Indicator(color: Theme.of(context).colorScheme.primary, text: AppLocalizations.of(context).indicatorRaw, isSquare: true), + Indicator(color: Theme.of(context).colorScheme.tertiary, text: AppLocalizations.of(context).indicatorAvg, isSquare: true), ], ), ]; diff --git a/lib/widgets/nutrition/forms.dart b/lib/widgets/nutrition/forms.dart index ec336f37..1ab0c67d 100644 --- a/lib/widgets/nutrition/forms.dart +++ b/lib/widgets/nutrition/forms.dart @@ -484,6 +484,17 @@ enum GoalType { const GoalType(this.label); final String label; + + String getI18nLabel(BuildContext context) { + switch (this) { + case GoalType.meals: + return AppLocalizations.of(context).goalTypeMeals; + case GoalType.basic: + return AppLocalizations.of(context).goalTypeBasic; + case GoalType.advanced: + return AppLocalizations.of(context).goalTypeAdvanced; + } + } } class PlanForm extends StatefulWidget { @@ -572,7 +583,7 @@ class _PlanFormState extends State { .map( (e) => DropdownMenuItem( value: e, - child: Text(e.label), + child: Text(e.getI18nLabel(context)), ), ) .toList(),