On devices running iOS 26 or later, the in-app documentation is automatically translated into your device language when you open Help & Documentation.
Here's how it works: The very first person to use a particular language + app version combination translates all pages on-device and automatically contributes their translations back to the community. Every user after them gets those translations instantly — no waiting for on-device translation.
No sign-up, no manual work — it just happens in the background while you use the app. You can disable this by toggling off Participate in Distributed Translations in App Settings.
Contributing translations helps make Meshtastic accessible to a wider audience. Native speakers can review machine-translated strings for their language directly in Xcode — look for strings marked Needs Review and improve anything that sounds unnatural. If you have a Mac with Apple Silicon, you can also run a script that uses on-device Apple Intelligence to generate any missing translations for your language and automatically open a pull request.
All on-device translations are uploaded to the meshtastic/translations repository. They're a great starting point, but machine translations aren't perfect! If you're a native speaker and spot something that could be improved:
.md file directly on GitHubYour improvements will be served to every user of that language going forward — no coding required.
Before you start, make sure you have:
brew install gh and gh auth logingit clone https://github.com/JoshuaSullivan/local-localizer.git ~/local-localizer
cd ~/local-localizer && swift build -c release
mkdir -p ~/bin && cp .build/release/local-localizer ~/bin/local-localizer
Make sure ~/bin is on your PATH (add export PATH="$HOME/bin:$PATH" to your shell profile if needed).
Clone the repository, then run the translation script with your locale code:
git clone https://github.com/meshtastic/Meshtastic-Apple.git
cd Meshtastic-Apple
scripts/translate-locale.sh <locale>
For example:
scripts/translate-locale.sh fr # French
scripts/translate-locale.sh de formal # German, formal register
scripts/translate-locale.sh ja polite # Japanese, polite register
scripts/translate-locale.sh zh-Hant-TW # Traditional Chinese (Taiwan)
The script will:
The translation step runs entirely on your device and takes roughly 10–20 minutes for a complete locale.
| Tone | When to use |
|---|---|
professional |
Default — clear and neutral, suitable for most languages |
formal |
Recommended for German (de), French (fr), Italian (it), Spanish (es) — selects the polite second-person form (Sie / vous / Lei / usted) |
polite |
Recommended for Japanese (ja) and Korean (ko) — selects polite verb forms |
informal |
Casual register |
neutral |
Plain, no register preference |
Once the PR is open, any native speaker can review the translations directly in Xcode:
Meshtastic.xcworkspaceLocalizable.xcstrings in the project navigatorThank you for helping expand the reach of Meshtastic!