Публикации

Пользователь:

Пароль:


Запомнить

Регистрация
Забыли пароль?



Пользователей: 3898
Новичок: BAnatol
Поддержи проект
Поддержите проект Webmoney
R197422573540
E197270426287
Z701768662172
Сказали «Спасибо»

Навигация

Руководство переводчика или как пользоваться новыми возможностями для перевода, которые предоставляет е107


Автор: Metaller

Руководство не обучает английскому языку, считается что вы его и так знаете на уровне, достаточном для перевода. Оно лишь рассматривает инструмент для более удобного поиска необходимых для перевода слов и фраз.

Итак, для начала рассмотрим стандартный подход к переводу плагинов.

Каждый грамотно написанный плагин имеет папку languages, в которой содержатся файлы локализации с названием НАЗВАНИЕ_ЯЗЫКА.php. Эти файлы содержат все слова и фразы данного языка, используемые в плагине. Подобная организация очень удобна и избавляет от необходимости копаться в исходных кодах плагина в поисках слов и фраз для перевода.

Обычно, файл локализации для английского языка называется English.php, а для русского соответственно Russian.php (обратите внимание что первые буквы в названии файлов – заглавные, так и должно быть, это важно!).

Стандартный подход в переводе плагина заключается в создании копии оригинального файла локализации English.php и переименование ее в Russian.php. В результате в папке languages имеется два файла для английского и русского языков. После этого файл для русского языка открывается в любом текстовом редакторе и фразы переводятся на русский язык.

Примерная структура файла локализации следующая (файл English.php):
  1. define("AUTOGAL_LANG_LASTUPDATE", "12-Nov-2006");
  2. define("AUTOGAL_LANG_AUTHOR", "mr_visible");
  3. define("AUTOGAL_LANG_AUTHORURL", "www.cerebralsynergy.com");
  4. define("AUTOGAL_LANG_L1", "Powered by ");
  5. define("AUTOGAL_LANG_L2", "Invalid Element Selected:");

Это есть ни что иное как определение констант на языке PHP. Каждой константе (AUTOGAL_LANG_LASTUPDATE, AUTOGAL_LANG_AUTHOR и т.д.) присваивается соответствующее значение (12-Nov-2006, mr_visible и т.д.) которое в дальнейшем используется в программе при выводе сообщений. Для англоязычных пользователей подключается файл English.php и выводятся сообщения на английском языке, соответственно для русскоязычных – Russian.php и сообщения на русском.

Соответственно содержимое файла Russian.php после перевода будет примерно такое
  1. define("AUTOGAL_LANG_LASTUPDATE", "12-Ноя-2006");
  2. define("AUTOGAL_LANG_AUTHOR", "mr_visible");
  3. define("AUTOGAL_LANG_AUTHORURL", "www.cerebralsynergy.com");
  4. define("AUTOGAL_LANG_L1", "Работает на ");
  5. define("AUTOGAL_LANG_L2", "Выбран неправильный элемент:");

Т.е. перевод заключается в том, что каждой строке с объявлением константы define("CONSTANT_NAME", "constant_value") в оригинальном файле English.php должна соответствовать такая же строка с таким же именем константы CONSTANT_NAME, но с переведенным на русский язык значением constant_value в файле Russian.php: define("CONSTANT_NAME", "значение_константы")

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

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

По сути, приходится открывать два окна – с новой английской и старой русской версией и сравнивать каждую строку. Новые найденные строки копируются из английского варианта в русский и переводятся. И еще хорошо, если нужно только добавить новые строки, часто бывает, что и значения старых констант меняются. Например в ранней версии было: define("LAN_DATE", "Date/Time"), а в новой автор разделил ее на две define("LAN_DATE", "Date "), define("LAN_TIME", "Time"). Это значит что не только добавилась строка с новой константой LAN_TIME, но и изменилось значение старой LAN_DATE с Date/Time на Date (что нужно учесть в русской версии). В общем, очень долгий и кропотливый процесс…

