首页 > 解决方案 > 获取给定代码的语言名称,反之亦然

问题描述

给定双字母代码(参见ISO 639-1ISO 639-1 代码列表),如何获取语言的英文名称?

en --> english
it --> italian

而反过来呢?

spanish --> es
finnish --> fi

当然,一种可能的方法是从 Internet 下载包含这些信息的文件(例如可以在此处找到的文件),然后逐行读取,提取您需要的信息。但是,我想知道是否可以仅依赖操作系统(在我的例子中是 Ubuntu):它包含有关语言环境的信息,所以我想有一种方法可以做到这一点。

标签: bashiso-639

解决方案


如果你安装了 Perl,你可以使用核心模块 'Locale::Langauge' 将 2 个字母语言转换为名称,反之亦然

perl -e 'use Locale::Language; print code2language("ar");'
Arabic

perl -MLocale::Language -e 'print language2code("French");'
fr

请参阅https://perldoc.perl.org/5.8.8/Locale/Language.html


推荐阅读