Flutterでアプリ名を多言語化する方法
Flutterでアプリ名を変更したい。
Androidでいうと、アプリ情報から見れる部分。変更前は、アンダーバーで設定した名前としてしまっていたが、日本語では「Twitterかんたん検索」、英語では「Twitter Easy Search」という名前にしたい。
twitter_easy_search
でgrepすると、下記ファイルがHitした (package uriは除く)。
- pubspec.yaml
- android/app/src/main/AndroidManifest.xml
- ios/Runner/Info.plist
name: twitter_easy_search
description: A new Flutter project.
Flutter and the pubspec fileによると、nameは、プロジェクト名とのこと。package名となり、import URIにも使用されているため変更すると、全dartファイルのパスを変更する必要があるため、変更しない方が良い。Use lowercase_with_underscores for package names.
という警告が出ることから、このpackage名に使える文字種は、lowercaseとunderscoreのみ。
Androidアプリ名の多言語化
android/app/src/main/res
に以下のディレクトリを作成する。
- values-en
- values-ja
更に、values, values-en, values-ja以下にstrings.xmlを作成する。
それぞれのstrings.xml
には、以下を記述する。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">アプリ名</string>
</resources>
values-ja/strings.xml
には日本語のアプリ名を、values/strings.xml
とvalues-en/strings.xml
には英語のアプリ名を記述する。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Twitterかんたん検索</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Twitter Easy Search</string>
</resources>
最後に、android/app/src/main/res/AndroidManifest.xml
のlabelを次の通り変更する。
<application
android:label="@string/app_name"
念のため、flutter clean; flutter pub get
を実行して再度buildする。
結果
Androidの言語設定を変更して設定が反映されることを確かめる。
日本語
英語
簡体中文
iOSアプリ名の多言語化 参照
余談
Twitter検索を簡単にするためのツールです。良ければ使ってみてください。
Discussion