1. Nommer des fichiers de ressources
Le format de dénomination des fichiers de ressources internationales est le suivant:
Basename_Language_country.properties Basename_Language.properties Basename.Properties
où le nom de base est le nom de base du fichier de ressources, de la langue et du pays doit être la langue et le pays soutenus par Java. Les codes linguistiques et pays qui obtiennent le support Java sont les suivants:
Locale [] LOCALES = LOCALE.GETAVAILABLELOCALES (); pour (paramètres régionaux: locales) {System.out.println ("country:" + locale.getcountry () + ", langage:" + locale.getLanguage ()); }2. Configuration et acquisition de fichiers de ressources
Créer un nouveau fichier de ressources. Dans un environnement chinois, la valeur de valeur dans le fichier de ressources doit être convertie ASCII. Vous pouvez entrer natif2ascii après avoir coulé. De plus, cet article utilise le plug-in Fichier d'attribut Eclipse, il est donc affiché directement en chinois. Le fichier de propriétés est configuré comme suit:
info_en_us.properties
username = zhangsaninfo_zh_cn.propertiesUsername = zhangsaninfo_zh.propertiesUsername = li si mot de passe = lisiinfo.propertiesUsername = wangwu mot de passe = wangwueMail = Mailbox
De plus, si vous avez besoin de lire la valeur dans le fichier Propriétés, vous devez configurer les constantes dans le fichier Struts-Config.xml.
<! - Utilisez le nom du fichier de ressources, où la valeur de valeur représente le nom de base du fichier de ressource -> <constante name = "strut.custom.i18n.resources" value = "info"> </18
La façon d'obtenir des fichiers de ressources sur la page consiste à utiliser la balise de Struts <s: text />, comme indiqué ci-dessous:
<! - Le fichier de ressources obtient la valeur de clé -> <s: text name = "username" /> <s: text name = "password" /> <s: text name = "e-mail" />
De plus, si vous obtenez la valeur clé dans le formulaire de formulaire, la méthode est la suivante:
<! - où la valeur de clé est la valeur clé dans le fichier de ressources, et la fonction consiste à ajouter un nom d'étiquette à la zone d'entrée, qui est la même que la valeur d'attribut de l'étiquette. Cependant, dans les constantes, la valeur clé ne peut pas être obtenue à partir du fichier d'attribut. -> <s: textfield name = "login.userName" key = "username"> </ s: textfield>
Notez également que lorsque la constante <constante name = "strut.ui.theme" value = "simple" /> est utilisée, la valeur de clé dans <s: textfield /> ne peut pas obtenir la valeur correspondante à partir du fichier d'attribut.
La page finale montre les résultats comme suit:
À partir des fichiers de configuration ci-dessus, nous pouvons voir la source des valeurs de ces trois valeurs. À partir de cela, nous pouvons voir que l'ordre de recherche du fichier de ressources est le suivant:
Tout d'abord, recherchez la valeur clé pertinente de Basename_Language_Country.Properties. Sinon, recherchez la valeur clé pertinente dans Basename_Language.Properties. Sinon, recherchez la valeur clé pertinente dans Basename.Properties. Sinon, recherchez la valeur clé pertinente. Sinon, il sera affiché sous forme de nom.
3. Utilisation des espaces réservés dans les fichiers d'attribut
Le contenu de configuration du fichier Properties est le suivant:
nom d'utilisateur = Zhang San, {0}, {1}
Utilisez la balise <s: param> valeur </ s: param> pour passer les paramètres dans jsp.
<s: text name = "username"> <s: param> bonjour </ s: param> <s: param> bienvenue! </ s: param> </ s: text>
4. Fichiers de ressources d'application en action
Pour utiliser des fichiers de ressources en action, vous devez hériter de la classe ActionSupport. La classe ActionSupport implémente les deux interfaces: TextProvider et LocalProvider. Le TextProvider fournit une méthode pour obtenir la méthode GetText () de valeur de fichier de ressource, tandis que l'interface localProvider n'a qu'une seule méthode getlocale () pour obtenir les paramètres régionaux.
Modifiez le fichier de configuration info_zh_cn.properties:
username = zhang san, {0}, {1} usernameError = Le nom d'utilisateur ne peut pas être vide! Veuillez confirmer!En action, la méthode d'obtention du fichier de propriété est la suivante:
this.getText ("usernameerror");Utilisez les espaces réservés en action pour fonctionner, le code est le suivant:
this.getText ("nom d'utilisateur", new String [] {"Hello", "bienvenue"});5. Fichiers de ressources à l'échelle du package
L'action sous ce package et le sous-package peuvent accéder au fichier de ressources. Le placement est sous un certain package, et le format de dénomination est: package_language_country.properties. Où le package est un format fixe. Le package de fichiers de configuration_zh_cn.properties est le suivant:
nom d'utilisateur = nom d'utilisateur sous la portée du package
Dans l'action ci-dessous le package, vous pouvez utiliser GetText ("nom d'utilisateur") pour l'obtenir.
6. Fichiers de ressources dans le cadre de l'action
Vous pouvez spécifier un fichier de propriété pour une action distincte et la placer dans un répertoire du même niveau qu'une action. Le format de nom est
ActionName_Language_country.properties
.
Configurez le fichier de propriétés de la portée d'action:
nom d'utilisateur = nom d'utilisateur dans la gamme d'action
La méthode getText ("nom d'utilisateur") est également utilisée dans l'action pour obtenir la valeur.
7. L'ordre de chargement des fichiers de ressources
Pour l'utilisation de la valeur getText (clé) pour l'action, lorsqu'il y a les deux fichiers de propriété dans la portée d'action, les fichiers de propriété dans la portée du package et les fichiers de propriété globale, l'ordre de chargement est le suivant:
Tout d'abord, si la valeur de clé existe dans le fichier d'attribut dans l'action spécifiée. S'il existe, la valeur sera prise. S'il n'existe pas, recherchez si le fichier d'attribut de plage de package avec la valeur de clé spécifiée existe dans le package de niveau supérieur de l'action actuelle. S'il n'existe pas, continuez à rechercher dans le package de niveau précédent. S'il n'a pas été trouvé, recherchez si la valeur de clé spécifiée existe dans le fichier d'attribut global. Si la valeur de clé spécifiée existe, la valeur correspondant à la valeur de clé est supprimée. S'il n'existe pas, la valeur par défaut est la valeur clé.
De plus, lorsqu'il existe plusieurs fichiers de ressources dans le fichier d'attribut global, vous devez rechercher dans l'ordre de Basename_Language_Country, Basename_Language et Basename.
8. Obtenez des fichiers de ressources sur la page
(1) Utilisez <S: i18n /> pour accéder à un fichier de ressources.
Le code est le suivant:
<! - Utilisez la balise i18n pour obtenir le fichier d'attribut -> <! - Obtenez le fichier de ressources dans la portée du package -> <s: i18n name = "com / struts / pack name = "com / struts / service / loginService"> <s: text name = "username"> </ s: text> </ s: i18n>
(2) Utilisation de <fmt />
JSTL comprend des balises d'internationalisation et de formatage. L'utilisation de balises d'internationalisation permet à une page JSP de sortir des expressions de page dans différentes langues selon la zone où se trouve le visiteur. Ici, vous devez utiliser Maven pour ajouter des packages JAR de dépendance. Le fichier de configuration est le suivant:
<! - Présentation de la bibliothèque de balises JSTL -> <dependency> <proupId> JSTL </rom grouped> <ArtifACTID> JSTL </RIFACTID> <DERVIÈRE> 1.2 </DERNIERSE> </DENDENCENCE>
Utilisez la balise FMT sur la page JSP et le code d'application est le suivant:
<! - Utilisation de la balise JSTL FMT -> <! - La définition des paramètres régionaux écrasera les plaintes transmises par le client -> <fmt: setLocale Value = "ZH_CN" scope = "request" /> <! - Chargez un ensemble de ressources et enregistrez-le dans la variable EL. Basename est le nom de base. Si c'est dans la portée du package, c'est com.struts.package, et sous la portée de l'action, c'est com.struts.service.loginservice -> <fmt: setbundle basename = "info" scope = " <fmt: param value = "hello" /> <fmt: param value = "bienvenue" /> </ fmt: message> <br/> <! - FMT: Bundle définit un ensemble de ressources qui n'est accessible que dans le boddle body -> <! - Fichier de ressources dans la portée du pack </ fmt: bundle> <! - Fichier de ressources dans la portée d'action -> <fmt: bundle basename = "com.struts.service.loginservice"> <fmt: message key = "username" /> </ fmt: bundle>