Repository navigation
i18n: add Dutch localization (Android) - #2865
Open
Lukasjoosten wants to merge 1 commit into
Open
Lukasjoosten wants to merge 1 commit into
Lukasjoosten wants to merge 1 commit into
Conversation
Adds Dutch as a complete, selectable language on Android, following the shape of the Italian localization (ryanbr#2454). The Apple catalogs follow in a separate PR. Android gains `values-nl/strings.xml` and `values-nl/steps_view.xml`. `AppLanguage` gains the `DUTCH("nl", "Nederlands")` case and a test, and `appchangelog-gen.py` registers `values-nl` in `LOCALE_DIRS`. Verified: - key sets match English in both directions across 2744 strings (including the `ground_truth_marker_now_button` id every locale carries), 21 plurals, 23 `steps_view` strings and 1 string-array, so there is no `ExtraTranslation` exposure; `lintVitalFullRelease` reports no issues - placeholder sets and literal newline counts identical for every string and both quantities of every plural; plural quantities are `one`/`other` - all 23 apostrophes escaped - the Android echo count recomputed with the audit's own predicate comes out at 28 for `values-nl` (the same computation gives the recorded 26 for `values-it`); every entry is a brand name, a metric abbreviation, an internal design-token id or a proper name Terminology follows a fixed glossary: NOOP's own scores are Lading / Inspanning / Rust, kept distinct from WHOOP's Herstel / Belasting, with informal "je" throughout. The translations were machine-assisted against that glossary and reviewed by a native Dutch speaker. Refs ryanbr#2864 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds Dutch (
nl) as a complete, selectable language on Android, following the shape of the Italian localization (#2454). The Apple catalogs (Strand,StrandDesign, watch targets) follow in a separate PR, to keep this one to a single platform.Refs #2864
What changes
android/app/src/main/res/values-nl/strings.xmlandvalues-nl/steps_view.xml(new locale)AppLanguagegainsDUTCH("nl", "Nederlands"), plusdutchCatalogTagIsSupportedinAppLanguageTestTools/appchangelog-gen.pyregistersvalues-nlinLOCALE_DIRS(test_locale_dirs_match_the_res_directoriesfails without it)Tools/i18n_echo_baseline.txtgainsvalues-nl … nl 28Dutch uses Latin digits and the Gregorian calendar, so the default-locale parser and formatter caveat on
AppLanguagedoes not apply beyond what de/it already exercise.Verification
ground_truth_marker_now_buttonid every other locale also carries), 21 plurals, 23steps_viewstrings and 1 string-array. NoExtraTranslationexposure.\nand newline counts identical for every string and both quantities of every plural. Plural quantities areone/other.&, and both files are well-formed XML.values-nl. The same computation gives the recorded 26 forvalues-it. Every entry is a brand name, a metric abbreviation, an internal design-token id or a proper name (breathing-protocol and feature names).Tools/i18n_audit.py --ci upstream/main: no new English-only translations and no gap forvalues-nl../gradlew lintVitalFullRelease: no issues found../gradlew testFullDebugUnitTest:AppLanguageTestpasses 6/6, including the new test. This was run on a local Windows machine. Some suites only fail there and fail identically on a cleanupstream/maincheckout: date and number formatting under a Dutch JVM default locale,WhoopDatabaseUpgradeTesttemp-file locking, andStrapLogArchiveTest. CI's Linux runner is the authoritative run.Terminology
Translated against a fixed glossary in standard Dutch, informal je:
The translations are machine-assisted against that glossary and were reviewed by a native Dutch speaker (the PR author).
🤖 Generated with Claude Code