Что означает тег 't ()' в Ruby on Rails? - PullRequest
7 голосов
/ 16 июля 2010

Я наткнулся на некоторый код с открытым исходным кодом в представлениях с тегом t(), похожим на escape-последовательность HTML h().

<%= f.label :password, t(:password, :scope => "activerecord.attributes.user") -%>

Что означает t()?

Ответы [ 2 ]

18 голосов
/ 16 июля 2010

т (ключи, опции = {})

Псевдоним для перевода

перевод (ключи, опции = {})

Делегируется на I18n#translate, но также выполняет две дополнительные функции. Во-первых, он поймает MissingTranslationData исключений и превратит их во встроенные промежутки, которые содержат отсутствующий ключ, так что вы можете увидеть в представлении, что пропущено где.

Во-вторых, ключ будет ограничен текущим частичным, если ключ начинается с точки. Поэтому, если вы вызовете translate(".foo") из шаблона people / index.html.erb, вы на самом деле будете вызывать I18n.translate("people.index.foo"). Это делает менее повторяющимся перевод многих ключей в рамках одной и той же части и дает вам простую структуру для их согласованной области видимости. Если вы не ставите ключ перед точкой, ничто не преобразуется. Этот метод также называется псевдонимом t

0 голосов
/ 16 июля 2010

Делать перевод ключа в .yml файлах в config/locales

t(:password)

ключ "пароль"

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