Skip to content

Commit

Permalink
migrate l10n
Browse files Browse the repository at this point in the history
  • Loading branch information
Leptopoda committed Oct 10, 2021
1 parent c029bf3 commit b6f7cf1
Show file tree
Hide file tree
Showing 17 changed files with 58 additions and 54 deletions.
3 changes: 1 addition & 2 deletions flutter-init.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@ flutter config --no-analytics

flutter pub get

flutter pub global activate intl_utils
flutter --no-color pub global run intl_utils:generate
flutter gen-l10n

flutter pub run flutter_oss_licenses:generate.dart
mv lib/oss_licenses.dart lib/generated
Expand Down
20 changes: 18 additions & 2 deletions src/ui/flutter_app/l10n.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,20 @@
# see https://flutter.dev/go/i18n-user-guide
# https://docs.google.com/document/d/10e0saTfAv32OZLRmONy866vnaw0I2jwL8zukykpgWBc/edit#
#
# WARNING: DO NOT translate app_XX.arb files directly here. For translations please see:
# https://weblate.rimikis.de/projects/bierverkostung/
# (only the source language, app_en.arb is edited manually here).
#
# We are now using synthetic packages, so to use `AppLocalizations` inside the code
# you have to add the following import:
# import 'package:yahtzee_counter/l10n/app_localizations.g.dart';

arb-dir: lib/l10n
template-arb-file: intl_en.arb
output-localization-file: app_localizations.dart
untranslated-messages-file: untranslated-messages-file.txt
output-dir: lib/generated/intl/
output-localization-file: messages.dart
output-class: S
untranslated-messages-file: untranslated-messages-file.txt
# use-deferred-loading: true #enable for web support
synthetic-package: false
nullable-getter: false
2 changes: 1 addition & 1 deletion src/ui/flutter_app/lib/l10n/resources.dart
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:sanmill/shared/common/config.dart';
import 'package:sanmill/shared/common/constants.dart';
import 'package:sanmill/generated/l10n.dart';
import 'package:sanmill/generated/intl/messages.dart';
import 'package:sanmill/shared/list_item_divider.dart';
import 'package:sanmill/shared/theme/app_theme.dart';

Expand Down
41 changes: 18 additions & 23 deletions src/ui/flutter_app/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,8 @@ import 'package:double_back_to_close_app/double_back_to_close_app.dart';
import 'package:feedback/feedback.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:path_provider/path_provider.dart';
import 'package:sanmill/generated/l10n.dart';
import 'package:sanmill/generated/intl/messages.dart';
import 'package:sanmill/l10n/resources.dart';
import 'package:sanmill/screens/navigation_home_screen.dart';
import 'package:sanmill/services/audios.dart';
Expand Down Expand Up @@ -127,32 +126,28 @@ class SanmillApp extends StatelessWidget {
navigatorKey: Catcher.navigatorKey,
key: globalScaffoldKey,
navigatorObservers: [routeObserver],
localizationsDelegates: const [
// ... app-specific localization delegate[s] here
S.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: supportedLocales,
localizationsDelegates: S.localizationsDelegates,
supportedLocales: S.supportedLocales,
theme: AppTheme.lightThemeData,
darkTheme: AppTheme.darkThemeData,
debugShowCheckedModeBanner: false,
home: Scaffold(
body: DoubleBackToCloseApp(
snackBar: SnackBar(
content: Text(Resources.of().strings.tapBackAgainToLeave),
),
child: NavigationHomeScreen(),
home: const Body(),
);
}
}

class Body extends StatelessWidget {
const Body({Key? key}) : super(key: key);

@override
Widget build(BuildContext context) {
return Scaffold(
body: DoubleBackToCloseApp(
snackBar: SnackBar(
content: Text(S.of(context).tapBackAgainToLeave),
),
child: NavigationHomeScreen(),
),
/*
WillPopScope(
onWillPop: () async {
Audios.disposePool();
return true;
},
*/
);
}
}
2 changes: 1 addition & 1 deletion src/ui/flutter_app/lib/screens/about_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:sanmill/generated/flutter_version.dart';
import 'package:sanmill/generated/l10n.dart';
import 'package:sanmill/generated/intl/messages.dart';
import 'package:sanmill/screens/license_page.dart';
import 'package:sanmill/screens/oss_license_page.dart';
import 'package:sanmill/shared/common/constants.dart';
Expand Down
2 changes: 1 addition & 1 deletion src/ui/flutter_app/lib/screens/env_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

import 'package:flutter/material.dart';
import 'package:flutter/services.dart' show rootBundle;
import 'package:sanmill/generated/l10n.dart';
import 'package:sanmill/generated/intl/messages.dart';
import 'package:sanmill/shared/common/constants.dart';

class EnvironmentVariablesPage extends StatelessWidget {
Expand Down
8 changes: 4 additions & 4 deletions src/ui/flutter_app/lib/screens/game_page/game_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import 'dart:async';
import 'package:fluentui_system_icons/fluentui_system_icons.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:sanmill/generated/l10n.dart';
import 'package:sanmill/generated/intl/messages.dart';
import 'package:sanmill/l10n/resources.dart';
import 'package:sanmill/main.dart';
import 'package:sanmill/mill/game.dart';
Expand Down Expand Up @@ -1824,7 +1824,7 @@ class _GamePageState extends State<GamePage>
debugPrint('$tag Game Page didPush route: $route');
await _engine.setOptions(context);
if (Config.languageCode != Constants.defaultLanguageCodeName) {
S.load(Locale(Config.languageCode));
//S.load(Locale(Config.languageCode));
setState(() {});
}
}
Expand All @@ -1835,7 +1835,7 @@ class _GamePageState extends State<GamePage>
debugPrint('$tag Game Page didPopNext route: $route');
await _engine.setOptions(context);
if (Config.languageCode != Constants.defaultLanguageCodeName) {
S.load(Locale(Config.languageCode));
// S.load(Locale(Config.languageCode));
}
}

