Skip to content

Commit 3b22ed2

Browse files
Merge pull request #949 from atsign-foundation/at_onboarding_localization
feat: language support added for es, pt, mandarin and cantonese
2 parents 4024008 + 9d33281 commit 3b22ed2

33 files changed

+2856
-816
lines changed

packages/at_onboarding_flutter/CHANGELOG.md

+11
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,21 @@
1+
## 6.1.10
2+
3+
- **FEAT** Language support added for:
4+
- Spanish (Latin America)
5+
- Portuguese
6+
- Brazilian Portuguese
7+
- Mandarin
8+
- Cantonese
9+
110
## 6.1.9
11+
212
- build[deps]: Upgraded dependencies for the following packages:
313
- at_client: 3.2.2
414
- at_client_mobile: 3.2.19
515
- at_auth: 2.0.7
616
- at_commons: 5.0.0
717
- at_utils: 3.0.19
18+
819
## 6.1.8
920

1021
- **CHORE**: Updated dependencies

packages/at_onboarding_flutter/example/lib/main.dart

+28-9
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@ class MyAppState extends State<MyApp> {
3838

3939
bool isChangeLanguage = false;
4040
var _currentLocale = const Locale('en', '');
41+
final frenchLocale = const Locale('fr');
42+
final englishLocale = const Locale('en');
43+
final spanishLocale = const Locale('es');
44+
final portugueseLocale = const Locale('pt');
45+
final brazillianPortugueseLocale = const Locale('pt', 'BR');
46+
final chineseTraditionalLocale = const Locale.fromSubtags(languageCode: 'zh', scriptCode: 'Hant', countryCode: 'HK');
47+
final chineseSimplifiedLocale = const Locale.fromSubtags(languageCode: 'zh', scriptCode: 'Hans', countryCode: 'CN');
4148

4249
@override
4350
Widget build(BuildContext context) {
@@ -67,9 +74,14 @@ class MyAppState extends State<MyApp> {
6774
GlobalWidgetsLocalizations.delegate,
6875
GlobalCupertinoLocalizations.delegate,
6976
],
70-
supportedLocales: const [
71-
Locale('fr'),
72-
Locale('en'),
77+
supportedLocales: [
78+
englishLocale,
79+
frenchLocale,
80+
spanishLocale,
81+
portugueseLocale,
82+
brazillianPortugueseLocale,
83+
chineseTraditionalLocale,
84+
chineseSimplifiedLocale,
7385
],
7486
themeMode: themeMode,
7587
home: Scaffold(
@@ -177,16 +189,23 @@ class MyAppState extends State<MyApp> {
177189
children: <Widget>[
178190
const Text("Change language:"),
179191
const SizedBox(width: 10),
180-
DropdownButton(
192+
DropdownButton<Locale>(
181193
onChanged: (value) {
182194
setState(() {
183-
value == 'en' ? _currentLocale = const Locale('en') : _currentLocale = const Locale('fr');
195+
_currentLocale = value!;
184196
});
185197
},
186-
value: _currentLocale.languageCode,
187-
items: const [
188-
DropdownMenuItem(value: 'en', child: Text('English')),
189-
DropdownMenuItem(value: 'fr', child: Text('French')),
198+
value: _currentLocale,
199+
items: [
200+
DropdownMenuItem(value: englishLocale, child: const Text('English')),
201+
DropdownMenuItem(value: frenchLocale, child: const Text('French')),
202+
DropdownMenuItem(value: spanishLocale, child: const Text('Spanish')),
203+
DropdownMenuItem(value: portugueseLocale, child: const Text('Portuguese')),
204+
DropdownMenuItem(
205+
value: brazillianPortugueseLocale, child: const Text('Brazilian Portuguese')),
206+
DropdownMenuItem(
207+
value: chineseTraditionalLocale, child: const Text('Chinese (Traditional)')),
208+
DropdownMenuItem(value: chineseSimplifiedLocale, child: const Text('Chinese (Simplified)')),
190209
],
191210
)
192211
],

packages/at_onboarding_flutter/example/macos/Flutter/GeneratedPluginRegistrant.swift

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import path_provider_foundation
1414
import share_plus
1515
import shared_preferences_foundation
1616
import url_launcher_macos
17+
import webview_flutter_wkwebview
1718

1819
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
1920
FileSaverPlugin.register(with: registry.registrar(forPlugin: "FileSaverPlugin"))
@@ -25,4 +26,5 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
2526
SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin"))
2627
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
2728
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
29+
FLTWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "FLTWebViewFlutterPlugin"))
2830
}

packages/at_onboarding_flutter/example/macos/Podfile.lock

+12-5
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ PODS:
2020
- FlutterMacOS
2121
- url_launcher_macos (0.0.1):
2222
- FlutterMacOS
23+
- webview_flutter_wkwebview (0.0.1):
24+
- Flutter
25+
- FlutterMacOS
2326

2427
DEPENDENCIES:
2528
- at_file_saver (from `Flutter/ephemeral/.symlinks/plugins/at_file_saver/macos`)
@@ -32,6 +35,7 @@ DEPENDENCIES:
3235
- share_plus (from `Flutter/ephemeral/.symlinks/plugins/share_plus/macos`)
3336
- shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`)
3437
- url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`)
38+
- webview_flutter_wkwebview (from `Flutter/ephemeral/.symlinks/plugins/webview_flutter_wkwebview/darwin`)
3539

3640
EXTERNAL SOURCES:
3741
at_file_saver:
@@ -54,19 +58,22 @@ EXTERNAL SOURCES:
5458
:path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin
5559
url_launcher_macos:
5660
:path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos
61+
webview_flutter_wkwebview:
62+
:path: Flutter/ephemeral/.symlinks/plugins/webview_flutter_wkwebview/darwin
5763

5864
SPEC CHECKSUMS:
5965
at_file_saver: 1fc6ed722f17c7a20ce79cce168d1100fcad4b95
6066
biometric_storage: 43caa6e7ef00e8e19c074216e7e1786dacda9e76
6167
device_info_plus: ce1b7762849d3ec103d0e0517299f2db7ad60720
62-
file_selector_macos: 54fdab7caa3ac3fc43c9fac4d7d8d231277f8cf2
68+
file_selector_macos: cc3858c981fe6889f364731200d6232dac1d812d
6369
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
64-
package_info_plus: d2f71247aab4b6521434f887276093acc70d214c
70+
package_info_plus: 12f1c5c2cfe8727ca46cbd0b26677728972d9a5b
6571
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
66-
share_plus: a182a58e04e51647c0481aadabbc4de44b3a2bce
72+
share_plus: 1fa619de8392a4398bfaf176d441853922614e89
6773
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
68-
url_launcher_macos: 5f437abeda8c85500ceb03f5c1938a8c5a705399
74+
url_launcher_macos: c82c93949963e55b228a30115bd219499a6fe404
75+
webview_flutter_wkwebview: 0982481e3d9c78fd5c6f62a002fcd24fc791f1e4
6976

7077
PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7
7178

72-
COCOAPODS: 1.15.2
79+
COCOAPODS: 1.14.3

packages/at_onboarding_flutter/lib/at_onboarding_flutter.dart

+3-4
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@ library at_onboarding_flutter;
44
export 'package:at_backupkey_flutter/at_backupkey_flutter.dart';
55
export 'package:at_client_mobile/at_client_mobile.dart';
66

7+
// Additional customizations
8+
export 'generated/l10n.dart';
79
// Core package requirements
810
export 'src/at_onboarding.dart';
911
export 'src/at_onboarding_result.dart';
10-
export 'src/utils/at_onboarding_app_constants.dart' show RootEnvironment;
1112
export 'src/services/at_onboarding_config.dart';
12-
13-
// Additional customizations
14-
export './localizations/generated/l10n.dart';
1513
export 'src/services/at_onboarding_theme.dart';
14+
export 'src/utils/at_onboarding_app_constants.dart' show RootEnvironment;

packages/at_onboarding_flutter/lib/localizations/generated/intl/messages_all.dart packages/at_onboarding_flutter/lib/generated/intl/messages_all.dart

+24
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,44 @@ import 'package:intl/message_lookup_by_library.dart';
1717
import 'package:intl/src/intl_helpers.dart';
1818

1919
import 'messages_en.dart' as messages_en;
20+
import 'messages_es.dart' as messages_es;
2021
import 'messages_fr.dart' as messages_fr;
22+
import 'messages_pt.dart' as messages_pt;
23+
import 'messages_pt_BR.dart' as messages_pt_br;
24+
import 'messages_zh.dart' as messages_zh;
25+
import 'messages_zh_Hans_CH.dart' as messages_zh_hans_ch;
26+
import 'messages_zh_Hant_HK.dart' as messages_zh_hant_hk;
2127

2228
typedef Future<dynamic> LibraryLoader();
2329
Map<String, LibraryLoader> _deferredLibraries = {
2430
'en': () => new SynchronousFuture(null),
31+
'es': () => new SynchronousFuture(null),
2532
'fr': () => new SynchronousFuture(null),
33+
'pt': () => new SynchronousFuture(null),
34+
'pt_BR': () => new SynchronousFuture(null),
35+
'zh': () => new SynchronousFuture(null),
36+
'zh_Hans_CH': () => new SynchronousFuture(null),
37+
'zh_Hant_HK': () => new SynchronousFuture(null),
2638
};
2739

2840
MessageLookupByLibrary? _findExact(String localeName) {
2941
switch (localeName) {
3042
case 'en':
3143
return messages_en.messages;
44+
case 'es':
45+
return messages_es.messages;
3246
case 'fr':
3347
return messages_fr.messages;
48+
case 'pt':
49+
return messages_pt.messages;
50+
case 'pt_BR':
51+
return messages_pt_br.messages;
52+
case 'zh':
53+
return messages_zh.messages;
54+
case 'zh_Hans_CH':
55+
return messages_zh_hans_ch.messages;
56+
case 'zh_Hant_HK':
57+
return messages_zh_hant_hk.messages;
3458
default:
3559
return null;
3660
}

0 commit comments

Comments
 (0)