Add localization support for UI settings fields
continuous-integration/drone/pr Build is passing Details

+ allow for Polish translations
This commit is contained in:
Sarah Jamie Lewis 2021-07-07 15:35:13 -07:00
parent c51fd10650
commit dd95e02f54
9 changed files with 71 additions and 21 deletions

View File

@ -1,6 +1,13 @@
{
"@@locale": "de",
"@@last_modified": "2021-07-07T18:42:50+02:00",
"@@last_modified": "2021-07-07T23:42:20+02:00",
"settingUIColumnOptionSame": "Same as portrait mode setting",
"settingUIColumnDouble14Ratio": "Double (1:4)",
"settingUIColumnDouble12Ratio": "Double (1:2)",
"settingUIColumnSingle": "Single",
"settingUIColumnLandscape": "UI Columns in Landscape Mode",
"settingUIColumnPortrait": "UI Columns in Portrait Mode",
"localePl": "Polish",
"tooltipRemoveThisQuotedMessage": "Remove quoted message.",
"tooltipReplyToThisMessage": "Reply to this message",
"tooltipRejectContactRequest": "Reject this contact request",

View File

@ -1,6 +1,13 @@
{
"@@locale": "en",
"@@last_modified": "2021-07-07T18:42:50+02:00",
"@@last_modified": "2021-07-07T23:42:20+02:00",
"settingUIColumnOptionSame": "Same as portrait mode setting",
"settingUIColumnDouble14Ratio": "Double (1:4)",
"settingUIColumnDouble12Ratio": "Double (1:2)",
"settingUIColumnSingle": "Single",
"settingUIColumnLandscape": "UI Columns in Landscape Mode",
"settingUIColumnPortrait": "UI Columns in Portrait Mode",
"localePl": "Polish",
"tooltipRemoveThisQuotedMessage": "Remove quoted message.",
"tooltipReplyToThisMessage": "Reply to this message",
"tooltipRejectContactRequest": "Reject this contact request",

View File

@ -1,6 +1,13 @@
{
"@@locale": "es",
"@@last_modified": "2021-07-07T18:42:50+02:00",
"@@last_modified": "2021-07-07T23:42:20+02:00",
"settingUIColumnOptionSame": "Same as portrait mode setting",
"settingUIColumnDouble14Ratio": "Double (1:4)",
"settingUIColumnDouble12Ratio": "Double (1:2)",
"settingUIColumnSingle": "Single",
"settingUIColumnLandscape": "UI Columns in Landscape Mode",
"settingUIColumnPortrait": "UI Columns in Portrait Mode",
"localePl": "Polish",
"tooltipRemoveThisQuotedMessage": "Remove quoted message.",
"tooltipReplyToThisMessage": "Reply to this message",
"tooltipRejectContactRequest": "Reject this contact request",

View File

@ -1,8 +1,15 @@
{
"@@locale": "fr",
"@@last_modified": "2021-07-07T18:42:50+02:00",
"tooltipRemoveThisQuotedMessage": "Remove quoted message.",
"tooltipReplyToThisMessage": "Reply to this message",
"@@last_modified": "2021-07-07T23:42:20+02:00",
"settingUIColumnOptionSame": "Même réglage que pour le mode portrait",
"settingUIColumnDouble14Ratio": "Double (1:4)",
"settingUIColumnDouble12Ratio": "Double (1:2)",
"settingUIColumnSingle": "Simple",
"settingUIColumnLandscape": "Colonnes de l'interface utilisateur en mode paysage",
"settingUIColumnPortrait": "Colonnes de l'interface utilisateur en mode portrait",
"localePl": "Polonais",
"tooltipRemoveThisQuotedMessage": "Supprimer le message cité.",
"tooltipReplyToThisMessage": "Répondre à ce message",
"tooltipRejectContactRequest": "Refuser cette demande de contact",
"tooltipAcceptContactRequest": "Acceptez cette demande de contact.",
"notificationNewMessageFromGroup": "Nouveau message dans un groupe !",

View File

@ -1,6 +1,13 @@
{
"@@locale": "it",
"@@last_modified": "2021-07-07T18:42:50+02:00",
"@@last_modified": "2021-07-07T23:42:20+02:00",
"settingUIColumnOptionSame": "Same as portrait mode setting",
"settingUIColumnDouble14Ratio": "Double (1:4)",
"settingUIColumnDouble12Ratio": "Double (1:2)",
"settingUIColumnSingle": "Single",
"settingUIColumnLandscape": "UI Columns in Landscape Mode",
"settingUIColumnPortrait": "UI Columns in Portrait Mode",
"localePl": "Polish",
"tooltipRemoveThisQuotedMessage": "Remove quoted message.",
"tooltipReplyToThisMessage": "Reply to this message",
"tooltipRejectContactRequest": "Rifiuta questa richiesta di contatto",

View File

@ -1,6 +1,13 @@
{
"@@locale": "pl",
"@@last_modified": "2021-07-07T18:42:50+02:00",
"@@last_modified": "2021-07-07T23:42:20+02:00",
"settingUIColumnOptionSame": "Same as portrait mode setting",
"settingUIColumnDouble14Ratio": "Double (1:4)",
"settingUIColumnDouble12Ratio": "Double (1:2)",
"settingUIColumnSingle": "Single",
"settingUIColumnLandscape": "UI Columns in Landscape Mode",
"settingUIColumnPortrait": "UI Columns in Portrait Mode",
"localePl": "Polish",
"tooltipRemoveThisQuotedMessage": "Remove quoted message.",
"tooltipReplyToThisMessage": "Reply to this message",
"tooltipRejectContactRequest": "Reject this contact request",

View File

@ -1,6 +1,13 @@
{
"@@locale": "pt",
"@@last_modified": "2021-07-07T18:42:50+02:00",
"@@last_modified": "2021-07-07T23:42:20+02:00",
"settingUIColumnOptionSame": "Same as portrait mode setting",
"settingUIColumnDouble14Ratio": "Double (1:4)",
"settingUIColumnDouble12Ratio": "Double (1:2)",
"settingUIColumnSingle": "Single",
"settingUIColumnLandscape": "UI Columns in Landscape Mode",
"settingUIColumnPortrait": "UI Columns in Portrait Mode",
"localePl": "Polish",
"tooltipRemoveThisQuotedMessage": "Remove quoted message.",
"tooltipReplyToThisMessage": "Reply to this message",
"tooltipRejectContactRequest": "Reject this contact request",

View File

@ -6,6 +6,7 @@ import 'package:flutter/material.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'opaque.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
const TapirGroupsExperiment = "tapir-groups-experiment";
@ -200,17 +201,16 @@ class Settings extends ChangeNotifier {
return DualpaneMode.Single;
}
static String uiColumnModeToString(DualpaneMode m) {
// todo: translate
static String uiColumnModeToString(DualpaneMode m, BuildContext context) {
switch (m) {
case DualpaneMode.Single:
return "Single";
return AppLocalizations.of(context)!.settingUIColumnSingle;
case DualpaneMode.Dual1to2:
return "Double (1:2)";
return AppLocalizations.of(context)!.settingUIColumnDouble12Ratio;
case DualpaneMode.Dual1to4:
return "Double (1:4)";
return AppLocalizations.of(context)!.settingUIColumnDouble14Ratio;
case DualpaneMode.CopyPortrait:
return "Same as portrait mode setting";
return AppLocalizations.of(context)!.settingUIColumnOptionSame;
}
}

View File

@ -1,9 +1,7 @@
import 'dart:convert';
import 'dart:io';
import 'package:cwtch/cwtch_icons_icons.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:flutter/material.dart';
import 'package:cwtch/opaque.dart';
import 'package:cwtch/settings.dart';
import 'package:provider/provider.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
@ -80,7 +78,7 @@ class _GlobalSettingsViewState extends State<GlobalSettingsView> {
secondary: Icon(CwtchIcons.change_theme, color: settings.current().mainTextColor()),
),
ListTile(
title: Text(/*AppLocalizations.of(context)!.settingLanguage*/ "UI Columns in Portrait Mode", style: TextStyle(color: settings.current().mainTextColor())),
title: Text(AppLocalizations.of(context)!.settingUIColumnPortrait, style: TextStyle(color: settings.current().mainTextColor())),
leading: Icon(Icons.table_chart, color: settings.current().mainTextColor()),
trailing: DropdownButton(
value: settings.uiColumnModePortrait.toString(),
@ -91,11 +89,11 @@ class _GlobalSettingsViewState extends State<GlobalSettingsView> {
items: Settings.uiColumnModeOptions(false).map<DropdownMenuItem<String>>((DualpaneMode value) {
return DropdownMenuItem<String>(
value: value.toString(),
child: Text(Settings.uiColumnModeToString(value)),
child: Text(Settings.uiColumnModeToString(value, context)),
);
}).toList())),
ListTile(
title: Text(/*AppLocalizations.of(context)!.settingLanguage*/ "UI Columns in Landscape Mode", style: TextStyle(color: settings.current().mainTextColor())),
title: Text(AppLocalizations.of(context)!.settingUIColumnLandscape, style: TextStyle(color: settings.current().mainTextColor())),
leading: Icon(Icons.table_chart, color: settings.current().mainTextColor()),
trailing: DropdownButton(
value: settings.uiColumnModeLandscape.toString(),
@ -106,7 +104,7 @@ class _GlobalSettingsViewState extends State<GlobalSettingsView> {
items: Settings.uiColumnModeOptions(true).map<DropdownMenuItem<String>>((DualpaneMode value) {
return DropdownMenuItem<String>(
value: value.toString(),
child: Text(Settings.uiColumnModeToString(value)),
child: Text(Settings.uiColumnModeToString(value, context)),
);
}).toList())),
SwitchListTile(
@ -209,6 +207,9 @@ String getLanguageFull(context, String languageCode) {
if (languageCode == "it") {
return AppLocalizations.of(context)!.localeIt;
}
if (languageCode == "pl") {
return AppLocalizations.of(context)!.localePl;
}
return languageCode;
}