🌐
[Flutter] アプリアイコン下のアプリ名のローカライゼーション
Android
-
android/app/src/main/res
のvalues
フォルダの中にstrings.xml
を作る。
values/strings.xml
はデフォルトで参照されるところなので、デフォルト言語のアプリ名を記述する。
app/src/main/res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">アプリ名(デフォルトの言語)</string>
</resources>
-
各言語に対応するフォルダを
android/app/src/main/res
内に作る。- 日本語なら
values-ja
- フランス語なら
values-fr
- 手順1の
values/strings.xml
で記述した言語はここで別途作成する必要はない- 例えば、
values/strings.xml
で英語のアプリ名を記述していれば、英語用のvalues-en
は不要
- 例えば、
- 表示されるアプリ名は、例えば端末の言語設定が1. スペイン語 2.日本語のときは2番目である日本語にフォールバックされず、デフォルトの言語(
values
に書いた言語)にフォールバックされる模様
- 日本語なら
-
values-ja
などのフォルダの中に、strings.xml
を作成し、アプリ名を定義する。
app/src/main/res/values-ja/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">アプリ名(日本語)</string>
</resources>
- 注意)アポストロフィーを使う場合は
\
でエスケープして\'
とする。- そのままだとビルド失敗する
-
android/app/src/main
内のAndroidManifest.xml
のapplication
タグのandroid:label
を置き換える。
app/src/main/AndroidManifest.xml
android:label="@string/app_name"
※Android Studioでは@string/app_name
が赤く表示されてCannot resolve symbol '@string/app_name'
と警告が出ることがあるが問題なく機能する
iOS
こちらにわかりやすくまとまっています→【Flutter】アプリ名の多言語化
- プロジェクトをXcodeで開く
-
Info.Plist
と同じ階層にInfoPlist.strings
を作成 - そのファイルに移動し右ペインからLocalizeをクリック
- PROJECT Runner > Info > Localizationsで言語を選択(Flutterでは
InfoPlist.strings
のみチェックでOK) -
InfoPlist.strings
に各言語バージョンが追加されているので、以下を追加
CFBundleDisplayName = "アプリ名";
Discussion