首页 > 解决方案 > 使用 Flutter 和 Dart 进行翻译

问题描述

我目前正在从事一个涉及翻译的项目,我正在使用框架 Flutter 和语言 Dart 构建一个应用程序。

问题是我不知道如何在 dart 中使用我的应用程序翻译文本。

我尝试使用各种平台,如谷歌翻译 API、Firebase、Yandex ......但我没有钱,这有点问题。

所以我尝试了这个https://docs.microsoft.com/fr-fr/azure//cognitive-services/translator/reference/v3-0-translate#request-url但我收到了这个错误消息{"error":{"code":405000,"message":"The request method is not supported for the requested resource."}}

然后我尝试使用 dart 包:https://pub.dev/packages/localize_and_translate,它有效,但它是翻译你已经在 json 文件中拥有的文本,我需要翻译用户会给我的文本。

我还尝试获取其中一个谷歌翻译请求中的内容,以获得答案而无需手动访问网站,当我尝试分析请求时,我只得到了这个链接:https://fonts.googleapis.com/css?lang=fr&family=Product+Sans%7CRoboto:400,700

一些帮助或想法肯定会非常感激。

感谢一切!

标签: apiflutterdarttranslationtranslate

解决方案


您可以使用 AWS Translate(免费一年),我为我的生产使用的应用程序创建了一个插件。之前我在 Flutter 中使用了 Android 原生和 IOS 原生 AWS 官方包,MethodChannel后来我决定将其打包,以便像您这样的其他人可以从中获得帮助。

这是那个包:https ://pub.dev/packages/aws_translate

阅读有关 AWS 翻译的更多信息:https ://aws.amazon.com/translate/

这是一个如何使用它的简单示例:

AwsTranslate awsTranslate = AwsTranslate(
    poolId: poolId, // your pool id here
    region: Regions.AP_NORTHEAST_2); // your region here

// from parameter is default to ``auto``
String textToTranslate = 'If you press on this text, I can translate this text for you.';
String translated = await awsTranslate.translateText(textToTranslate, to: 'es');
if (!mounted) return;
print(textToTranslate);
setState(() => textToTranslate = translated);

可以在此处找到我的 AWS 翻译插件的示例应用程序:https ://github.com/Blasanka/aws_translate_plugin/tree/master/example (您必须拥有 AWS 帐户才能获取池 ID 和区域)。

如果您只想尝试谷歌翻译(无需登录但不能在生产应用中使用),请尝试https://pub.dev/packages/translator

可以在此处找到翻译器的工作示例:https ://github.com/gabrielpacheco23/google-translator/blob/master/example/main.dart


推荐阅读