🌐

[Flutter] アプリアイコン下のアプリ名のローカライゼーション

2023/05/28に公開

Android

  1. android/app/src/main/resvaluesフォルダの中に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>
  1. 各言語に対応するフォルダandroid/app/src/main/res内に作る。

    • 日本語ならvalues-ja
    • フランス語ならvalues-fr
    • 手順1のvalues/strings.xmlで記述した言語はここで別途作成する必要はない
      • 例えば、values/strings.xmlで英語のアプリ名を記述していれば、英語用のvalues-enは不要
    • 表示されるアプリ名は、例えば端末の言語設定が1. スペイン語 2.日本語のときは2番目である日本語にフォールバックされず、デフォルトの言語(valuesに書いた言語)にフォールバックされる模様
  2. 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>
  • 注意)アポストロフィーを使う場合は\でエスケープして\'とする。
    • そのままだとビルド失敗する
  1. android/app/src/main内のAndroidManifest.xmlapplicationタグの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】アプリ名の多言語化

  1. プロジェクトをXcodeで開く
  2. Info.Plist と同じ階層にInfoPlist.stringsを作成
  3. そのファイルに移動し右ペインからLocalizeをクリック
  4. PROJECT Runner > Info > Localizationsで言語を選択(FlutterではInfoPlist.stringsのみチェックでOK)
  5. InfoPlist.stringsに各言語バージョンが追加されているので、以下を追加
CFBundleDisplayName = "アプリ名";

Discussion