如何通过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
相关产品推荐
相关产品推荐

