Struts - 本地化、国际化 (i18n)
-
简述
国际化 (i18n) 是规划和实施产品和服务的过程,以便它们可以轻松地适应特定的当地语言和文化,这一过程称为本地化。国际化过程称为翻译或本地化启用。国际化缩写 i18n 因为这个词以字母开头 “i” 并以 “n”,第一个 i 和最后一个 n 之间有 18 个字符。Struts2 通过以下位置的资源包、拦截器和标签库提供本地化,即国际化 (i18n) 支持 --
用户界面标签
-
消息和错误。
-
在动作类中。
-
-
资源包
Struts2 使用资源包为 Web 应用程序的用户提供多种语言和区域设置选项。您无需担心以不同语言编写页面。您所要做的就是为您想要的每种语言创建一个资源包。资源包将包含您的用户语言的标题、消息和其他文本。资源包是包含应用程序默认语言的键/值对的文件。资源文件最简单的命名格式是 -这里, bundlename可以是 ActionClass、Interface、SuperClass、Model、Package、全局资源属性。下一部分language_country 代表国家语言环境,例如,西班牙语(西班牙)语言环境由 es_ES 表示,英语(美国)语言环境由 en_US 等表示,您可以跳过国家/地区部分,这是可选的。当您通过键引用消息元素时,Struts 框架会按以下顺序搜索相应的消息包 -- ActionClass.properties
- Interface.properties
- SuperClass.properties
- model.properties
- package.properties
- struts.properties
- global.properties
要以多种语言开发应用程序,您应该维护与这些语言/区域设置相对应的多个属性文件,并根据键/值对定义所有内容。例如,如果要为美国英语(默认)、西班牙语和法语开发应用程序,则必须创建三个属性文件。在这里我将使用global.properties 文件,您还可以使用不同的属性文件来隔离不同类型的消息。-
global.properties − 默认情况下将应用英语(美国)
-
global_fr.properties - 这将用于法语语言环境。
-
global_es.properties - 这将用于西班牙语言环境。
-
访问消息
消息资源的访问方式有多种,包括getText、text标签、UI标签的key属性、i18n标签等。让我们简要地看看它们 -显示 i18n 文本,使用调用 getText 在属性标签或任何其他标签中,例如 UI 标签如下 -这 text tag 从默认资源包中检索消息,即 struts.properties这 i18n tag将任意资源包推送到值堆栈。i18n 标签范围内的其他标签可以显示来自该资源包的消息 -这 key 大多数 UI 标签的属性可用于从资源包生成消息 - -
本地化示例
让我们瞄准创造 index.jsp来自上一章的多种语言。相同的文件将被写入如下 -我们将创造 success.jsp 在定义的动作返回时将调用的文件 SUCCESS.在这里,我们需要创建以下两个操作。(a) 第一个动作 a 处理 Locale 并使用不同的语言显示相同的 index.jsp 文件 (b) 另一个动作是处理提交表单本身。这两个操作都会返回 SUCCESS,但是我们将根据返回值采取不同的操作,因为我们对这两个操作的目的不同采取行动照顾语言环境
提交表单的操作
现在让我们创建以下三个 global.properties 文件并放入 CLASSPATH −global.properties
global_fr.properties
global_es.properties
我们将创建我们的 struts.xml 有以下两个动作 -以下是内容 web.xml 文件 -现在,右键单击项目名称并单击 Export > WAR File创建一个战争文件。然后将此 WAR 部署到 Tomcat 的 webapps 目录中。最后,启动Tomcat服务器并尝试访问URLhttp://localhost:8080/HelloWorldStruts2/index.jsp. 这将产生以下屏幕 -现在选择任何一种语言,假设我们选择 Spanish,它将显示以下结果 -您也可以尝试使用法语。最后,让我们尝试点击Submit 当我们在西班牙语言环境中时,按钮将显示以下屏幕 -恭喜,现在您拥有了一个多语言网页,您可以在全球范围内发布您的网站。