Flutter语言翻译插件translator_dart的使用

Flutter语言翻译插件translator_dart的使用

translator_dart 是一个免费的Google翻译API库,适用于Dart语言。你可以通过以下链接查看其在pub上的信息:

支持我的工作: ko-fi

使用方法

首先,你需要导入 translator_dart 包,并创建一个 GoogleTranslator 实例。

import 'package:translator_dart/translator.dart';

void main() async {
  final translator = GoogleTranslator();

  final input = "Здравствуйте. Ты в порядке?";

  // 使用Future API进行翻译
  translator
      .translate(input, to: 'en')
      .then((result) => print("Source: $input\nTranslated: $result"));

  // 将翻译结果传递给变量
  var translation = await translator
      .translate("I would buy a car, if I had money.", from: 'en', to: 'it');

  // 你也可以直接在输入字符串上调用扩展方法
  print('Translated: ${await input.translate(to: 'en')}');

  // 你还可以替换默认的基础URL,以解决某些国家地区默认地址不适用的问题
  translator.baseUrl = "translate.google.com.hk";
  translator.translateAndPrint("This means 'testing' in chinese", to: 'zh-cn');
  // 打印:这意味着用中文'测试'

  print("translation: $translation");
  // 打印:Vorrei comprare una macchina, se avessi i soldi.
}

详细说明

使用 translate 方法指定翻译源和目标语言

translator.translate("I love Brazil!", from: 'en', to: 'pt').then((s) {
    print(s);
  }); 
  // 打印:Eu amo o Brasil!

省略源语言,自动检测源语言

translator.translate("Hello", to: 'es').then(print);
// 打印:Hola

使用 await 获取翻译结果

var translation = await translator.translate("I would buy a car, if I had money.", from: 'en', to: 'it');
print(translation);
// 打印:Vorrei comprare una macchina, se avessi i soldi.

返回值是一个 Translation 对象

var translation = await translator.translate('Translation', from: 'en', to: 'es');
print('${translation.source} (${translation.sourceLanguage}) == ${translation.text} (${translation.targetLanguage})');

// 打印:Translation (English) == Traducción (Spanish)

直接在字符串上使用扩展方法

print(await "example".translate(to: 'pt'));
// 打印:exemplo

使用 translateAndPrint 方法直接打印翻译结果

translator.translateAndPrint("This means 'testing' in chinese", to: 'zh-cn');
// 打印:这意味着用中文'测试'

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

1 回复

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


translator_dart 是一个用于 Flutter 和 Dart 应用的轻量级翻译插件,它支持多种语言的翻译,并且使用简单。这个插件通常用于将文本从一种语言翻译成另一种语言。

安装 translator_dart

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

dependencies:
  flutter:
    sdk: flutter
  translator_dart: ^0.1.0  # 请根据实际情况使用最新版本

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

使用 translator_dart

下面是一个简单的示例,展示如何在 Flutter 应用中使用 translator_dart 进行翻译。

import 'package:flutter/material.dart';
import 'package:translator_dart/translator_dart.dart'; // 导入 translator_dart 包

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: TranslationExample(),
    );
  }
}

class TranslationExample extends StatefulWidget {
  @override
  _TranslationExampleState createState() => _TranslationExampleState();
}

class _TranslationExampleState extends State<TranslationExample> {
  String translatedText = '';

  void translateText() async {
    const Translator translator = Translator();

    // 使用 translate 方法进行翻译
    final translation = await translator.translate('Hello', to: 'es');
    // 'es' 是目标语言代码(西班牙语)

    setState(() {
      translatedText = translation;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Translator Dart Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text(
              'Translated Text: $translatedText',
              style: TextStyle(fontSize: 20),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: translateText,
              child: Text('Translate'),
            ),
          ],
        ),
      ),
    );
  }
}

代码解释

  1. 导入插件: import 'package:translator_dart/translator_dart.dart';
  2. 创建 Translator 实例: const Translator translator = Translator();
  3. 翻译文本:
    final translation = await translator.translate('Hello', to: 'es');
回到顶部