Skip to content

Commit e096c3a

Browse files
committed
migrate l10n
1 parent 163d9b1 commit e096c3a

17 files changed

+65
-61
lines changed

Diff for: flutter-init.sh

+8-9
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,17 @@ flutter config --no-analytics
1212

1313
flutter pub get
1414

15-
flutter pub global activate intl_utils
16-
flutter --no-color pub global run intl_utils:generate
15+
flutter gen-l10n
1716

1817
flutter pub run flutter_oss_licenses:generate.dart
1918
mv lib/oss_licenses.dart lib/generated
2019

21-
mkdir -p $GEN_FILE_PATH || true
20+
mkdir -p "$GEN_FILE_PATH" || true
2221

23-
echo "const Map<String, String> flutterVersion =" > $FLUTTER_VERSION_FILE
24-
flutter --version --machine >> $FLUTTER_VERSION_FILE
25-
echo ";" >> $FLUTTER_VERSION_FILE
22+
echo "const Map<String, String> flutterVersion =" >"$FLUTTER_VERSION_FILE"
23+
flutter --version --machine >>"$FLUTTER_VERSION_FILE"
24+
echo ";" >>"$FLUTTER_VERSION_FILE"
2625

27-
mkdir -p $ENV_FILE_PATH || true
28-
touch $ENV_FILE
29-
export > $ENV_FILE
26+
mkdir -p "$ENV_FILE_PATH" || true
27+
touch "$ENV_FILE"
28+
export >"$ENV_FILE"

Diff for: src/ui/flutter_app/l10n.yaml

+18-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,20 @@
1+
# see https://flutter.dev/go/i18n-user-guide
2+
# https://docs.google.com/document/d/10e0saTfAv32OZLRmONy866vnaw0I2jwL8zukykpgWBc/edit#
3+
#
4+
# WARNING: DO NOT translate app_XX.arb files directly here. For translations please see:
5+
# https://weblate.rimikis.de/projects/bierverkostung/
6+
# (only the source language, app_en.arb is edited manually here).
7+
#
8+
# We are now using synthetic packages, so to use `AppLocalizations` inside the code
9+
# you have to add the following import:
10+
# import 'package:yahtzee_counter/l10n/app_localizations.g.dart';
11+
112
arb-dir: lib/l10n
213
template-arb-file: intl_en.arb
3-
output-localization-file: app_localizations.dart
4-
untranslated-messages-file: untranslated-messages-file.txt
14+
output-dir: lib/generated/intl/
15+
output-localization-file: messages.dart
16+
output-class: S
17+
untranslated-messages-file: untranslated-messages-file.txt
18+
# use-deferred-loading: true #enable for web support
19+
synthetic-package: false
20+
nullable-getter: false

Diff for: src/ui/flutter_app/lib/l10n/resources.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import 'dart:io';
2121
import 'package:flutter/material.dart';
2222
import 'package:sanmill/shared/common/config.dart';
2323
import 'package:sanmill/shared/common/constants.dart';
24-
import 'package:sanmill/generated/l10n.dart';
24+
import 'package:sanmill/generated/intl/messages.dart';
2525
import 'package:sanmill/shared/list_item_divider.dart';
2626
import 'package:sanmill/shared/theme/app_theme.dart';
2727

Diff for: src/ui/flutter_app/lib/main.dart

+18-23
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,8 @@ import 'package:double_back_to_close_app/double_back_to_close_app.dart';
2424
import 'package:feedback/feedback.dart';
2525
import 'package:flutter/material.dart';
2626
import 'package:flutter/services.dart';
27-
import 'package:flutter_localizations/flutter_localizations.dart';
2827
import 'package:path_provider/path_provider.dart';
29-
import 'package:sanmill/generated/l10n.dart';
28+
import 'package:sanmill/generated/intl/messages.dart';
3029
import 'package:sanmill/l10n/resources.dart';
3130
import 'package:sanmill/screens/navigation_home_screen.dart';
3231
import 'package:sanmill/services/audios.dart';
@@ -127,32 +126,28 @@ class SanmillApp extends StatelessWidget {
127126
navigatorKey: Catcher.navigatorKey,
128127
key: globalScaffoldKey,
129128
navigatorObservers: [routeObserver],
130-
localizationsDelegates: const [
131-
// ... app-specific localization delegate[s] here
132-
S.delegate,
133-
GlobalMaterialLocalizations.delegate,
134-
GlobalWidgetsLocalizations.delegate,
135-
GlobalCupertinoLocalizations.delegate,
136-
],
137-
supportedLocales: supportedLocales,
129+
localizationsDelegates: S.localizationsDelegates,
130+
supportedLocales: S.supportedLocales,
138131
theme: AppTheme.lightThemeData,
139132
darkTheme: AppTheme.darkThemeData,
140133
debugShowCheckedModeBanner: false,
141-
home: Scaffold(
142-
body: DoubleBackToCloseApp(
143-
snackBar: SnackBar(
144-
content: Text(Resources.of().strings.tapBackAgainToLeave),
145-
),
146-
child: NavigationHomeScreen(),
134+
home: const Body(),
135+
);
136+
}
137+
}
138+
139+
class Body extends StatelessWidget {
140+
const Body({Key? key}) : super(key: key);
141+
142+
@override
143+
Widget build(BuildContext context) {
144+
return Scaffold(
145+
body: DoubleBackToCloseApp(
146+
snackBar: SnackBar(
147+
content: Text(S.of(context).tapBackAgainToLeave),
147148
),
149+
child: NavigationHomeScreen(),
148150
),
149-
/*
150-
WillPopScope(
151-
onWillPop: () async {
152-
Audios.disposePool();
153-
return true;
154-
},
155-
*/
156151
);
157152
}
158153
}

