Translations β
MeshMonitor supports multiple languages through community-contributed translations. We use Weblate, a web-based translation platform, to make it easy for anyone to contribute translations without needing to know how to code.
Current Languages β
MeshMonitor is currently available in:
| Language | Code | Status |
|---|---|---|
| English | en | Complete (source) |
| German | de | Community contributed |
| Spanish | es | Community contributed |
| French | fr | Community contributed |
| Russian | ru | Community contributed |
How to Contribute Translations β
Getting Started with Weblate β
Visit the MeshMonitor Weblate project:
Create a free account (or sign in with GitHub, Google, etc.)
Choose a language to translate into
Start translating! - The web interface is intuitive and shows you the source English text alongside where you enter your translation
Translation Workflow β
The translation process is straightforward:
You translate on Weblate β Weblate creates a PR β We merge it β Your translation appears in the next release- Translate strings - Use the Weblate interface to translate individual text strings
- Automatic PR creation - Weblate automatically creates pull requests with your translations
- Review & merge - We review and merge translation PRs regularly
- Release - Your translations are included in the next MeshMonitor release
Adding a New Language β
Want to translate MeshMonitor into a language that isn't listed yet?
- Go to the MeshMonitor Weblate project
- Click "Start new translation"
- Select your language from the list
- Begin translating!
New languages are automatically added to MeshMonitor once they have enough translated strings to be useful.
Translation Guidelines β
To ensure high-quality translations:
Do's β
- Keep it natural - Translate meaning, not word-for-word
- Be consistent - Use the same terms throughout (e.g., always translate "node" the same way)
- Consider context - Some strings appear in buttons, tooltips, or error messages
- Test your translations - If possible, run MeshMonitor locally to see how your translations look
Don'ts β
- Don't translate technical terms that are commonly used in English (e.g., "Meshtastic", "MQTT", "API")
- Don't translate placeholders like
or- these are replaced with actual values - Don't change formatting such as
\nfor newlines
String Placeholders β
Many strings contain placeholders that get replaced with dynamic values:
"nodes.showing_count": "Showing {{count}} of {{total}} nodes"Keep these placeholders exactly as they are, but feel free to reorder them to match natural sentence structure in your language.
Changing Your Language in MeshMonitor β
Once translations are available, users can change their language:
- Go to Settings (gear icon)
- Find the Language dropdown
- Select your preferred language
- The interface updates immediately
MeshMonitor also automatically detects your browser's language preference on first visit.
For Developers β
Adding New Translatable Strings β
When adding new UI text to MeshMonitor:
- Add the English string to
public/locales/en.json - Use the
useTranslationhook in your React component:
import { useTranslation } from 'react-i18next';
function MyComponent() {
const { t } = useTranslation();
return <button>{t('common.save')}</button>;
}- Weblate will automatically detect the new string and make it available for translation
String Key Naming Convention β
Use dot-notation to organize strings by feature area:
nav.*- Navigation itemscommon.*- Shared UI elements (buttons, labels)nodes.*- Node-related stringsmessages.*- Message-related stringssettings.*- Settings page stringserrors.*- Error messages
Questions or Issues? β
- Translation questions: Ask in the Weblate comments or open a GitHub issue
- Found a translation bug?: Report it on GitHub or fix it directly on Weblate
Thank you to all our translators for helping make MeshMonitor accessible to users worldwide!