Skip to content

feat: add app language selector#24

Merged
ChrisMarxDev merged 6 commits into
mainfrom
feat/app-localization-selector
Jul 5, 2026
Merged

feat: add app language selector#24
ChrisMarxDev merged 6 commits into
mainfrom
feat/app-localization-selector

Conversation

@ChrisMarxDev

Copy link
Copy Markdown
Owner

Summary

  • Adds a global app-language override beacon backed by SharedPreferences.
  • Keeps the default behavior as phone/system language tracking, with platform locale changes reflected through phoneLocaleBeacon.
  • Adds a language selector to Settings → Appearance.
  • Adds generated Flutter localizations for English, German, French, Spanish, Portuguese, Chinese, Japanese, and Arabic.
  • Adds contextual metadata for the new language selector strings and preserves ARB metadata in new locale files.
  • Adds tests for locale override persistence/reset/unsupported saved codes.

Context / translation note

The new language selector strings are translated contextually for every supported locale. The new locale files also include a first contextual pass for the core app shell/settings/share strings so the app can compile and route all supported languages through Flutter l10n. A native-speaker copy review is still recommended before store release, especially for less-used feature/paywall/screenshot strings.

Verification

  • /root/flutter-sdk/bin/flutter gen-l10n
  • python3 -m json.tool for all ARB files
  • PATH=/root/flutter-sdk/bin:$PATH dart analyze .
  • /root/flutter-sdk/bin/flutter test test/features/settings/app_locale_settings_test.dart

Local verification limits

Full flutter test is blocked in this VPS environment by:

  • missing libsqlite3.so for the existing Drift pre-made tile controller test
  • Flutter 3.44.3 treating IconData as final, which breaks existing phosphor_flutter 2.1.0 compilation in screenshot/web builds

Those blockers appear environment/dependency-related rather than introduced by this PR; the targeted locale test and analyzer pass.

@ChrisMarxDev

Copy link
Copy Markdown
Owner Author

CI update after follow-up fixes:

  • semantic-pull-request passes.
  • spell-check now passes after adding existing project spellings to cspell.
  • Build now gets past formatting/analyze on Flutter 3.41.9 after pinning the workflow to the repo-documented Flutter version.
  • Remaining failure is the existing Very Good workflow coverage gate (min_coverage: 100) reporting uncovered lines across broad existing app files and generated localization files. Recent main workflow runs are already failing, so this is not isolated to the localization selector change.

Local verification remains:

  • flutter gen-l10n passed.
  • ARB JSON validation passed for all locales.
  • dart analyze . passed.
  • flutter test test/features/settings/app_locale_settings_test.dart passed.

@cursor

cursor Bot commented Jul 5, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@cursor

cursor Bot commented Jul 5, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@ChrisMarxDev ChrisMarxDev merged commit 347df34 into main Jul 5, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant