feat(i18n): localize onboarding & reports; logout

- add en/ms keys for welcome, onboarding, capture/review, errors, and
  settings labels
- replace hardcoded strings with I18n.t in WelcomeScreen, OnboardingFlow,
  CaptureScreen, ReviewScreen, Map severity legend, and Settings
- update StartRouter: onboarded guests go to MainScreen; non-guest users
  see SignIn; skip marks user as onboarded guest
- add logout action in Settings that clears onboarding/user mode prefs
  and returns to the welcome flow
- refine settings diagnostics and app section; move labels to i18n
- leave TODOs for app subtitle, processing status, and ReportCard menu
  labels for future i18n coverage
This commit is contained in:
2025-09-26 14:57:47 +08:00
parent 7085a54290
commit 9849df6a8c
8 changed files with 288 additions and 80 deletions

View File

@@ -679,7 +679,7 @@ class _MapScreenState extends State<MapScreen> {
),
const SizedBox(width: 8),
Text(
'Issue Severity',
I18n.t('label.severity'),
style: Theme.of(context).textTheme.bodySmall
?.copyWith(
fontWeight: FontWeight.w600,
@@ -691,11 +691,20 @@ class _MapScreenState extends State<MapScreen> {
],
),
const SizedBox(height: 12),
_enhancedLegendItem(Severity.high, 'High Priority'),
_enhancedLegendItem(
Severity.high,
'${I18n.t('severity.high')} Priority',
),
const SizedBox(height: 8),
_enhancedLegendItem(Severity.medium, 'Medium Priority'),
_enhancedLegendItem(
Severity.medium,
'${I18n.t('severity.medium')} Priority',
),
const SizedBox(height: 8),
_enhancedLegendItem(Severity.low, 'Low Priority'),
_enhancedLegendItem(
Severity.low,
'${I18n.t('severity.low')} Priority',
),
],
),
),