Skip to content

Commit 4d30a77

Browse files
committed
chore: update implementation
1 parent a372a15 commit 4d30a77

File tree

11 files changed

+431
-312
lines changed

11 files changed

+431
-312
lines changed

assets/feature_flags.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
"system"
1212
]
1313
},
14+
"dummy_not_in_remote": "Local Default",
1415
"_force_override_flags": ""
1516
}

lib/i18n/en-US.i18n.yaml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ general:
88
copy: Copy
99
copied: Copied
1010
ok: OK
11+
cancel: Cancel
1112
errors:
1213
occurred: An error occurred
1314
flutterError: A Flutter error occurred
@@ -129,9 +130,10 @@ about:
129130
featureFlags:
130131
title: Feature Flags
131132
reset: Reset to default
133+
noflag: No featureFlags
132134
status:
133-
defaultStatus: Default
135+
local: Local
134136
remote: Remote
135-
overrideStatus: Override
136-
forced: Forced
137+
localOverride: Override
138+
remoteOverride: Forced
137139
refreshed: Refreshed from remote

lib/i18n/strings.g.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
/// To regenerate, run: `dart run slang`
55
///
66
/// Locales: 2
7-
/// Strings: 226 (113 per locale)
7+
/// Strings: 232 (116 per locale)
88
99
// coverage:ignore-file
1010
// ignore_for_file: type=lint, unused_import

lib/i18n/strings_en_US.g.dart

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ class _TranslationsGeneralEnUs extends TranslationsGeneralZhTw {
6767
@override String get copy => 'Copy';
6868
@override String get copied => 'Copied';
6969
@override String get ok => 'OK';
70+
@override String get cancel => 'Cancel';
7071
}
7172

7273
// Path: errors
@@ -207,6 +208,7 @@ class _TranslationsFeatureFlagsEnUs extends TranslationsFeatureFlagsZhTw {
207208
// Translations
208209
@override String get title => 'Feature Flags';
209210
@override String get reset => 'Reset to default';
211+
@override String get noflag => 'No featureFlags';
210212
@override late final _TranslationsFeatureFlagsStatusEnUs status = _TranslationsFeatureFlagsStatusEnUs._(_root);
211213
@override String get refreshed => 'Refreshed from remote';
212214
}
@@ -324,10 +326,10 @@ class _TranslationsFeatureFlagsStatusEnUs extends TranslationsFeatureFlagsStatus
324326
final TranslationsEnUs _root; // ignore: unused_field
325327

326328
// Translations
327-
@override String get defaultStatus => 'Default';
329+
@override String get local => 'Local';
328330
@override String get remote => 'Remote';
329-
@override String get overrideStatus => 'Override';
330-
@override String get forced => 'Forced';
331+
@override String get localOverride => 'Override';
332+
@override String get remoteOverride => 'Forced';
331333
}
332334

