Как я могу сделать изменения интернационализации JS-файл для оповещения - PullRequest
0 голосов
/ 30 октября 2018

Как я могу внести изменения в интернационализацию JS-файла для предупреждения, не передавая значение через шаблон.

У меня есть файл 'messages' & messages.es-ES в папке conf.

1 Ответ

0 голосов
/ 31 октября 2018

Несколько лет назад у меня была похожая проблема в более старой версии игрового фреймворка (2.2.x), которую я решил, написав такой шаблон twirl:

    @()
    @import play.api.Play.current
    var myI18n = (function() {

            var messages = @Html("{" + Messages.messages.flatMap(_._2).map(mess => s""""${mess._1}":"${mess._2}"""").mkString(", ") + "}")
        return {
            getMessage: function (key) {
                if(messages.hasOwnProperty(key)) {
                    return messages[key];
                }
                else return key;
            }
        };
    });

Таким образом, я создаю во время выполнения файл js с моей библиотекой сообщений и с основной функцией для извлечения. Затем я выставляю действие, которое возвращает это (безусловно, нужен кэш по локали):

public static Result javascriptRoutes() {
    response().setContentType("text/javascript");
    return ok(views.html.i18n.render());
}

и включить в страницы:

<script type="text/javascript" src="@controllers.routes.I18nJs.javascriptRoutes()"></script>

Наконец, я могу получить значение ключа сообщения с образцом myI18n().getMessage("my.message.key")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...