Перевод web-страниц Debian

Чтобы максимально облегчить работу переводчиков, страницы генерируются способом, немного отличным от того, к которому большинство из вас привыкли. Web-страницы на самом деле генерируются из исходного кода, размеченного с использованием языка wml. Для каждого языка существует отдельный каталог.

Если вы планируете начать перевод web-сайта Debian на новый язык, прочтите, пожалуйста, раздел о запуске нового перевода.

Перевод отдельных страниц

Чтобы отделить содержимое конкретных страницы от элементов, повторяющихся на нескольких страницах, мы используем WML. Это означает, что нужно редактировать исходные файлы WML, а не файлы HTML. Чтобы получить исходные тексты, используйте CVS. Вы должны извлечь, по крайней мере, два каталога: webwml/english/ и webwml/<язык>/.

Чтобы перевести отдельную страницу, с английского языка на другой язык, нужно перевести и поместить в каталог вашего языка оригинальный файл .wml. Относительный путь и имя должны быть такими же, как в английском каталоге, только в этом случае будут работать все ссылки

Заголовки переводов

Переводчикам настоятельно рекомендуется добавлять к заголовку файла после последней строки #use дополнительную строку с информацией о переведённой версии оригинального файла, чтобы обновлять перевод было проще. Эта строка выглядит примерно так: #use wml::debian::translation-check translation="x.y"

Некоторые команды перевода также используют эту строку, чтобы отметить официального переводчика каждой web-страницы. В этом случае вы будете автоматически получать почту при внесении изменений в английский оригинал страниц, которые вы сопровождаете, когда нужно будет обновить перевод. Чтобы этот механизм работал, просто добавьте ваше имя в конце строки #use, чтобы она выглядела следующим образом: #use wml::debian::translation-check translation="x.y" maintainer="ваше имя". Скрипт copypage.pl выполнит это автоматически, если вы установите переменную окружения DWWW_MAINT или вызовите его с ключом -m.

Вам придётся также объяснить роботу кто вы, как часто вы хотите автоматически получать почту и что вам следует присылать. Для этого отредактируйте (или попросите отредактировать вашего координатора) файл webwml/язык/international/язык/translator.db.pl в CVS. Синтаксис должен быть вполне понятен. Если для вашего языка этого файла не существует, можно использовать в качестве шаблона файл французской команды. Робот может посылать различные виды информации, и для каждого из них вы можете выбрать частоту, с которой она будет приходить. Существуют следующие виды информации:

Значение каждого может быть одним из следующих: 0 (никогда), 1 (ежемесячно), 2 (еженедельно) или 3 (ежедневно).

Вот пример:

                'Martin Quinson' => {
                        email       => 'martin.quinson@tuxfamily.org',
                        summary     => 3,
                        logs        => 3,
                        diff        => 3,
                        tdiff       => 0,
                        file        => 0
                },

Заголовок web-страницы может быть легко создан с помощью скрипта copypage.pl в корневом каталоге webwml. Этот скрипт копирует страницу в нужное место, при необходимости создаёт каталоги и файлы Makefile и автоматически добавляет требуемый заголовок. Вы будете извещены, если копируемая страница уже существует в репозитории. Либо она была удалена из репозитория (из-за того, что страница была слишком устаревшей), либо потому что кто-то уже зафиксировал перевод в репозитории и ваша локальная копия репозитория неактуальна.

Для того, что бы начать использовать copypage.pl, вы должны сначала настроить файл language.conf, который определяет язык перевода. В этом файле необходимо, всего лишь, указать название языка. Вы также можете использовать переменые окружения DWWW_LANG для указания языка и DWWW_MAINT для указания вашего имени, чтобы оно было добавлено в заголовок сгенерированных wml-файлов, как имя сопровождающего данного перевода. У скрипта доступны и другие функции. Для получения справки выполните его без каких-либо аргументов.

После того, как вы запустили, например, ./copypage.pl файл.wml, переведите оригинальный текст в файле. Комментарии в файлах укажут, если есть элементы, которые не нужно переводить, соблюдайте эти указания. Не делайте никаких ненужных изменений в форматировании. Если что-то должно быть изменено, это, вероятно, должно быть сделано в оригинальном файле.

Сборка и публикация страницы

Так как мы используем согласование содержания, файлы HTML называются не файл.html, а файл.<яз>.html, где <яз> — двухбуквенный код языка в соответствии с ISO 639 (например, fr для французского языка).

Вы можете собрать HTML из WML, выполнив команду make файл.<яз>.html. Если эта команда работает, проверьте правильность синтаксиса командой weblint файл.<яз>.html.

Web-страницы будут собраны из CVS на сервере www-master. Этот процесс, в основном, не вызывает ошибок. Однако, если вы зафиксируете некорректный файл на верхнем уровне вашего перевода (например файл верхнего уровня index.wml), он заблокирует процесс сборки и не позволит обновить другие части сайта. Обратите, пожалуйста, особое внимание на эти файлы.

Как только страница достаточно проработана, вы можете зафиксировать её в CVS. Если у вас есть права сделать это непосредственно, запустите cvs commit, в противном случае пошлите её тому, у кого есть право на запись в репозиторий.

Как начать новый перевод

Если вы хотите начать перевод web-страниц Debian на новые язык, отправьте сообщение об этом (на английском) на webmaster@debian.org.

Прежде всего, удостоверьтесь, что вы правильно извлекли наше дерево исходных текстов, как описано на странице введения в CVS.