333335
// Path: intro.features.courseTable
@@ -394,6 +396,7 @@ extension on TranslationsEnUs {
394396
'general.copy' => 'Copy',
395397
'general.copied' => 'Copied',
396398
'general.ok' => 'OK',
399+
'general.cancel' => 'Cancel',
397400
'errors.occurred' => 'An error occurred',
398401
'errors.flutterError' => 'A Flutter error occurred',
399402
'errors.asyncError' => 'An async error occurred',
@@ -494,10 +497,11 @@ extension on TranslationsEnUs {
494497
'about.copyright' => '© 2025 NTUT Programming Club\nLicensed under the GNU GPL v3.0',
495498
'featureFlags.title' => 'Feature Flags',
496499
'featureFlags.reset' => 'Reset to default',
497-
'featureFlags.status.defaultStatus' => 'Default',
500+
'featureFlags.noflag' => 'No featureFlags',
501+
'featureFlags.status.local' => 'Local',
498502
'featureFlags.status.remote' => 'Remote',
499-
'featureFlags.status.overrideStatus' => 'Override',
500-
'featureFlags.status.forced' => 'Forced',
503+
'featureFlags.status.localOverride' => 'Override',
504+
'featureFlags.status.remoteOverride' => 'Forced',
501505
'featureFlags.refreshed' => 'Refreshed from remote',
502506
_ => null,
503507
};

lib/i18n/strings_zh_TW.g.dart

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,9 @@ class TranslationsGeneralZhTw {
8686

8787
/// zh-TW: '確定'
8888
String get ok => '確定';
89+
90+
/// zh-TW: '取消'
91+
String get cancel => '取消';
8992
}
9093

9194
// Path: errors
@@ -301,6 +304,9 @@ class TranslationsFeatureFlagsZhTw {
301304
/// zh-TW: '恢復預設值'
302305
String get reset => '恢復預設值';
303306

307+
/// zh-TW: '沒有功能開關'
308+
String get noflag => '沒有功能開關';
309+
304310
late final TranslationsFeatureFlagsStatusZhTw status = TranslationsFeatureFlagsStatusZhTw.internal(_root);
305311

306312
/// zh-TW: '已從遠端截取'
@@ -501,17 +507,17 @@ class TranslationsFeatureFlagsStatusZhTw {
501507

502508
// Translations
503509

504-
/// zh-TW: '預設'
505-
String get defaultStatus => '預設';
510+
/// zh-TW: '本機'
511+
String get local => '本機';
506512

507513
/// zh-TW: '遠端'
508514
String get remote => '遠端';
509515

510516
/// zh-TW: '覆寫'
511-
String get overrideStatus => '覆寫';
517+
String get localOverride => '覆寫';
512518

513519
/// zh-TW: '強制'
514-
String get forced => '強制';
520+
String get remoteOverride => '強制';
515521
}
516522

517523
// Path: intro.features.courseTable
@@ -600,6 +606,7 @@ extension on Translations {
600606
'general.copy' => '複製',
601607
'general.copied' => '已複製',
602608
'general.ok' => '確定',
609+
'general.cancel' => '取消',
603610
'errors.occurred' => '發生錯誤',
604611
'errors.flutterError' => '發生Flutter錯誤',
605612
'errors.asyncError' => '發生非同步錯誤',
@@ -700,10 +707,11 @@ extension on Translations {
700707
'about.copyright' => '© 2025北科程式設計研究社\n以GNU GPL v3.0授權條款釋出',
701708
'featureFlags.title' => '功能開關',
702709
'featureFlags.reset' => '恢復預設值',
703-
'featureFlags.status.defaultStatus' => '預設',
710+
'featureFlags.noflag' => '沒有功能開關',
711+
'featureFlags.status.local' => '本機',
704712
'featureFlags.status.remote' => '遠端',
705-
'featureFlags.status.overrideStatus' => '覆寫',
706-
'featureFlags.status.forced' => '強制',
713+
'featureFlags.status.localOverride' => '覆寫',
714+
'featureFlags.status.remoteOverride' => '強制',
707715
'featureFlags.refreshed' => '已從遠端截取',
708716
_ => null,
709717
};

lib/i18n/zh-TW.i18n.yaml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ general:
88
copy: 複製
99
copied: 已複製
1010
ok: 確定
11+
cancel: 取消
1112
errors:
1213
occurred: 發生錯誤
1314
flutterError: 發生Flutter錯誤
@@ -129,9 +130,10 @@ about:
129130
featureFlags:
130131
title: 功能開關
131132
reset: 恢復預設值
133+
noflag: 沒有功能開關
132134
status:
133-
defaultStatus: 預設
135+
local: 本機
134136
remote: 遠端
135-
overrideStatus: 覆寫
136-
forced: 強制
137-
refreshed: 已從遠端截取
137+
localOverride: 覆寫
138+
remoteOverride: 強制
139+
refreshed: 已從遠端截取

lib/main.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import 'package:go_router/go_router.dart';
1010
import 'package:tattoo/firebase_options.dart';
1111
import 'package:tattoo/i18n/strings.g.dart';
1212
import 'package:tattoo/repositories/auth_repository.dart';
13+
import 'package:tattoo/repositories/feature_flag_repository.dart';
1314
import 'package:tattoo/router/app_router.dart';
1415
import 'package:tattoo/services/firebase_service.dart';
1516

@@ -27,13 +28,17 @@ Future<void> main() async {
2728
await Firebase.initializeApp(
2829
options: DefaultFirebaseOptions.currentPlatform,
2930
);
31+
await firebaseService.init();
3032
} catch (e) {
3133
log(e.toString(), name: 'Firebase Initialization');
3234
}
3335
}
3436

3537
final container = ProviderContainer();
3638

39+
// Initialize feature flags early
40+
await container.read(featureFlagRepositoryProvider).init();
41+
3742
void showErrorDialog(
3843
Object error, {
3944
ErrorType type = ErrorType.unknown,

0 commit comments

Comments
 (0)