Трудно понять из вашего описания, в чем конкретно может быть проблема, поэтому я обрисовал в общих чертах, как вы должны делать многоязычное приложение.
Существует ряд шагов, которые вы должны выполнить, чтобы получить интернационализацию.работать.Во-первых, вы должны изменить свой 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.Это вызывает проблемы, если это не так.