Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кодировка и интернационализация приложения 
V
    Опции темы
Samotnik
Дата 2.11.2007, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



Добрый день, есть задание:
Цитата

Изменить аппликацию использую возможности JSTL таким образом, чтобы приветственное сообщение выводилось на языке соответствующем локали браузера (или если таковая не поддерживается приложение на языке по умолчанию).

Есть jstl страница:
Код

<jsp:root version="2.0"
          xmlns:jsp="http://java.sun.com/JSP/Page"
          xmlns:c="http://java.sun.com/jsp/jstl/core">

    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
    <jsp:output doctype-root-element="html"
                doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
                doctype-system="http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>

    <jsp:directive.page contentType="text/html;charset=UTF-8"/>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Answer</title>
    </head>
    <body>

    <table>
        <tr>
            <td><c:out value="${fromServlet}"/>
                <c:out value="${MessageType}"/>
            </td>

            <td><c:out value="${fromServlet}"/>
                <c:out value="${MessageType}"/>
            </td>
            <td><c:out value="${fromServlet}"/>
                <c:out value="${MessageType}"/>
            </td>
        </tr>
        <tr>
            <td><c:out value="${fromServlet}"/>
                <c:out value="${MessageType}"/>
            </td>
            <td><c:out value="${fromServlet}"/>
                <c:out value="${MessageType}"/>
            </td>
            <td><c:out value="${fromServlet}"/>
                <c:out value="${MessageType}"/>
            </td>
        </tr>
        <tr>
            <td><c:out value="${fromServlet}"/>
                <c:out value="${MessageType}"/>
            </td>
            <td><c:out value="${fromServlet}"/>
                <c:out value="${MessageType}"/>
            </td>
            <td><c:out value="${fromServlet}"/>
                <c:out value="${MessageType}"/>
            </td>
        </tr>
    </table>

    </body>
    </html>
</jsp:root>

Не подскажите с чего начинать??
PM MAIL   Вверх
elkin
Дата 2.11.2007, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 16.9.2006

Репутация: нет
Всего: нет



Internationalization Tag Library 
Internationalization

Это сообщение отредактировал(а) elkin - 2.11.2007, 16:25
PM MAIL   Вверх
Samotnik
Дата 2.11.2007, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



elkin,  Ссылки у меня тоже есть, а что-нибудь по конкретнее, вашими словами, можно услышать (а лучше увидеть)   smile   
PM MAIL   Вверх
Zamuta
Дата 2.11.2007, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 18.1.2006

Репутация: 4
Всего: 6



Samotnikздесь  уже обсуждали. С примерами.


--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
elkin
Дата 2.11.2007, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 16.9.2006

Репутация: нет
Всего: нет



Вот самый простой пример.
Создаешь jsp:
Код

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<c:set var="lang" value="${pageContext.request.locale.language}"/>
<fmt:setLocale value="${lang}_${fn:toUpperCase(lang)}"/>
<fmt:setBundle basename="i18n.Messages" />
<html>
  <head>
      <title>Test</title>
  </head>
  <body>
  <fmt:message key="test" />    
  </body>
</html>

Создаешь пакет, в котором будут лежать файлы локализации.
Например, i18n. В нем создаешь файлы  Messages_en_EN.properties, Messages_ru_RU.properties, ...
Их содержимое:
Messages_en_EN.properties - 
Код

test=Test message!

Messages_ru_RU.properties - 
Код

test=Тестовое сообщение!

И все это запускаешь smile
PM MAIL   Вверх
Samotnik
Дата 5.11.2007, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



elkin,  СПС!!
Хорошо,  а как узнать, на какой язык нужно сообщение переводить (какой файл .properties  загружать) ???

PM MAIL   Вверх
Kangaroo
Дата 5.11.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 14
Всего: 104



Цитата(Samotnik @  5.11.2007,  14:41 Найти цитируемый пост)
Хорошо,  а как узнать, на какой язык нужно сообщение переводить (какой файл .properties  загружать) ???

А эта строка разве не делает этого?
Код

<c:set var="lang" value="${pageContext.request.locale.language}"/>



--------------------
Lost....
PM MAIL MSN   Вверх
Samotnik
Дата 5.11.2007, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



Kangaroo,  спс !! 
а что означает строчка  
Код

<fmt:setBundle basename="i18n.Messages" />



PM MAIL   Вверх
Kangaroo
Дата 5.11.2007, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 14
Всего: 104



Цитата(Samotnik @  5.11.2007,  15:27 Найти цитируемый пост)
а что означает строчка  

Разметка HTML
1:

<fmt:setBundle basename="i18n.Messages" />

Я думаю вот это:
Цитата(elkin @  2.11.2007,  17:37 Найти цитируемый пост)
Например, i18n. В нем создаешь файлы  Messages_en_EN.properties, Messages_ru_RU.properties, ...

То есть ты задаешь начало названий файлов - i18n.Messages_en_EN.properies.

А вообще надо просто пробовать! И выкладывать результаты сюда ) мне тоже интересно, просто времени на все не хватает.



--------------------
Lost....
PM MAIL MSN   Вверх
Samotnik
Дата 5.11.2007, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



elkin,  на ваш код, броузер мне выдает 
?????test??????
 smile 
Я вот не могу понять, каким образом .jspx     страница видит пакет i18n ?? 
PM MAIL   Вверх
Samotnik
Дата 5.11.2007, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



 smile 
Я не могу понять, почему это не работает?
Код

<c:set var="lang" value="${pageContext.request.locale.language}"/>
<fmt:setLocale value="${lang}_${fn:toUpperCase(lang)}"/>
<fmt:setBundle basename="i18n.Messages" />
    <html xmlns="http://www.w3.org/1999/xhtml">
    
       <table>
        <tr>
            <td><c:out value="${fromServlet}"/>
                <c:out value="${MessageType}"/>
            </td>

Выводит ???fromServlet???   Почему он не получает данные, кот записанны в fromServlet  smile 
PM MAIL   Вверх
Samotnik
Дата 5.11.2007, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



ВСЕ РАБОТАЕТ!!!!
Нужно было в .properties передать параметр дополнительный
Код

gm=Good Morning, {0}
gd=Good Day, {0}
gl=Good Lunch, {0}
ge=Good Evening, {0}
gn=Good night, {0}

а в .jspx вот такой не замысловатый код:
Код

<c:set var="lang" value="${pageContext.request.locale.language}"/>
<fmt:setLocale value="${lang}_${fn:toUpperCase(lang)}"/>
<fmt:setBundle basename="Messages" />
.....
 <fmt:message key="${keySender}">
        <fmt:param value="${name}"/>
    </fmt:message>

И вот и усе !!!!    smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0977 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.