Java Playframework Интернационализация не работает - PullRequest
1 голос
/ 11 июня 2011

Я использовал инструкции отсюда: http://www.playframework.org/documentation/1.2.1/i18n

и создал файлы для разных языков.

Я вызываю метод play.i18n.Lang.change, чтобы изменить языковой файл, и онвсе еще берет заголовки из английского файла («сообщения» без суффикса),

Есть идеи, почему?

Ответы [ 2 ]

7 голосов
/ 11 июня 2011

Трудно понять из вашего описания, в чем конкретно может быть проблема, поэтому я обрисовал в общих чертах, как вы должны делать многоязычное приложение.

Существует ряд шагов, которые вы должны выполнить, чтобы получить интернационализацию.работать.Во-первых, вы должны изменить свой application.conf файл, чтобы объявить поддерживаемые языки.

Итак, если вы поддерживаете английский и французский, вы должны сделать

application.langs=en,fr

Затем вы должны создать языкфайл для вашего французского перевода называется messages.fr.Английский язык останется в стандартном файле messages.В этом новом файле добавьте пары «имя-значение» для ключа и сообщения.

Способ, которым Play обрабатывает сообщения, заключается в том, чтобы сначала искать сначала в файле сообщений, относящемся к локали (поэтому для английского языка это будет messages.en, который не существует, и для французского это будет messages.fr).Если сообщение не может быть найдено в файле сообщений, относящемся к локали, оно будет искать глобальный файл сообщений.Таким образом, ваш глобальный messages файл действует как перехватчик.

Затем в вашем коде установите язык для вашего конкретного пользователя, используя

Lang.change("fr"); // change language to French

Помните, что это сохранитфайл cookie для конкретного пользователя в файле cookie PLAY_LANG, поэтому убедитесь, что этот файл cookie создается для пользователя.

Последнее замечание, убедитесь, что ваши файлы имеют кодировку UTF8.Это вызывает проблемы, если это не так.

0 голосов
/ 21 августа 2017

В моем конкретном случае у меня было

play.http.session.domain

установить во время тестирования что-то другое, кроме localhost.

...