我在表格中拥有所有的资源捆绑值,并按照要求进行了格式设置。我必须根据用户选择在页面顶部的下拉菜单中更改网站中的语言。如果我使用语言代码作为en_US,那么它的工作正常。如果我使用en-Us作为语言代码,那么它不起作用。可能是什么问题。遵循什么是正确的?为en-US和en_US创建语言环境有什么区别?
22
A
回答
17
“en”是由ISO 639指定的语言代码,而美国是3166
在Java中指定的国家代码,Locale对象识别语言languageCode_countryCode(如EN_US),而不是为languageCode- countryCode。
21
“en-US”是一个IETF language tag。虽然Java'a Locale类明显基于IETF语言标记,但在将语言代码与国家代码(以及变体)分开时,它使用下划线代替连字符,因此在等效的Locale
上调用toString()
会给您en_US
。
从Java 7开始,您可以使用Locale.forLanguageTag(String)
和toLanguageTag()
在语言标记和Locale
对象之间进行转换。
将字符串转换为Locale
对象时,通过分割连字符和下划线上的组件,降低第一个组件(语言代码)和上方第二个组件(国家代码)来标准化是一个好主意。
6
或者你可以使用 Locale us = Locale.forLanguageTag("en-US")
和us.toLanguageTag()
,这将为你做转换,而不必创建你自己的容易出错的实现。
1
从Java8开始, 应使用语言标记“en-US”来完成区域设置的初始化。Locale.forLanguageTag(“en-US”)。toString();返回输出:en_US
Locale.forLanguageTag(“en_US”)不会创建所需的语言环境。它将默认为系统区域设置。 Locale.forLanguageTag(“en_US”)。toString()返回null
相关问题
- 1. 自然语言和编程语言在语法环境中有什么区别?
- 2. Java:sv和sv_SE语言环境有什么区别?
- 3. Postgres上的C和Posix语言环境有什么区别?
- 4. 为.NET构建静态和动态语言有什么区别?
- 5. 编程语言和脚本语言有什么区别?
- 6. fb like button显示allways作为语言环境en_US
- 7. 无法将db的语言环境更改为'en_US'
- 8. 每个android手机都有en_US语言环境吗?
- 9. 创建和新建有什么区别?
- 10. 编程语言的语法和语义有什么区别?
- 11. 为什么没有语言'en_US'的翻译?
- 12. 在JavaScript中断言库,测试框架和测试环境有什么区别?
- 13. Codeigniter系统/语言应用程序/语言有什么区别?
- 14. 有关Windows的系统和环境变量有什么区别?
- 15. Array.fill和for循环创建数组有什么区别
- 16. 缺少python所需的en_US语言环境
- 17. 为什么OSX上的语言环境没有更改?
- 18. 很热,在MAC OS X中获取格式为“en_US”的键盘布局语言和语言环境?
- 19. 在Sinatra中,生产和开发环境有什么区别?
- 20. Windows系统和PowerShell的环境变量有什么区别?
- 21. Vista环境变量中的%TMP%和%TEMP%有什么区别?
- 22. mulicore-multiprocessor环境中的主机和插槽有什么区别?
- 23. BFC和堆叠环境有什么区别?
- 24. 学习HTML和学习编程语言有什么区别?
- 25. C语言中ptr = my_array和ptr =&my_array [0] [0]有什么区别?
- 26. 脚本语言和模式匹配技术有什么区别?
- 27. .NET语言之间有什么区别和相似之处?
- 28. Racket(lisp编程语言)中的[]和()括号有什么区别?
- 29. Ruby语言中“.scan”和“.split”有什么区别?
- 30. Joomla组件语言文件“sys.ini”和“ini”有什么区别?
此答案是在java代码中做什么的最佳答案。对于其他语言/框架,并非如此。在使用不同约定的框架之间进行调用时,您需要了解需要知道转换的编码器的“pratfall”。建议使用您正在调用的框架的约定。当您调用另一个框架时,请提供进行转换的“代理”。为什么?它消除了需要知道被调用的框架使用不同的约定。贡献者只会“看到”使用那一个的惯例将会避免这种失败。 – DaBlick