Skip to content

Documentation Sub-Issue: Synchronize String Resources Across All Languages #33

Description

@arn-c0de

Ensure that all language string resources are always complete and fully aligned with the default English strings (values/strings.xml).
All supported languages must:

  • Contain exactly the same string keys
  • Stay in sync with any newly added or modified strings
  • Never fall back to English due to missing entries

Source of Truth

File: app/src/main/res/values/strings.xml (English / Default)

All other language files must be kept in sync with this file.

Automated String Detection Tool

A tool for detecting missing and inconsistent strings is now available in the repository:

  • Location: scripts/TranslationStringTools/
  • Reports Output: scripts/TranslationStringTools/reports/

The tool automatically compares all language files against the English source and generates reports showing:

  • Missing string keys per language
  • Coverage percentages
  • Outdated / potentially incorrect translations
  • Unused or obsolete keys

Language Status Tracking

Every language must be kept complete and up to date.

Language Folder Status Coverage Last Updated App Version
English (default) values 100% 2026-01-20 v1.0.25
German values-de 95% 2026-01-22 v1.0.25
Spanish values-es 94.5% 2026-01-22 v1.0.25
Chinese (Simplified) values-zh 95.7% 2026-01-22 v1.0.25
French values-fr YYYY-MM-DD vX.Y.Z
Portuguese values-pt YYYY-MM-DD vX.Y.Z
Russian values-ru YYYY-MM-DD vX.Y.Z
Japanese values-ja YYYY-MM-DD vX.Y.Z
Arabic values-ar YYYY-MM-DD vX.Y.Z
Hindi values-hi YYYY-MM-DD vX.Y.Z
Korean values-ko YYYY-MM-DD vX.Y.Z
Italian values-it YYYY-MM-DD vX.Y.Z
Turkish values-tr YYYY-MM-DD vX.Y.Z
Dutch values-nl YYYY-MM-DD vX.Y.Z
Polish values-pl YYYY-MM-DD vX.Y.Z
Indonesian values-in YYYY-MM-DD vX.Y.Z
Vietnamese values-vi YYYY-MM-DD vX.Y.Z
Thai values-th YYYY-MM-DD vX.Y.Z
Ukrainian values-uk YYYY-MM-DD vX.Y.Z
Chinese (Traditional) values-zh-rTW YYYY-MM-DD vX.Y.Z
Czech values-cs YYYY-MM-DD vX.Y.Z
Greek values-el YYYY-MM-DD vX.Y.Z
Swedish values-sv YYYY-MM-DD vX.Y.Z
Norwegian values-no YYYY-MM-DD vX.Y.Z
Danish values-da YYYY-MM-DD vX.Y.Z
Finnish values-fi YYYY-MM-DD vX.Y.Z

Legend:

  • ✅ = folder exists and is (nearly) complete
  • ⬜ = not yet added / incomplete / needs review

Tasks

Repository Status Check

  • Audit all app/src/main/res/values* folders
  • Document which language folders already exist
  • Identify languages that need to be created from scratch

String Consistency

Compare every values-XX/strings.xml against values/strings.xml:

  • Detect missing keys
  • Identify outdated translations
  • Find unused / obsolete keys

Codebase Audit

  • Remove all hardcoded UI strings
  • Ensure every piece of UI text uses string resources

Process Definition

Rule:
Every new or modified string must be added / updated in all languages.
Missing translations must be clearly marked (e.g. with TODO comments or @string/missing_... placeholders).

Automation

  • Run the detection tool from scripts/TranslationStringTools/ regularly
  • Review generated reports in scripts/TranslationStringTools/reports/
  • Optional: Add CI check / warning for translations below 100% coverage

Definition of Done

  • All language files contain all string keys from the default English file
  • No silent fallbacks to English due to missing resources
  • The update process is documented and actively enforced
  • The detection tool reports 100% coverage for all active languages

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions