翻译成相应语言的语言名称列表

时间:2013-04-29 18:42:14

标签: internationalization globalization icu

对于我的软件项目,我正在查找每个语言环境的语言显示名称列表,因为它们是用相应的语言编写的,例如pt_BR中的“Português”或jp_JP中的“日本语”。

2 个答案:

答案 0 :(得分:3)

您可以在CLDR(公共区域设置数据存储库)中找到此类数据,或使用软件中使用CLDR数据的ICU库。以下是葡萄牙语有关语言名称的数据excerpts

...
<language type="ps">pashto</language>
<language type="ps" alt="variant" draft="contributed">pushto</language>
<language type="pt">português</language>
<language type="pt_BR">português do Brasil</language>
<language type="pt_PT">português europeu</language>
<language type="qu">quíchua</language>
...

此外,您可以通过ICU查看the demo pages以查看信息的可用性。使用ICU根据特定区域设置获取特定语言的名称很简单。在这里,我引用了this answer

#include <unicode/locid.h>
#include <unicode/ustream.h>
#include <iostream>

int main()
{
  Locale l("pt_BR");
  UnicodeString result;
  std::cout <<   l.getDisplayName(l, result) << std::endl;
}

答案 1 :(得分:1)

你在哪个平台上?如果您使用的是Win32,则需要GetLocaleInfoEx LOCALE_SNATIVELANGUAGENAME。如果您使用.Net,则需要System.Globalization.CultureInfo对象上的NativeName属性。如果您使用的是WinRT,则需要Windows.Globalization.Language对象上的NativeName属性。