Flutter谷歌翻译功能插件google_translate_api的使用

Flutter谷歌翻译功能插件google_translate_api的使用

Dart包提供了与Google Translate API交互的简单接口。通过该包,您可以实现文本在不同语言之间的翻译、检测输入文本的语言以及获取Google Translate支持的语言列表等功能。


特性

  • 翻译文本:将给定文本从一种语言翻译成另一种语言。
  • 检测语言:自动检测输入文本的语言。
  • 支持的语言列表:获取Google Translate支持的语言列表。

安装

  1. pubspec.yaml文件中添加以下依赖项:
    dependencies:
      google_translate:
        git:
          url: https://github.com/your-repository/google_translate.git
    
  2. 运行以下命令以安装依赖:
    flutter pub get
    

使用

1. 导入包

import 'package:google_translate/google_translate.dart';

2. 初始化GoogleTranslate实例

您需要一个Google Cloud API密钥来使用Google Translate API。您可以在Google Cloud Console创建一个。

void main() {
  final googleTranslate = GoogleTranslate('YOUR_GOOGLE_API_KEY');
}

3. 翻译文本

您可以使用translate方法在不同语言之间翻译文本。如果源语言未知,该方法会自动检测语言。

示例:从西班牙语翻译为英语

void main() async {
  final googleTranslate = GoogleTranslate('YOUR_GOOGLE_API_KEY');

  // 将西班牙语的'Hola'翻译为英语
  final translatedText = await googleTranslate.translate(
    text: 'Hola',
    targetLang: 'en',
  );
  print(translatedText); // 输出: Hello
}

指定源语言

如果您知道源语言,可以显式指定它:

final translatedText = await googleTranslate.translate(
  text: 'Bonjour',
  sourceLang: 'fr',  // 指定源语言为法语
  targetLang: 'en',
);
print(translatedText);  // 输出: Hello

4. 检测文本的语言

您可以使用detectLanguage方法检测给定文本的语言。

void main() async {
  final googleTranslate = GoogleTranslate('YOUR_GOOGLE_API_KEY');

  // 检测'Hola'的语言
  final detectedLanguage = await googleTranslate.detectLanguage('Hola');
  print(detectedLanguage); // 输出: es (西班牙语)
}

5. 获取支持的语言列表

您可以获取Google Translate支持的语言列表:

void main() async {
  final googleTranslate = GoogleTranslate('YOUR_GOOGLE_API_KEY');

  // 获取支持的语言列表
  final languages = await googleTranslate.getSupportedLanguages();
  print(languages);  // 输出: [en, es, fr, de, ...]
}

示例代码

以下是一个完整的示例代码,展示了如何使用google_translate_api插件进行翻译、检测语言和获取支持的语言列表:

import 'package:google_translate/google_translate.dart';

void main() async {
  // 初始化GoogleTranslate实例并传入您的API密钥
  final googleTranslate = GoogleTranslate('YOUR_GOOGLE_API_KEY');

  // 示例1:将'Hello'从英语翻译为西班牙语
  final translatedText = await googleTranslate.translate(
    text: 'Hello',
    targetLang: 'es',
  );
  print('Translated text: $translatedText'); // 输出: Hola

  // 示例2:检测'Bonjour'的语言
  final detectedLang = await googleTranslate.detectLanguage('Bonjour');
  print('Detected language: $detectedLang'); // 输出: fr

  // 示例3:获取支持的语言列表
  final supportedLanguages = await googleTranslate.getSupportedLanguages();
  print('Supported languages: $supportedLanguages');
}

测试

要运行此包的测试,可以使用以下命令:

flutter test

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

1 回复

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


在Flutter中实现谷歌翻译功能,你可以使用第三方库 google_translate_apigoogle_translator。以下是使用 google_translate_api 的步骤和示例代码。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  google_translate_api: ^0.2.0

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

2. 获取 Google Cloud API 密钥

要使用 Google 翻译 API,你需要一个 Google Cloud API 密钥。你可以通过以下步骤获取:

  1. 访问 Google Cloud Console
  2. 创建一个新项目或选择一个现有项目。
  3. 启用 Cloud Translation API
  4. API 和服务 中,创建一个新的 API 密钥。

3. 使用 google_translate_api 进行翻译

以下是一个简单的示例,展示如何使用 google_translate_api 进行翻译:

import 'package:flutter/material.dart';
import 'package:google_translate_api/google_translate_api.dart';

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Google Translate Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: TranslationPage(),
    );
  }
}

class TranslationPage extends StatefulWidget {
  [@override](/user/override)
  _TranslationPageState createState() => _TranslationPageState();
}

class _TranslationPageState extends State<TranslationPage> {
  final _textController = TextEditingController();
  String _translatedText = '';

  Future<void> _translateText() async {
    const apiKey = 'YOUR_GOOGLE_CLOUD_API_KEY'; // 替换为你的 API 密钥
    final translator = GoogleTranslateApi(apiKey: apiKey);

    try {
      final translation = await translator.translate(
        _textController.text,
        target: 'es', // 目标语言代码,例如 'es' 代表西班牙语
      );
      setState(() {
        _translatedText = translation.translatedText;
      });
    } catch (e) {
      setState(() {
        _translatedText = 'Error: $e';
      });
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Google Translate Example'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          children: [
            TextField(
              controller: _textController,
              decoration: InputDecoration(
                labelText: 'Enter text to translate',
              ),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _translateText,
              child: Text('Translate'),
            ),
            SizedBox(height: 20),
            Text(
              'Translated Text:',
              style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
            ),
            SizedBox(height: 10),
            Text(
              _translatedText,
              style: TextStyle(fontSize: 16),
            ),
          ],
        ),
      ),
    );
  }
}
回到顶部