Flutter国际化管理插件translations_manager的使用

Flutter国际化管理插件translations_manager的使用

在Flutter项目中,国际化是一个非常重要的功能。translations_manager 是一个强大的Dart工具,专门用于管理和检查JSON格式的翻译文件(例如 en_US.json)。通过该工具,你可以轻松地对Dart代码和翻译文件进行审查,确保翻译内容高效且无冗余。


Introduction

translations_manager 是一个用于管理翻译文件的强大工具。它能够帮助你检查Dart文件中使用的翻译术语是否已在翻译文件中定义,同时还能清理未使用的翻译内容,保持翻译文件整洁有序。


安装

要使用 translations_manager,你需要将其添加到项目的 pubspec.yaml 文件中,并运行 pub get

dependencies:
  translations_manager: ^x.x.x

然后执行以下命令安装依赖:

flutter pub get

基本命令

要运行 translations_manager,需要使用Dart运行时并调用其命令:

dart run translations_manager

可用任务

1. 查找Dart文件中缺失的翻译

此任务会遍历项目中的所有 .dart 文件,检查哪些翻译术语已在代码中使用但未添加到翻译文件中。

命令

dart run translations_manager find-missing-terms [options]

选项

  • --output-path-o:设置保存缺少翻译文件的路径。
  • --export-e:决定是否保存缺少的翻译。如果未提供此选项,则不会保存缺少的翻译。

示例用法

列出所有缺少的翻译并将它们保存到特定文件:

dart run translations_manager find-missing-terms -o /path/to/save/missing_terms.json -e

2. 列出未使用的翻译

此任务会同时检查翻译文件和Dart文件,列出所有未使用的翻译。

命令

dart run translations_manager list-unused-terms [options]

选项

  • --output-path-o:设置保存未使用翻译的路径。
  • --export-e:决定是否保存未使用的翻译。
  • --abort-on-unused-a:如果发现未使用的翻译,则终止执行。

示例用法

列出所有未使用的翻译并将它们保存到特定文件:

dart run translations_manager list-unused-terms -o /path/to/save/unused_terms.json -e

如果检测到未使用的翻译,终止执行:

dart run translations_manager list-unused-terms -a

3. 清理未使用的翻译

此任务会从翻译文件中删除所有未使用的翻译,使文件更加精简。

命令

dart run translations_manager clean-translations [options]

选项

  • --output-path-o:设置保存清理后翻译文件的路径。
  • --export-e:决定是否将清理后的翻译保存到指定路径。

示例用法

清理所有未使用的翻译并将结果保存到特定文件:

dart run translations_manager clean-translations -o /path/to/save/cleaned_translations.json -e

直接清理翻译而不保存:

dart run translations_manager clean-translations

4. 比较翻译文件

此任务用于比较不同的翻译文件,找出任何缺失的术语,以确保不同语言之间的一致性。

命令

dart run translations_manager compare-translation

5. 配置翻译API

此任务允许你通过添加API密钥到 .env 文件中来配置Google Translate API。配置完成后,此API密钥将在添加翻译时被使用。

命令

dart run translations_manager configure-translate-api [YOUR_API_KEY]

6. 添加翻译

此任务允许你将特定术语翻译成支持的语言,并将新翻译直接添加到翻译文件中。

命令

dart run translations_manager add-translation [TERM]

执行此命令后,系统会显示翻译结果。如果需要将翻译保存到文件中,请在提示时输入“yes”。

示例用法

将术语“hello”翻译并保存:

dart run translations_manager add-translation hello

注意:在使用此功能之前,请确保已通过 configure-translate-api 命令配置了Google Translate API密钥。


7. 排序翻译

此任务会按字母顺序对翻译文件中的所有翻译进行排序。

命令

dart run translations_manager sort-translations

示例代码

以下是一个完整的示例,展示如何使用 translations_manager 进行翻译管理:

# 查找缺失的翻译并保存到文件
dart run translations_manager find-missing-terms -o /path/to/missing_terms.json -e

# 列出未使用的翻译并保存到文件
dart run translations_manager list-unused-terms -o /path/to/unused_terms.json -e

# 清理未使用的翻译并保存到文件
dart run translations_manager clean-translations -o /path/to/cleaned_translations.json -e

# 比较两个翻译文件
dart run translations_manager compare-translation

# 配置Google Translate API密钥
dart run translations_manager configure-translate-api YOUR_API_KEY

# 添加翻译
dart run translations_manager add-translation hello

更多关于Flutter国际化管理插件translations_manager的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter国际化管理插件translations_manager的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


translations_manager 是一个用于 Flutter 应用国际化的插件,它可以帮助开发者更轻松地管理和维护多语言翻译。通过这个插件,你可以生成和管理翻译文件,并在应用中使用这些翻译。

以下是使用 translations_manager 插件的基本步骤:

1. 安装插件

首先,在 pubspec.yaml 文件中添加 translations_manager 依赖:

dependencies:
  flutter:
    sdk: flutter
  translations_manager: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来安装依赖。

2. 配置翻译文件

translations_manager 插件需要一个 JSON 文件来存储所有的翻译。你可以在项目的根目录下创建一个 translations 文件夹,并在其中创建 translations.json 文件。

translations.json 文件的结构如下:

{
  "en": {
    "greeting": "Hello",
    "farewell": "Goodbye"
  },
  "es": {
    "greeting": "Hola",
    "farewell": "Adiós"
  }
}

在这个例子中,enes 分别代表英语和西班牙语,greetingfarewell 是翻译的键。

3. 生成翻译类

translations_manager 插件可以自动生成 Dart 类来管理这些翻译。你可以在终端中运行以下命令来生成翻译类:

flutter pub run translations_manager:generate

这个命令会根据 translations.json 文件生成一个 translations.dart 文件,其中包含了用于访问翻译的类。

4. 使用生成的翻译类

生成的 translations.dart 文件会包含一个 Translations 类,你可以在应用中使用这个类来获取翻译。

import 'package:flutter/material.dart';
import 'generated/translations.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      localizationsDelegates: Translations.localizationsDelegates,
      supportedLocales: Translations.supportedLocales,
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(Translations.of(context).greeting),
      ),
      body: Center(
        child: Text(Translations.of(context).farewell),
      ),
    );
  }
}

在这个例子中,Translations.of(context).greetingTranslations.of(context).farewell 分别获取当前语言的翻译。

5. 切换语言

你可以通过设置 MaterialApplocale 属性来切换应用的语言。例如:

MaterialApp(
  locale: Locale('es', 'ES'),  // 切换到西班牙语
  // 其他配置
);

6. 更新翻译文件

如果你需要添加新的翻译或修改现有翻译,只需更新 translations.json 文件,然后重新运行生成命令:

flutter pub run translations_manager:generate

7. 支持更多语言

你可以通过添加更多语言的翻译到 translations.json 文件来支持更多语言。例如:

{
  "en": {
    "greeting": "Hello",
    "farewell": "Goodbye"
  },
  "es": {
    "greeting": "Hola",
    "farewell": "Adiós"
  },
  "fr": {
    "greeting": "Bonjour",
    "farewell": "Au revoir"
  }
}
回到顶部