i18n: harmonize terminology and register across all locales - #224
Merged
Conversation
Fix content errors, unify per-locale terminology, and settle the formality register in every translated string file. Content errors: - zh-rTW export help told users to look for a file named 時間軸.json; the literal Timeline.json filename had been translated. The same string also gave the wrong iPhone menu path. - fr export help had a stray character (OSur iPhone). - fr and pt-BR privacy strings used the verb for "download" where the claim is about upload. In pt-BR the same word appeared with both meanings in adjacent strings. - de, fr and pt-BR default video titles used the wrong gender for Timeline; de still carried the English possessive in the template. - de had several mistranslations: cancel rendered as Stornieren, plus a few broken machine-translated sentences. Register: German was split 68 formal against 29 informal, roughly along old UI versus newer journal and onboarding copy. It is now uniformly informal. Spanish had the same split in reverse and is now uniformly informal too. Terminology: every locale mixed the Latin word Timeline with a localized equivalent for the same Google Maps feature. Each locale now uses one term, chosen by majority. Timeline.json and Timeline Visualizer stay literal everywhere. Also collapsed single-locale splits for recap, trip and preset, and normalized ellipsis characters, CJK spacing and the Google Maps brand name.
mahlernim
force-pushed
the
chore/harmonize-translations
branch
from
September 3, 2026 23:36
451e549 to
403f04f
Compare
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.
Full review pass over all eight translated string files, fixing content errors and settling the terminology and formality choices that had drifted apart.
Content errors
export_help_messagetold users to look for a file named 「時間軸.json」. The literal filenameTimeline.jsonhad been translated, so the instructions pointed at a file that does not exist. Same string also gave the wrong iPhone menu path (位置和隱私權 instead of 個人內容).export_help_messagehad a stray character:OSur iPhone.privacy_summaryandmap_privacy_messagesaid the file is never téléchargé, which reads as "downloaded". The claim is about upload. Now envoyé.default_titleused the wrong gender for Timeline ("Mein Timeline", "Mon Timeline", "Meu Timeline"); dedefault_title_templatestill carried the English possessive{name}\'s Timeline.share= Aktie (stock certificate),cancel= Stornieren (cancel an order), plus "Laden Timeline", "Abschlussvideo" and a broken CARTO sentence.Formality register
German mixed 68 formal Sie strings against 29 informal du strings, the split falling roughly along old UI versus the newer journal and onboarding copy. Now uniformly du, matching Google's own German UI convention and the app's personal tone.
Spanish had the same split in reverse (13 usted against 67 tú, including
timeline_setup_summarywhich switched register mid-sentence). Now uniformly tú."Timeline" terminology
Every locale mixed the Latin word with a localized equivalent for the same Google Maps feature. Each locale now uses one term, picked by majority:
Timeline.jsonandTimeline Visualizerstay literal everywhere. pt-BR was the worst case and also flipped Timeline's grammatical gender between strings; feminine a Linha do tempo throughout resolves both problems at once.Other single-locale splits
Each collapsed to one term: de Rückblick vs Zusammenfassung, de Reise vs Ausflug, ja 要約 vs まとめ, pt Recapitulação vs Resumo vs Retrospectiva, es four renderings of "preset" (now preajuste, which also stops colliding with Ajustes = Settings), ko 프리셋 vs 사전 설정, zh-rTW 預設組合 vs 預設, zh-rCN/rTW 行程 vs 旅行 for "trip".
Typography
es and zh-rCN used
...where every other locale uses…. zh-rCN was missing spaces around Latin text and had stray spaces after full-width punctuation. Three leftover "Google Maps" in zh-rCN/rTW became Google 地图 / 地圖.Verification
python -m pytest tests/ -q— 89 passed%n$splaceholder set matches its English originalNot addressed
French uses bare carnet as shorthand for carnet de voyage in about 25 strings. It is consistent in kind and reads naturally, so it was treated as style rather than error.
app/src/journalLab/res/values/strings.xmlduplicates 13 strings byte-for-byte from main. Because the flavor overrides main, translations drift silently, and the de and es copies had already gone stale during this pass (resynced here by hand). Removing that duplication is worth a separate change.