アプリ名の多言語化でTranslations Editorを使ってみた

当ページのリンクには広告が含まれています。

スマホのホーム画面に表示されるアプリ名を多言語化する方法を解説します。

アプリ名のローカライズは、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

STEP
言語ごとにフォルダを作成(英語・日本語)

まずは言語ごとのフォルダ作成と、設定ファイルを作ります。

多言語化する言語ごとにフォルダを作成

[android]>[app]>[src]>[main]>[res]の中に以下のフォルダを作る

  • values-en
  • values-ja

作成する場所は、[android]>[app]>[src]>[main]>[res]の中です。

このフォルダにはすでに[values]があるはずですが、これはデフォルトの設定なのでそのまま残します。

ここでは、英語と日本語を作ります。
フォルダ名は、[values-en]と[values-ja]。

[values-en]と[values-ja]フォルダを新規作成

「en」「ja」は、それぞれ「ISO 639-1 Code」で決められている言語コードです。

STEP
設定ファイルを作成

フォルダの中に設定ファイルを作ります。

フォルダを右クリックして、[New]>「Values Resource File」を選んで、ファイル名を[strings]として、OKします。

「values-en」と「values-ja」の両方のフォルダに作成します。

Flutterプロジェクト内のフォルダ「app/src/main/res」に英語化は「value-en」、日本語化「value-ja」のフォルダを作成したAndroid Studioの画面
Flutterプロジェクト内の「app/src/main/res/value-en」に「strings」というファイル名の設定ファイルを作成している画面

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

<resources></resources>の間にXMLタグを入力します。(下記画面の3行目)

タグ入力は、<と打つと、候補が出てくるのでstringを選択すれば、さらにタグのひな形が出てきます。

name="app_name"app_nameの部分は、自分で自由に決められます。
あとでこのname属性を指定して、言語を切り替えます。

<string name="app_name"></string>
赤いニョロニョロのエラーが出るけどそのままでOK

英語と同様に、日本語のフォルダ[values-ja]にも[strings]ファイルを作成します。
中身は、英語のファイルからまるごとコピペすればOK。

STEP
各言語のテキストを設定

英語、または日本語の[strings.xml]ファイルの右上にある[Open editor]をクリックすると、「Translations Editor」が開きます。

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

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

まずは[Default Value]に「English」。

画面上部の表では一覧形式で表示。
画面下部の入力フィールドからも入力できる。

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

STEP
確認してみる

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

英語表記のテキストが入っている
日本語表記のテキストが入っている

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

[values]フォルダに[strings.xml]ができている
[values]フォルダの[strings.xml]も自動生成
STEP
Key[app_name]を指定する

最後の設定です。

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

3行目にある[android:label=”〜〜”]の行を、下記のように書き換えます。

    android:label="@string/app_name"

app_nameの部分は、自分が入力した文字です。

ここでも、「@」を入力すると、下のように候補が出てきます。

@を入力して、候補から選ぶ

Androidは、これで完成です。

iOS

ここからは、iOSの設定です。

STEP
Xcodeの起動

Flutterのプロジェクトから[ios]>[Runner.xcworkspace]を右クリックして、[Open In]>[Open in Associated Application]を選択し、Xcodeを起動します。

STEP
言語の追加

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

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

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

STEP
InfoPlist.stringsの作成

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

右クリックメニューから[New File from Template…]

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

画面右上の「Filter」に「strings」と入力するとすぐ見つかる

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

STEP
言語を有効化する

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

右のサイドメニューは、画面上のドキュメントみたいなマークをクリックして表示

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

STEP
表示するテキストの入力

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

CFBundleDisplayName = "〜〜";

これで、iOSでのアプリ名の多言語設定も完了です。

これで、AndroidとiOSの両方のUIの多言語化設定ができたので、エミュレーター/シミュレータで実行して言語を変更してみてください。

スマホの言語設定を切り替えたらアプリのタイトルも切り替わりますが、もし、アプリを実行したままで言語を変更しただけで切り替わらなければ、アプリを再度実行すれば大丈夫です。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次