Maison > Java > javaDidacticiel > Comment Java Servlet prend-il en charge l'internationalisation ?

Comment Java Servlet prend-il en charge l'internationalisation ?

PHPz
Libérer: 2024-04-16 14:06:02
original
612 Les gens l'ont consulté

Dans Java Servlet, l'internationalisation est réalisée à l'aide de groupes de ressources internationalisés et de classes Locale. Les étapes spécifiques sont les suivantes : Créer des groupes de ressources internationalisés (fichiers .properties) pour stocker respectivement différentes langues (code _langue) et pays (code _pays). . texte traduit. Utilisez la classe Locale pour obtenir les paramètres régionaux actuels. Chargez le groupe de ressources correct via ResourceBundle.getBundle. Utilisez bundle.getString pour obtenir le texte traduit de la clé correspondante. Définissez les paramètres régionaux par défaut via Locale.setDefault. Utilisez request.getLocale pour obtenir les paramètres régionaux demandés. Utilisez des expressions EL pour afficher le texte traduit dans une vue.

Java Servlet如何支持国际化?

Comment prendre en charge l'internationalisation dans les servlets Java

Introduction

L'internationalisation est le processus consistant à faire en sorte qu'une application prenne en charge plusieurs langues et cultures. Dans les servlets Java, l'internationalisation est implémentée à l'aide de regroupements de ressources internationalisés et de la classe Locale. Locale 类来实现。

国际化资源束

国际化资源束是一组翻译好的字符串,用于不同语言的文本。它们以 .properties 文件的形式存储,文件名遵循以下格式:[基本文件名]_[语言代码]_[国家代码].properties。例如,一个包含英文文本的资源束可以命名为 messages_en_GB.properties

创建资源束

要创建一个资源束,请按照以下步骤操作:

  1. 创建一个 .properties 文件。
  2. 使用以下语法为每个字符串添加键值对:
KEY=VALUE
Copier après la connexion
  1. 为不同的语言和国家创建额外的资源束,使用适当的文件名。

实例

下面是一个包含英语和西班牙语文本的资源束示例:

// messages_en_GB.properties
welcome=Welcome
username=Username

// messages_es_ES.properties
welcome=Bienvenido
username=Nombre de usuario
Copier après la connexion

使用 Locale

Locale 类表示特定语言和国家的设置。它用于从资源束中获取正确翻译的字符串。

读取资源束

要读取资源束,请使用以下代码:

ResourceBundle bundle = ResourceBundle.getBundle("messages", Locale.getDefault());
Copier après la connexion

这将加载与当前 Locale 匹配的资源束。

获取翻译的字符串

要获取翻译的字符串,请使用以下代码:

String welcomeText = bundle.getString("welcome");
Copier après la connexion

这将检索与指定键对应的翻译的字符串。

实战案例

1. Servlet 初始化

在 Servlet 初始化方法中,我们可以设置默认 Locale

@Override
public void init() {
    Locale defaultLocale = Locale.getDefault();
    Locale.setDefault(defaultLocale);
}
Copier après la connexion

2. 响应请求

在响应请求时,我们可以根据请求的 Locale

Ensemble de ressources internationalisées

L'ensemble de ressources internationalisées est un ensemble de chaînes traduites pour du texte dans différentes langues. Ils sont stockés sous forme de fichiers .properties dont les noms de fichiers suivent le format : [nom du fichier de base]_[code de langue]_[code du pays].properties. Par exemple, un ensemble de ressources contenant du texte anglais pourrait être nommé messages_en_GB.properties.

Création d'un ensemble de ressources

🎜🎜Pour créer un ensemble de ressources, suivez ces étapes : 🎜
  1. Créez un fichier .properties.
  2. Ajoutez des paires clé-valeur pour chaque chaîne en utilisant la syntaxe suivante :
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
    ResourceBundle bundle = ResourceBundle.getBundle("messages", request.getLocale());
    request.setAttribute("welcomeText", bundle.getString("welcome"));
}
Copier après la connexion
  1. Créez des ressources supplémentaires pour différentes langues et pays Regroupez en utilisant les noms de fichiers appropriés.
🎜🎜Instances🎜🎜🎜Voici un exemple d'un ensemble de ressources contenant du texte en anglais et en espagnol : 🎜
<h1>${welcomeText}</h1>
Copier après la connexion
🎜🎜Utilisation de la classe Locale 🎜🎜🎜Locale représente les paramètres spécifiques à la langue et au pays. Il est utilisé pour obtenir des chaînes correctement traduites à partir de groupes de ressources. 🎜🎜🎜Lire le bundle de ressources🎜🎜🎜Pour lire un bundle de ressources, utilisez le code suivant : 🎜rrreee🎜Cela chargera le bundle de ressources correspondant au <code>Locale actuel. 🎜🎜🎜Obtenir la chaîne traduite🎜🎜🎜Pour obtenir la chaîne traduite, utilisez le code suivant : 🎜rrreee🎜Cela récupérera la chaîne traduite correspondant à la clé spécifiée. 🎜🎜🎜Cas pratique🎜🎜🎜🎜1. Initialisation du servlet🎜🎜🎜Dans la méthode d'initialisation du servlet, nous pouvons définir le Locale par défaut : 🎜rrreee🎜🎜2 Répondre à la demande🎜🎜🎜Quand. en répondant à la requête, nous pouvons obtenir la chaîne traduite selon le Locale demandé : 🎜rrreee🎜🎜3. Vue d'affichage 🎜🎜🎜Dans la vue JSP, nous pouvons utiliser des expressions EL pour afficher la chaîne traduite. : 🎜rrreee 🎜Cela affichera le texte "Bienvenue" dans différentes langues. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal