Flutter谷歌翻译插件google_translation的使用
Flutter谷歌翻译插件google_translation的使用
Google Translation 插件方便地使用 Google API 密钥进行翻译。
首次公告
目前,Google Translation 插件仅支持 Google 翻译 API 的基本功能。高级功能将在后期添加。
了解更多关于 Google 翻译 及其基本与高级功能的区别 在这里。
开始使用
设置API密钥
在使用 Google 翻译 API 时,你需要设置一个 Google 翻译 API 密钥。
安装
将 google_translation
添加到你的 pubspec.yaml
文件依赖项中。
dependencies:
google_translation: ^版本号
使用
配置
首次设置 Google 翻译 API。
import 'package:google_translation/google_translation.dart';
void main() async {
final googleTranslation = GoogleTranslation();
googleTranslation.setupAPIKey("YOUR_GOOGLE_API_KEY");
}
Google 翻译 API 可以在调用函数时更新或覆盖。
简单翻译
用于文本翻译:
import 'package:google_translation/google_translation.dart';
void main() async {
final googleTranslation = GoogleTranslation();
googleTranslation.setupAPIKey("YOUR_GOOGLE_API_KEY");
final result = await googleTranslation.simpleTextTranslate(
inputText: "TEXT_NEED_TRANSLATE",
sourceLanguage: "en", // 可选参数
targetLanguage: "vi",
googleAPIKey: "YOUR_GOOGLE_API_KEY", // 可选参数。如果已经在上面设置,则不需要
);
print("Result: $result"); // 输出值
}
语言检测
用于语言检测,获取可识别的语言列表:
import 'package:google_translation/google_translation.dart';
void main() async {
final googleTranslation = GoogleTranslation();
googleTranslation.setupAPIKey("YOUR_GOOGLE_API_KEY");
final listDetectLanguages = await googleTranslation.simpleTextDetectLanguages(
inputText: "TEXT_NEED_TO_DETECT_LANGUAGE",
googleAPIKey: "YOUR_GOOGLE_API_KEY", // 可选参数。如果已经在上面设置,则不需要
);
print("List detect languages: $listDetectLanguages"); // 输出值
}
获取支持的语言
有两种方法可以获取支持的语言:
- 获取默认支持的语言:
import 'package:google_translation/google_translation.dart';
void main() async {
final googleTranslation = GoogleTranslation();
googleTranslation.setupAPIKey("YOUR_GOOGLE_API_KEY");
final supportLanguages = await googleTranslation.getListSupportLanguages(
googleAPIKey: "YOUR_GOOGLE_API_KEY", // 可选参数。如果已经在上面设置,则不需要
);
print("List support languages: $supportLanguages"); // 输出值
}
- 获取特定目标本地化支持的语言:
import 'package:google_translation/google_translation.dart';
void main() async {
final googleTranslation = GoogleTranslation();
googleTranslation.setupAPIKey("YOUR_GOOGLE_API_KEY");
final supportLanguages = await googleTranslation.getListSupportLanguages(
targetLanguage: "en", // 定义此参数
googleAPIKey: "YOUR_GOOGLE_API_KEY", // 可选参数。如果已经在上面设置,则不需要
);
print("List support languages: $supportLanguages"); // 输出值
}
更多关于发现支持的语言的信息,请参阅 这里。
示例代码
以下是一个完整的示例代码,展示如何使用 google_translation
插件进行翻译和语言检测。
import 'package:flutter/material.dart';
import 'package:google_translation/google_translation.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: HomeScreen(),
);
}
}
class HomeScreen extends StatefulWidget {
[@override](/user/override)
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
final googleTranslation = GoogleTranslation();
String result = '';
String detectLanguage = '';
[@override](/user/override)
void initState() {
super.initState();
googleTranslation.setupAPIKey("YOUR_GOOGLE_API_KEY");
performTranslationAndDetection();
}
Future<void> performTranslationAndDetection() async {
// 简单翻译
final translatedText = await googleTranslation.simpleTextTranslate(
inputText: "Hello, how are you?",
sourceLanguage: "en",
targetLanguage: "vi",
googleAPIKey: "YOUR_GOOGLE_API_KEY"
);
setState(() {
result = translatedText;
});
// 语言检测
final detectedLanguages = await googleTranslation.simpleTextDetectLanguages(
inputText: "Bonjour, comment ça va?",
googleAPIKey: "YOUR_GOOGLE_API_KEY"
);
setState(() {
detectLanguage = detectedLanguages.toString();
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Google Translation Example')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Translated Text: $result'),
SizedBox(height: 20),
Text('Detected Languages: $detectLanguage'),
],
),
),
);
}
}
更多关于Flutter谷歌翻译插件google_translation的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter谷歌翻译插件google_translation的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter应用中使用google_translation
插件的示例代码。这个插件允许你进行文本翻译。首先,你需要在你的pubspec.yaml
文件中添加依赖:
dependencies:
flutter:
sdk: flutter
google_translation: ^0.4.0 # 请检查最新版本号
然后运行flutter pub get
来安装依赖。
接下来,你可以在你的Flutter应用中使用这个插件。以下是一个简单的示例,展示如何进行文本翻译:
import 'package:flutter/material.dart';
import 'package:google_translation/google_translation.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Google Translation Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: TranslationScreen(),
);
}
}
class TranslationScreen extends StatefulWidget {
@override
_TranslationScreenState createState() => _TranslationScreenState();
}
class _TranslationScreenState extends State<TranslationScreen> {
final TextEditingController _textController = TextEditingController();
final TextEditingController _translatedTextController = TextEditingController();
String _sourceLanguageCode = 'en';
String _targetLanguageCode = 'es';
String _translatedText = '';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Google Translation Demo'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
TextField(
controller: _textController,
decoration: InputDecoration(labelText: 'Text to Translate'),
),
SizedBox(height: 16),
DropdownButtonFormField<String>(
value: _sourceLanguageCode,
hint: Text('Source Language'),
onChanged: (newValue) {
setState(() {
_sourceLanguageCode = newValue;
});
},
items: [
'en', 'es', 'fr', 'de', 'zh'
].map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value.toUpperCase()),
);
}).toList(),
),
SizedBox(height: 16),
DropdownButtonFormField<String>(
value: _targetLanguageCode,
hint: Text('Target Language'),
onChanged: (newValue) {
setState(() {
_targetLanguageCode = newValue;
});
},
items: [
'en', 'es', 'fr', 'de', 'zh'
].map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value.toUpperCase()),
);
}).toList(),
),
SizedBox(height: 16),
ElevatedButton(
onPressed: () async {
try {
GoogleTranslation googleTranslation = GoogleTranslation();
String translatedText = await googleTranslation.translate(
_textController.text,
from: _sourceLanguageCode,
to: _targetLanguageCode,
);
setState(() {
_translatedTextController.text = translatedText;
_translatedText = translatedText;
});
} catch (e) {
print('Error during translation: $e');
}
},
child: Text('Translate'),
),
SizedBox(height: 16),
Text(
'Translated Text: $_translatedText',
style: TextStyle(fontSize: 18),
),
],
),
),
);
}
}
在这个示例中,我们创建了一个简单的Flutter应用,用户可以在其中输入要翻译的文本,选择源语言和目标语言,然后点击“Translate”按钮进行翻译。翻译结果会显示在下方的文本字段中。
请确保你的网络连接正常,因为google_translation
插件依赖于Google翻译API,而该API需要互联网连接才能工作。