i18n:name

В сам перевод можно динамически посдтавлять значения переменных. Для этого нужно назначить так называемые "переменные перевода", то есть, необходимо определить, какую переменную в переводе на какую реальную переменную (доступную в шаблоне) необходимо заменить. Для того, чтобы задать такое соответствие, используйте i18n:name

В строке перевода можно использовать запись ${xxx}, где "xxx" - название "переменной перевода", которая должна заменяться динамически на реальную переменную шаблона.

Соответствующее значение будет подставлено в тег и его содержимое. Если же Вы не хотите, чтобы значение было помещено в теги, используйте tal:replace вместо tal:content. Атрибут tal:omit-tag пригодится, если значение представляет собой конкатенацию строк.

<span i18n:name="myVar" tal:content="some/path"/>
<!-- <span>${some/path}</span> -->

<span i18n:name="myVar" tal:replace="some/path"/>
<!-- ${some/path} -->

<span i18n:name="myVar">foo</span>
<!-- <span>foo</span> -->

<span i18n:name="myVar" tal:omit-tag="">foo</span>
<!-- foo -->

Пример использования i18n:

<div i18n:translate="">
  Добро пожаловать, <span i18n:name="user" tal:replace="user/name"/>,
  у Вас <span i18n:name="mails" tal:replace="user/nbrMails"/>
  непрочитанных писем.
</div>

Ключ перевода в этом примере будет следующий:

"Добро пожаловать, ${user}, у Вас ${mails} непрочитанных писем."

В подставляемом переводе, PHPTAL заменит ${user} на ${user/name}, а ${mails} на ${user/nbrMails}.

Более подробно о связке I18N с PHPTAL можно прочитать в разделе PHP этой справки.