Главная » Drupal » Статьи Drupal » Использование Друпала в качестве инструмента для перевода
Распечатать статью

Использование Друпала в качестве инструмента для перевода

Я собирался рассказать о сервере переводов на конференции в Сан-Франциско, но к сожалению этот доклад был объединён с более общим докладом об интернационализации и из-за облака пепла над Европой, я так и не смог попасть на конференцию. Конечно, программы позволяющие совместно работать над переводами не являются темой, которая интересует большинство разработчиков. С другой стороны, я получаю вопросы об использовании инструментов использующихся для переводов на drupal.org каждые пару недель и такое внимание к казалось бы неинтересной теме меня удивляет. Сервер переводов использующийся на localize.drupal.org появился из потребностей нашего сообщества и решения на которых он построен удобны для перевода самых разнообразных проектов. Однако, в то время как этот инструмент обладает удобной архитектурой, ему не хватает удобного интерфейса, который бы позволял его использовать в качестве универсального продукта для перевода любых программ.

У этого инструмента есть пользователи, которые переводят не только Drupal. Например Gallery 2/3 project и Musescore desktop app, которые используют дополнительные коннекторы, позволяющие им работать с сервером переводов. Gallery даже использует исправленный модуль Localization client, чтобы позволить пользователям отправлять переводы на их сервер, который не использует Drupal. Таким образом, перевод произвольных программ без разработки дополнительного коннектора был раньше невозможен.

В настоящее время, благодаря изменениям, которые добавлены в сервер переводов версии 6.x-2.x, стало возможным использование сервера переводов для работы с любыми программами. Сервер поддерживает использование файлов типа Gettext Portable Object в качестве содержащих исходные строки, которые нужно перевести, извлекает из файлов эти строки и предоставляет интерфейс для создания своих проектов на основе загружаемых в сервер переводов файлов. Файлы в формате Gettext Portable Objects являются стандартом для обмена переводами де-факто и существует много программ, которые позволяют преобразовывать другие форматы в этот. Ниже находится небольшой обзор, который рассказывает о том, как можно использовать сервер переводов для перевода произвольного проекта.

  1. Установите Drupal 6 и скопируйте себе следующие дополнительные модули: Localization server, Plural formula configurator и jQuery Update module.
  2. Включите модули Localization Server и Localization community UI (включение этих модулей потребует включения модулей Locale (стандартный модуль) и jQuery Update, от которых они зависят).
  3. Перейдите на страницу Управление → Конфигурация → Языки и добавьте произвольное количество языков (модуль Plural formula configurator позволяет настроить форму множественного числа для любого языка и включает готовые формулы для большиства известных ему языков).
  4. Модуль Localization server включает в себя два коннектора расширяющих возможности его применения. Для наших целей нужно включить коннектор Localization server for Gettext files.

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

Использование Drupal в качестве инструмента для перевода

Перед тем как мы сможем начать переводить проект, сервер должен знать что это за проект. Т.к. мы используем коннектор Gettext files from file uploads, то нам нужно создать проект самостоятельно. Перейдите на страницу управления проектами и нажмите вкладку Добавить. На открывшейся странице введите системное название проекта (оно будет использоваться в URL), обычное название и если нужно, то ссылку на домашнюю страницу проекта.

Использование Drupal в качестве инструмента для перевода

После добавления проекта, можно приступить к непосредственной работе с этим проектом и добавлению его версий. В дальнейшем, проекты могут быть удалены или выключены (временно или навсегда). Также, проекты можно начать заново (ссылка восстановить, в этом случае будут удалены все данные проекта за исключением его идентификаторов, которые мы определили выше).

Использование Drupal в качестве инструмента для перевода

