🌐
[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