スマホのホーム画面に表示されるアプリ名を多言語化する方法を解説します。
アプリ名のローカライズは、Flutterの中ではできないので、AndroidもiOSもネイティブコードで設定でします。
Android Studioでは「Translations Editor」を使うと、デフォルト言語の設定ファイルが自動的に作成されます。表示する文字も一覧表示されるので少し便利かもしれません。
- Flutter : 3.27.1
- Android Studio : Meerkat Feature Drop | 2024.3.2 Patch 1
- Xcode : 16.4
Android
まずは言語ごとのフォルダ作成と、設定ファイルを作ります。
[android]>[app]>[src]>[main]>[res]の中に以下のフォルダを作る
- values-en
- values-ja
作成する場所は、[android]>[app]>[src]>[main]>[res]の中です。
このフォルダにはすでに[values]があるはずですが、これはデフォルトの設定なのでそのまま残します。
ここでは、英語と日本語を作ります。
フォルダ名は、[values-en]と[values-ja]。

「en」「ja」は、それぞれ「ISO 639-1 Code」で決められている言語コードです。
フォルダの中に設定ファイルを作ります。
フォルダを右クリックして、[New]>「Values Resource File」を選んで、ファイル名を[strings]として、OKします。
「values-en」と「values-ja」の両方のフォルダに作成します。


すると、自動的にxmlのファイル形式のコードのひな形が入っています。

<resources></resources>
の間にXMLタグを入力します。(下記画面の3行目)
タグ入力は、<
と打つと、候補が出てくるのでstring
を選択すれば、さらにタグのひな形が出てきます。
name="app_name"
のapp_name
の部分は、自分で自由に決められます。
あとでこのname属性を指定して、言語を切り替えます。
<string name="app_name"></string>

英語と同様に、日本語のフォルダ[values-ja]にも[strings]ファイルを作成します。
中身は、英語のファイルからまるごとコピペすればOK。
英語、または日本語の[strings.xml]ファイルの右上にある[Open editor]をクリックすると、「Translations Editor」が開きます。

画面左の[Key]には、いま入力した[app_name]が表示されています。

この画面から[Default Value][English(en)][Japanese(ja)]の値を入れて行きます。
まずは[Default Value]に「English」。

画面下部の入力フィールドからも入力できる。

[English(en)]にも、「English」、[Japanese(ja)]は「日本語」としてみました。

これで設定ができたので、XMLファイルに戻って確認してみます。


デフォルトの[value]フォルダには[strings.xml]ファイルを手作業では作成しませんでしたが、自動で[strings.xml]が作成されています。


最後の設定です。
いま作成した[values]フォルダの下に見えている[AndroidManifest.xml]を開きます。

3行目にある[android:label=”〜〜”]の行を、下記のように書き換えます。
android:label="@string/app_name"
app_name
の部分は、自分が入力した文字です。
ここでも、「@」を入力すると、下のように候補が出てきます。


Androidは、これで完成です。
iOS
ここからは、iOSの設定です。
Flutterのプロジェクトから[ios]>[Runner.xcworkspace]を右クリックして、[Open In]>[Open in Associated Application]を選択し、Xcodeを起動します。

トップレベルの[Runner]のを選んで、画面中央の列で[PROJECT]>[Runner]>[info]タブから、[Localizations]の[+]で「Japanese(ja)」を選びます。

表示されたダイアログで[Finish]で作成します。

すると、下記のように「Japanese」が作成されました。

次に、[Runner]>[Runner]を右クリックして、[New File from Template…]を選びます。

テンプレートの中の[ios]タブから[Resource]>[Strings File]を選択します。
画面右上の[Filter]から「Strings」と入力すると、すぐ見つかります。

次の画面で、ファイル名を[InfoPlist.strings]として、「Next」で進みます。

画面右のサイドメニューから、[Localization]の[Japanese]にチェックを入れます。

すると、下の画面のように英語と日本語の設定ファイルができます。

英語と日本語のテキストを、下記の書式でそれぞれのファイルに記述します。
CFBundleDisplayName = "〜〜";


これで、iOSでのアプリ名の多言語設定も完了です。
これで、AndroidとiOSの両方のUIの多言語化設定ができたので、エミュレーター/シミュレータで実行して言語を変更してみてください。
スマホの言語設定を切り替えたらアプリのタイトルも切り替わりますが、もし、アプリを実行したままで言語を変更しただけで切り替わらなければ、アプリを再度実行すれば大丈夫です。
コメント