Flutter Excel本地化插件excel2l10n的使用

Flutter Excel本地化插件excel2l10n的使用

pub package

一个将Excel文件转换为本地化文件的工具。

安装

dart pub add dev:excel2l10n

使用

  1. 在项目根目录下创建一个名为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来显示值。
  1. 表格应如下所示:
key description en zh
hello Greeting in home page Hello! 你好!

前两列是必需的,其余列是你想要支持的语言。

不要在中间留空列。

  1. 在终端运行以下命令:
dart run excel2l10n

更多关于Flutter Excel本地化插件excel2l10n的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于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 文件。

  1. pubspec.yaml 中添加 flutter_localizations 依赖:

    dependencies:
      flutter:
        sdk: flutter
      flutter_localizations:
        sdk: flutter
    
  2. 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(),
        );
      }
    }
    
  3. 使用生成的字符串资源:

    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),
          ),
        );
      }
    }
回到顶部