Files
privateqrscanner/LOCALIZATION.md
T

1.2 KiB

Localization

The app uses app/src/main/res/raw/supported_locales.tsv as the locale source of truth. The catalog is seeded from target_countries.txt.

Locale status controls rollout:

  • complete: included in the in-app language picker and generated Android localeConfig.
  • partial: included in both, and shown as partial in the picker.
  • planned: tracked for target-country coverage, but not exposed to users.

To add a translated language:

  1. Create the matching app/src/main/res/<resourceQualifier>/strings.xml.
  2. Translate every key from app/src/main/res/values/strings.xml.
  3. If marking the locale complete, also translate app/src/main/res/raw/privacy_policy.txt into the matching raw resource folder, such as raw-es/privacy_policy.txt.
  4. Change the locale row status in supported_locales.tsv from planned to complete or partial.
  5. Run bash gradlew verifyLocalization.

Mark a locale complete when all required UI strings and localized privacy policy copy are present and accepted for release. Native or legal review is recommended for sensitive markets, but the build only enforces resource completeness.

generateLocaleConfig builds @xml/locales_config from active rows, so do not hand-edit a static locales_config.xml.