如何使用google API翻译

网站运营 强烈建议 2024-03-22 08:11 96 0

  google API翻译是收费的,但翻译比较准确,正常google翻译的收费是100万个字符20美元。我们第一次使用,当然不想就开始付费,而是想先体验一下,好在google也提供了免费试用的功能,会给新账号300$的额度。

  要使用google API翻译,整个流程还挺长的。由于google的文档对新手很不好友,所以在这个过程中我也走了不少弯路,现在总结一下并分享给大家,其中关键的步骤是:

  希望让有需要的人少走点弯路。

  一、申请google API(一)进入申请页面点击链接进行申请。(二)申请API可能是因为google在中国被墙的原因,国家那里找了半天找不到中国的选项,后来干脆用默认选项“美国”。

  由于选的是美国,所以信用卡地址那里也只能填美国的,我随便填了一下纽约大学的地址:70 Washington Square South ,New York, NY。

  300$的额度,90天内用完。

  二、新建项目按google的说法,要使用Google Cloud提供的服务,您必须创建一个项目。

  一个项目可以组织您所有的Google Cloud资源。 一个项目由一组协作者,已启用的API(和其他资源),监视工具,计费信息以及身份验证和访问控制组成。 您可以创建一个项目,也可以创建多个项目,然后使用它们在资源层次结构中组织Google Cloud资源。 创建项目时,请记下项目ID。 您将需要此ID来进行API调用。

  建议您为实验,测试和生产创建单独的项目。 创建项目后,记录项目编号或ID。 调用Cloud Translation API时,必须提供项目编号(或ID)。

  三、启用记费功能您必须启用计费才能使用云翻译。如何确认你的项目已经开启了计费功能呢?打开你的项目,点击左边导航栏的“结算”链接,如果看到下面的页面,就表明你的项目已经开启了计费的功能。

  四、开启API(一)生成API密钥进入你的项目里,点击执行“创建凭据->生成API密钥”功能,就可以得到你的API密钥.

  (二)测试API密钥填上key进行测试,测试代码如下:

  (三)启用翻译API报以下错误:{'error': {'code': 403, 'message': 'Cloud Translation API has not been used in project 288578xxxxxx before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/translate.googleapis.com/overview?project=288578xxxxxx then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.', 'errors': [{'message': 'Cloud Translation API has not been used in project 288578xxxxxx before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/translate.googleapis.com/overview?project=288578xxxxxx then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.', 'domain': 'usageLimits', 'reason': 'accessNotConfigured', 'extendedHelp': 'https://console.developers.google.com'}], 'status': 'PERMISSION_DENIED'}}

  按上面的出错提示,进入到这个页面,点击“启用”翻译API.

  一些介绍:https://cloud.google.com/translate/docs/basic/quickstart?hl=zh_CN

  (四)成果展示再次运行上面的测试代码,可以发现翻译成功了。运行结果如下:

  {'data': {'translations': [{'translatedText': '技术新闻和产品评论', 'detectedSourceLanguage': 'tr'}]}}技术新闻和产品评论

  参考:https://blog.csdn.net/javajiawei/article/details/90691108?spm=1001.2014.3001.5501

  到了上面这一步就可以使用了,如果你只是进行简单的翻译,那么到上一步就已经大功告成了!

  不过我还有一个需求,就是可以实现对html代码的翻译,即保留html代码,但是翻译代码中的内容。所以后来又折腾客户端库。

  五、进行配额管理这一步是可选步骤,可以不做。

  Cloud Translation具有配额管理系统,可帮助您和Google管理该服务的使用情况。 默认情况下,每天可以发送的字符数没有限制。 如果您有固定的预算,建议您监控日常使用情况,并根据计划支出调整配额。

  六、设立身份验证如果您打算使用Cloud Translation API,则需要设置身份验证。 任何使用该API的客户端应用程序都必须经过身份验证,并被授予对所请求资源的访问权限。

  其实官方也推荐使用客户端库来调用 Cloud Translation,因为它们可以更轻松地访问 API

  (一)获得api json文件1.点击进入这个页面

  2.选择一个项目

  3.选择“create service account”

  4.建立账号输入相关的信息,完成账号的建立。

  5.点击左边导航栏的“service account”,你会发现刚刚自己建立的账号已经出现在里面了,点击这个账号。

  6.建立key在出现的窗口中,点击“key”,再点击“add key-creat new key”

  7.在出现的窗口中选择"json"

  点击“创建”之后,会自动将一个json文件下载到你的电脑上,请保存好这个json文件,里面有你的key.

  (二)添加系统变量将上一步下载的json文件保存到你的电脑中的某一个文件夹下面,比如我就将它存在C:google这个文件夹下面。然后添加环境变量。其中变量名为:GOOGLE_APPLICATION_CREDENTIALS变量的值就是你的json文件路径,比如:"C:Users퇧ameDownloads你的key.json"

  (三)使用google translate的客户端1.先安装

  2.运行测试代码

  只要运行上面的代码不报错,那就表示你的google授权成功,以后可以通过from google.cloud import translate_v3beta1 来使用google翻译了。

  示例代码:

  输出结果:

  Text: i love youTranslation: 我爱你Detected source language: en

  参考:https://cloud.google.com/docs/authentication/getting-startedhttps://cloud.google.com/translate/docs/setup参考:https://cloud.google.com/translate/markup

  附录:带词汇表(glossaries)的翻译google还支持带glossaries的翻译,词汇表是一种定制词典,Cloud Translation API使用该词典来一致地翻译客户的特定于域的术语。 这通常涉及指定如何转换命名实体。

  词汇表用例可能涉及:

  词汇表中的术语可以是单个标记(单词)或短短语(通常少于五个单词)。 当前,每个项目的词汇表数量上限为1000。

  使用词汇表的主要步骤是:

  1.创建词汇表文件(比如文本文件,每一行都是“account账户”这样的形式。2.使用Cloud Translation API创建词汇表资源3.指定请求翻译时要使用的词汇表一个项目可以有多个词汇表。 您可以获得可用词汇表的列表,并且可以删除不再需要的词汇表。

  参考:https://cloud.google.com/translate/docs/advanced/glossary#format-glossary

  参考:https://cloud.google.com/translate/docs/setup

  小疑问:Q:请问是否需要FQ才能使用google API 翻译?A:不需要。

  七、翻译效果在对代码进行翻译的时候,对code、a标签内的代码可以保留不翻译。但是对于blockquote标签内的代码,还是翻译了,所以还是不符合我的要求。解决方案:将blockquote替换为code。

  八、如何在linux上运行加入以下代码,并将json放到相同目录就可以了。

  九、其他问题(一)Updated on Sep-21写这文章的时候是3月份,半年过去了,要使用google 翻译的时候,发错它又不能用了。运行implicit函数的时候,并不报错,不过运行最终的代码报以下错误:

  File "C:UsersKevinAnaconda3libsite-packagesgoogleauth ransport equests.py", line 189, in __call__six.raise_from(new_exc, caught_exc)File "", line 3, in raise_fromgoogle.auth.exceptions.TransportError: HTTPSConnectionPool(host='oauth2.googleapis.com', port=443): Max retries exceeded with url: /token (Caused by NewConnectionError(': Failed to establish a new connection: [WinError 10060] A connection attemptfailed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond'))

  有人在这里问:https://pythonrepo.com/repo/googleapis-google-auth-library-python-python-implementing-authentications-schemes,可是看了之后还是没有找到解决方案。

  参考:https://www.youtube.com/watch?v=ocUZgSUO-4I,重新操作了一次,还是不行。

  在西数服务器上运行,还是不行。

  在国外服务器上运行,结果报以下的错误:

  google.api_core.exceptions.Forbidden: 403 POST https://translation.googleapis.com/language/translate/v2?prettyPrint=false: User Rate Limit Exceeded

  打开上面的网址,得到:

  {"error": {"code": 403,"message": "The request is missing a valid API key.","errors": [{"message": "The request is missing a valid API key.","domain": "global","reason": "forbidden"}],"status": "PERMISSION_DENIED"}}

  然后我进入到gcp console,搜索"translate",然后点那个translate模块,提示我激活我的账户,点"active",然后google 翻译就可以在国外服务器上用了。

  可是本地还是不行,报之前同样的错误,应该是富墙的原因。

  (二)Sep-19-2022运行的时候报错:

  google.api_core.exceptions.BadRequest: 400 POST https://translation.googleapis.com/language/translate/v2?prettyPrint=false: Required Text

  访问报错中出现的网站,同样是显示api key的问题:

  然后登陆:https://console.cloud.google.com/apis/credentials?project=stately-furnace-307600发现我的API key前面有一个感叹号,显示:This API key is unrestricted. To prevent unauthorized use and quota theft, restrict your key to limit how it can be used.

本站资源均来自互联网或会员发布,如果不小心侵犯了您的权益请与我们联系。我们将立即删除!谢谢!