Flutter本地化翻译插件dart_poeditor的使用

Flutter本地化翻译插件dart_poeditor的使用

Dart包用于与POEditor API通信。

特性

通过它可以从 Dart 中管理您的 POEditor 项目、翻译和术语。

开始使用

要安装该包,请查看安装指南。

安装指南:

pubspec.yaml 文件中添加以下依赖项:

dependencies:
  dart_poeditor: ^版本号

然后运行 flutter pub get 来获取依赖项。

使用方法

您可以从示例文件夹中的例子开始学习如何使用插件。以下是简单的代码示例:

import 'package:dart_poeditor/dart_poeditor.dart'; // 导入 dart_poeditor 包

void main() async {
  // 初始化 POEditorAPI,传入您的 API Token
  final editor = POEditorAPI(apiToken: env['API_TOKEN'] as String);

  // 导出 JSON 格式的翻译文件
  // projectId 是您在 POEditor 中项目的 ID
  // language 是您要导出的语言代码(例如:'es' 表示西班牙语)
  editor.projects
      .exportJson(
          projectId: int.parse(env['PROJECT_ID'] ?? '0'), language: 'es')
      .then((value) => print(value)); // 打印导出的结果
}

详细步骤说明:

  1. 初始化 POEditorAPI
    在代码中初始化 POEditorAPI,并传入您的 API Token。API Token 是从 POEditor 网站上生成的,用于身份验证。

  2. 调用 exportJson 方法
    使用 exportJson 方法来下载指定语言的翻译文件。您需要提供项目的 ID 和目标语言代码。

  3. 处理返回值
    exportJson 返回一个 Future 对象,您可以使用 .then() 方法来处理返回值。例如,打印结果以便调试。

示例代码运行效果:

假设您已经配置好了环境变量 API_TOKENPROJECT_ID,运行上面的代码后,您将看到类似如下的输出:

{
  "project": {
    "name": "My Project",
    "language": "es",
    "terms": [
      {"id": 1, "term": "Hello", "definition": "Hola"},
      {"id": 2, "term": "Goodbye", "definition": "Adiós"}
    ]
  }
}

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

1 回复

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


dart_poeditor 是一个用于 Flutter 项目的本地化翻译插件,它可以帮助开发者从 POEditor(一个在线翻译管理平台)导入翻译文件到 Flutter 项目中。通过这个插件,你可以轻松地管理和同步多语言翻译,而无需手动处理 JSON 或其他格式的翻译文件。

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

1. 安装 dart_poeditor 插件

首先,你需要在你的 Flutter 项目中安装 dart_poeditor 插件。你可以通过以下命令将其添加到 pubspec.yaml 文件中:

dev_dependencies:
  dart_poeditor: ^1.0.0

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

2. 配置 POEditor API 密钥和项目 ID

pubspec.yaml 文件中,你需要配置 POEditor 的 API 密钥和项目 ID。你可以在 POEditor 的仪表板中找到这些信息。

flutter:
  assets:
    - assets/translations/

dart_poeditor:
  api_token: 'your_poeditor_api_token'
  project_id: 'your_poeditor_project_id'
  languages: ['en', 'es', 'fr']  # 你支持的语言列表
  output_dir: 'assets/translations'  # 翻译文件输出目录

3. 下载翻译文件

使用以下命令从 POEditor 下载翻译文件:

flutter pub run dart_poeditor:download

这个命令会根据你在 pubspec.yaml 中配置的语言列表,从 POEditor 下载相应的翻译文件,并将其保存到 output_dir 指定的目录中。

4. 在 Flutter 项目中使用翻译文件

在 Flutter 项目中,你可以使用 flutter_localizationsintl 包来加载和使用这些翻译文件。

首先,确保你已经在 pubspec.yaml 中添加了这些依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  intl: ^0.17.0

然后,你可以在 MaterialApp 中配置本地化支持:

import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:intl/intl.dart';
import 'package:intl/intl_standalone.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await findSystemLocale();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: [
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      supportedLocales: [
        const Locale('en', 'US'),
        const Locale('es', 'ES'),
        const Locale('fr', 'FR'),
      ],
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Localization Example'),
      ),
      body: Center(
        child: Text(
          Intl.message('Hello, World!', name: 'helloWorld'),
        ),
      ),
    );
  }
}

5. 更新翻译文件

当你在 POEditor 中添加或更新翻译后,你可以再次运行以下命令来更新本地的翻译文件:

flutter pub run dart_poeditor:download

6. 上传翻译文件(可选)

如果你需要将本地的翻译文件上传到 POEditor,可以使用以下命令:

flutter pub run dart_poeditor:upload
回到顶部