Translate the App
The app and its in-app docs are translated on Crowdin — this page shows how to contribute. The app uses Crowdin to manage community translations for both the user interface and in-app documentation.
Ce qui est traduit
| Ressource | Emplacement de la source | Notes |
|---|---|---|
| Chaînes UI | core/resources/src/commonMain/composeResources/values/strings.xml | Boutons, étiquettes, messages et tout texte visible par l’utilisateur |
| Pages du Guide de l’utilisateur | docs/en/user/*.md | Documentation dans l’application affichée dans Aide et Documentation |
| Métadonnées Fastlane | fastlane/metadata/android/fr-FR/ | Google Play listing title, description, and changelogs |
ℹ️ Note: Developer Guide pages are English-only. Code-focused documentation targeting contributors is not translated.
Comment contribuer
- Visitez le projet Crowdin. Ouvrez le projet Meshtastic Android Crowdin et connectez-vous ou créez un compte gratuit.
- Choisissez votre langue. Sélectionnez une langue existante ou demandez-en une nouvelle en ouvrant un problème GitHub.
- Traductions Crowdin montre la source anglaise à gauche et votre traduction à droite. Traduisez chaque portion et sauvegardez.
- Vérifier le contexte. De nombreuses portions incluent des captures d’écran ou des commentaires de contexte — cochez celles-ci pour comprendre où le texte apparaît dans l’application. A scheduled job pulls approved translations from Crowdin and opens a pull request; they ship once a maintainer merges it and a new build goes out.
💡 Tip: Keep translations short. UI strings often appear in buttons, chips, or narrow columns. Si une traduction est considérablement plus longue que l’original anglais, pensez à abréger en conservant la signification claire.
Ajouter une nouvelle langue
Si votre langue n’est pas encore listée sur Crowdin :
- Ouvrir un ticket sur GitHub demandant la nouvelle langue.
- Un responsable ajoutera la langue à Crowdin et configurera
crowdin.yml. - Une fois ajouté, vous pouvez commencer à traduire immédiatement.
Comment sont organisées les traductions
L’application Android utilise des Ressources Multiplateforme pour tous les textes visibles par l’utilisateur:
core/resources/src/commonMain/composeResources/
├── values/ ← English (default)
│ └── strings.xml
├── values-de/ ← German
│ └── strings.xml
├── values-fr/ ← French
│ └── strings.xml
└── ...
La documentation dans l’application suit un modèle similaire dans docs/:
docs/
├── en/user/ ← English source (default)
│ ├── onboarding.md
│ └── ...
├── fr-rFR/user/ ← French (France)
│ ├── onboarding.md
│ └── ...
├── de-rDE/user/ ← German (Germany)
│ └── ...
└── ...
Doc locale folders use Android locale qualifiers, either {lang} or {lang}-r{REGION} (for example fr, fr-rFR, de-rDE, ja-rJP). The values-* folders for app strings use bare language codes instead (values-fr, values-de, values-ja), because crowdin.yml writes strings with %two_letters_code% and doc pages with %android_code%. The two sets do not line up one-to-one.
The app automatically selects the correct locale based on your phone’s Language & Region settings.
A page that came from Crowdin is labeled Community translated under its title in the app. If a page has no Crowdin translation for your language yet, the Google-flavor Android build machine-translates the English source on the fly and labels it Auto-translated instead; F-Droid and desktop builds show the English page. Your Crowdin translation replaces the machine one as soon as it lands.
Directives de Traduction
- Ne traduisez pas des termes techniques tels que “LoRa”, “MQTT”, “BLE”, “TAK”, “SNR”, ou “RSSI” — ce sont des termes universels.
- Garder les espaces réservés intact. Les chaînes comme
%1$sou%dsont remplies au moment de l’exécution. Ne les supprimez ni ne les réordonnez pas à moins que la grammaire de votre langue ne l’exige. - Respectez le ton L’application utilise un ton amical Évitez des formulations trop formelles
- Test if possible. Switch your phone’s language and open the app to see how translations look in context.
Des questions ?
If you have questions about a specific string’s context or need help getting started, open a discussion on the Meshtastic GitHub Discussions page.
Thank you for helping expand the reach of Meshtastic.
Related Topics
- Units & Locale — how the app picks number, date, and unit formats for your region
- Help & Documentation — the in-app docs browser these pages are published to
- Onboarding — where a new user first meets the translated strings