Arj*_*haw 0 java locale localization hybris backoffice
我目前使用6.0 version的的hybris。我们的项目完全基于Backoffice。之前我们为印度尼西亚语言环境配置了in_ID(languageISOcode_countryISOcode),并且工作正常,但是现在客户已要求像id_ID印度尼西亚语言环境一样进行语言环境设置。
请注意,in languageISOcode已弃用,而id是languageISOcode印度尼西亚的更新。
以下是我们的hybris中的代码片段:
final Locale locale = cockpitLocaleService.getCurrentLocale();
LOG.info("locale : " + locale); //Here I'm getting in_ID value of locale in all scenario
Run Code Online (Sandbox Code Playgroud)
它正在调用Java的Locale.class文件,如果我通过了,id_ID那么convertOldISOCodesmethod(inside Locale.class)也将转换id_ID为in_ID。
参见下面的代码:
import java.util.Locale;
Locale localeIndonesia = new Locale("id", "ID");
System.out.println(localeIndonesia); //printed in_ID
Run Code Online (Sandbox Code Playgroud)
您能否帮助我获得id_ID印度尼西亚的语言环境。
要么
如果这是Java中的错误,那么有没有办法在hybri中获取id_ID?
您可以使用以下代码:
Locale locale = new Locale("id", "ID");
System.out.print(locale.toLanguageTag().replace('-', '_')) // printed id_ID
Run Code Online (Sandbox Code Playgroud)
顺便说一句。它不是Java中的错误,而是向后兼容的“问题”。Java使用ISO 639的第一个版本。后来该标准已更新,并且一些代码已更新。Java被设计为完全向后兼容,因此作者决定不更新该代码。这就是为什么将“ id_ID”更改为“ in_ID”的原因。印度尼西亚语不是唯一以旧格式使用的代码。至少希伯来语和意第绪语也以旧形式使用。
+---------------------------------+
| Language | ISO 639 | ISO 3166 |
|------------|---------|----------|
| Indonesian | IN | ID |
| Hebrew | HE | IW |
| Yiddish | YI | JI |
+---------------------------------+
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1752 次 |
| 最近记录: |