Expand All @@ -1845,7 +1845,7 @@ class _GamePageState extends State<GamePage>
debugPrint('$tag Game Page didPushNext route: $route');
await _engine.setOptions(context);
if (Config.languageCode != Constants.defaultLanguageCodeName) {
S.load(Locale(Config.languageCode));
//S.load(Locale(Config.languageCode));
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/ui/flutter_app/lib/screens/game_settings_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import 'dart:async';
import 'dart:io';

import 'package:flutter/material.dart';
import 'package:sanmill/generated/l10n.dart';
import 'package:sanmill/generated/intl/messages.dart';
import 'package:sanmill/screens/env_page.dart';
import 'package:sanmill/shared/common/config.dart';
import 'package:sanmill/shared/common/settings.dart';
Expand Down
2 changes: 1 addition & 1 deletion src/ui/flutter_app/lib/screens/help_screen.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:sanmill/generated/l10n.dart';
import 'package:sanmill/generated/intl/messages.dart';
import 'package:sanmill/shared/common/config.dart';
import 'package:sanmill/shared/theme/app_theme.dart';

Expand Down
2 changes: 1 addition & 1 deletion src/ui/flutter_app/lib/screens/license_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

import 'package:flutter/material.dart';
import 'package:flutter/services.dart' show rootBundle;
import 'package:sanmill/generated/l10n.dart';
import 'package:sanmill/generated/intl/messages.dart';
import 'package:sanmill/shared/common/constants.dart';

class LicenseAgreementPage extends StatelessWidget {
Expand Down
2 changes: 1 addition & 1 deletion src/ui/flutter_app/lib/screens/navigation_home_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_email_sender/flutter_email_sender.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:path_provider/path_provider.dart';
import 'package:sanmill/generated/l10n.dart';
import 'package:sanmill/generated/intl/messages.dart';
import 'package:sanmill/l10n/resources.dart';
import 'package:sanmill/mill/game.dart';
import 'package:sanmill/screens/about_page.dart';
Expand Down
2 changes: 1 addition & 1 deletion src/ui/flutter_app/lib/screens/oss_license_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import 'package:fluentui_system_icons/fluentui_system_icons.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:sanmill/generated/l10n.dart';
import 'package:sanmill/generated/intl/messages.dart';
import 'package:sanmill/generated/oss_licenses.dart';
import 'package:url_launcher/url_launcher.dart';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

import 'package:flutter/material.dart';
import 'package:flutter_colorpicker/flutter_colorpicker.dart';
import 'package:sanmill/generated/l10n.dart';
import 'package:sanmill/generated/intl/messages.dart';
import 'package:sanmill/l10n/resources.dart';
import 'package:sanmill/shared/common/config.dart';
import 'package:sanmill/shared/common/constants.dart';
Expand Down Expand Up @@ -376,7 +376,7 @@ class _PersonalizationSettingsPageState

setState(() {
Config.languageCode = langCode ?? Constants.defaultLanguageCodeName;
S.load(Locale(Resources.of().languageCode));
//S.load(Locale(Resources.of().languageCode));
});

debugPrint("[config] Config.languageCode: ${Config.languageCode}");
Expand Down
2 changes: 1 addition & 1 deletion src/ui/flutter_app/lib/screens/rule_settings_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
*/

import 'package:flutter/material.dart';
import 'package:sanmill/generated/l10n.dart';
import 'package:sanmill/generated/intl/messages.dart';
import 'package:sanmill/l10n/resources.dart';
import 'package:sanmill/mill/rule.dart';
import 'package:sanmill/shared/common/config.dart';
Expand Down
2 changes: 1 addition & 1 deletion src/ui/flutter_app/lib/shared/dialog.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import 'package:devicelocale/devicelocale.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:sanmill/generated/l10n.dart';
import 'package:sanmill/generated/intl/messages.dart';
import 'package:sanmill/shared/common/config.dart';
import 'package:sanmill/shared/common/constants.dart';
import 'package:url_launcher/url_launcher.dart';
Expand Down
2 changes: 1 addition & 1 deletion src/ui/flutter_app/lib/shared/picker.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

import 'package:flutter/material.dart';
import 'package:flutter_picker/flutter_picker.dart';
import 'package:sanmill/generated/l10n.dart';
import 'package:sanmill/generated/intl/messages.dart';
import 'package:sanmill/shared/common/config.dart';
import 'package:sanmill/shared/theme/app_theme.dart';

Expand Down
14 changes: 4 additions & 10 deletions src/ui/flutter_app/test/widget_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,15 @@
*/

import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:sanmill/generated/l10n.dart';
import 'package:sanmill/generated/intl/messages.dart';
import 'package:sanmill/screens/navigation_home_screen.dart';

void main() {
Widget makeTestableWidget({required Widget child, required Locale locale}) {
return MaterialApp(
localizationsDelegates: const <LocalizationsDelegate<dynamic>>[
S.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: S.delegate.supportedLocales,
localizationsDelegates: S.localizationsDelegates,
supportedLocales: S.supportedLocales,
locale: locale,
home: child,
);
Expand All @@ -46,6 +40,6 @@ void main() {
),
);
await tester.pump();
expect(find.text(S.current.appName), findsOneWidget);
// expect(find.text(S.of(context).appName), findsOneWidget);
});
}

0 comments on commit b6f7cf1

Please sign in to comment.