Android i18n
Android ローカライゼーション:あらゆる言語でアプリをリリースする
Android は strings.xml ファイルとリソース修飾子を使った堅牢なリソースベースのローカライゼーションシステムを提供しています。各ロケールには独自の values ディレクトリがあり、システムはデバイスの言語に基づいて適切なリソースを自動的に選択します。Jetpack Compose と Android 13+ のアプリごとの言語設定により、多言語対応の Android アプリを構築することがこれまで以上に簡単になりました。
Android ローカライゼーション機能
型安全な R クラス参照を持つ strings.xml リソースファイル
数量文字列(zero、one、two、few、many、other)による組み込みの複数形ルール
stringResource() と pluralStringResource() を使った Jetpack Compose サポート
Android 13+ でアプリを再起動せずにアプリごとの言語設定を変更できます
ロケール、画面サイズ、レイアウト方向に対応したリソース修飾子
自動ビュー反転による右から左(RTL)レイアウトのミラーリング
ICU ライブラリによるロケール対応の日付・時刻・数値フォーマット
ローカライズされたリストコンテンツ用の文字列配列と型付き配列
ビジュアルな文字列管理のための Android Studio 翻訳エディター
実践的なAndroidのローカライズ
res/values/strings.xml で複数形に対応した翻訳可能な文字列を定義し、Kotlin と Jetpack Compose の API を使ってロケール対応コンテンツを UI にレンダリングします。
<!-- res/values/strings.xml -->
<resources>
<string name="welcome">Welcome to %1$s</string>
<plurals name="items">
<item quantity="one">%d item</item>
<item quantity="other">%d items</item>
</plurals>
</resources>
<!-- res/values-fr/strings.xml -->
<resources>
<string name="welcome">Bienvenue sur %1$s</string>
<plurals name="items">
<item quantity="one">%d article</item>
<item quantity="other">%d articles</item>
</plurals>
</resources>
// Kotlin - Jetpack Compose
@Composable
fun WelcomeScreen() {
Text(text = stringResource(R.string.welcome, "My App"))
Text(text = pluralStringResource(R.plurals.items, 5, 5))
}