|
|
|
Spring, Velocity, internationalization
|
|||
|---|---|---|---|
|
#18+
Подскажите как лучше реализовать многоязычность на сайте, где используется Spring MVC и Velocity. Я почитал про Spring internationalization, но не совсем понимаю смысла это использовать. Почему нельзя сделать несколько map'ов для каждого языка и использовать их. Какие преимущества, кто подскажет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2013, 22:06:24 |
|
||
|
Spring, Velocity, internationalization
|
|||
|---|---|---|---|
|
#18+
В том, что не нужно rdmнесколько map'ов для каждого языка i18n потому так и называется - интернационализация, - чтобы отображать контекст в нужной локали для единого пространства. То, о чем ты говоришь, это не интернационализация, а фактически создание набора сайтов в одном контесте - один сайт (набор страниц) под одну локаль. ИМХО, такой подход - удел ПэХаПэшников и сайтов 90-ых и начала нулевых. Кроме этого, интернациональность - это не только языки (хотя на них приходится львиная доля), но и способ отображения чисел, валют, дат, времени ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 04:52:56 |
|
||
|
Spring, Velocity, internationalization
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, А как лучше делать если есть страницы с русским контентом, который не запихнешь в properties файл? В базе хранить с указанием локали контента? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 06:37:11 |
|
||
|
Spring, Velocity, internationalization
|
|||
|---|---|---|---|
|
#18+
scymaksА как лучше делать если есть страницы с русским контентом, который не запихнешь в properties файл? запихивать)) все запихивают, а ты не можешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 09:48:28 |
|
||
|
Spring, Velocity, internationalization
|
|||
|---|---|---|---|
|
#18+
am_sasa, Ну вопрос не в том, запихуемо или нет. Вопрос в целесообразности хранения 1000 знакового текста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 10:19:19 |
|
||
|
Spring, Velocity, internationalization
|
|||
|---|---|---|---|
|
#18+
scymaksIDVsbruck, А как лучше делать если есть страницы с русским контентом, который не запихнешь в properties файл? В базе хранить с указанием локали контента? Контент естественно хранить в БД (имеется в виду редактируемый пользователем), а вот "статические" ресурсы, такие как названия кнопок, надписи и прочее - в properties-файлах. думаю вряд ли пользователи/модераторы и т.д. будут забивать несколько языков контента для разных локалей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 11:22:10 |
|
||
|
Spring, Velocity, internationalization
|
|||
|---|---|---|---|
|
#18+
Хочется отметить что интернационализация это не только текст. Но и куча картинок с текстом, да и layout, в целом. Так что если писать на plain html, то почему бы просто не держать все ресурсы под каждую локаль отдельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 11:25:13 |
|
||
|
Spring, Velocity, internationalization
|
|||
|---|---|---|---|
|
#18+
BlazkowiczХочется отметить что интернационализация это не только текст. Но и куча картинок с текстом, да и layout, в целом. Так что если писать на plain html, то почему бы просто не держать все ресурсы под каждую локаль отдельно. Определенно именно так, либо разбить по папкам, либо по префиксам-суффиксам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 11:29:00 |
|
||
|
Spring, Velocity, internationalization
|
|||
|---|---|---|---|
|
#18+
Преимущества для текста(заголовки, надписи и т.п.) я уже увидел. Как лучше получать сообщения в контроллере? Например нужно ответить на ajax запрос простым текстом. Как в этом случае поступать? Насколько правильный такой подход? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Я не совсем понимаю как при использовании Spring и Velocity использовать не текстовые элементы, а например картинки. Записывать в файл *.properties url адрес картинки и выводить? Код: html 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 12:42:44 |
|
||
|
Spring, Velocity, internationalization
|
|||
|---|---|---|---|
|
#18+
Совершенно верно. Из проперти-файла вытягиваешь "ручками", а если хранится в базе, то желательно, чтобы запрос уже возвращал локализованные данные. P.S. А Спринг может сам подставлять в параметры меппинг-метода Locale? - Если так, то не знал. Вытягиваю ее из контекста Спринга вручную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 14:18:30 |
|
||
|
Spring, Velocity, internationalization
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, я создаю такой метод в базовом контроллере Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 14:59:37 |
|
||
|
Spring, Velocity, internationalization
|
|||
|---|---|---|---|
|
#18+
IDVsbruckP.S. А Спринг может сам подставлять в параметры меппинг-метода Locale? - Если так, то не знал. Вытягиваю ее из контекста Спринга вручную. и не только локаль. смотри Supported method argument types в доке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 15:30:53 |
|
||
|
Spring, Velocity, internationalization
|
|||
|---|---|---|---|
|
#18+
chpashaи не только локаль. смотри Supported method argument types в доке Хм ... точно. Многое чем пользуюсь, но как-то не обратил на это внимание. Иногда нужна Locale и заодно увидел, что можно сразу принципала вынимать, не вытягивая Authorization. Сенкс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 16:10:09 |
|
||
|
Spring, Velocity, internationalization
|
|||
|---|---|---|---|
|
#18+
chpasha, IDVsbruck, а нельзя ли как-то локаль получать иначе? Ведь в контроллере может быть очень много методов, придется в каждый добавлять (.. Locale local), а потом передавать в метод который возвращает сообщение. Получиться куча одинакового кода в каждом методе контроллера. Как правильно решить эту проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 16:22:49 |
|
||
|
Spring, Velocity, internationalization
|
|||
|---|---|---|---|
|
#18+
А это проблема? Задумайся, что есть вызов каждого метода в контроллере и какую цепочку действий надо произвести Спрингу, чтобы довести входящий запрос до исполнения метода контроллера. Твое добавление локали - капля в море. Так или иначе, локаль берется из контекста спринга (по сути, атрибут из сессии, если он есть для данной сессии, иначе из куки, если она прописана, иначе дефолтное значение из конфига, если оно установлено, иначе дефолтное системое (?)). Поэтому простейший способ - просто установить пареметр в методе, иначе надо в самом методе или вспомагательном методе вытаскивать его или как сказано выше - Код: java 1. , или сложней - Код: java 1. (не хочу искать, но допускаю, что это одно и то же: первый способ - упрощенный вызов второго). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 16:39:18 |
|
||
|
Spring, Velocity, internationalization
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, я нашел про два способа Код: java 1. Код: java 1. 2. 3. К последнему способу еще приписка есть: You must be aware that the content of the LocaleContextHolder corresponds by default to the locale specified within the Web request. In order to change this behaviour, you need to implement a custom interceptor or filter. The following code describes the implementation of such filter using configured LocaleResolver... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 16:48:27 |
|
||
|
Spring, Velocity, internationalization
|
|||
|---|---|---|---|
|
#18+
Спасибо за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 16:49:16 |
|
||
|
Spring, Velocity, internationalization
|
|||
|---|---|---|---|
|
#18+
rdmпридется в каждый добавлять (.. Locale local), а потом передавать в метод который возвращает сообщение imho это нормально. предположим у тебя есть некоторый сервис, который может генерить email на разных языках. совершенно нормально, что он одним из параметров принимает локаль или язык. это делает его универсальным, применимым в любом месте, где это потребуется. доставая локаль внутри него самого неким специфическим способом ты делаешь его зависимым от окружения и малополезным там, где например нету никаких реквестов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2013, 18:40:58 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38147852&tid=2129995]: |
0ms |
get settings: |
21ms |
get forum list: |
21ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
45ms |
get topic data: |
20ms |
get forum data: |
5ms |
get page messages: |
99ms |
get tp. blocked users: |
3ms |
| others: | 286ms |
| total: | 510ms |

| 0 / 0 |
