Flutter多语言翻译插件translator的使用
Flutter多语言翻译插件translator的使用
translator
是一个免费的Google Translate API for Dart,允许开发者轻松地在Flutter应用中实现多语言翻译功能。它可以帮助我们快速将文本从一种语言翻译成另一种语言,支持多种语言之间的互译。
使用方法
基本用法
首先需要导入 translator
包:
import 'package:translator/translator.dart';
然后可以创建 GoogleTranslator
的实例,并使用 translate
方法进行翻译:
void main() async {
final translator = GoogleTranslator();
final input = "Здравствуйте. Ты в порядке?";
// 使用 Future API 进行翻译
translator.translate(input, from: 'ru', to: 'en').then((result) {
print("Source: $input\nTranslated: $result");
});
// 将翻译结果存储到变量中
var translation = await translator.translate("Dart is very cool!", to: 'pl');
print(translation); // prints Dart jest bardzo fajny!
// 直接在字符串上调用扩展方法进行翻译
print(await "example".translate(to: 'pt')); // prints exemplo
}
自动检测源语言
如果不想指定源语言,translator
可以自动检测源语言:
translator.translate("Hello", to: 'es').then((result) {
print(result); // prints Hola
});
获取完整的翻译对象
translate
方法返回的是一个 Translation
对象,包含了更多的翻译信息:
var translation = await translator.translate('Translation', from: 'en', to: 'es');
print('${translation.source} (${translation.sourceLanguage}) == ${translation.text} (${translation.targetLanguage})');
// prints Translation (English) == Traducción (Spanish)
更改默认的翻译URL
对于某些地区,默认的翻译URL可能无法正常工作,这时可以更改默认的URL:
translator.baseUrl = "translate.google.com.hk";
translator.translateAndPrint("This means 'testing' in chinese", to: 'zh-cn');
// prints 这意味着用中文'测试'
完整示例代码
以下是一个完整的示例代码,展示了如何在Flutter项目中使用 translator
插件:
import 'package:flutter/material.dart';
import 'package:translator/translator.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Flutter Translator Demo'),
),
body: Center(
child: TranslatorDemo(),
),
),
);
}
}
class TranslatorDemo extends StatefulWidget {
@override
_TranslatorDemoState createState() => _TranslatorDemoState();
}
class _TranslatorDemoState extends State<TranslatorDemo> {
final GoogleTranslator translator = GoogleTranslator();
String translatedText = '';
void translateText(String text, String targetLang) async {
var translation = await translator.translate(text, to: targetLang);
setState(() {
translatedText = translation.text;
});
}
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Padding(
padding: const EdgeInsets.all(8.0),
child: TextField(
decoration: InputDecoration(labelText: 'Enter text to translate'),
onSubmitted: (text) {
translateText(text, 'es'); // 默认翻译成西班牙语
},
),
),
ElevatedButton(
onPressed: () {
translateText('Hello', 'es');
},
child: Text('Translate Hello to Spanish'),
),
Text(
'Translated Text: $translatedText',
style: TextStyle(fontSize: 20),
),
],
);
}
}
注意事项
- 该包是基于爬取Google Translate网站的数据开发的,因此可能存在不稳定的情况。
- 如果你需要更稳定的服务,建议购买官方的Google Translate API。
- 该包适用于教育目的,不建议在生产环境中依赖此包。
希望这些信息能帮助你在Flutter项目中顺利使用 translator
插件!如果有任何问题,欢迎随时提问。
更多关于Flutter多语言翻译插件translator的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复