You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过langcodes包从显示名称获取精确语言对象?

如何用langcodes从显示名称获取精确语言对象

使用langcodes包时,如何从显示名称获取精确的语言对象?例如,langcodes.find("English (United Kingdom)")返回的是Language.make(language='en'),而非langcodes.get("en-GB")所返回的Language.make(language='en', territory='GB')。我希望用此来验证,比如判断"English (United Kingdom)"是否等同于en-GB。

  • 问题核心是langcodes.find()的设计逻辑:它默认只匹配最基础的语言标识,不会自动提取显示名称里的地区信息。要获取带地区的精确语言对象,改用langcodes.parse()方法即可,它能解析包含地区的自然语言名称:
    import langcodes
    # 解析带地区的显示名称
    parsed_lang = langcodes.parse("English (United Kingdom)")
    print(parsed_lang)  # 输出:Language.make(language='en', territory='GB')
    
  • 要验证是否等同于en-GB,直接做相等判断就行:
    target_lang = langcodes.get("en-GB")
    print(parsed_lang == target_lang)  # 输出:True
    
  • 额外说明:langcodes.parse()适合处理包含地区、变体等细节的语言名称,而langcodes.find()偏向模糊匹配基础语言,适合不确定具体地区的场景。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 21:38:13