Dart 语言 翻译 API 集成示例

Dart阿木 发布于 2025-06-19 3 次阅读


Dart 语言翻译 API 集成示例

随着全球化的不断深入,跨语言交流变得日益重要。Dart 语言作为一种新兴的编程语言,因其高性能和良好的跨平台特性,在移动应用开发领域受到了广泛关注。本文将围绕 Dart 语言翻译 API 集成示例,详细介绍如何在 Dart 应用中集成翻译功能,实现跨语言交流。

翻译 API 是一种基于网络的服务,它允许开发者将文本从一种语言翻译成另一种语言。Dart 语言提供了丰富的网络库,使得集成翻译 API 变得简单易行。本文将使用 Google Cloud Translation API 作为示例,展示如何在 Dart 应用中实现文本翻译功能。

准备工作

在开始之前,请确保您已经完成了以下准备工作:

1. 安装 Dart SDK。

2. 创建一个新的 Dart 项目。

3. 在 Google Cloud Platform 上创建一个项目,并启用 Google Cloud Translation API。

4. 获取 API 密钥。

1. 引入依赖

在 `pubspec.yaml` 文件中添加以下依赖:

yaml

dependencies:


http: ^0.13.3


googleapis: ^0.15.0


然后,运行 `flutter pub get` 命令安装依赖。

2. 创建翻译服务

接下来,创建一个名为 `TranslationService.dart` 的文件,用于封装翻译逻辑。

dart

import 'package:http/http.dart' as http;


import 'package:googleapis/language/v2.dart' as language;

class TranslationService {


final language.LanguageService languageService;


final String apiKey;

TranslationService(this.apiKey)


: languageService = language.LanguageService();

Future<String> translate(String text, String sourceLanguage, String targetLanguage) async {


final request = language.TranslateTextRequest()


..q = text


..source = sourceLanguage


..target = targetLanguage;

final response = await languageService.documents.translate(


'projects/your-project-id',


request,


);

return response.data?.translatedText ?? '';


}


}


在上述代码中,我们创建了一个 `TranslationService` 类,它包含一个 `translate` 方法,用于将文本从一种语言翻译成另一种语言。`apiKey` 是 Google Cloud Translation API 的密钥,您需要将其替换为您自己的 API 密钥。

3. 使用翻译服务

现在,我们可以在 Dart 应用中使用 `TranslationService` 类来实现翻译功能。以下是一个简单的示例:

dart

import 'package:flutter/material.dart';


import 'TranslationService.dart';

void main() {


runApp(MyApp());


}

class MyApp extends StatelessWidget {


@override


Widget build(BuildContext context) {


return MaterialApp(


title: 'Dart Translation API',


theme: ThemeData(


primarySwatch: Colors.blue,


),


home: TranslationPage(),


);


}


}

class TranslationPage extends StatefulWidget {


@override


_TranslationPageState createState() => _TranslationPageState();


}

class _TranslationPageState extends State<TranslationPage> {


final TranslationService _translationService = TranslationService('your-api-key');


final TextEditingController _textController = TextEditingController();


final TextEditingController _sourceLanguageController = TextEditingController();


final TextEditingController _targetLanguageController = TextEditingController();


String _translatedText = '';

@override


void initState() {


super.initState();


_sourceLanguageController.text = 'en';


_targetLanguageController.text = 'zh-CN';


}

@override


Widget build(BuildContext context) {


return Scaffold(


appBar: AppBar(


title: Text('Dart Translation API'),


),


body: Column(


children: <Widget>[


TextField(


controller: _textController,


decoration: InputDecoration(


labelText: 'Enter text to translate',


),


),


DropdownButton<String>(


value: _sourceLanguageController.text,


onChanged: (String? value) {


setState(() {


_sourceLanguageController.text = value!;


});


},


items: <String>['en', 'es', 'fr', 'de', 'zh-CN', 'zh-TW'].map<DropdownMenuItem<String>>((String value) {


return DropdownMenuItem<String>(


value: value,


child: Text(value),


);


}).toList(),


),


DropdownButton<String>(


value: _targetLanguageController.text,


onChanged: (String? value) {


setState(() {


_targetLanguageController.text = value!;


});


},


items: <String>['en', 'es', 'fr', 'de', 'zh-CN', 'zh-TW'].map<DropdownMenuItem<String>>((String value) {


return DropdownMenuItem<String>(


value: value,


child: Text(value),


);


}).toList(),


),


ElevatedButton(


onPressed: _translateText,


child: Text('Translate'),


),


Expanded(


child: SingleChildScrollView(


child: Text(


_translatedText,


style: TextStyle(fontSize: 18),


),


),


),


],


),


);


}

void _translateText() async {


final text = _textController.text;


final sourceLanguage = _sourceLanguageController.text;


final targetLanguage = _targetLanguageController.text;

try {


final translatedText = await _translationService.translate(text, sourceLanguage, targetLanguage);


setState(() {


_translatedText = translatedText;


});


} catch (e) {


print('Error: $e');


}


}


}


在上述代码中,我们创建了一个简单的 Flutter 应用,它包含一个文本输入框、两个下拉列表和一个按钮。用户可以在文本输入框中输入要翻译的文本,选择源语言和目标语言,然后点击按钮进行翻译。翻译结果将显示在屏幕下方。

总结

本文介绍了如何在 Dart 语言中集成翻译 API,以实现跨语言交流。通过使用 Google Cloud Translation API 和 Dart 的网络库,我们可以轻松地将文本从一种语言翻译成另一种语言。希望本文能帮助您在 Dart 应用中实现翻译功能。