アプリを翻訳する
The app and its in-app docs are translated on Crowdin — this page shows how to contribute. アプリは、ユーザーインターフェースとアプリ内ドキュメントの両方のコミュニティ翻訳を管理するために Crowdin を使用しています。
翻訳される対象
| リソース | ソースの場所 | 備考 |
|---|---|---|
| UI 文字列 | core/resources/src/commonMain/composeResources/values/strings.xml | ボタン、ラベル、メッセージ、およびユーザーに表示されるすべてのテキスト |
| ユーザーガイドのページ | docs/en/user/*.md | 「ヘルプとドキュメント」に表示されるアプリ内ドキュメント |
| Fastlane メタデータ | fastlane/metadata/android/en-US/ | Google Play listing title, description, and changelogs |
ℹ️ Note: Developer Guide pages are English-only. コントリビューター向けの、コード中心のドキュメントは翻訳されません。
貢献する方法
- Crowdin プロジェクトにアクセスします。 Meshtastic Android の Crowdin プロジェクト を開き、サインインするか、無料アカウントを作成します。
- 言語を選びます。 既存の言語を選択するか、GitHub の issue を作成して新しい言語をリクエストします。
- 文字列を翻訳します。 Crowdin では、左側に英語の原文、右側に自分の翻訳が表示されます。各文字列を翻訳して保存します。
- コンテキストを確認します。 多くの文字列には、スクリーンショットやコンテキストのコメントが含まれています。これらを確認して、テキストがアプリのどこに表示されるかを把握してください。 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.
💡 ヒント: 翻訳は短くしてください。 UI 文字列は、ボタン、チップ、狭い列に表示されることがよくあります。翻訳が英語の原文よりも大幅に長くなる場合は、意味が明確なままになる範囲で短縮することを検討してください。
新しい言語を追加する
自分の言語がまだ Crowdin に掲載されていない場合:
- GitHub で issue を作成し、新しいロケールをリクエストします。
- メンテナーが Crowdin にその言語を追加し、
crowdin.ymlを設定します。 - 追加されたら、すぐに翻訳を始められます。
翻訳の構成
Android アプリは、ユーザーに表示されるすべての文字列に Compose Multiplatform リソースを使用しています:
core/resources/src/commonMain/composeResources/
├── values/ ← 英語(デフォルト)
│ └── strings.xml
├── values-de/ ← ドイツ語
│ └── strings.xml
├── values-fr/ ← フランス語
│ └── strings.xml
└── ...
アプリ内ドキュメントも、docs/ の下で同様のパターンに従います:
docs/
├── en/user/ ← 英語ソース(デフォルト)
│ ├── onboarding.md
│ └── ...
├── fr-rFR/user/ ← フランス語(フランス)
│ ├── onboarding.md
│ └── ...
├── de-rDE/user/ ← ドイツ語(ドイツ)
│ └── ...
└── ...
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.
翻訳ガイドライン
- 「LoRa」「MQTT」「BLE」「TAK」「SNR」「RSSI」などの技術用語は翻訳しないでください。これらは共通です。
- プレースホルダーはそのまま保ちます。
%1$sや%dのような文字列は、実行時に値が埋め込まれます。自分の言語の文法上必要な場合を除き、削除したり並び替えたりしないでください。 - トーンを合わせます。 アプリは、親しみやすく率直な語り口を使っています。過度に堅い言葉は避けてください。
- Test if possible. Switch your phone’s language and open the app to see how translations look in context.
質問がありますか?
特定の文字列のコンテキストについて質問がある場合や、始め方について助けが必要な場合は、Meshtastic GitHub Discussions のページでディスカッションを作成してください。
Thank you for helping expand the reach of Meshtastic.
関連トピック
- 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