Нажмите на ссылку Версии. Вы увидите, что версий для проекта пока нет и нам нужно добавить хотя бы одну версию. Поэтому перейдите к добавлению версии, введите её номер и если нужно, то ссылку, по которой можно эту версию скачать. Так же как и в случае с ссылкой на домашнюю страницу проекта, эта ссылка используется только для того, чтобы сказать пользователю о расположении (месте нахождения) проекта, версия не скачивается программой автоматически. Для начала работы над переводом, загрузите .po или .pot-файл.Для этого примера я сделал файл mysoftware.po, который содержит три строки. Отметьте: сервер не работает с заголовками .po-файла, поэтому я опустил заголовок и для файла в этом примере. Вот содержание этого файла:

msgid "My software"
msgstr ""
msgid "Welcome to My software"
msgstr ""
msgid "Download translations"
msgstr ""
Использование Drupal в качестве инструмента для перевода

Теперь сервер сообщит вам, что он сохранил все строки и они доступны для перевода. Так же как и с проектами, вы можете начать заново перевод и каждой версии проекта (это действие удалит все исходные строки связанные с версией и позволит загрузить и импортировать .po-файл заново) или удалить версию полностью.

Использование Drupal в качестве инструмента для перевода

Вот так это всё работает. Теперь, вместо того, чтобы разрушить то, что мы уже сделали к этому моменту, давайте посмотрим на интерфейс сервера переводов. Если вы перейдёте на страницу переводов (ссылка Перевод в меню навигации), то увидите краткую информацию о единственном нашем проекте и одной версии, которая содержит 3 строки. На странице добавления языков я добавил только венгерский (в этой статье — русский), но если вы добавили несколько языков, то вы увидите переключатель, который позволяет выбирать языки. На этой странице также находится и общий статус переводов.

Использование Drupal в качестве инструмента для перевода

Если выбрать проект и перейти к его переводу, то вы увидите список строк этого проекта, которые можно перевести. Строки выводятся на экран в две колонки. В левой колонки находится список оригинальных строк, а в правой колонке их перевод. Фильтр находящийся над этими колонками позволяет уточнять область поиска строк.

Использование Drupal в качестве инструмента для перевода

На этой странице вы можете использовать интерфейс для перевода программы. Как показал опыт работы с сервером переводов, эта страница может использоваться и для принятия предложенных изменений в оригинальных строках. Но сейчас я хочу обратить ваше внимание на то, что сервер переводов позволяет увидеть несколько предложений по переводу исходной строки, оценить их и принять решение о переводе в зависимости от принятых правил перевода или стиля. Вывод различных версий перевода одной строки работает тогда, когда вы хотите добавить новое предложение по переводу строки и когда вы разбираете существующие предложения. Для подгрузки данных используется AJAX, что позволяет выводить контекстную информацию и сократить количество перезагрузок страниц.

Использование Drupal в качестве инструмента для перевода

У сервера переводов есть ещё много интересных возможностей, кроме показанных выше. Например, вы можете использовать с сервером модуль Organic groups, который позволит разделить работу по переводу между группами пользователей и управлять правами пользователей на основе групп, которые управляются этим модулем. Вы можете включить модуль, который будет принимать предложения о переводах строк с других сайтов в автоматическом режиме (но для упомянутого выше проекта Gallery это работать не будет, т.к. в основе их сервера не лежит Drupal, а API реализованный на стороне клиента (другими словами — в этом модуле) понимается только Drupal). Вы можете отслеживать ведущих переводчиков для каждого из языков и распространять переводы.

Эти инструменты доказали свою нужность на localize.drupal.org и их развитие для различных программ, надеюсь, привлечёт большее количество людей к их развитию. В настоящее время мы работаем над некоторыми интересными вещами, например связью с действиями (в процессе работы над переводами и включением в этапы этой работы краткие отчёты о статусе переводов), связью с инструментами автоматического перевода (Google translate) и более сложными самообучающимися инструментами перевода. Работа над сервером переводов по-прежнему не завершена. Например, сервер пока ещё предлагает пользователю сделать избыточные действия, которые он в состоянии решить и сам, но мы надеемся на её успешной завершение.

Источник: content-management-systems.info

Вы можете оставить комментарий, или обратную ссылку на Ваш сайт.

Оставить комментарий

Похожие статьи