Skip to main content
アプリの国際化
参考
Android Dev Summitʼ22
Building for a multilingual world
https://www.youtube.com/watch?v=Tq7TSUzAGm8
国際化対応をするときに考えること
▌Resourcesの国際化対応
▌Resource Configurationを定義する
▌⽂字列の連結を避ける
▌MessageFormatを使う
▌アプリごとの⾔語設定を有効にする
Resourcesの国際化対応
▌国際化で考える要素
l Language: ⾔語
l Script: ⽂字
l Region: 地域
▌language-rRegion
l res/values-zh-rTW/strings.xml
▌b+language+script+Region (BCP 47 ⾔語タグ)
l Android 7.0 ( API 24 ) 以降
l res/values-b+zh+Hans+CN
▌リソースのフォールバック
l zh-rTW → zh-Hant
l zh-rTW → zh
rTWは繁体字 zh は簡体字が含まれるため、Scriptを跨
いだフォールバックはしない
Resource Configurationを定義する(1/2)
▌Build → Analyze APK
88 Configurations
Resource Configurationを定義する(2/2)
▌build.gradle.kts
l resourceConfigurations.addAll(listOf(“en”,”b+zh+Hans”,”b+zh+Hant”, “ja”))
▌Build → Analyze APK
4 Configurations
文字列の連結を避ける
▌⽬的語 + “ “ + 名詞
l ⾔語によっては語順が正しくない場合、空⽩が必要ない場合がある
▌短い⽂字列の再利⽤
l ⽂脈によって翻訳が変わる
l OFF → Desligada / Desligado (ポルトガル語の男性名詞、⼥性名詞)
→ 独⽴した⽂字列リソースで対応する
MessageFormat
▌android.icu.text.MessageFormat
▌⾔語間で柔軟な⽂字列の書式設定を⾏う
l 基数
l 序数
l ⽇付
l 時間
l 性別
l ネストしたメッセージ
アプリごとの言語設定を有効にする
▌デバイス設定
l Android 13+
l 実装が簡単
▌アプリ内で設定
l 後⽅互換
l デバイス設定と同期
まとめ
▌Resourcesの国際化対応
▌Resource Configurationを定義する
▌⽂字列の連結を避ける
▌MessageFormatを使う
▌アプリごとの⾔語設定を有効にする
アプリの国際化