This repository was archived by the owner on Apr 3, 2025. It is now read-only.
File tree 6 files changed +18
-15
lines changed
modules/settings/routes/configuration_localization
6 files changed +18
-15
lines changed Original file line number Diff line number Diff line change
1
+ {}
Original file line number Diff line number Diff line change
1
+ {}
Original file line number Diff line number Diff line change @@ -108,7 +108,7 @@ class _State extends State<LunaOS> {
108
108
}
109
109
110
110
Future <void > _boot (Duration duration) async {
111
- _initLocale ();
111
+ LunaLanguage .current. use ();
112
112
_initNotifications ();
113
113
if (LunaQuickActions .isSupported) LunaQuickActions ().initialize ();
114
114
@@ -128,12 +128,6 @@ class _State extends State<LunaOS> {
128
128
}
129
129
}
130
130
131
- void _initLocale () {
132
- final lan = LunaLanguage .fromLocale (context.locale) ?? LunaLanguage .ENGLISH ;
133
- context.setLocale (lan.locale);
134
- Intl .defaultLocale = lan.languageTag;
135
- }
136
-
137
131
Future <void > _healthCheck () async {
138
132
if (LunaFlavor .isStable) {
139
133
LunaBuild ().isLatestBuildVersion ().then ((isLatest) {
Original file line number Diff line number Diff line change @@ -58,11 +58,7 @@ class _State extends State<_Widget> with LunaScrollControllerMixin {
58
58
trailing: const LunaIconButton (icon: Icons .language_rounded),
59
59
onTap: () async {
60
60
final result = await SettingsDialogs ().changeLanguage (context);
61
- if (result.item1) {
62
- result.item2! .use (context);
63
- context.setLocale (result.item2! .locale);
64
- // Intl.defaultLocale = result.item2!.languageTag;
65
- }
61
+ if (result.item1) result.item2! .use ();
66
62
},
67
63
);
68
64
}
Original file line number Diff line number Diff line change @@ -76,6 +76,11 @@ enum LunaLanguage {
76
76
}
77
77
78
78
extension LunaLanguageExtension on LunaLanguage {
79
+ Future <void > use () async {
80
+ await LunaState .navigatorKey.currentContext! .setLocale (locale);
81
+ Intl .defaultLocale = languageTag;
82
+ }
83
+
79
84
bool get enabled {
80
85
switch (this ) {
81
86
case LunaLanguage .ENGLISH :
@@ -195,6 +200,4 @@ extension LunaLanguageExtension on LunaLanguage {
195
200
return const Locale ('vi' );
196
201
}
197
202
}
198
-
199
- Future <void > use (BuildContext context) => context.setLocale (this .locale);
200
203
}
Original file line number Diff line number Diff line change 3
3
import 'dart:convert' ;
4
4
import 'dart:io' ;
5
5
6
- /// Simple dart script to concat all module's localization files into a single file for loading into LunaSea.
6
+ /// Simple dart script to concatenate all module's localization files into a single file for loading into LunaSea.
7
7
///
8
8
/// This script is designed to be run from the root of the project.
9
9
void main () {
@@ -38,13 +38,21 @@ void main() {
38
38
_createFile (path);
39
39
File file = File (language.path);
40
40
_writeFile (path, jsonDecode (file.readAsStringSync ()));
41
+ // If required, create a stub primary language to prevent asset load failures
42
+ if (name.contains ('-' )) _writeStubPrimaryLanguage (_assets.path, name);
41
43
}
42
44
});
43
45
print ('' );
44
46
}
45
47
});
46
48
}
47
49
50
+ void _writeStubPrimaryLanguage (String assets, String language) {
51
+ final primary = language.split ('-' ).first;
52
+ final path = '$assets /$primary .json' ;
53
+ _createFile (path);
54
+ }
55
+
48
56
void _writeFile (String path, Map <dynamic , dynamic >? data) {
49
57
// Read the current data in the file
50
58
File file = File (path);
You can’t perform that action at this time.
0 commit comments