gpt4 book ai didi

不支持语言环境的 Java I18n

转载 作者:搜寻专家 更新时间:2023-10-31 20:22:48 29 4
gpt4 key购买 nike

Java I18n 的能力是惊人的。支持locales完美运行:

Locale ar = new Locale("ar","SA");
System.out.println(ar.getDisplayName(ar));

输出:العربية (السعودية)

但是对于像Kazakh 语言这样不支持的区域设置,语言名称以相同的语言显示,将以 Enlish(标准)输出,如 Java 规范中所写。

Locale locale = new Locale("kk","KZ");
System.out.println(kk.getDisplayLanguage(kk));

输出:哈萨克语(哈萨克斯坦)

我正在尝试解决这个问题,最后的代码必须像这样输出:Қазазша (Қазазстан)

有人知道解决办法吗?

任何猜测(或与 Java SE 开发人员或了解算法的人联系的方式)我都会记录为答案;)

谢谢!

最佳答案

最明显的解决方案是自己提供翻译,即根据语言和国家/地区属性的值将语言环境外部化,并将它们放入 ListResourceBundle 实例中。如果这看起来工作量很大,那应该……其他值得检查的解决方案是使用 ICU .
它不会直接给你 Locale 显示名称,但你可以创建基于 Locale 的 ULocale 对象,这可能只是被翻译。
如果 ICU 技巧不起作用,您可能会被迫通过 CLDR语言列表并自己提供翻译。顺便提一句。塞尔维亚语有完全相同的问题,我不确定他们是否为 JDK7 修复了它...

关于不支持语言环境的 Java I18n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8323051/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com