TOP(About this memo)) > 一覧(Flutter) > ローカライズ
synthetic-package: false
が必要output-dir:
にて出力先も設定する。自動生成ファイルは「.dart_tool/flutter_gen/get_l10n」に生成される。
output-dir:
で指定したディレクトリへ出力自動生成されたファイルをアプリケーションコード側でimportすることで利用可能
import 'package:(output-dirで指定した場所)/app_localizations.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
// ...
return const MaterialApp(
title: 'Localizations Sample App',
localizationsDelegates: [
AppLocalizations.delegate, // これが自動生成されたクラスとなる。
GlobalMaterialLocalizations.delegate, // 以下の3つはあらかじめflutter_localizationパッケージに定義されたdelegateクラス
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: [ // サポート対象のロケール
Locale('en'), // English
Locale('ja'), // Japanese
],
home: MyHomePage(),
);
// ...
import 'package:(output-dirで指定した場所)/app_localizations.dart';
// ...
appBar: AppBar(title: Text(AppLocalizations.of(context)!.helloWorld)),
// ...
Synthetic package output (package:flutter_gen) is deprecated:
https://flutter.dev/to/flutter-gen-deprecation. In a future release,
synthetic-package will default to `false` and will later be removed entirely.
synthetic-package: false
arb-dir: lib/i18n
output-dir: lib/i18n/generated/
template-arb-file: app_ja.arb
output-localization-file: app_localizations.dart
flutter clean && flutter pub get
を実行する