После того, как вы извлекли каталоги webwml/ и (как минимум) webwml/english/, создайте новый каталог для вашего перевода, рядом с english/ и другими каталогами переводов. Имя каталога перевода должно быть английским названием языка и полностью в нижнем регистре (например "german", а не "Deutsch").

Скопируйте файлы Make.lang и .wmlrc из каталога english/ в каталог нового перевода. Они необходимы для сборки вашего перевода из файлов WML. После того, как вы скопируете их в новый каталог языка, необходимо изменить следующие параметры:

  1. В файле Make.lang следует изменить переменную LANGUAGE.
  2. В файле .wmlrc следует изменить переменные CUR_LANG, CUR_ISO_LANG и CHARSET. Добавьте переменную CUR_LOCALE, если она нужна для сортировки.
  3. Некоторые языки могут требовать дополнительной обработки используемой кодировки. Она может быть реализована с помощью параметров команды wml --prolog и --epilog. Используйте в этом случае переменные WMLPROLOG и WMLEPILOG в файле Make.lang.
  4. В файле webwml/Makefile верхнего уровня следует изменить переменную LANGUAGES, чтобы на www.debian.org ваш язык собирался вместе с остальными. Мы предпочли бы, чтобы вы оставили это изменение нашим web-мастерам, потому что при следующем извлечении копии из CVS вы не сможете узнать, что ваши файлы некорректны, в то время как это может заблокировать сборку всей остальной части нашего web-сайта.

После этих изменений добавьте к файлу Makefile в новом каталоге:

include $(subst webwml/язык,webwml/english,$(CURDIR))/Makefile

(замените язык названием каталога вашего языка).

Теперь создайте в каталоге вашего языка подкаталог po и скопируйте тот же файл Makefile в этот подкаталог (cp ../Makefile .).

В каталоге po/, запустите make init-po, чтобы cгенерировать начальный набор файлов *.po.

Теперь, когда создан скелет, вы можете начать с перевода общих тегов WML, используемых в шаблонах. В первую очередь следует перевести шаблоны, которые появляются на всех web-страницах. Это ключевые слова заголовков, элементы панели навигации и нижний колонтитул.

Начните переводить файл po/templates.xy.po (где xy — двухбуквенный код вашего языка). Каждому msgid "сообщение" изначально соответствует msgstr "", куда (между двойными кавычками) вам следует ввести перевод строки сообщение.

Вы не обязательно переводить все строки во всех файлах .po, только используемые в уже переведённых страницах. Чтобы узнать, нужно ли переводить строку, см. комментарии в файле .po над оператором msgid. Если указанный там файл находится в english/template/debian, скорее всего, вам следует перевести сообщение. В противном случае вы можете отложить перевод этого файла до тех пор, пока вы не переведёте раздел сайта, где он используется.

Переход на po/ файлы облегчает работу переводчиков, позволяя им (почти) никогда не редактировать непосредственно файлы из каталога english/template/debian. Если вы обнаружите какую-то ошибку в самом каталоге template, решайте проблему глобально (не стесняйтесь попросить кого-нибудь об этом), а не фиксируйте переводы в templates, что (обычно) будет большей проблемой.

Если вы не уверены в том, правильно ли вы что-то сделали, спросите в перед фиксацией изменений списке рассылке debian-www.

Обратите внимание: если вы считаете, что должны сделать какие-либо другие изменения, пошлите письмо на debian-www, в котором написано, что вы изменили и почему, чтобы проблема могла быть исправлена.

После того, как скелет шаблона сделан, вы можете начать переводить титульный лист и другие файлы *.wml. Список файлов, которые должны быть переведены в первую очередь, можно найти в советах по переводу web-страниц. Переводите отдельные *.wml страницы так, как описано в начале этой страницы.

Актуализация устаревших переводов

Как описано в разделе о поддержке перевода web-сайта в актуальном состоянии, устаревшие переводы могут быть удалены автоматически, когда пройдёт много времени после последнего обновления.

Если вы используете скрипт copypage.pl для файла, перевод которого был удален из CVS-репозитория, он отклонит копирование страницы и попросит вас восстановить переведённую страницу. Вы можете проверить причины удаления файла из CVS-репозитория, изучив журнал изменений в отношении удаленного файла, выполнив cvs log или использовав web-интерфейс (удаленный файл можно найти в поддиректории "Attic").

Для того, что бы восстановить устаревший перевод, используйте cvs status или cvs log для выяснения номера ревизии в которой он удалён и удаленной версии файла, а затем выполните восстановление методом обратного слияния.

Например, если удален файл "deleted.wml" в версии 1.7, а предыдущая версия до удаления была 1.6, т.е. удаленная версия минус один, вы можете восстановить файл, выполнив:

cvs update -j 1.7 -j 1.6 deleted.wml

После этой операции вы должны обновить файл до того как вы зафиксируете его в репозитории. В противном случае он будет снова удалён.

Дополнительная информация

Описанного выше должно быть достаточно, чтобы позволить вам начать перевод. Впоследствии, вы захотите обратиться к другим документам, которые предоставляют более подробные объяснения и дополнительную полезную информацию:

Мы надеемся, что вы оцените работу, которую мы выполнили, сделав перевод страниц как можно проще. Как уже было отмечено, если у вас есть какие-либо вопросы, вы можете задать их в списке рассылки debian-www.