Flutter微软Azure翻译服务插件microsoft_azure_translator的使用

Flutter微软Azure翻译服务插件microsoft_azure_translator的使用

本README描述了该包的功能。如果您将此包发布到pub.dev,此README的内容将出现在您的包的首页。

对于如何编写一个好的包README,可以参考Dart指南

对于开发包的一般信息,可以查看Dart指南Flutter指南

特性

  • 快速设置Microsoft Azure Translator。
  • 支持如粤语等在Google翻译中表现不佳的语言。
  • 只需提供从Azure获取的Ocp-Apim-Subscription-KeyOcp-Apim-Subscription-Region

开始使用

前往以下链接创建您的Azure帐户并设置翻译资源: 创建Azure翻译资源

使用方法

通过传递订阅密钥和订阅区域来初始化翻译器:

  MicrosoftAzureTranslator.initialize(dotenv.env['MICROSOFT_AZURE_SUBSCRIPTION_KEY']!, dotenv.env['MICROSOFT_AZURE_SUBSCRIPTION_REGION']!);

  List<dynamic>? translated = await MicrosoftAzureTranslator.instance.translate("how are you?", "en", "yue");

   if (translated != null) {
      print('received translation from package..');
      print(translated);

      translated.forEach((translatedItem) {
        print(translatedItem);
        print(translatedItem["text"]);
      });
    }

完整示例代码

以下是一个完整的示例代码,展示了如何在Flutter应用中使用microsoft_azure_translator插件。

import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:microsoft_azure_translator/microsoft_azure_translator.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';

void main() async {
  await dotenv.load(fileName: ".env");
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  [@override](/user/override)
  void initState() {
    super.initState();

    if (dotenv.env['MICROSOFT_AZURE_SUBSCRIPTION_KEY'] != null && dotenv.env['MICROSOFT_AZURE_SUBSCRIPTION_REGION'] != null) {
      MicrosoftAzureTranslator.initialize(dotenv.env['MICROSOFT_AZURE_SUBSCRIPTION_KEY']!, dotenv.env['MICROSOFT_AZURE_SUBSCRIPTION_REGION']!);
      translate();
    }
  }

  Future<void> translate() async {
    print('translate is called...');
    List<dynamic>? translated = await MicrosoftAzureTranslator.instance.translate("how are you?", "en", "yue");

    if (translated != null) {
      print('received translation from package..');
      print(translated);

      translated.forEach((translatedItem) {
        print(translatedItem);
        print(translatedItem["text"]);
      });
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            const Text(
              "测试",
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headlineMedium,
            ),
          ],
        ),
      ),
    );
  }
}

更多关于Flutter微软Azure翻译服务插件microsoft_azure_translator的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter微软Azure翻译服务插件microsoft_azure_translator的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中使用microsoft_azure_translator插件来集成微软Azure翻译服务,你可以按照以下步骤进行配置和使用。

1. 安装插件

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

dependencies:
  flutter:
    sdk: flutter
  microsoft_azure_translator: ^0.0.1  # 请检查最新版本

然后运行flutter pub get来安装插件。

2. 获取Azure Translator服务的API密钥和终结点

在使用Azure Translator服务之前,你需要在Azure门户上创建一个Translator资源,并获取API密钥和终结点URL。

  1. 登录到 Azure 门户
  2. 创建一个新的“Translator”资源。
  3. 创建完成后,在资源的“密钥和终结点”部分,你可以找到API密钥和终结点URL。

3. 配置插件

在你的Flutter应用中,配置microsoft_azure_translator插件,使用你从Azure获取的API密钥和终结点。

import 'package:microsoft_azure_translator/microsoft_azure_translator.dart';

void configureTranslator() {
  MicrosoftAzureTranslator.configure(
    subscriptionKey: 'YOUR_AZURE_SUBSCRIPTION_KEY',
    endpoint: 'YOUR_AZURE_ENDPOINT_URL',
  );
}

确保在应用启动时调用configureTranslator方法。

4. 使用插件进行翻译

现在你可以使用microsoft_azure_translator插件进行文本翻译了。以下是一个简单的例子:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: TranslationDemo(),
    );
  }
}

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

class _TranslationDemoState extends State<TranslationDemo> {
  String _translatedText = '';

  Future<void> _translateText() async {
    try {
      final translatedText = await MicrosoftAzureTranslator.translate(
        text: 'Hello, world!',
        to: 'es', // 目标语言代码 (例如: 'es' 表示西班牙语)
      );
      setState(() {
        _translatedText = translatedText;
      });
    } catch (e) {
      print('Translation failed: $e');
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Azure Translator Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: _translateText,
              child: Text('Translate'),
            ),
            SizedBox(height: 20),
            Text('Translated Text: $_translatedText'),
          ],
        ),
      ),
    );
  }
}
回到顶部