CONTRIBUTING_TRANSLATIONS.md
Thank you for helping translate Handy! This guide explains how to add or improve translations.
Translation files are located in:
src/i18n/locales/
├── en/
│ └── translation.json # English (source)
├── vi/
│ └── translation.json # Vietnamese
├── fr/
│ └── translation.json # French
└── [your-language]/
└── translation.json # Your contribution!
Create a new folder using the ISO 639-1 language code:
mkdir src/i18n/locales/[language-code]
Examples:
de for Germanes for Spanishja for Japanesezh for Chineseko for Koreanpt for Portuguesecp src/i18n/locales/en/translation.json src/i18n/locales/[language-code]/translation.json
Open the file and translate only the values (right side), not the keys (left side):
{
"sidebar": {
"general": "General", // ← Translate this value
"advanced": "Advanced", // ← Translate this value
...
}
}
Important:
{{variables}} in the text (e.g., {{error}}, {{model}})Edit src/i18n/languages.ts and add your language metadata:
export const LANGUAGE_METADATA: Record<
string,
{ name: string; nativeName: string }
> = {
en: { name: "English", nativeName: "English" },
es: { name: "Spanish", nativeName: "Español" },
fr: { name: "French", nativeName: "Français" },
vi: { name: "Vietnamese", nativeName: "Tiếng Việt" },
de: { name: "German", nativeName: "Deutsch" }, // ← Add your language
};
bun run tauri devFound a typo or better translation?
translation.json file{{variables}}Some strings contain variables like {{error}} or {{model}}. Keep these exactly as-is:
// English
"downloadModel": "Failed to download model: {{error}}"
// French (correct)
"downloadModel": "Échec du téléchargement du modèle : {{error}}"
// French (incorrect - don't translate the variable!)
"downloadModel": "Échec du téléchargement du modèle : {{erreur}}"
Some languages have complex plural rules. For now, use a general form that works for all cases. We may add proper plural support in the future.
| Language | Code | Status |
|---|---|---|
| English | en | Complete (source) |
| Chinese | zh | Complete |
| French | fr | Complete |
| German | de | Complete |
| Japanese | ja | Complete |
| Spanish | es | Complete |
| Vietnamese | vi | Complete |
We'd love help with:
ko)pt)Thank you for making Handy accessible to more people around the world!