我留在印度(有超过20种语言)我正在尝试在网站上实现java-internationalization。
但在Locale.getAvailableLocales()中,本地语言不可用。在我的案例中是否可以实现国际化?
如果可能,字体会发生什么?我如何在客户端浏览器中加载正确的字体?
实现Struts或Spring的框架是什么?
答案 0 :(得分:1)
我不能自称是Java国际化方面的专家 - 我所有关心本地化的工作都可以追溯到我们必须手工完成的所有工作。
如果您不想这样做(现在并不比当时更难),您似乎仍然可以使用Java的自动化I18N服务。
似乎为了支持语言,数字格式等,这些都是针对尚未支持的语言环境,您必须创建一个对语言环境敏感的服务提供程序,这在6中变得更加容易
看起来好像是一个很好的教程here。
答案 1 :(得分:0)
我认为你在这里提出了多个问题,而且它们彼此正交。
对于Locale.getAvailableLocales()问题。如果内置语言环境不够,则可以创建更多语言环境。 locale对象只表示程序知道的语言环境,它与系统执行的无关 - 更具体地说,没有相应的语言环境对象并不意味着你不能支持语言环境。
对于字体,通常您将使用UTF-8作为i18n网站,因此只要您的内容类型和字符集设置正确,它就应该在客户端浏览器中正确呈现。
框架问题实际上取决于你想要完成什么,以及你想从中获得什么。
答案 2 :(得分:0)
我相信使用JDK时可以使用更多的语言环境而不是JRE。
答案 3 :(得分:0)
Locale.getAvailableLocales()
返回其LocalData安装在JRE的sun.text.resources包中的语言环境列表。
此列表可能对您无关紧要。目前,LocalData仅包含本地编号和日期格式信息。如果您没有任何特殊格式,您可以选择一个与您的格式相同的语言环境,例如“en_IN”。
Charset是另一个问题。如果本地化资源是Unicode,则全部设置。否则,您需要确保Java支持charset / encoding,以便它可以正确转换它。
不要担心字体。它与服务器无关。它可以在HTML或CSS中指定。只要浏览器支持这些字体,你就可以了。
Java本身已准备就绪,因此使用哪个框架无关紧要。 Struts为I18N(bean:message
)提供了taglib,但您也可以使用JSTL(fmt:message
)。