|
Table of contents
|
Для использования переводов в шаблонах Django применяются два шаблонных и немного отличный от Python синтаксис. Чтобы получить доступ к этим тегам, поместите {% load i18n %} в начале вашего шаблона. Тег {% trans %} помечает строку для перевода: <title>{% trans "This is the title." %}</title>
Если вы желаете только пометить значение для перевода, но перевести его позже, используйте опцию noop: <title>{% trans "value" noop %}</title>
Нельзя использовать шаблонные переменные в теге {% trans %} — разрешены только строковые константы, в одиночных или двойных кавычках. Если ваш перевод требует использования переменных (символов подстановки), используйте {% blocktrans %}, например: {% blocktrans %}This will have {{ value }} inside.{% endblocktrans %}
Для перевода шаблонного выражения — скажем, использование шаблонного фильтра — следует связать выражение с локальной переменной для использования внутри блока перевода: {% blocktrans with value|filter as myvar %}
This will have {{ myvar }} inside.
{% endblocktrans %}
Если вам необходимо связать более одного выражения внутри тега {% blocktrans %}, объедините выражения с помощью and: {% blocktrans with book|title as book_t and author|title as author_t %}
This is {{ book_t }} by {{ author_t }}
{% endblocktrans %}
Для множественного числа, укажите обе, единственную и множественную, формы с помощью тега {% plural %}, который используется внутри {% blocktrans %} и {% endblocktrans %}, например: {% blocktrans count list|length as counter %}
There is only one {{ name }} object.
{% plural %}
There are {{ counter }} {{ name }} objects.
{% endblocktrans %}
С технической точки зрения все блоки и встроенные переводы
используют соответствующие функции
Когда вы используете RequestContext (см. главу «Расширения для шаблонной системы»), ваш шаблон получает доступ к 3 переменным режима перевода:
Вы также можете подгрузить эти значения с помощью шаблонных тегов: {% load i18n %}
{% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as LANGUAGES %}
{% get_current_language_bidi as LANGUAGE_BIDI %}
Обработчики механизма переводов также доступны внутри любого
блочного шаблонного тега, который работает с неизменными
строками. В таких случаях используйте синтаксис
{% some_special_tag _("Page not found") value|yesno:_("yes,no") %}
В этом примере, тег и фильтр увидят уже переведённую строку (т.е., строка будет переведена до передачи шаблонной функции), поэтому им не надо знать о переводе. |
Found misprint?
Select it with the mouse and hit Enter
-
Processed:
33
1
199
25
The full repository of DjangoBook translation you can get on GitHub.
We appreciate your patches!
We are glad to hear your questions, comments or suggestions!
(Open in new tab)
Users number: 601
Русская группа
Ускорить процесс перевода!
ЯМ:41001223475816
|
| © 2008-2012 Ruslan Popov @ gmail.com | Powered by Django 1.2.5 |