如何基于IETF语言标签获取任意语言的对应语言名称
基于IETF语言标签获取对应本地化语言名称的方法
我需要一种基于IETF语言标签获取某一语言对应其他语言名称的方法。例如,我有一组IETF语言标签(en、fr、nl、de等),想要将它们映射为当前区域设置(如荷兰语)的语言显示名称:
en=>Engelsfr=>Fransnl=>Nederlandsde=>Duits
我已搜索NPM但未找到合适工具,优先希望获取JSON格式的列表,也可接受其他语言/格式。
解决方案
可以使用cldr-localenames-modern包实现该功能,该包提供了各语言对应的本地化语言名称数据。以下是具体实现代码:
import en from 'cldr-localenames-modern/main/en/languages.json'; import nl from 'cldr-localenames-modern/main/nl/languages.json'; const localeDisplayNames = { en: en.main.en.localeDisplayNames.languages, nl: nl.main.nl.localeDisplayNames.languages }; export function getLanguageDisplayName(language, locale) { // 优先使用目标区域设置的数据,不存在则回退到英文 const languages = localeDisplayNames[locale] ?? localeDisplayNames['en']; return languages[language]; }
内容的提问来源于stack exchange,提问作者Renaat De Muynck
相关产品推荐
相关产品推荐

