| name | localization |
| description | Use when changing FlClash UI text, scanning for hardcoded Chinese strings, updating ARB localization, or fixing generated locale output in this repository. |
Localization
When To Use
Use this for localization work inside /Users/Shared/follow/FlClash, especially hardcoded UI text in lib/, ARB updates, missing translations, or generated lib/l10n/ output that does not match source ARB values.
Do not use this for README translation sync or manual edits to generated localization Dart.
Workflow
-
Confirm pubspec.yaml still uses flutter_intl, source ARBs under arb/, and generated output under lib/l10n/.
-
Scan user-facing Dart text before opening many files:
rg -n "[\\p{Han}]" lib -g '!lib/l10n/intl/**' -g '!lib/**/generated/**'
-
Inspect the smallest relevant call sites and nearby ARB keys.
-
Add or update every source ARB:
arb/intl_en.arb
arb/intl_zh_CN.arb
arb/intl_ja.arb
arb/intl_ru.arb
-
Replace inline strings with existing project accessors:
- Widgets with
BuildContext: context.appLocalizations.key from common.dart.
- Controllers/providers/non-widget code:
currentAppLocalizations.key from app_localizations.dart.
-
Regenerate:
dart run intl_utils:generate
-
Verify changed Dart files with flutter analyze when practical.
-
Re-run the Han-text scan for targeted strings.
Pitfalls
- If ja/ru still show English, fix ja/ru source ARB values and regenerate. Do not edit generated Dart.
- Ignore
lib/l10n/intl/** and lib/**/generated/** during text scans.
- If generator or analyzer hits local cache permission friction, rerun serially before treating it as a code issue.