Flutterの公式国際化案
2219 ワード
1.プラグインのインストール
File-->Settings...-->Plugins-->flutter Intelを検索し、プラグインをインストールし、Android Studioを再起動します
2.構成と初期化 pubspecを構成する.yamlファイルの新規ローカライズ依存:
その後package getは依存を取得しますプロジェクト初期化メニューバーのToolの下でFlutter Intelを見つけてInitalize for the projectを選択し、構成が終わった後、自動的にpubspec.yamlに次のフィールドを追加します:
libディレクトリの下にgeneratedとl 10 nの2つのパッケージが追加されます
コード初期化:
文字列の抽出サポートが必要な言語ファイルをlib/I 10 nフォルダで右クリック-->New-->Arb Fileを新規作成し、対応するlocale codeを「zh」など入力します.あるいはTools-->Flutter Intel-->Add Localeでは、効果は同じです. 文字列選択文字列を抽出するか、文字列の後ろにショートカットキー「Alt+Insert」-->Extract to ARB fileを押して、文字列を抽出するArbファイルをチェックします.実際には、各arbファイルの下に対応する文字列フィールドを追加し、対応するarbファイルに対応する言語の文字列に変更する必要があります.
使用
国際化が必要な場所で
いくつかの方法:
参照先:https://plugins.jetbrains.com/plugin/13666-flutter-intl
File-->Settings...-->Plugins-->flutter Intelを検索し、プラグインをインストールし、Android Studioを再起動します
2.構成と初期化
dependencies:
// Other dependencies...
flutter_localizations:
sdk: flutter
その後package getは依存を取得します
flutter_intl:
enabled: true
libディレクトリの下にgeneratedとl 10 nの2つのパッケージが追加されます
コード初期化:
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'generated/l10n.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
localizationsDelegates: const [
S.delegate,
GlobalMaterialLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
GlobalWidgetsLocalizations.delegate
],
//supportedLocales: S.delegate.supportedLocales,
//
supportedLocales: ([const Locale('zh', ''), ])..addAll(S.delegate.supportedLocales),
// , MaterialApp
// , Title , onGenerateTitle
//title: S.of(context).app_name,
onGenerateTitle: (context) => S.of(context).app_name,
//home: MyHomePage(title: S.of(context).main_message),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
文字列の抽出
使用
国際化が必要な場所で
S.of(context).
を呼び出せばよいいくつかの方法:
#
S.load(Locale('de', 'DE'));
#
Intl.getCurrentLocale()
参照先:https://plugins.jetbrains.com/plugin/13666-flutter-intl