|
Оглавление
|
Для использования переводов в шаблонах 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") %}
В этом примере, тег и фильтр увидят уже переведённую строку (т.е., строка будет переведена до передачи шаблонной функции), поэтому им не надо знать о переводе. |
Увидели ошибку?
Выделите её мышкой и нажмите
-
Обработано:
1049
49
130
71
Версия книги
1.0
2.0
Версия 2.0 в процессе перевода!
Мой луч
Многообразие света
Полезное
Актуальные вакансии,
Python работа
для python-разработчиков.
Скачать в формате
CHM от 2 сентябряЗаказать PDF файл можно через почту, чат, джаббер. Всего 2WMZ. Содержимое точно соответствует содержимому сайта. Чем чаще заказываете — тем больше перевожу. Русская группа
Ускорить процесс перевода!
R130494980980
Z425285133788 E112528079659 U327380922061 Книга помогла реализовать:
|
| © 2008-2009 Ruslan Popov @ gmail.com | Powered by Django 1.1 beta 1 SVN-11114 |