Diff for: src/ui/flutter_app/lib/screens/about_page.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import 'package:flutter/foundation.dart';
2323
import 'package:flutter/material.dart';
2424
import 'package:package_info_plus/package_info_plus.dart';
2525
import 'package:sanmill/generated/flutter_version.dart';
26-
import 'package:sanmill/generated/l10n.dart';
26+
import 'package:sanmill/generated/intl/messages.dart';
2727
import 'package:sanmill/screens/license_page.dart';
2828
import 'package:sanmill/screens/oss_license_page.dart';
2929
import 'package:sanmill/shared/common/constants.dart';

Diff for: src/ui/flutter_app/lib/screens/env_page.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import 'package:flutter/material.dart';
2020
import 'package:flutter/services.dart' show rootBundle;
21-
import 'package:sanmill/generated/l10n.dart';
21+
import 'package:sanmill/generated/intl/messages.dart';
2222
import 'package:sanmill/shared/common/constants.dart';
2323

2424
class EnvironmentVariablesPage extends StatelessWidget {

Diff for: src/ui/flutter_app/lib/screens/game_page/game_page.dart

+4-4
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import 'dart:async';
2323
import 'package:fluentui_system_icons/fluentui_system_icons.dart';
2424
import 'package:flutter/material.dart';
2525
import 'package:flutter/services.dart';
26-
import 'package:sanmill/generated/l10n.dart';
26+
import 'package:sanmill/generated/intl/messages.dart';
2727
import 'package:sanmill/l10n/resources.dart';
2828
import 'package:sanmill/main.dart';
2929
import 'package:sanmill/mill/game.dart';
@@ -1829,7 +1829,7 @@ class _GamePageState extends State<GamePage>
18291829
debugPrint('$tag Game Page didPush route: $route');
18301830
await _engine.setOptions(context);
18311831
if (Config.languageCode != Constants.defaultLanguageCodeName) {
1832-
S.load(Locale(Config.languageCode));
1832+
//S.load(Locale(Config.languageCode));
18331833
setState(() {});
18341834
}
18351835
}
@@ -1840,7 +1840,7 @@ class _GamePageState extends State<GamePage>
18401840
debugPrint('$tag Game Page didPopNext route: $route');
18411841
await _engine.setOptions(context);
18421842
if (Config.languageCode != Constants.defaultLanguageCodeName) {
1843-
S.load(Locale(Config.languageCode));
1843+
// S.load(Locale(Config.languageCode));
18441844
}
18451845
}
18461846

@@ -1850,7 +1850,7 @@ class _GamePageState extends State<GamePage>
18501850
debugPrint('$tag Game Page didPushNext route: $route');
18511851
await _engine.setOptions(context);
18521852
if (Config.languageCode != Constants.defaultLanguageCodeName) {
1853-
S.load(Locale(Config.languageCode));
1853+
//S.load(Locale(Config.languageCode));
18541854
}
18551855
}
18561856

Diff for: src/ui/flutter_app/lib/screens/game_settings_page.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import 'dart:async';
2020
import 'dart:io';
2121

2222
import 'package:flutter/material.dart';
23-
import 'package:sanmill/generated/l10n.dart';
23+
import 'package:sanmill/generated/intl/messages.dart';
2424
import 'package:sanmill/screens/env_page.dart';
2525
import 'package:sanmill/shared/common/config.dart';
2626
import 'package:sanmill/shared/common/settings.dart';

Diff for: src/ui/flutter_app/lib/screens/help_screen.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import 'package:flutter/material.dart';
2-
import 'package:sanmill/generated/l10n.dart';
2+
import 'package:sanmill/generated/intl/messages.dart';
33
import 'package:sanmill/shared/common/config.dart';
44
import 'package:sanmill/shared/theme/app_theme.dart';
55

Diff for: src/ui/flutter_app/lib/screens/license_page.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import 'package:flutter/material.dart';
2020
import 'package:flutter/services.dart' show rootBundle;
21-
import 'package:sanmill/generated/l10n.dart';
21+
import 'package:sanmill/generated/intl/messages.dart';
2222
import 'package:sanmill/shared/common/constants.dart';
2323

