python3 Scripts/update-translations.py -l LANGUAGE_CODE -c path/to/file.csv| Task | Command |
|---|---|
| Update German | python3 Scripts/update-translations.py -l de -c German.csv |
| Update Spanish | python3 Scripts/update-translations.py -l es-419 -c Spanish.csv |
| Preview first | python3 Scripts/update-translations.py -l de -c German.csv --dry-run |
| See details | python3 Scripts/update-translations.py -l de -c German.csv -v |
de German
es-419 Spanish (Latin America)
fr-CA French (Canada)
pt-BR Portuguese (Brazil)
zh-Hans Chinese (Simplified)
zh-Hant Chinese (Traditional)
ko Korean
ja Japanese
it Italian
nl Dutch
ru Russian
th Thai
vi Vietnamese
id Indonesian
fil Filipino
English,Translation
"First string","Translated string"
"Text with %@ placeholder","Text mit %@ Platzhalter"Must have:
- Header row (English,Translation)
- Exact English match from xcstrings
- Preserved placeholders (%lld, %@, etc.)
- Get CSV from translator
--dry-runto preview- Run without
--dry-runto apply - Build app to test
- Commit changes
# 1. Preview
python3 Scripts/update-translations.py -l de -c German.csv --dry-run
# 2. Apply
python3 Scripts/update-translations.py -l de -c German.csv
# 3. Verify
git diff "Puppy Potty Trainer/Resources/Localizable.xcstrings"
# 4. Commit
git add "Puppy Potty Trainer/Resources/Localizable.xcstrings"
git commit -m "Update German translations"Time saved: 30 minutes → 30 seconds!