はじめての多言語化に挑戦してみました。下記「Google翻訳xFlutter言語対応表」はあとで使います。
多言語化、やはり大変でした
全ては公式サイトを見てくださいね
私の書いていることは間違っている可能性があるので・・・!!
多言語設定の手順
tools→Flutter Intl→initialize the Project
Android Studio内部でコードが実行されます。
Flutterプロジェクトには[generated]と[l10n]フォルダが作成され、それぞれ必要なファイルが自動作成されています。

赤線のエラーが出ても気にせずにそのまま「Get dependencies」をクリック
自動作成された[generated]フォルダの中身は、見てもいいけど
自分で書き込んだり修正していはいけません!!。
「flutter_localizations」というパッケージをインストールします。
[pubspec.yaml]のdependencies:に、flutter_localizations:の2行を次のように追加します。
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
Pub getをクリックすると、[generated]フォルダの赤線のエラーが消えます。
import 'package:flutter_localizations/flutter_localizations.dart';
return const MaterialApp(
title: 'Localizations Sample App',
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: S.delegate.supportedLocales,
このコードの最後の行のSは
lib/generated/l10n.dartで定義されているclassなので、import ‘generated/l10n.dart’;をインポートします。

このようなものを作っておきます。
ARBファイルとは(Application Resource Bundle Specification)
intl_en.arb(英語)・・アンドロイドスタジオのもともと入っているのを利用
{
"@@locale": "en",
"home_tagline": "For classical-guitar beginners",
"home_title": "Guitar Note Cards",
"home_start": "Start",
"home_footer": "For guitar beginners"
}
intl_ja.arb(日本語)・・・intl_en.arbをコピペで作成
{
"@@locale": "ja",
"home_tagline": "クラシックギター初心者のための",
"home_title": "ギター音符カード",
"home_start": "スタート",
"home_footer": "ギター初心者のために"
}

該当箇所を変更します。
Text(
S.of(context).home_footer,
style: const TextStyle(
fontFamily: "Mont",
fontSize: 18,
),
),
ハマりポイント!
S.of(context) は const では使えません
だから該当箇所の前でconstがある時はそれを削除
const Text( // ← const を外すこと!!
S.of(context).home_subtitle,
style: TextStyle(fontSize: 24, fontFamily: ‘Mont’),
),
ターミナルで実行:
dart run intl_utils:generate
これで S.of(context).home_footer が使えるようになります。
このコードをいれても反映されないときは
アンドロイドスタジオのfileメニューからall saveすること
• 日本語 → 「ギター初心者のために」
• 英語 → 「For guitar beginners」
に切り替わるのをチェック!
その他いろいろ困難ありましたが、記録しておく余裕がなかった(^^;;
すったもんだのあげく、やっと実機で確認できました。
英語版




スペイン語版



ようやくGoogle Play Consoleにアップできました。
Google Play Consoleでのリリースノートの書き方も多言語対応にしてみました。
ハイフン(-)を頭に使って、このように書きました
<en-US>
- Added support for English and Spanish
- Made minor display improvements
</en-US>
<es-ES>
- Se añadió soporte para inglés y español
- Se hicieron mejoras menores en la visualización
</es-ES>
<ja-JP>
- 英語、スペイン語に対応しました
- 一部表示の改善を行いました
</ja-JP>