2424
class LicenseAgreementPage extends StatelessWidget {

Diff for: src/ui/flutter_app/lib/screens/navigation_home_screen.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import 'package:flutter/material.dart';
2626
import 'package:flutter_email_sender/flutter_email_sender.dart';
2727
import 'package:package_info_plus/package_info_plus.dart';
2828
import 'package:path_provider/path_provider.dart';
29-
import 'package:sanmill/generated/l10n.dart';
29+
import 'package:sanmill/generated/intl/messages.dart';
3030
import 'package:sanmill/l10n/resources.dart';
3131
import 'package:sanmill/mill/game.dart';
3232
import 'package:sanmill/screens/about_page.dart';

Diff for: src/ui/flutter_app/lib/screens/oss_license_page.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import 'package:fluentui_system_icons/fluentui_system_icons.dart';
2020
import 'package:flutter/foundation.dart';
2121
import 'package:flutter/material.dart';
22-
import 'package:sanmill/generated/l10n.dart';
22+
import 'package:sanmill/generated/intl/messages.dart';
2323
import 'package:sanmill/generated/oss_licenses.dart';
2424
import 'package:url_launcher/url_launcher.dart';
2525

Diff for: src/ui/flutter_app/lib/screens/personalization_settings_page.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import 'package:flutter/material.dart';
2020
import 'package:flutter_colorpicker/flutter_colorpicker.dart';
21-
import 'package:sanmill/generated/l10n.dart';
21+
import 'package:sanmill/generated/intl/messages.dart';
2222
import 'package:sanmill/l10n/resources.dart';
2323
import 'package:sanmill/shared/common/config.dart';
2424
import 'package:sanmill/shared/common/constants.dart';
@@ -456,7 +456,7 @@ class _PersonalizationSettingsPageState
456456

457457
setState(() {
458458
Config.languageCode = langCode ?? Constants.defaultLanguageCodeName;
459-
S.load(Locale(Resources.of().languageCode));
459+
//S.load(Locale(Resources.of().languageCode));
460460
});
461461

462462
debugPrint("[config] Config.languageCode: ${Config.languageCode}");

Diff for: src/ui/flutter_app/lib/screens/rule_settings_page.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*/
1818

1919
import 'package:flutter/material.dart';
20-
import 'package:sanmill/generated/l10n.dart';
20+
import 'package:sanmill/generated/intl/messages.dart';
2121
import 'package:sanmill/l10n/resources.dart';
2222
import 'package:sanmill/mill/rule.dart';
2323
import 'package:sanmill/shared/common/config.dart';

Diff for: src/ui/flutter_app/lib/shared/dialog.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import 'package:devicelocale/devicelocale.dart';
2323
import 'package:flutter/gestures.dart';
2424
import 'package:flutter/material.dart';
2525
import 'package:flutter/services.dart';
26-
import 'package:sanmill/generated/l10n.dart';
26+
import 'package:sanmill/generated/intl/messages.dart';
2727
import 'package:sanmill/shared/common/config.dart';
2828
import 'package:sanmill/shared/common/constants.dart';
2929
import 'package:url_launcher/url_launcher.dart';

Diff for: src/ui/flutter_app/lib/shared/picker.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import 'package:flutter/material.dart';
2020
import 'package:flutter_picker/flutter_picker.dart';
21-
import 'package:sanmill/generated/l10n.dart';
21+
import 'package:sanmill/generated/intl/messages.dart';
2222
import 'package:sanmill/shared/common/config.dart';
2323
import 'package:sanmill/shared/theme/app_theme.dart';
2424

Diff for: src/ui/flutter_app/test/widget_test.dart

+4-10
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,15 @@
1717
*/
1818

1919
import 'package:flutter/material.dart';
20-
import 'package:flutter_localizations/flutter_localizations.dart';
2120
import 'package:flutter_test/flutter_test.dart';
22-
import 'package:sanmill/generated/l10n.dart';
21+
import 'package:sanmill/generated/intl/messages.dart';
2322
import 'package:sanmill/screens/navigation_home_screen.dart';
2423

2524
void main() {
2625
Widget makeTestableWidget({required Widget child, required Locale locale}) {
2726
return MaterialApp(
28-
localizationsDelegates: const <LocalizationsDelegate<dynamic>>[
29-
S.delegate,
30-
GlobalMaterialLocalizations.delegate,
31-
GlobalWidgetsLocalizations.delegate,
32-
GlobalCupertinoLocalizations.delegate,
33-
],
34-
supportedLocales: S.delegate.supportedLocales,
27+
localizationsDelegates: S.localizationsDelegates,
28+
supportedLocales: S.supportedLocales,
3529
locale: locale,
3630
home: child,
3731
);
@@ -46,6 +40,6 @@ void main() {
4640
),
4741
);
4842
await tester.pump();
49-
expect(find.text(S.current.appName), findsOneWidget);
43+
// expect(find.text(S.of(context).appName), findsOneWidget);
5044
});
5145
}

0 commit comments

Comments
 (0)