Как мне перевести # {get 'title' /} в шаблоне Play? - PullRequest
2 голосов
/ 26 августа 2011

У меня есть шаблон (main.html) с #{get 'title' /}, и я хочу, чтобы он был переведен с использованием тега &{'title'}, но, очевидно, я не могу сделать

&{ #{get 'title'/} }

Как правильно этого добиться?

Ответы [ 2 ]

3 голосов
/ 26 августа 2011

Лучшая альтернатива - установить заголовок для переведенной строки.Замените:

#{set 'title'}My Title#{/set}

на

#{set 'title'}&{'my.title.i18n.key'}#{/set}

Если вы используете короткую версию, сделайте:

#{set 'title', messages.get('my.title.i18n.key') /}

, поскольку messages является неявным объектом в шаблонах.

2 голосов
/ 26 августа 2011

Есть несколько альтернативных способов ведения дел:

  • Вы можете использовать Messages.get(key) вместо &{key} (в шаблоне вы можете использовать неявный объект messages, т.е. messages.get(key)).
  • Полагаю, вы можете использовать Http.Request.args.get('title') вместо #{get 'title' /}. Используя неявный request объект, который будет request.args.get('title').

Итак, один из способов получить то, к чему вы стремитесь, это:

&{request.args.get('title')}

Еще бы сделать локализацию при установке заголовка:

#{set 'title', messages.get('my title key')}

(В верхней части шпаргалки шаблона перечислены доступные неявные объекты.)

...