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 этой справки.