You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过API动态获取AWS Translate支持的语言列表以验证源语言兼容性?

解决AWS Translate动态获取支持语言列表的问题

嘿,我刚好能帮到你!其实AWS Translate确实提供了一个专门的API方法来获取支持的语言列表——list_languages(),这正是你需要的动态方案,不用再硬编码语言列表啦。

正确的代码实现

你只需要把代码里的<SomeMethod>替换成list_languages(),然后从返回结果中提取所有支持的语言代码即可。下面是修改后的完整代码:

import boto3
def translateUserComment(source_language):
    try:
        # 初始化Translate客户端(记得替换成你的实际区域)
        translate = boto3.client(service_name='translate', region_name='your-region', use_ssl=True)
        
        # 调用API获取支持的语言列表
        response = translate.list_languages()
        
        # 提取所有支持的语言代码,生成比对用的列表
        languages_supported = [lang['LanguageCode'] for lang in response['Languages']]
        
        if source_language in languages_supported:
            result = translate.translate_text(
                Text="Hello, World", 
                SourceLanguageCode=source_language, 
                TargetLanguageCode="en"
            )
            print('TranslatedText: ' + result.get('TranslatedText'))
            print('SourceLanguageCode: ' + result.get('SourceLanguageCode'))
            print('TargetLanguageCode: ' + result.get('TargetLanguageCode'))
        else:
            print("The source language is not supported by AWS Translate")
    except Exception as e:
        print(f"An error occurred: {str(e)}")

关键细节说明

  • list_languages()方法返回的响应里,Languages字段是一个数组,每个元素包含LanguageCode(比如zhfr这类标准代码)和LanguageName(对应语言的全称)。我们通过列表推导式提取所有LanguageCode,用来和用户传入的源语言代码比对。
  • 如果需要获取特定语言的名称展示(比如用英文显示所有支持语言的名称),可以给list_languages()加上TargetLanguageCode参数,比如translate.list_languages(TargetLanguageCode="en")
  • 我额外加上了try-except块来捕获可能的API异常(比如权限配置错误、区域填写错误等),让代码更健壮。

这样你就能动态获取AWS Translate当前支持的所有语言,不用再担心硬编码列表过时的问题啦!

内容的提问来源于stack exchange,提问作者Rishabh Tiwari

火山引擎 最新活动