Итак, мы подошли наконец к тому, для чего писалось данное руководство – использование новых возможностей е107. Данные возможности позволяют провести анализ английской версии файла локализации, сравнить ее с файлом локализации на русском (или любом другом, установленном в системе) языке, указать отсутствующие в русском файле константы и предоставить редактор для внесения поправок.

А теперь перейдем к практике. Далее мы будем допереводить плагин AutoGallery версии 2.53 взяв за основу имеющуюся у нас локализацию этого плагина версии 1.90. Для начала проведем подготовку. Закачиваем данный плагин на хостинг. Открываем языковую папку плагина autogallery/languages и видим в ней файлы локализации. Это файлы English.php и English_Admin.php.

Файл English_Admin.php появился начиная с версии 2.0, у нас же от версии 1.90 есть только файл Russian.php – перевод старого English.php. Это значит что English_Admin.php придется переводить с нуля. Но об этом позже.

Закачиваем наш файл Russian.php в папку autogallery/languages и выставляем на него права 777. После этого авторизуемся на сайте и идем в административную зону. Выбираем раздел Язык, в меню справа выбираем Утилиты. В выпадающем меню «Выбрать язык для проверки/изменения» выбираем язык, на который собираемся переводить плагин, в нашем случае Russian и нажимаем кнопку.

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

Листаем вниз в раздел результатов проверки плагинов, находим первый же alt_auth и нажимаем кнопку Изменить.



На экране открывается окно редактирования файла lan_alt_auth_conf.php – но обратите в каком удобном виде:



В первой колонке – имя языковой константе. Во второй – оригинальная фраза на английском языке. В третьей – окно редактирования с русским переводом.

Но нам все же нужен наш плагин autogallery. Смотрим на строку адреса, она будет иметь примерно такой вид

http://ваш_сайт/admin/ lancheck.php?../e107_plugins/ alt_auth/languages/English/ lan_alt_auth_conf.php|Russian|file

http://ваш_сайт/admin/ lancheck.php - это адрес к скрипту на вашем сайте, тут вместо ваш_сайт будет адрес вашего сайта.

../plugins/alt_auth/languages/ English/lan_alt_auth_conf.php путь к языковому файлу

|Russian|file – специальные параметры, их мы трогать не будем.

Нам нужно лишь изменить путь к языковому файлу. Если мы напишем в адресной строке нашего браузера http://ваш_сайт/admin/ lancheck.php?../e107_plugins/ autogallery/languages/ English.php|Russian|file и нажмем Перейти, то откроется редактор нужного нам файла локализации плагина autogallery!

Показаны переведенные куски из версии 1.90



И красным - непереведенные, добавленные в последующих версиях.



Просматриваем список сверху до низу, допереводим непереведенные строки, если необходимо, вносим изменения в старые. После нажимаем кнопку Сохранить Russian.php.

Если мы редактируем на локальном компьютере, не о чем беспокоится, на экран будет выведено содержимое переведенного файла Russian.php и сам файл Russian.php будет автоматически обновлен. Если вы делаете перевод на сайте в интернет, убедитесь что вы не забыли, как сказано выше, выставить на файл Russian.php права 777.

А теперь вспомним про новый файл English_Admin.php, который добавлен в версии 2.0. Конечно можно сделать его копию старым способом, как и делали до этого – открыть в текстовом редакторе и перевести по старинке. Но воспользуемся новым технологиями.

Пишем в строке браузера наш секретный адрес, заменяя имя файла на новое English_Admin.php http://ваш_сайт/admin/ lancheck.php?../plugins/ autogallery/languages/ English_Admin.php|Russian|file

Если мы делаем все это в локале, по прежнему не о чем беспокоится. Если же непосредственно на сайте – либо вручную создаем в папке autogallery/languages файл Russian_Admin.php с правами 777, либо ставим на папку папке autogallery/languages права 777.

Как и прежде откроется окно редактора файла. Переводим все необходимые строки и сохраняем, нажав кнопку Сохранить Russian_Admin.php.

Вот и все, локализация и наш урок завершены. Если вы делали локализацию в интернете, выставите права 644 на файлы и папки локализации, если до этого ставили на них права 777.

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