Skip to content

Contributing Translations

LANCache Manager supports internationalization (i18n) and welcomes community translations. The UI reads its strings from the locale files in Web/src/i18n/locales/.

How to contribute

  1. Fork the repository on GitHub.
  2. Open Web/src/i18n/locales/.
  3. Copy en.json to a file named for your language (e.g., de.json, fr.json, es.json, pt-BR.json).
  4. Translate the values. Leave the keys alone.
  5. Register the language - import your file and add it to resources and supportedLngs in Web/src/i18n/index.ts, then add its label to LANGUAGE_LABELS in Web/src/components/common/LanguageSelector.tsx. Without this step the app never reads your file.
  6. Submit a pull request.

File layout

Web/src/i18n/locales/
├── en.json          ← English (reference)
├── de.json          ← German (your contribution)
├── fr.json          ← French (your contribution)
└── ...

Guidelines

  • Don't change JSON keys - only translate the string values.
  • Preserve placeholders - keep {{variable}} intact (e.g., {{name}}).
  • Preserve formatting - leave HTML tags like <strong> alone.
  • Test locally - run the app and verify your translations render correctly.

Example

// simplified illustration - the real keys live in en.json
{
  "dashboard": {
    "title": "Dashboard",
    "recentDownloads": "Recent Downloads",
    "totalCache": "Total Cache: {{size}}"
  }
}

// your translation (de.json)
{
  "dashboard": {
    "title": "Übersicht",
    "recentDownloads": "Letzte Downloads",
    "totalCache": "Gesamter Cache: {{size}}"
  }
}