Flutter本地化管理插件app_auto_localize的使用

Flutter本地化管理插件app_auto_localize的使用

app_auto_localize 插件可以帮助你通过一行代码实现 Flutter 应用的本地化。

使用方法

首先,创建一个新的文件夹 .../flutter_example/assets/app_auto_localize

void main() async {
  // 初始化本地化设置
  await initAutoTranslate(
    projectPathAbsolute: '.../flutter_example',  // 你的项目绝对路径
    fileName: 'en'                               // 文件名将是 en.json
  );
  ...
}

初始化后,将会在 .../flutter_example/assets/app_auto_localize 文件夹中生成一个新的文件。

重要提示

在创建完翻译文件后,记得注释掉上述代码:

// void main() async {
//   // 初始化本地化设置
//   await initAutoTranslate(
//     projectPathAbsolute: '.../flutter_example',  // 你的项目绝对路径
//     fileName: 'en'                               // 文件名将是 en.json
//   );
//   ...
// }

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

1 回复

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


app_auto_localize 是一个用于 Flutter 的本地化(国际化)管理插件,它可以帮助开发者自动生成和管理多语言资源文件。通过这个插件,你可以更轻松地实现应用的本地化,而不需要手动创建和维护多个语言文件。

安装插件

首先,你需要在 pubspec.yaml 文件中添加 app_auto_localize 插件依赖:

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

然后,运行 flutter pub get 来安装插件。

配置插件

  1. 创建本地化配置文件:在项目根目录下创建一个 l10n.yaml 文件,用于配置本地化相关的设置。
arb-dir: lib/l10n
template-arb-file: app_en.arb
output-localization-file: app_localizations.dart
  • arb-dir:指定存放 .arb 文件的目录。
  • template-arb-file:指定模板 .arb 文件(通常是英文)。
  • output-localization-file:指定生成的本地化文件名称。
  1. 创建 .arb 文件:在 lib/l10n 目录下创建 .arb 文件。例如,app_en.arbapp_zh.arb

app_en.arb:

{
  "@@locale": "en",
  "hello": "Hello",
  "welcome": "Welcome to Flutter"
}

app_zh.arb:

{
  "@@locale": "zh",
  "hello": "你好",
  "welcome": "欢迎使用 Flutter"
}

生成本地化文件

运行以下命令生成本地化文件:

flutter pub run app_auto_localize:generate

这将会在 lib/l10n 目录下生成一个 app_localizations.dart 文件,其中包含了所有本地化的字符串资源。

使用本地化资源

  1. 配置 MaterialApp:在 main.dart 中,配置 MaterialApp 以使用生成的本地化资源。
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'l10n/app_localizations.dart';

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      localizationsDelegates: [
        AppLocalizations.delegate,
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
      ],
      supportedLocales: [
        const Locale('en', ''), // 英语
        const Locale('zh', ''), // 中文
      ],
      home: MyHomePage(),
    );
  }
}
  1. 在应用中使用本地化字符串:在需要的地方使用 AppLocalizations.of(context) 来获取本地化字符串。
import 'package:flutter/material.dart';
import 'l10n/app_localizations.dart';

class MyHomePage extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(AppLocalizations.of(context)!.welcome),
      ),
      body: Center(
        child: Text(AppLocalizations.of(context)!.hello),
      ),
    );
  }
}
回到顶部