📅  最后修改于: 2020-11-11 05:02:04             🧑  作者: Mango
国际化(i18n)是规划和实施产品和服务的过程,以便可以轻松地将其适应特定的本地语言和文化,这一过程称为本地化。国际化过程称为翻译或本地化支持。
国际化缩写为i18n,因为该词以字母“ i”开头并以“ n”结尾,并且第一个i和最后一个n之间有18个字符。
Struts2通过以下位置的资源包,拦截器和标签库提供本地化,即国际化(i18n)支持-
UI标签
消息和错误。
在动作课中。
Struts2使用资源包为Web应用程序的用户提供多种语言和区域设置选项。您无需担心用不同语言编写页面。您要做的就是为所需的每种语言创建一个资源包。资源束将包含标题,消息和其他以您的用户语言显示的文本。资源束是包含应用程序默认语言的键/值对的文件。
资源文件的最简单命名格式是-
bundlename_language_country.properties
在这里, bundlename可以是ActionClass,Interface,SuperClass,Model,Package,Global资源属性。下一部分language_country表示国家/地区语言环境,例如,西班牙(西班牙)语言环境由es_ES表示,英语(美国)语言环境由en_US表示,等等。您可以跳过可选的国家/地区部分。
当您通过消息元素的键引用消息元素时,Struts框架将按以下顺序搜索相应的消息束-
要使用多种语言开发应用程序,您应该维护与这些语言/语言环境相对应的多个属性文件,并根据键/值对定义所有内容。
例如,如果要为美国英语(默认),西班牙语和法语开发应用程序,则必须创建三个属性文件。在这里,我将仅使用global.properties文件,也可以使用不同的属性文件来分隔不同类型的消息。
global.properties-默认情况下将应用英语(美国)
global_fr.properties-这将用于Franch语言环境。
global_es.properties-这将用于西班牙语语言环境。
有多种访问消息资源的方法,包括getText,文本标记,UI标记的键属性和i18n标记。让我们简要地看到他们-
要显示i18n文本,请在property标签或任何其他标签(如UI标签)中使用getText调用,如下所示:
文本标签从默认资源包即struts.properties中检索消息。
i18n标记将任意资源束压入值堆栈。 i18n标签范围内的其他标签可以显示来自该资源束的消息-
大多数UI标签的key属性可用于从资源包生成消息-
让我们的目标是从上一章以多种语言创建index.jsp 。同一文件将被写入如下-
我们将创建success.jsp文件,如果定义的操作返回SUCCESS ,则将调用该文件。
Success
在这里,我们需要创建以下两个动作。 (a)第一个操作a是照顾语言环境,并以不同的语言显示相同的index.jsp文件。(b)另一个操作是照顾提交表单本身。这两个动作都将返回SUCCESS,但是我们将基于返回值执行不同的动作,因为这两个动作的目的都不同
package com.tutorialspoint.struts2;
import com.opensymphony.xwork2.ActionSupport;
public class Locale extends ActionSupport {
public String execute() {
return SUCCESS;
}
}
package com.tutorialspoint.struts2;
import com.opensymphony.xwork2.ActionSupport;
public class Employee extends ActionSupport{
private String name;
private int age;
public String execute() {
return SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
现在,让我们创建以下三个global.properties文件,并将其放入CLASSPATH中:
global.name = Name
global.age = Age
global.submit = Submit
global.heading = Select Locale
global.success = Successfully authenticated
global.name = Nom d'utilisateur
global.age = l'âge
global.submit = Soumettre des
global.heading = Sé lectionnez Local
global.success = Authentifi é avec succès
global.name = Nombre de usuario
global.age = Edad
global.submit = Presentar
global.heading = seleccionar la configuracion regional
global.success = Autenticado correctamente
我们将通过以下两个操作创建struts.xml :
/index.jsp
/success.jsp
/index.jsp
以下是web.xml文件的内容-
Struts 2
index.jsp
struts2
org.apache.struts2.dispatcher.FilterDispatcher
struts2
/*
现在,右键单击项目名称,然后单击导出> WAR文件以创建War文件。然后,将此WAR部署在Tomcat的webapps目录中。最后,启动Tomcat服务器并尝试访问URL http:// localhost:8080 / HelloWorldStruts2 / index.jsp 。这将产生以下屏幕-
现在选择任何一种语言,假设我们选择西班牙语,它将显示以下结果:
您也可以尝试法语。最后,当我们使用西班牙语时,让我们尝试单击Submit按钮,它将显示以下屏幕-
恭喜,您现在拥有一个多语言的网页,您可以在全球范围内启动您的网站。