Repository navigation
Localisation
Roadstr is localised in 27 languages: all the official languages of the European Union plus Russian, Japanese and Chinese.
bg Bulgarian · cs Czech · da Danish · de German · el Greek · en English · es Spanish · et Estonian ·
fi Finnish · fr French · ga Irish · hr Croatian · hu Hungarian · it Italian · ja Japanese · lt Lithuanian ·
lv Latvian · mt Maltese · nl Dutch · pl Polish · pt Portuguese · ro Romanian · ru Russian · sk Slovak ·
sl Slovenian · sv Swedish · zh Chinese
Change the language in Settings → Language; the default follows the system.
- The core app is fully translated into all 27 languages.
- The voice-search texts are translated into all 27 languages.
- The newest texts of other features — the interoperability and MeshCore settings, Explore, Journey, the performance profile and the latest public-transport additions — exist in English and Italian only. In the other 25 languages those texts appear in English until they are translated.
-
No language has had a full native-speaker review. Irish (
ga) and Maltese (mt) are the least reliable and most want a native speaker's eye; Estonian, Latvian and Lithuanian carry an inflection risk. - Spoken navigation guidance exists in eight languages (Italian, English, Spanish, French, Japanese, Chinese, Portuguese, German); the others keep text instructions. Plain-language place search has full word lists for seven languages; see Search and Explore.
| Where | What |
|---|---|
lib/l10n/app_<locale>.arb |
The source for the core app. One file per language; feeds both the Dart classes and the Android string resources |
tools/kotlin_rewrite/native_recovery_translations.dart |
Start-up screens and the bunker login, which exist only in the Kotlin app |
tools/kotlin_rewrite/native_speech_translations.json |
The voice-search texts |
tools/kotlin_rewrite/native_feature_strings.json |
Explore and Journey settings texts (English and Italian) |
android/app/src/main/res/values-<locale>/ |
The generated Android resources |
A test fails if a language lacks a key of the English template or changes its placeholders.
- Fork the repository and edit the language's
lib/l10n/app_<locale>.arb(or the relevant tool file above). - Regenerate everything derived from it:
flutter gen-l10n for g in tools/kotlin_rewrite/generate_android_*_strings.dart; do dart run "$g"; done
- Run
flutter test— it checks keys, placeholders and that generated files are current. - Open a pull request.
- Keep placeholders (
%1$d,{count}) exactly as in the English text. - Use the register the language already uses in the app. By convention: formal in German (Sie), Dutch (u), French, Portuguese, Czech, Slovak, Slovenian, Croatian, Hungarian, Estonian, Bulgarian, Greek, Latvian, Lithuanian, Russian and Chinese (您); informal in Italian, Spanish, Danish, Swedish, Polish, Romanian, Irish and Maltese; polite form in Japanese.
- Where a sentence would need the user's gender (“I did not hear anything”), prefer an impersonal wording.
- Keep licence and attribution text in English.
- Say what is sent and to whom in privacy sentences — a reviewer will check them first.
The review notes, with the confidence for each language, are in docs/world-discovery/LOCALIZATION_REVIEW.md.
Roadstr is open source under the MIT licence · Source · Releases · Changelog · Issues
Using Roadstr
- Installation
- Getting started
- Navigation
- Maps and offline use
- Search and Explore
- Road reports
- Public transport
- Voice guidance
- Voice search
- Journey and achievements
- Settings reference
Nostr and money
Trust
Build and extend