1

我想知道我是否可以使用Google Closure库来形成我的webapp的国际化和本地化需求。我试图找到关于这个主题的任何教程,但找不到任何教程,似乎在我自己尝试时卡住了。如何使用Google Closure I18n获取原生国家/地区名称?

我有兴趣获得国家的本地名称。但我不确定我应该如何使用goog.locale组件。看来,例如,goog.locale.getNativeCountryName('EE')总是返回'EE',而不是'Eesti',正如我所期望的那样。

goog.require('goog.locale'); 
... 
console.log(goog.locale.getNativeCountryName('EE')) // Outputs: 'EE' 

也许我错过了一些依赖?

编辑:摆弄了一下后,我发现,如果我使用et_EE而不是EE,我会得到预期的'Eesti'。但是,这似乎是错误的。 et_EE是一个语言环境代码,而不是国家代码,并且该函数显然需要一个国家代码......也许我仍然在做错什么?

+0

您使用的是模板语言呢? – lennel 2013-02-10 08:03:14

+0

对于每个语言环境,您可以将模板版本编译为JavaScript,然后编译该语言的版本。至少我们是这样做的。 – lennel 2013-02-10 08:09:18

+0

我没有使用模板语言。问题是我从哪里获得本地化语言和国家名称的数据? – ragulka 2013-02-11 09:04:53

回答

1

getNativeCountryName()接收语言代码(在这种情况下为et)而不是国家代码(EE)。见API docs

在其本土 语言返回提供语言代码的国名。

因此:

goog.require('goog.locale'); 
... 
console.log(goog.locale.getNativeCountryName('et')) // Should return 'Eesti' 
+0

是的,我应该更仔细地阅读文档。但是考虑到这一点,这个功能对我来说毫无用处,因为我试图为一个特定的国家,而不是语言的国家获取本地名称。 – ragulka 2013-11-27 15:36:51

+0

详细说明 - 文档具有误导性:他们说getNativeCountryName接受1个参数'countryCode' - “代码来查找国家/地区名称”,而函数描述为“返回所提供的语言代码的国家/地区名称” “。 – ragulka 2013-11-27 15:46:17

+0

@ragulka,是的。这显然是一个文档错误。为了获取特定国家的本地名称,为什么不使用'getLocalizedCountryName'? – Shervin 2013-11-29 18:01:33

相关问题