java国际化程序创建属性文件_如何使JavaWeb应用程序国际化?

对于基本的JSP/Servlet Web应用程序,基本方法将使用JSTL fmt塔格利布结合在一起资源束..资源包含键值对,其中键是常量,对于所有语言都是相同的,并且每种语言的值都不同。资源包通常是属性文件被ResourceBundleAPI但是,可以对其进行自定义,以便您可以从例如数据库加载键值对。

下面是一个示例,说明如何使用基于属性文件的资源包国际化Web应用程序的登录表单。创建以下文件并将其放入包中。com.example.i18n(在Maven的情况下,将它们放在包结构中src/main/resources).

text.properties(包含默认语言(通常为英语)中的键值对)login.label.username = Username

login.label.password = Password

login.button.submit = Sign in

text_nl.properties(含荷兰语)nl)键值对)login.label.username = Gebruikersnaam

login.label.password = Wachtwoord

login.button.submit = Inloggen

text_es.properties(含西班牙文(es)键值对)login.label.username = Nombre de usuario

login.label.password = Contraseña

login.button.submit = Acceder

资源包文件名应遵循以下模式name_ll_CC.properties..这个_ll部分应为小写。ISO 693-1语言代码。它是可选的,只有在_CC部分是存在的。这个_CC部分应为大写ISO 3166-1 Alpha-2国家代码。它是可选的,通常只用于区分特定国家的语言方言,例如美国英语 (_en_US)和英式英语 (_en_GB).

如果尚未完成,请安装JSTL。如果在Servlet2.5容器或更高版本(Tomcat6.0等)上运行,那么web.xml声明符合Servlet2.5规范,然后将Jstl-1.2.jar在webapp中/WEB-INF/lib文件夹。

创建以下示例JSP文件,并将其放入Web Content文件夹中。

login.jsp

JSP/JSTL i18n demo

English

Nederlands

Español

:

:

这个管理当前语言。如果语言是作为请求参数(通过语言下拉列表)提供的,那么它将被设置。否则,如果已经在会话中设置了语言,那么就坚持使用它。否则,请在请求头中使用用户提供的区域设置。

这个设置资源包的区域设置。这句话很重要以前这个.

这个根据资源包的基本名称(即完整的限定包名称)初始化资源包,直到使用唯一的名称而不使用_ll_CC说明者)。

这个通过指定的包键检索消息值。

这个通知搜索机器人页面使用的是什么语言,这样它就不会被标记为重复的内容(因此,对SEO有好处)。

当选择另一种语言时,语言下拉列表将立即由JavaScript提交,并使用新选择的语言刷新页面。

但是,您需要记住,在默认情况下,属性文件是使用ISO-8859-1字符编码读取的。您需要通过Unicode转义来转义它们。这可以使用jdk提供的native2ascii.exe工具。另见本文部分更多细节。

理论上的另一种选择是提供一个自定义的包。Control将这些文件作为UTF-8加载,但不幸的是,基本的JSTL不支持它fmt塔格利布。你需要用一个人的帮助来管理这一切Filter..有一些(MVC)框架可以更透明的方式处理这一问题,如JSF,请参见这篇文章.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值