Flutter翻译服务插件deepl_dart的使用
Flutter翻译服务插件deepl_dart的使用
deepl_dart
是一个用于与 DeepL API 交互的 Dart 库,允许开发者在他们的 Flutter 和 Dart 应用中集成高质量的机器翻译功能。以下是关于如何使用 deepl_dart
插件的详细介绍。
获取认证密钥
要使用 deepl_dart
包,您需要一个 API 认证密钥。请访问 DeepL Pro 创建账户并获取您的 API 密钥。您可以每月免费翻译最多 500,000 个字符。
安装
在您的 pubspec.yaml
文件的 dependencies
部分添加以下内容:
dependencies:
deepl_dart: ^<latest_version>
确保将 <latest_version>
替换为最新版本号。可以通过访问 Pub.dev 获取最新版本信息。
使用方法
构造 Translator 对象
首先,导入 deepl_dart
包并创建一个 Translator
对象。构造函数需要一个包含您的 API 认证密钥的字符串。
import 'package:deepl_dart/deepl_dart.dart';
void main() async {
// 构造 Translator 对象
Translator translator = Translator(authKey: '<your_auth_key>');
}
翻译文本
单个文本翻译
TextResult result = await translator.translateTextSingular('Hello World', 'de');
print(result);
多个文本翻译
List<TextResult> results = await translator.translateTextList(
['Hello World', 'Hola Mundo'], 'de');
print(results);
指定源语言
TextResult result = await translator.translateTextSingular(
'Hello World', 'de', sourceLang: 'en');
print(result);
获取支持的语言
List<Language> sourceLangs = await translator.getSourceLanguages();
List<Language> targetLangs = await translator.getTargetLanguages();
print(sourceLangs);
print(targetLangs);
使用选项进行翻译
TextResult resultWithOptions = await translator.translateTextSingular(
'Hello World',
'de',
options: TranslateTextOptions(
splitSentences: "0",
preserveFormatting: true,
formality: "more",
glossaryId: "123",
tagHandling: "xml",
outlineDetection: true,
nonSplittingTags: "tag1,tag2",
splittingTags: "tag3,tag4",
ignoreTags: "tag5,tag6",
context: "This is my context.",
),
);
print(resultWithOptions);
翻译文档
支持的文件类型包括 .docx
, .pptx
, .pdf
, .txt
。可以指定目标语言和源语言(可选)。
DocumentStatus status = await translator.translateDocument(
File('<input_file_path>'), File('<output_file_path>'), 'de');
print(status);
管理词汇表
创建词汇表
GlossaryInfo glossaryInfo = await translator.createGlossary(
name: 'my glossary',
sourceLang: 'en',
targetLang: 'de',
entries: GlossaryEntries(entries: {
'hello': 'hi',
'world': 'erde',
}),
);
print(glossaryInfo);
使用 CSV 文件创建词汇表
GlossaryInfo csvGlossaryInfo = await translator.createGlossaryWithCsvFile(
name: 'my glossary',
sourceLang: 'en',
targetLang: 'de',
csvFile: File('<csv_file_path>'),
);
print(csvGlossaryInfo);
列出所有词汇表
List<GlossaryInfo> glossaryList = await translator.listGlossaries();
print(glossaryList);
获取特定词汇表信息
GlossaryInfo glossaryInfo = await translator.getGlossary(glossaryInfo.glossaryId);
print(glossaryInfo);
获取词汇表条目
GlossaryEntries glossaryEntries =
await translator.getGlossaryEntries(glossaryId: glossaryInfo.glossaryId);
print(glossaryEntries);
删除词汇表
await translator.deleteGlossary(glossaryId: glossaryInfo.glossaryId);
查询使用情况
Usage usage = await translator.getUsage();
print(usage);
示例代码
下面是一个完整的示例代码,展示了如何使用 deepl_dart
进行各种操作:
import 'dart:io';
import 'package:deepl_dart/deepl_dart.dart';
void main() async {
// 构造 Translator 对象
Translator translator = Translator(authKey: '<your_auth_key>');
// 获取可用语言
List<Language> sourceLangs = await translator.getSourceLanguages();
print(sourceLangs);
List<Language> targetLangs = await translator.getTargetLanguages();
print(targetLangs);
// 翻译单个文本
TextResult result = await translator.translateTextSingular('Hello World', 'de');
print(result);
// 翻译多个文本
List<TextResult> results = await translator.translateTextList(
['Hello World', 'Hola Mundo'], 'de');
print(results);
// 翻译文档
DocumentStatus status = await translator.translateDocument(
File('<input_file_path>'), File('<output_file_path>'), 'de');
print(status);
// 获取支持的词汇表语言对
List<GlossaryLanguagePair> langPairs = await translator.getGlossaryLanguagePairs();
print(langPairs);
// 创建词汇表
GlossaryInfo glossaryInfo = await translator.createGlossary(
name: 'my glossary',
sourceLang: 'en',
targetLang: 'de',
entries: GlossaryEntries(entries: {
'hello': 'hi',
'world': 'erde',
}),
);
print(glossaryInfo);
// 列出所有词汇表
List<GlossaryInfo> glossaryList = await translator.listGlossaries();
print(glossaryList);
// 获取特定词汇表信息
glossaryInfo = await translator.getGlossary(glossaryInfo.glossaryId);
print(glossaryInfo);
// 获取词汇表条目
GlossaryEntries glossaryEntries =
await translator.getGlossaryEntries(glossaryId: glossaryInfo.glossaryId);
print(glossaryEntries);
// 删除词汇表
await translator.deleteGlossary(glossaryId: glossaryInfo.glossaryId);
// 查询使用情况
Usage usage = await translator.getUsage();
print(usage);
}
以上就是 deepl_dart
插件的使用指南,希望对您有所帮助!如果您有任何问题或需要进一步的帮助,请随时联系社区或查阅官方文档。
更多关于Flutter翻译服务插件deepl_dart的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter翻译服务插件deepl_dart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,下面是一个关于如何在Flutter应用中使用deepl_dart
插件进行翻译服务的示例代码。deepl_dart
是一个Dart库,用于与DeepL翻译API进行交互。
首先,你需要在你的Flutter项目中添加deepl_dart
依赖。打开你的pubspec.yaml
文件,并在dependencies部分添加以下行:
dependencies:
flutter:
sdk: flutter
deepl_dart: ^最新版本号 # 请替换为实际的最新版本号
然后运行flutter pub get
来安装依赖。
接下来,你需要在DeepL网站上获取一个API密钥。注册并登录后,前往API页面生成一个新的密钥。
以下是一个简单的Flutter应用示例,展示了如何使用deepl_dart
进行翻译:
import 'package:flutter/material.dart';
import 'package:deepl_dart/deepl_dart.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter DeepL Translation Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: TranslationScreen(),
);
}
}
class TranslationScreen extends StatefulWidget {
@override
_TranslationScreenState createState() => _TranslationScreenState();
}
class _TranslationScreenState extends State<TranslationScreen> {
final DeepLClient _deeplClient = DeepLClient('你的DeepL API密钥'); // 请替换为你的API密钥
String _originalText = '';
String _translatedText = '';
String _errorMessage = '';
void _translateText() async {
setState(() {
_errorMessage = '';
_translatedText = '';
});
try {
var translationResult = await _deeplClient.translate(
text: _originalText,
sourceLang: 'en', // 源语言代码,例如'en'表示英语
targetLang: 'zh', // 目标语言代码,例如'zh'表示中文
);
setState(() {
_translatedText = translationResult.translatedText;
});
} catch (e) {
setState(() {
_errorMessage = e.toString();
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('DeepL Translation Example'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextField(
decoration: InputDecoration(
labelText: 'Original Text',
),
onChanged: (value) {
setState(() {
_originalText = value;
});
},
),
SizedBox(height: 16),
ElevatedButton(
onPressed: _translateText,
child: Text('Translate'),
),
SizedBox(height: 16),
if (_errorMessage.isNotEmpty)
Text(
_errorMessage,
style: TextStyle(color: Colors.red),
),
if (_translatedText.isNotEmpty)
Text(
'Translated Text: $_translatedText',
style: TextStyle(fontSize: 18),
),
],
),
),
);
}
}
在这个示例中,我们创建了一个简单的Flutter应用,包含一个文本输入框、一个翻译按钮和一个用于显示翻译结果的区域。当你输入一些文本并点击翻译按钮时,应用会使用DeepL API将文本翻译成指定的目标语言,并在屏幕上显示翻译结果。
请注意,在实际应用中,你应该将API密钥保存在安全的地方,例如使用Flutter的.env
文件或Android和iOS的密钥管理服务。上述示例中直接将API密钥硬编码在代码中,仅用于演示目的。