Flutter Excel本地化插件excel2l10n的使用
Flutter Excel本地化插件excel2l10n的使用
一个将Excel文件转换为本地化文件的工具。
安装
dart pub add dev:excel2l10n
使用
- 在项目根目录下创建一个名为
excel2l10n.yaml
的文件,内容如下:
platform:
# 目前仅支持飞书
name: feishu
# 在 https://open.feishu.cn/ 获取
app_id: cli_xxxxxxxxxxxxxxxx
# 在 https://open.feishu.cn/ 获取
app_secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# 这是你电子表格的令牌,通常在你的电子表格URL中,如 https://xxxxxxxxxx.feishu.cn/sheets/:spreadsheet_token
spreadsheet_token: xxxxxxxxxxxxxxxxxxxxxxxxxxx
# 目前支持getx和arb
target: arb
# 输出目录
output_dir: output
如果目标有额外设置,可以在target
部分添加它们,例如:
target:
name: arb
# 其他设置
针对目标arb
的详细信息:
<code>genL10nYaml: true</code>
:是否生成l10n.yaml
文件。
针对目标localizations
的详细信息:
- 不需要生成
.arb
文件,直接生成.dart
文件。 - 为
placeholders
生成TextSpan
。这意味着你可以使用Text.rich
来显示值。
- 表格应如下所示:
key | description | en | zh | … |
---|---|---|---|---|
hello | Greeting in home page | Hello! | 你好! | … |
前两列是必需的,其余列是你想要支持的语言。
不要在中间留空列。
- 在终端运行以下命令:
dart run excel2l10n
更多关于Flutter Excel本地化插件excel2l10n的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter Excel本地化插件excel2l10n的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
excel2l10n
是一个用于 Flutter 的本地化插件,它可以帮助开发者从 Excel 文件中生成本地化的字符串资源文件(例如 .arb
文件),以便在 Flutter 应用程序中使用。这个插件可以简化多语言支持的工作流程,特别是在处理大量翻译文本时。
安装 excel2l10n
插件
首先,你需要在你的 Flutter 项目中安装 excel2l10n
插件。你可以在 pubspec.yaml
文件中添加依赖:
dev_dependencies:
excel2l10n: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装插件。
准备 Excel 文件
你需要准备一个 Excel 文件,其中包含所有需要翻译的字符串。通常,Excel 文件的结构如下:
Key | en | es | fr | de |
---|---|---|---|---|
hello | Hello | Hola | Bonjour | Hallo |
goodbye | Goodbye | Adiós | Au revoir | Auf Wiedersehen |
- 第一列是键(Key),用于在代码中引用字符串。
- 后续每一列代表一种语言及其对应的翻译。
使用 excel2l10n
生成 .arb
文件
你可以通过运行以下命令从 Excel 文件生成本地化资源文件:
flutter pub run excel2l10n --input path/to/your/excel_file.xlsx --output path/to/output/directory
--input
: 指定你的 Excel 文件路径。--output
: 指定生成的.arb
文件的输出目录。
运行命令后,插件会根据 Excel 文件的内容生成多个 .arb
文件,每个语言一个文件。例如:
app_en.arb
app_es.arb
app_fr.arb
app_de.arb
在 Flutter 项目中使用生成的 .arb
文件
在 Flutter 项目中,你可以使用 flutter_localizations
包来加载和使用这些 .arb
文件。
-
在
pubspec.yaml
中添加flutter_localizations
依赖:dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter
-
在
MaterialApp
中配置本地化支持:import 'package:flutter/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', localizationsDelegates: [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: [ const Locale('en', ''), const Locale('es', ''), const Locale('fr', ''), const Locale('de', ''), ], home: MyHomePage(), ); } }
-
使用生成的字符串资源:
import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; class MyHomePage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(AppLocalizations.of(context)!.hello), ), body: Center( child: Text(AppLocalizations.of(context)!.goodbye), ), ); } }