|
|
|
i18n javascript
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста такую вещь - если сайт и в нём много переходов на другие страницы меню, то чтобы сделать i18n этого сайта, надо будет создавать теперь страницы эти все на англ языке, на укр языке и потом джаваскриптом или ангуларом переходы делать на соотв. эти языки при выборе языка в меню?т.е. другого же способа нет легче? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 19:25:36 |
|
||
|
i18n javascript
|
|||
|---|---|---|---|
|
#18+
Легче? Да это самый трудоемкий и сложный способ. Это не интернационализация, а хрен-знает-что-на-разных-языках. Прочти хотя бы в вики, что есть интернационализация (i18n): "технологические приёмы разработки, упрощающие адаптацию продукта". Упрощающие, а не усложняющие! И хотя интернационализация - штука несколько более комплексная, чем просто отображение сайта на нескольких языках, но все же сводится в основном именно к этому. Наиболее универсальный способ - не прописывать намертво строки, а обозначать их способом, определенным в системе. А при смене языка просто подставлять уже строки на другом языке. Так, для Java есть возможность использование библиотеки JSTL (почти стандарт), которая позволяет настраивать набор хранилищ на разных языках для предоставления интернационализации. Или же использовать более удобную и совершенную систему на основе Spring. На практике это тэги, где описано какое значение брать из хранилища в зависимости от текущей локали. Наверняка есть и другие, но эти однозначно наиболее популярные. Уверен, в других языках есть похожие реализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2013, 22:32:13 |
|
||
|
i18n javascript
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, а как это сделать "Наиболее универсальный способ - не прописывать намертво строки, а обозначать их способом, определенным в системе. А при смене языка просто подставлять уже строки на другом языке." Можете скинуть пару ссылок для примера..мне бы надо или на java или на javascript/angular ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 17:27:30 |
|
||
|
i18n javascript
|
|||
|---|---|---|---|
|
#18+
Если Java, то Spring/SpringMVC подходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 17:49:13 |
|
||
|
i18n javascript
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, да, у меня как раз MVC проект ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 17:52:31 |
|
||
|
i18n javascript
|
|||
|---|---|---|---|
|
#18+
Тема чуть не для этого раздела, но если чего - перенесу. В конфиг глобального контекста спринга добавляем Код: xml 1. 2. 3. 4. 5. 6. (3 последних проперти необязательны - я их в своем проекте использовал) В конфиг контекста сервлета добавляем Код: xml 1. 2. 3. 4. 5. 6. 7. 8. (либо добавляем бин в уже имеющуюся секцию интерцепторов) "language" - это параметр в HTTP-запросе, на который будет реагировать данный интерцептор при каждом запросе. Если этот параметр будет иметь локаль, отличную от текущей, локаль контекта поменяется. Бин localeResolver сохраняет текущую локаль в куках - при рестарте локаль пользователя будет прежней. На клиенте определяем таглиб: Код: xml 1. И для вставки локализованной строки используем тэги из указанного таглиба: Код: html 1. Ну, и само собой, определяем файлы пропертей (для моего конфига в папке /WEB-INF/i18n): messages_en.properties (прописываем параметры в стиле пропертей - key=value, к примеру page.section.key=Example) messages_ru.properties (page.section.key=Пример) и т.д. Только надо учитывать, что если файлы в кодировке UTF-8, то и хранить их так надо, к примеру guest=Гость. Последний эклипс, к примеру, поддерживает данную возможность - видеть локализованные строки, а хранить в виде \uXXXX. Ранее использовался плагин. При выборе языка на сервере поставил маппинг на метод без реализации - чтобы запрос поступил и спринг его увидел, но действий производить не надо. Хотя любой запрос, имеющий параметр language, будет влиять на язык отображения. На сервере для получения строк из этих проперти-файлов использую в сервисном слое: Код: java 1. 2. 3. 4. 5. 6. 7. 8. При изменении файлов пропертей проект не перекомпилится (если файлы, конечно, не ложить в папку classes) и согласно конфига каждые 2 секунды отслеживает изменения. Это удобный механизм для динамического обновления контекста страниц во время работы веб-сервера вплоть до динамического изменения строк на страницах через админку/вручную. По любому из классов или по тэгам из таглиба полно информации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 18:30:36 |
|
||
|
i18n javascript
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, спасибо за помощь,а вот каким образом сделана i18n например на этом сайте?и как это узнать http://www.passport-ua.org/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2013, 15:09:53 |
|
||
|
i18n javascript
|
|||
|---|---|---|---|
|
#18+
Понятия не имею. Но вероятнее всего, что на сервере не Java. Может, как раз так, как ты в первом посте писал. Кто ж их знает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2013, 16:49:51 |
|
||
|
i18n javascript
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, получается просмотр кода страницы или элемента это не показывает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2013, 17:03:58 |
|
||
|
i18n javascript
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, если я правильно вас понял мне в jsp страничке теперь надо все фразы из меню или текста заменить на <spring:message code="page.section.key"/> и в пропертях там уже для каждого языка написать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2013, 17:09:06 |
|
||
|
i18n javascript
|
|||
|---|---|---|---|
|
#18+
Совершенно верно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2013, 00:17:52 |
|
||
|
i18n javascript
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, ну вот я всё сделал так как вы написали и теперь когда запускаю проект- сайт, то вместо одного из пунктов меню, который я попробовал сделать на нескольких языках, отображается default text..это с этой оперы <spring:message code="welcome.springmvc" text="default text" /> почему такое может быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2013, 20:42:18 |
|
||
|
i18n javascript
|
|||
|---|---|---|---|
|
#18+
в jsp файле: <a class="navbar-brand" href=""><spring:message code="welcome.springmvc" text="default text"></spring:message></a> <ul class="dropdown-menu"> <li><a class="vid" href="?language=ru">RU</a></li> <li><a class="vid" href="#">UA</a></li> <li><a class="vid" href="?language=en">EN</a></li> </ul> в welcome_en.properties: welcome.springmvc = Main в welcome_en.properties: welcome.springmvc = Г\u043Bав\u043Dа\u044F (что означает Главная) в servlet-context.xml : Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2013, 21:08:39 |
|
||
|
i18n javascript
|
|||
|---|---|---|---|
|
#18+
Fyn2013ну вот я всё сделал так как вы написали ... А если снова перечитать? ;) Есть application context config, а есть servlet context config - это разные контексты, с разными видимостями (scope). Я даже акцентировал, что messageSource помещается в конфиг глобального контекста (applicationContext.xml или как он там), остальное - в servlet-context.xml. Тут человек задает такой же вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2013, 01:18:58 |
|
||
|
i18n javascript
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, но у меня нет applicationContext.xml в проекте, мне его создать самому тогда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2013, 11:24:12 |
|
||
|
i18n javascript
|
|||
|---|---|---|---|
|
#18+
Как это - нет? В web.xml нет примерно такой строки? Код: xml 1. 2. 3. 4. 5. 6. В нем определяются глобальные понятия для проекта - dataSource, sessionFactory, transactionManager, задаем mailSender если есть почта, подключаем task'и если их используем и т.д. В servlet-config.xml определяются настройки/бины для веб-запроса, обычно это резолверы и интерцепторы. Даже component-scan рекомендуется настроить только для сканирования контроллеров, тогда как глобальный контекст должен сканировать все. Если так получилось, что файл настройки глобального контекста у тебя не определен, пропиши его в web.xml так как я тебе выше написал и создай его. Пока в нем будет только определение messageSource. А так - читай доку и мануалы, у спринга эти темы (как, впрочем, и остальные) неплохо описаны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2013, 12:44:47 |
|
||
|
i18n javascript
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, есть это у меня в web.xml, только называется он у меня root-context.xml. Я вставил в файл root-context.xml это: <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="basename" value="/WEB-INF/views"/> <property name="defaultEncoding" value="UTF-8"/> <property name="cacheSeconds" value="2"/> <property name="fallbackToSystemLocale" value="false"/> </bean> где WEB-INF/views" - путь хранения jsp файлов, всё ж верно? но всё равно при запуске проекта фраза остаётся default text. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2013, 13:23:16 |
|
||
|
i18n javascript
|
|||
|---|---|---|---|
|
#18+
точнее там value="classpath:messages" или value="/WEB-INF/views/messages" не могу понять почему у меня не выходит(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2013, 14:25:03 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2128477]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
210ms |
get topic data: |
12ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 199ms |
| total: | 542ms |

| 0 / 0 |
