пятница, 4 июня 2010 г.

Рекомендации по локализации продукта Plone.

Рекомендации по локализации. Объяснение несколько усложнено.
1. Локализация продукта
Для локализации необходимо установить пакет i18ndude. При полной установке Archgenxml он устанавливается автоматически. Проверить наличие i18ndude.exe в Python24\Scripts.
При генерации продукта Archgenxml собирает все ссылки на записи, которые нужно локализовать в файл generated.pot в каталоге i18n продукта. Все преобразования производятся в папке locales продукта, поэтому, если ее нет - ее нада ее создать.
Дополнительно в папке locales создаем папку ru, а в ней папку LC_MESSAGES.
Сoздать в директории locales пустой текстовый файл c именем имя_продукта.pot в кодировке "UTF-8 без BOM" (я для этого использую Notepad++) и скопировать в него содержимое файла generated.pot. Можно просто скопировать и переименовать этот файл, а потом изменить у него кодировку в Notepad++.
Аналогичным образом создать в папке locales\ru\LC_MESSAGES файл с именем имя_продукта-ru.po.
Важно: если имя продукта с заглавной буквы, то и имена файлов - тоже.
В файле имя_продукта-ru.po строки :
"Language-Code: en\n"
"Language-Name: English\n"
"Preferred-Encodings: utf-8 latin1\n"
"Domain: DOMAIN\n"

заменить на:

"Language-Code: ru\n"
"Language-Name: Русский\n"
"Preferred-Encodings: utf-8\n"
"Domain: plone\n"

В строках вида
msgid "########"
msgstr ""
Вставить нуждый перевод в поле: msgstr "здесь перевод"
После преобразования скопировать файл имя_продукта-ru.po в папку i18n.
Перезапустить Plone, иногда нужно переустановить продукт.
Файл имя_продукта.pot на данном этапе не исползуется. Он будет необходим при подключении для перевода дополнительных шаблонов, которые созданы вручную, а не указаны в модели.

2. Локализация интерфейса Plone - например метку продукта в меню "Добавить новый элемент"
Выполнить внутри каталога продукта команду c:\Python24\Scripts\i18ndude sync --pot locales/plone.pot.
Выполнить внутри каталога продукта команду c:\Python24\Scripts\i18ndude rebuild-pot --pot locales/plone.pot --create plone profiles.
В результате в каталоге locales будет создан файл plone.pot, где будут собраны все ссылки на поля локализации, связанные с главным интерфейсом Plone.
Сoздать в директории i18n пустой текстовый файл имя_продукта-plone-ru.po в кодировке "UTF-8 без BOM".
Выполнить внутри каталога продукта команду c:\Python24\Scripts\i18ndude sync --pot locales/plone.pot i18n/имя_продукта-plone-ru.po
В результате в каталоге i18n будет создан файл имя_продукта-plone-ru.po с соответствующими полями.
В файле имя_продукта-plone-ru.po строки :
"Language-Code: en\n"
"Language-Name: English\n"
"Preferred-Encodings: utf-8 latin1\n"
"Domain: DOMAIN\n"

заменить на:

"Language-Code: ru\n"
"Language-Name: Русский\n"
"Preferred-Encodings: utf-8\n"
"Domain: plone\n"

В строках вида
msgid "########"
msgstr ""
Вставить нуждый перевод в поле: msgstr "здесь перевод"

Пока все. Есть еще возможности для перевода строковых величин, объявляемых в репеменных, списках и т.п.

Лабиринт и разработка игр

 Лабиринт Алгоритм поиска пути в лабиринте и его реализация на Python 3.4 Задача на создание программы для виртуального робота, способно...