Flutter本地化构建插件localino_builder的使用

Flutter本地化构建插件localino_builder的使用

特性

  • 根据当前或首选语言加载本地化资源。
  • 资源格式为Json/Map。支持单个字符串、映射和列表、复数形式以及简单的格式化。

开始使用

首先,在pubspec.yaml文件的dev_dependencies部分添加库。

dev_dependencies:
  build_runner: 2.4.0
  localino_builder: 0.1.0

接着,在项目文件中添加build.yaml以配置构建器和localino项目。

targets:
  $default:
    builders:
      localino_builder:
        options:
          space: 'your space id'
          project: 'your project id'
          access: 'your access token'

使用方法

运行以下命令以将翻译下载到资产文件夹中。

dart run build_runner build

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

1 回复

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


localino_builder 是一个用于 Flutter 应用本地化的代码生成插件。它可以帮助你自动生成本地化字符串的代码,从而简化多语言支持的过程。以下是如何使用 localino_builder 插件的步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 localino_builder 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  localino: ^1.0.0  # 或其他最新版本

dev_dependencies:
  build_runner: ^2.1.0  # 或其他最新版本
  localino_builder: ^1.0.0  # 或其他最新版本

2. 创建本地化文件

在项目的 lib 目录下创建一个 l10n 文件夹,并在其中创建一个 arb 文件(例如 app_en.arbapp_es.arb),用于存放不同语言的字符串。

app_en.arb:

{
  "@@locale": "en",
  "hello": "Hello",
  "greeting": "Hello, {name}!"
}

app_es.arb:

{
  "@@locale": "es",
  "hello": "Hola",
  "greeting": "Hola, {name}!"
}

3. 配置 localino

lib 目录下创建一个 localino.yaml 文件,用于配置 localino 插件。

localino.yaml:

arb_dir: lib/l10n
output_dir: lib/l10n/generated
template_arb_file: app_en.arb

4. 运行代码生成

使用 build_runner 生成本地化代码。在终端中运行以下命令:

flutter pub run build_runner build

这将生成一个包含本地化字符串的 Dart 文件,默认路径为 lib/l10n/generated/l10n.dart

5. 使用生成的本地化类

MaterialAppCupertinoApp 中配置生成的本地化类。

import 'package:flutter/material.dart';
import 'package:localino/localino.dart';
import 'l10n/generated/l10n.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: const [
        S.delegate,
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
      ],
      supportedLocales: S.delegate.supportedLocales,
      home: MyHomePage(),
    );
  }
}

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

6. 更新本地化文件

如果你在 arb 文件中添加或修改了字符串,只需重新运行 build_runner 命令即可更新生成的代码。

flutter pub run build_runner build
回到顶部