Documentation Sub-Issue: Synchronize String Resources Across All Languages
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- android
- Lĩnh vực
- internationalization, localization
Hướng nghiên cứu
Bắt đầu bằng cách kiểm tra app/src/main/res/values* đối chiếu với app/src/main/res/values/strings.xml, sau đó chạy công cụ phát hiện trong scripts/TranslationStringTools/ và xem xét các báo cáo của công cụ. Rà soát codebase để tìm các chuỗi UI được hardcode và xác định phạm vi ngôn ngữ đang hoạt động trước khi thực hiện thay đổi. Được xem là hoàn tất khi tất cả tài nguyên ngôn ngữ đang hoạt động có các key tương ứng, các báo cáo cho thấy độ bao phủ 100% và quy trình dịch được ghi lại cũng như được thực thi.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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
- Ngôn ngữ chính
- Kotlin
- Star
- 43
- Fork
- 4
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của arn-c0de/InteractiveChecklists
-
design frontend help wanted priority: medium UI/UX
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
-
design frontend good first issue help wanted priority: medium UI/UX
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
-
Design: 🎨 UI/UX Designer Wanted: App Interface ImprovementsCó thể làm lại được @pedrocsampaio đã nhận 275 ngày trước và không có pull request nào đang mở. Đang mởdesign enhancement frontend help wanted priority: low UI/UX
arn-c0de/InteractiveChecklists#27 · 2 bình luận · 1 người được giao ·
-
Feature: Make app UI & menus responsive across phones, tablets and orientations — ensure full functionalityCó thể làm lại được @arn-c0de đã nhận 278 ngày trước và không có pull request nào đang mở. Đang mởenhancement help wanted priority: medium UI/UX
arn-c0de/InteractiveChecklists#23 · 1 người được giao ·
-
enhancement help wanted priority: low UI/UX
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
Tất cả issue của arn-c0de/InteractiveChecklists
Issue tương tự
-
LiquidGlass / LiquidGlassContainer (iOS): padded content measured at the outer width and overflows by the paddingCó thể đã có người làm @aleclarson đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
NativeScript/NativeScript#11561 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
navikt/mock-oauth2-server#1129 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Expose `close` on SsrEngineĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 77/100
-
unconfirmed
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
thunderbird/thunderbird-android#11778 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
software-mansion/enriched-markdown#1042 ·
Maintainer thường phản hồi trong vòng 2 ngày