Android ローカリゼーションを効率化
strings.xml のネイティブ同期と Android アプリのワークフロー
<string name="welcome_title">Welcome</string>
<string name="login_button">Sign In</string>
<string name="settings_label">Settings</string>
<!-- Auto-synced to 12 locales -->
<!-- values-ja, values-de, values-fr... -->
Android ローカリゼーションの課題
マルチモジュールプロジェクトと XML リソースには、体系的なローカリゼーションワークフローが必要です
複数モジュールの strings.xml 管理
機能モジュールとライブラリモジュールには、それぞれ独自の res/values/ があります。文字列のずれや重複が発生します
言語ごとに異なる複数形ルール
複数形には言語ごとに異なる CLDR カテゴリが必要です。ロシア語やアラビア語の few と many は見落としやすい項目です
App Bundle による言語リソースの削除
Google Play が APK を言語別に分割するため、アプリ内の言語切り替えが機能しなくなります
ワークフロー統合なし
翻訳プロセスが Gradle ビルドと Android Studio ワークフローから切り離されています
Android ネイティブのローカリゼーション
Android Studio、Jetpack Compose、Gradle ワークフローにシームレスに統合できます。

ソース文字列
検出と抽出
翻訳
再同期
Android 専用機能
Jetpack Compose、マルチモジュールプロジェクト、Play Store メタデータを使用する最新の Android 開発向けに設計されています
strings.xml 対応
Android XML リソースファイルとの直接同期
Jetpack Compose
stringResource() と pluralStringResource() のネイティブ統合
マルチモジュール対応
アプリ、機能モジュール、ライブラリモジュール間で同期します
複数形と配列に対応
正しい CLDR ルールで複数形と string-array を処理します
Play Store メタデータ
コードと Fastlane Supply メタデータをまとめてローカライズします
Android 開発者向けシナリオ
ローカリゼーションが重要となる実際の Android 開発環境
Jetpack Compose アプリ
Compose の stringResource() 呼び出しをすべてのロケールで自動翻訳します
マルチモジュール Android アプリ
アプリモジュール、機能モジュール、共有ライブラリ間で翻訳を同期します
コードと Play Store をローカライズするチーム
アプリ内文字列と Play Store メタデータをまとめて管理します
手動管理と統合管理の比較
Android ネイティブ統合によるワークフローの変化
| Feature | 手動管理 | Android 統合を使用 |
|---|---|---|
| 対応ファイル形式 | XML の手動管理 | strings.xml、複数形、文字列配列 |
| マルチモジュール同期 | モジュールごとに手動対応 | すべてのモジュールで自動同期 |
| Compose 対応 | 限定的なツール | stringResource のネイティブ統合 |
| Play Store メタデータ | 個別のプロセス | コードとメタデータを一括管理 |
| チームのワークフロー | 分散したツール | 統合された Android ワークフロー |
よくある質問
Android ローカリゼーションについて知っておくべき情報
<resources>
<string name="welcome">Welcome</string>
<string name="login">Sign In</string>
</resources>
Tools → i18n Agent → Pull Translations
✓ Translated to de, ja, es, fr, ko
Android Studio から直接翻訳
IDE にワンクリックのローカリゼーションを追加する Android Studio プラグインです。strings.xml を右クリックして対象言語を選択すると、翻訳済みファイルが適切な values-{locale} フォルダーにすぐ表示されます。