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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Spring MVC проблемы с локализацией 
V
    Опции темы
Aazmandius
Дата 24.11.2008, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


O_o
*


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

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



Недавно столкнулся с такой проблемой - веб-приложение на Spring 2.5, для локализации используется подобная конфигурация:

Код

    <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basenames">
            <list>
                <value>messages</value>
            </list>
        </property>
    </bean>
    
    <!-- Declare the Interceptor -->
    <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="locale"/>
    </bean>

    <!-- Declare the Resolver -->
    <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"/>


ну и на jsp выводится потом локализованное сообщение при помощи <spring:message /> тега. Все работает хорошо, но только если messages.properties сохранен в ISO-8859-1. Если сохранить его в UTF-8, то потом все перестает работать - вылетает эксепшн типа
Код

javax.servlet.jsp.JspTagException: No message found under code 'index.hello' for locale 'ru'.
    org.springframework.web.servlet.tags.MessageTag.doStartTagInternal(MessageTag.java:183)
    org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:77)
    org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspx_meth_spring_005fmessage_005f0(index_jsp.java:98)
    org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspService(index_jsp.java:69)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        ......


Вероятно где-то надо указать, что файлы properties лежат именно в юникоде и spring'у читать их надо исходя из этого... Кто сталкивался с подобным - подскажите пожалуйста.
PM WWW   Вверх
Asal
Дата 24.11.2008, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



попробуйте файл сохранить под именем messages_ru_RU.properties, a свой messageSource добавить
Код

<property name="defaultEncoding" value="UTF-8"/>

сомневаю что дело в этом, но вдруг smile


--------------------
PM MAIL ICQ   Вверх
Aazmandius
Дата 24.11.2008, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


O_o
*


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

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



Asal
к сожалению не сработало :( 

PM WWW   Вверх
AntonSaburov
Дата 24.11.2008, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

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



К сожалению и не получится - все и правда хранится.

При подготовке переводов следует помнить об одной тсранности: файлы со свойствами не кодируются в UTF-8. Вместо этого Unicode-символы свыiе 127 кодируются в виде последовательностей \uxxxx.
PM MAIL WWW ICQ   Вверх
Asal
Дата 24.11.2008, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(AntonSaburov @  24.11.2008,  13:37 Найти цитируемый пост)
При подготовке переводов следует помнить об одной тсранности: файлы со свойствами не кодируются в UTF-8. Вместо этого Unicode-символы свыiе 127 кодируются в виде последовательностей \uxxxx.

об этой фитче знаю  smile, но это скорее для swing приложений, для web такая фитча у меня не прокатывает - пишутся вопросики.
Я просто в текстовом редакторе сохранил этот файл (messages_ru_RU.properties) в UTF-8 и о чудо - все работает.


--------------------
PM MAIL ICQ   Вверх
necromancer
Дата 24.11.2008, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 317
Регистрация: 26.7.2006
Где: Москва

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



ага и добавлю, что для этой беды используется програмка из пакета JDK: native2ascii.exe
для большого проекта хранить локализованные сообщения в ини или проперти файлах - беда!
Используй БД и будет тебе счастье

PS AntonSaburov с возвращением =)


--------------------
С уважением, 
                 Виталий Смык
----------------------------------------------------------------------------------------------
SCJP, SCWCD, OCA
http://dev.maryno.net/video/
PM MAIL WWW ICQ Skype   Вверх
MisterCleric
Дата 24.11.2008, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

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



привет всем. 
Сталкивался с той же проблемой. 
Потом нашел настройку в IDE создавать properties в кодировке... Поставил UTF-8. На всех страницах тоже проставил ту же кодировку. Да еще есть и такое, что вызываю ресурсы с java-кода и тоже все правильно рисует. 
Правда при открытии простым редактором как правильно написал AntonSaburov на каждый символ пишет типа \uxxxx.


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
Samotnik
Дата 24.11.2008, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


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

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



всем рекомендую стандартную тулзу из  jdk native2ascii
перегнать в юникод, затем подгружать, как проперти файлы  стандартным образом  en_EN   ru_RU   и т.д.  smile 
PM MAIL   Вверх
Aazmandius
Дата 25.11.2008, 07:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


O_o
*


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

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



Буду использовать БД, так удобнее. Спасибо всем за разъяснения smile
PM WWW   Вверх
Tony
  Дата 13.2.2009, 02:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

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



Не хочу плодить новую тему. Так вот у меня вопрос, можно ли создавать messages в xml ? Типа:
Код

    <key name="myKey">Hi all </key>

Перерыл ку4у материала так и ненашёл решения, походу придётся писать свой велосипед. smile 


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
ivg
Дата 13.2.2009, 03:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


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

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



Цитата(Tony @  13.2.2009,  04:50 Найти цитируемый пост)
можно ли создавать messages в xml ?

Можно.
Код

<?xml version="1.0" encoding="UTF-8"?>
<properties>
    <entry key="myKey">Hi all </entry>
</properties>
 Правда в Spring'е, по видимому, будет работать только с org.springframework.context.support.ReloadableResourceBundleMessageSource.
PM MAIL   Вверх
Tony
Дата 13.2.2009, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

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



Спасибо ivg то 4то надо. После экспериментов с хмл и проперти, можно использовать проперти с UTF-8  smile без native2ascii, но я выберу хмл он мне роднее smile
Код

<bean name="messageSource"
        class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basename" value="WEB-INF/classes/messages"/>
        <property name="defaultEncoding" value="utf-8"/>
    </bean>


P.S. только изменити у проперти файла encoding на utf-8


Это сообщение отредактировал(а) Tony - 13.2.2009, 13:31


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
Asal
Дата 13.2.2009, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Tony @  13.2.2009,  13:27 Найти цитируемый пост)
можно использовать проперти с UTF-8

собсна что я и говорил  smile 


--------------------
PM MAIL ICQ   Вверх
Tony
  Дата 13.2.2009, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

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



Цитата(Asal @ 13.2.2009,  16:46)
Цитата(Tony @  13.2.2009,  13:27 Найти цитируемый пост)
можно использовать проперти с UTF-8

собсна что я и говорил  smile

Ну так надо было написать 4то это проперти применимо только к ReloadableResourceBundleMessageSource  smile 


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

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

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


 




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


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

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