Создание интернационализации приложения с использованием тега jstl - PullRequest
0 голосов
/ 06 мая 2011

Я пытаюсь интернационализировать свое приложение, используя тег JSTL в JSP. Моя проблема в том, что содержимое файла свойств не отображается в пользовательском интерфейсе.

КОД JSP

<code><%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
This Example demonstrates the basic JSTL formating tags:
<br/><br/>
Locale from client:

<b><c:out value="${pageContext.request.locale}"/></b><br/>

<fmt:setBundle basename="ApplicationResources" var="mybundle"/>
<fmt:message key="welcome.message" bundle="${mybundle}">
   <fmt:param value="${param.uname}"></fmt:param>
</fmt:message>
<b>Now testing &lt;fmt:setLocale&gt;tag:</b><br>
Creating a ResourceBundle with client locale and setting it to <i>mybundle1</i>
variable.<br>
<fmt:setBundle basename="ApplicationResources" var="mybundle1"/>
Setting the locale to<i>it</i>(italian).<br/>
<fmt:setLocale value="it"/>
Creating a ResourceBundle with <i>it</i>(italian) locale and setting it to <i>mybundle2</i> variable.<br><br>
<fmt:setBundle basename="ApplicationResources" var="mybundle2"/>
<b>Message using <i>mybundle1</i>:</b><br>
<pre>
 <fmt:message bundle="${mybundle1}" key="welcome.message">

 </fmt:message>

Сообщение с использованием mybundle2 :
<fmt:message bundle="${mybundle2}" key="welcome.message">

</fmt:message>

Выводится:

This Example demonstrates the basic JSTL formating tags:

Locale from client: en_US
???welcome.message??? Now testing <fmt:setLocale>tag:
Creating a ResourceBundle with client locale and setting it to mybundle1 variable.
Setting the locale toit(italian).
Creating a ResourceBundle with it(italian) locale and setting it to mybundle2 variable.

Message using mybundle1:

 ???welcome.message???


Message using mybundle2:

???welcome.message???

1 Ответ

1 голос
/ 06 мая 2011

Я считаю, что это то, с чего нам нужно начать. Создайте два файла с именем:

  1. ApplicationResources.properties
  2. ApplicationResources_it.properties

Оба должны содержать (как минимум) аналогичную запись:

welcome.message=Hello,{0}

Удалите эти ненужные объявления:

<fmt:setBundle basename="ApplicationResources" var="mybundle1"/>
<fmt:setBundle basename="ApplicationResources" var="mybundle2"/>

Переместите <fmt:setLocale value="it"/> в начало своей страницы. В любом случае он задаст локаль для всей страницы, я не думаю, что есть способ смешивать языки (слава Богу).

...