| name | add-localization |
| description | Add or update a language translation in the privacy policy generator. Trigger when user says: "add {language} translation", "add locale", "translate to {language}", "add localization for {language}", or when a user wants to contribute a new language.
|
Add Localization
Quick Steps
1. Create locale JSON from English
cp src/locales/en.json src/locales/{code}.json
Use the ISO 639-1 language code (e.g., es, fr, de, ja, pt, zh).
2. Translate all string values
Edit the new JSON file. Only translate values, never keys.
ā
Correct:
"wizard.step1.tagline": "Genera un documento personalizado..."
ā Wrong ā don't change keys:
"wizard.step1.tagline_es": "Genera un documento personalizado..."
3. Preserve {{ variable }} placeholders
Keep placeholders like {{ appName }}, {{ platformDesc }}, {{ deviceType }} unchanged in the translated text.
4. Register the language
In src/js/localeMixin.js, add to availableLocales:
availableLocales: [
{ code: 'en', label: 'English' },
{ code: '{code}', label: '{Native language name}' }
]
5. Upgrade render.sh
Update the locale loop in render.sh to include the new language:
for lang in en {code}; do
echo "window.__locale = $(cat src/locales/$lang.json);" > "$LOCALE_JS_FILE"
done
6. Build
npm run build
Open public/index.html ā the language switcher dropdown now includes the new language.
Validation Checklist
Important Notes
- Legal text needs professional review: Have a native-speaking lawyer review legal template translations.
- Don't translate third-party service names in
thirdpartyservices.yml ā only the name field in the locale JSON if you add locale-specific names.
- Meta tags (
meta.* keys) are updated dynamically via JS after page load.