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

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

它的功能是一个简单的Text小部件,可以自动快速地为任何文本进行翻译。它支持59种语言。

无需再配置乏味的本地化配置文件,你所需要做的就是将旧的Text()小部件更改为TranslatedText(),然后享受没有本地化的甜蜜生活吧。

提示:该翻译会非常快,因为它在设备上部署了一个翻译模型。

示例视频

Demo

如何使用?

步骤1: 调用小部件

TranslatedText('你的文本')

步骤2: 别忘了使用管理器初始化小部件

Future<bool> initWidget() async {
  return await TranslationManager().init(
    originLanguage: Languages.ENGLISH,
    translateToLanguage: Languages.ARABIC,
  );
}

步骤3: 请我喝杯咖啡 🙂!☕️

请我喝杯咖啡

Coffee

快速示例 ⚡️

Widget buildWidget(){
  return FutureBuilder(
    future: initTranslation(),
    builder: (context, snapshot) {
      if (snapshot.hasError) {
        return Text('${snapshot.error}');
      }
      if (snapshot.connectionState == ConnectionState.done) {
        return TranslatedText('我总是会被翻译的文字');
      }
      return CircularProgressIndicator();
    },
  );
}

Future<bool> initWidget() async {
  return await TranslationManager().init(
    originLanguage: Languages.ENGLISH,
    /// 更改此处的语言以改变翻译,然后重新运行。
    /// 例如 Languages.RUSSIAN。
    translateToLanguage: Languages.ARABIC,
  );
}

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

1 回复

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


bye_bye_localization 是一个用于 Flutter 应用的本地化管理插件,旨在简化本地化(多语言支持)的实现过程。通过 bye_bye_localization,你可以轻松地为你的 Flutter 应用添加多语言支持,而无需手动管理大量的字符串资源文件。

以下是使用 bye_bye_localization 插件的步骤:

1. 添加依赖

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

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

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

2. 配置本地化文件

bye_bye_localization 使用 JSON 文件来管理不同语言的字符串资源。你需要在项目中创建一个 assets 文件夹,并在其中创建不同语言的 JSON 文件。

例如:

assets/
  translations/
    en.json
    es.json
    fr.json

每个 JSON 文件的内容应该是一个键值对,表示不同语言的字符串。例如 en.json

{
  "hello": "Hello",
  "welcome": "Welcome to our app!"
}

es.json

{
  "hello": "Hola",
  "welcome": "¡Bienvenido a nuestra aplicación!"
}

3. 配置 pubspec.yaml

pubspec.yaml 文件中,确保你已经将本地化文件包含在 assets 部分:

flutter:
  assets:
    - assets/translations/

4. 初始化 bye_bye_localization

在你的 Flutter 应用中初始化 bye_bye_localization。通常,你可以在 main.dart 文件中进行初始化:

import 'package:flutter/material.dart';
import 'package:bye_bye_localization/bye_bye_localization.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  await ByeByeLocalization.init(
    translationsPath: 'assets/translations',
    defaultLanguage: 'en',
    supportedLanguages: ['en', 'es', 'fr'],
  );

  runApp(MyApp());
}

5. 使用本地化字符串

在你的应用中使用 ByeByeLocalization 来获取本地化字符串。例如:

import 'package:flutter/material.dart';
import 'package:bye_bye_localization/bye_bye_localization.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text(ByeByeLocalization.translate('welcome')),
        ),
        body: Center(
          child: Text(ByeByeLocalization.translate('hello')),
        ),
      ),
    );
  }
}

6. 动态切换语言

你可以在运行时动态切换语言。例如,通过一个按钮来切换语言:

FlatButton(
  onPressed: () {
    ByeByeLocalization.setLanguage('es');
  },
  child: Text('Switch to Spanish'),
),

7. 获取当前语言

你可以通过 ByeByeLocalization.getCurrentLanguage() 来获取当前应用的语言:

String currentLanguage = ByeByeLocalization.getCurrentLanguage();
print('Current Language: $currentLanguage');

8. 处理语言切换事件

如果你希望在语言切换时执行某些操作,可以监听语言变化事件:

ByeByeLocalization.onLanguageChanged.listen((String languageCode) {
  print('Language changed to: $languageCode');
});
回到顶部