第一步,添加intl and flutter_localizations,并启动generate标志:
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
intl: ^0.18.1 #多语言
https://pub.flutter-io.cn/packages/intl/install
这将在您的包的 pubspec.yaml 中添加这样一行
![](https://img.haomeiwen.com/i11585993/0ecc146b01a9ec81.png)
启动generate标志
generate: true # Add this line
![](https://img.haomeiwen.com/i11585993/412c4a7ab5cbeca5.png)
第二步,lib文件夹中新建文件夹l10n或者locale,并在其中创建app_en.arb 和app_zh.arb文件:
{
"@@locale": "en",
"homeTitle": "Heart"
}
arb-dir: lib/I10n
template-arb-file: app_en.arb
output-localization-file: app_localizations.dart
![](https://img.haomeiwen.com/i11585993/0ee72558995f1970.png)
![](https://img.haomeiwen.com/i11585993/8cfe91e6c4c58cab.png)
第三步,在flutte项目的根目录中添加l10n.yaml, 内容如下:
![](https://img.haomeiwen.com/i11585993/38856a1c8f3354dc.png)
添加完成之后,执行命令flutter gen-l10n,执行命令 flutter run,dart_tools会自动生成相关的文件
第四步,在主程序MaterialApp中,添加下面内容:
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
return const MaterialApp(
title: 'Localizations Sample App',
localizationsDelegates: [ // 本地化应用的代理
AppLocalizations.delegate, // 应用程序本地化代理
GlobalMaterialLocalizations.delegate, // 全局材质组件的本地化代理
GlobalWidgetsLocalizations.delegate, // 全局组件本地化代理
],
supportedLocales: [
Locale('en', 'US'), // English, no country code
Locale('zh', 'CN'), // Spanish, no country code
],
home: MyHomePage(),
);
使用:
Text(AppLocalizations.of(context)!.helloWorld);
网友评论