Получить название языка с учетом его кода, и наоборот.

Как я могу получить английское название языка с учетом его двухбуквенного кода (см. ISO 639-1 и Список кодов ISO 639-1)?

en --> english
it --> italian

А как насчет другого?

spanish --> es
finnish --> fi

Конечно, возможный способ сделать это - загрузить файл, содержащий эту информацию, из Интернета (например, файл, который можно найти здесь), а затем прочитать его построчно, извлекая необходимую информацию. Однако мне было интересно, можно ли полагаться только на ОС (в моем случае - Ubuntu): она содержит информацию о локали, так что, я думаю, есть способ сделать это.

1 ответ

Если у вас установлен Perl, вы можете использовать основной модуль 'Locale::Langauge' для преобразования двухбуквенных языков в имя и наоборот.

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.

Другие вопросы по тегам