hyperlocalise crowdin download translations --merge-approved to update
only keys present in an approved Crowdin export. Local keys absent from that
export remain in the JSON file. This is a provider file workflow in the
all-in-one localization CLI.
Before you start
Install Hyperlocalise, setCROWDIN_PERSONAL_TOKEN,
and use a Crowdin project with approved French translations. Keep a Git checkpoint
of your local files so you can inspect the merge.
Use JSON object files. This merge mode does not support YAML, ARB, or other formats.
Create crowdin.yml with your actual project ID:
locales/en.json contains:
locales/fr.json contains:
Merge the approved export
Approvewelcome as Bienvenue in Crowdin, leaving new_feature unapproved.
Validate the mapping, then download:
welcome, the local result is:
What does merge-approved preserve?
The command requests an approved-only sparse export and overwrites only keys present in that payload. It also skips downloaded values that exactly match the source JSON, treating them as source-language fallbacks. Consequently, an approved translation intentionally identical to the source is also skipped by this rule. The merge updates translation values; it does not import the provider’s review history. It does not delete local keys merely because they are absent from the export. Review obsolete local keys separately.If a value did not change
Check the target language, Crowdin approval state, and file mapping. Then compare the exported value with the source: identical values are not merged. For a full approved export without merging into existing JSON, use--export-only-approved
without --merge-approved, and review the resulting file carefully.
Continue with Crowdin CLI commands,
JSON format behavior, or
Crowdin in GitHub Actions.
