Drupal - Използване на Drupal като инструмент за превод
Щях да говоря за сървъра за превод на Drupalcon в Сан Франциско, но за съжаление този разговор беше обединен с по-общ разговор за интернационализацията и поради облака пепел над Европа, така и не стигнах до конференцията. Разбира се, програмите, които позволяват съвместна работа по преводи, не са тема, от която повечето разработчици се интересуват. От друга страна, получавам въпроси относно използването на инструментите за превод на drupal.org на всеки две седмици и това внимание към една привидно безинтересна тема ме изненадва. Сървърът за превод, използван в localize.drupal.org, е роден от нуждите на нашата общност и решенията, върху които е изграден, са подходящи за превод на голямо разнообразие от проекти. Въпреки това, въпреки че този инструмент има удобна за потребителя архитектура, му липсва удобен за потребителя интерфейс, който би му позволил да се използва като универсален продукт за превод на всякакви програми.
Този инструмент има потребители, които превеждат не само Drupal. Например проектът Gallery 2/3 и настолното приложение Musescore, които използват допълнителни конектори, които им позволяват да работят със сървъра за превод. Галерията дори използва клиентски модул за локализация, за да позволи на потребителите да изпращат преводи до своя сървър, който не използва Drupal. По този начин преводът на произволни програми без разработването на допълнителен конектор преди беше невъзможен.
В момента, благодарение на промените, които бяха добавени към сървъра за превод версия 6.x-2.x, стана възможно използването на сървъра за превод за работа с всякакви програми. Сървърът поддържа използването на файлове от типа Gettext Portable Object като съдържащи изходни файлове.strings to be translated извлича тези низове от файлове и предоставя интерфейс за създаване на ваши собствени проекти въз основа на файловете, качени на сървъра за превод. Файловете във формата Gettext Portable Objects са де факто стандартът за обмен на преводи и има много програми, които ви позволяват да конвертирате други формати в този. По-долу е даден кратък преглед, който разказва как можете да използвате сървъра за превод, за да преведете произволен проект.
- Инсталирайте Drupal 6 и копирайте сами следните допълнителни модули: Localization server, Plural formula configurator и jQuery Update
- Активирайте модулите Localization Server и Localization community UI (активирането на тези модули ще изисква активиране на модулите Locale (стандартен модул) и jQuery Update, от които те зависят)
- Отидете на страницата с езици и добавете произволен брой езици (модулът за конфигуриране на формула за множествено число ви позволява да персонализирате формата за множествено число за всеки език и включва готови формули за повечето от езиците, които познава)
- Сървърният модул за локализация включва два конектора, които разширяват възможностите за неговото използване. За нашите цели трябва да активираме сървъра за локализация за конектора за файлове Gettext
Сега, след като активирахме необходимите модули, нека ги конфигурираме. По принцип някои модули изискват да бъдат избрани определени опции, например конекторът на модула на сървъра за локализация изисква да изберете файлов формат. В нашия случай е наличен само един формат, няма какво да избираме, просто трябва да го маркираме. Това ще ви позволи да добавяте проекти, използвайки този формат.

Преди да започнем да превеждаме проект, сървърът трябва да знае какъв е проектът. Тъй като използваме Gettext файловете от конекторакачвания на файлове, тогава трябва сами да създадем проекта. Отидете на страницата за управление на проекти и щракнете върху раздела „Добавяне“. На страницата, която се отваря, въведете системното име на проекта (то ще се използва в URL адреса), обичайното име и, ако е необходимо, връзка към началната страница на проекта.



Сега сървърът ще ви каже, че е запазил всички низове и те са достъпни за превод. Точно както при проектите, можете да започнете отначало да превеждате всяка версия на проекта (това действие ще изтрие всички изходни редове, свързани с версията, и ще ви позволи да изтеглите и импортирате .po файла отново) или да изтриете версията напълно.


Ако изберете проект и отидете да го преведете, ще видите списък с низове от този проект, които могат да бъдат преведени. Редовете се показват в две колони. В лявата колона има списък с оригинални низове, а в дясната колона е техният превод. Филтърът, разположен над тези колони, ви позволява да прецизирате областта за търсене на низове.

На тази страница можете да използвате интерфейса, за да преведете програмата. Опитът със сървъра за превод показва, че тази страница може да се използва и за приемане на предложени промени в оригиналните низове. Но сега искам да обърна внимание на факта, че сървърът за превод ви позволява да видите няколко предложения за превод на изходния низ, да ги оцените и да вземете решение за превода в зависимост от приетите правила или стил на превод. Извеждането на различни версии на превод на един и същи низ работи, когато искате да добавите ново изречение от низ и когато анализирате съществуващи изречения. AJAX се използва за зареждане на данни, което ви позволява да показвате контекстуална информация и да намалите броя на презарежданията на страницата.

Присървърът за превод има много повече интересни функции освен тези, показани по-горе. Например, можете да използвате модула Органични групи със сървъра, който ще ви позволи да разделите работата по превода между групи от потребители и да управлявате правата на потребителите въз основа на групите, които се управляват от този модул. Можете да активирате модул, който автоматично ще приема предложения за преводи на низове от други сайтове (но това няма да работи за проекта Галерия, споменат по-горе, тъй като техният сървър не е базиран на Drupal и API, внедрен от страна на клиента (с други думи, в този модул) се разбира само от Drupal). Можете да проследявате най-добрите преводачи за всеки език и да разпространявате преводите.