В связи с последними событиями и шумихой вокруг локализации - http://www.drupal.ru/node/52937
Предлагаю направить часть своей умственной деятельности на благое дело - создание и редактирование переводов. Здесь приведён пример, как и где можно переводить или редактировать уже готовые переводы.
Данный пример написан с учётом того, если делать перевод будет человек не знающий английского языка
Возможно кому-то поможет переводить отдельные строки или фразы, а возможно и делать полноценные переводы, или редактировать и утверждать уже сделанные переводы (на данный момент - десятки тысяч строк не утверждённого перевода).
Что нужно, чтобы сделать перевод?
Немного логики, изучение терминологии друпала, терпения, "дофига" терпения и очень "дофига" терпения Так же не помешает использовать переводчик, например - http://translate.google.com/#
Ну и конечно - немного смелости Не бойтесь, вас никто не укусит, во всяком случае много раз
Что нужно, чтобы редактировать перевод?
То же, что и переводчику, и желательно умение грамотно составлять предложения, то есть, если вы в школе сочинения и изложения писали на пятёрки, то проблем у вас не будет
Есть три варианта, как делать или редактировать перевод:
Первый - переводить в .PO файле. PO файл - это специальный формат файла для переводов. Для перевода вам надо с сервера локализации скачать файл, для перевода модуля - http://drupaler.ru/translate/languages/ru/export
По приведённому веб-адресу вам надо ввести название модуля который хотите переводить, после этого выбрать его версию. Формат файла оставляем по умолчанию.
Плюсы - Сразу видим исходную строку (с английским текстом) и перевод (если есть), если нет, то можем переводить, так же можем сразу увидеть все строки модуля, что удобно, чтобы сделать правильный и единый перевод.
Минусы - Чтобы увидеть результат перевода, надо его закачать на сайт и чтобы готовый перевод импортировать на сервер локализации, надо его вручную там добавить. Минусы небольшие (тратится на них 2 минуты), но минусы
Второй - Использовать l10n_client. Данный вариант пока не доступен на drupaler.ru, но в ближайшее время планируют обновлять сервер и наверняка будет внедрена эта возможность.
Плюсы - Сразу видим исходную строку и перевод (если есть), если нет, то можем переводить и тут же увидим результат на сайте и кроме того, можем отсылать сразу новый перевод на сервер локализации.
Минусы - Делаем перевод отдельных строк, а не целого модуля, соответственно, за бортом остаётся много НЕ переведённого содержания.
Третий - переводить или редактировать на сервере локализации.
Перевод - http://drupaler.ru/translate/languages/ru/edit
Редактирование - http://drupaler.ru/translate/languages/ru/moderate
Плюсы - сразу видим исходную строку и перевод (если есть), а так же предлагаемые другие варианты. Можно посмотреть в каких модулях используется строка.
Минусы - Не видим в каком именно месте выводится строка на сайте и соответственно можно неправильно просклонять предложение, что будет смотреться коряво. Так же не видим сразу все строки для модуля (надо листать страницы).
Какой вариант выбрать новичку? Наверно третий, но думаю вы сами можете определиться, что вам лучше
Рассмотрим несколько примеров.
Например, возьмём одну из первых исходных строк модуля Blog: "Post new blog entry."
Переводчик нам выдаёт: "Начать новую запись в блоге."
Данный перевод соответствует терминологии друпала и понятен. Обратите внимание, что предложение начинается с большой буквы и в конце ставится точка. Точно так делаем в переводе. Если исходный текст начинается с маленькой буквы и в конце не ставится точка, то так же делаем в переводе. После этого утверждаем и первая переведённая строка у нас готова
Рассмотрим пример немного сложнее.
Исходное - "name's blog"
В даном случае нам не нужен переводчик, так как и так всё понятно. blog - это блог, name's - это переменная выводящая имя пользователя. То есть в переводе мы получаем, например - Блог Axel's
Вроде неплохо, но возникает вопрос - разве axel блог? Нет, он человек Поэтому уточняем, подставляя слово пользователь. Получаем - Блог пользователя axel's. Уже лучше, но зачем нам буква S в конце? Понятно, что в английском идёт окончание, но у нас (в русском языке) невозможно закончить одной буквой. Поэтому убираем 'S и заодно, отделим с помощью тире - имя пользователя от текста, чтобы не сливалось в единое и был отделён английский (чаще всего) от русского.
В конечном итоге получаем - "Блог пользователя - name"
Выглядеть будет так: Блог пользователя - Axel
Таким образом мы не только сделали перевод, но и локализовали его.
Примечание: Локализация - процесс адаптации к культуре и языку какой-либо страны.
Стоит отметить, что внедрение "лишних" слов не всегда хорошо и обдумывайте возможные последствия, перед тем как добавить "лишние" слова.
Ещё один пример.
В 7-ой версии друпала в модуле blog появились такие выражения - "Single-user blogs" и "Multi-user blogs"
В переводе - однопользовательские блоги и многопользовательские блоги.
Термины явно взяты из игр Звучит с одной стороны неплохо, но много букв и не совсем понятно, например - Что такое многопользовательский блог? Блог у которого много пользователей или что вообще подразумевается под этим словом?
В данном случае надо разобраться - где на сайте выводится это предложение, что означает и можно ли его сформулировать по другому?
Показывается оно в справке с объяснением работы модуля. Значит смотрим тот текст и от него пробуем отолкнуться в своём переводе.
Исходное - "Each user's blog entries are automatically displayed with a link to the user's main blog page. You can create as many single-user blogs as you have site users with permission to create blog content."
и второе - "Blog entries from each single-user blog are also aggregated into one central multi-user blog, which displays the blog content of all users in a single listing."
Сейчас я не буду вам приводить пример, как сделан перевод этих текстов (это долго.. Вы сами можете попробовать перевести
А приведу пример к какому варианту пришёл:
Single-user blogs - Персональные блоги
Multi-user blogs - Мультиблоговый сервис
Попробуйте сделать перевод, а ещё лучше локализовать, отталкиваясь от подсказки (переведённых терминов).
Пояснение: В данном случае есть нюанс (новички могут не знать), что в плане блогов, есть некое подобие "войны" между drupal и wordpress. И применение термина - мультиблоговый сервис - связано в некоторой степени с этим. Кто не в курсе, друпал пытается догнать вордпресс в качестве удобства блогов.
На момент написания статьи, данная терминология не оговорена и не утверждена, то есть, чтобы ввести её в обиход надо утвердить её с переводчиками, для этого можно сделать опрос на сервере локализации. Для чего это нужно сделать? Для того чтобы небыло разногласий и к тому же, эта терминология может встречаться в дальнейшем, в новых дополнительных модулях для друпала.
Проверка перевода
После того как вы сделали перевод, не спешите его сразу заливать на сервер переводов. Сначала проверьте его ешё раз, лучше всего на следующий день, так как глаз у вас не будет замылен и если есть ошибки, вы их сразу заметите.
Как проверить?
Закачайте перевод к себе на сайт. Это будет первая проверка, на то, везде ли стоят кавычки ("")
Если в какой-та строке вы забыли указать кавычки, то перевод не загрузится у вас на сайт и покажет в какой строке находится ошибка. Дальше посмотрите как он выглядет на сайте, как читается и нет ли ошибок.
После этого смело импортируйте перевод на сервер локализации.
Дополнительно:
Прочитайте правила перевода - http://drupaler.ru/forum/109
Изучите PO файлы с сделанными переводами. Там сможете посмотреть, как делают перевод другие люди и почерпнуть для себя что-нибудь полезное.
Комментарии
Хорошая статья, побольше бы таких.
Локализация и правда очень важна, жаль что она не всегда осуществима.
Однако в статье маловато технических подробностей.
Статья скорее расчитана на тех, кто будет переводить через интерфейс. Мне больше нравится редактирование *.po файлов, т.к. это дает большую гибкость, а гибкость любит любой Друпалер.
Например, склонение множественных чисел, в русском языке таких склонений три (год, года, лет к примеру). Как это перевести через интерфейс я плохо предсталяю, по крайне мере в системном интерфейсе редактирования переводов. В *.po файле это делается элементарно.
Вот Вы говорите стачать *.po файл и переводите. А что конкретно делать с этим *.po файлом рядовому пользователю может быть непонятным. И кстати говоря есть еще и *.pot файлы, которые и являются шаблонами переводов, а *.po файлы это уже фактические переводы.
Для более комфортной работы с *.po файлами можно использовать программу PoEdit, но фактически это обычные текстовые файлы, которые имеют своеобразный формат. Можно пользоваться обычным Notepad++
Хорошо бы сделать целую серию статей про переводы.
Под техническими подробностями, что вы подразумеваете?
Я тоже перевожу в .po файлах, но статья в первую очередь писалась для новичков. Про редактор забыл упомянуть, спасибо, что написали.
Серию статей можно сделать (напишите тоже :), но сейчас более важным вижу организацию работы, об этом уже упоминал на drupaler.ru и буду ещё подымать этот вопрос... Конечно, всё взаимосвязано, одно не работает без другого.
+1 надо людей стимулировать переводить
единственно подоплека смущает)))
Какая подоплека? Я не заметил подоплеки.
del
Договориться о чём? И в чём вы видите подоплёку?
Что в моём описании нет ссылок на L.D.O.? Так и самого сервера с русским языком ещё нет...
Поясните свои соображения...
Да и кстати, хотелось бы больше слышать новичков, всё ли им понятно (может есть вопросы)...
А в конце статьи написано - "смело импортируйте".
Ребята. Правда что ли нужно звать на перевод Друпала людей, не знающих английского языка? А потом у нас "маркеры", "эклеры", "штаты" и серьезные вопросы по качеству переводов.
(смайлик я вижу, но все равно недоумеваю)
И, исходя из того, что я видел в живых переводах Друпала, в секции "Проверка перевода" решительно не хватает пункта "возьмите свой перевод, воткните в Word и запустите проверку орфографии". Это как минимум
1) - Сразу появится немного людей и статья признана в первую очередь привлечь внимание, да и просто, а как по другому?
2) - Надеюсь, что в ближайшее время для новичков НЕ будет возможности импортирования с утверждением перевода (вопрос этот уже поднят).
3) - Нужны редакторы (которые могут не знать англ.), иначе закопаемся...
Я не понял, что значит предложение 1)
3) Редакторы, которые не знают англ. - уже почти верный путь к плохому переводу.
Привлечь внимание к проблеме переводов, сейчас явная проблема с переводчиками и этот ком будет нарастать...
По вашему - человек не знающий английского, не может нормально владеть русским языком? Редактор - это в первую очередь соответствие перевода терминологии и "адекватный" стиль изложения.
Иначе переводчик косячит с переводом (в коллективных переводах такое постоянно), отдает редактору, а редактор не знает языка и пропускает все косяки дальше (то есть потребителю). Результаты такого подхода сегодня можно наблюдать повсюду
Чтобы не было такого, планируется создать специальную систему... я уже писал, что этот вопрос решается!
Этот вопрос относится к группе переводчиков и его обсуждение здесь не уместно... Подробности на drupaler.ru
А я и не обсуждаю вопросы группы переводчиков. Я обсуждаю советы, которые вы даете в статье. Это тоже неуместно?
Это очень даже уместно Но мы просто начали отклоняться немного от темы....
Уж не знаю, как у кого, а у меня в l10n_client функция автоматической отправки на сервер вполне себе работает. Я в основном так и перевожу. Единственное - отправленные переводы добавляются неодобренными, даже если других вариантов не было.
l10n client + Live translation - и вперёд!
По статье в целом - молодец, надо привлекать массы.
А про плохо владеющих английским... моя позиция такова: на данном этапе лучше привлечь как можно больше людей, грамотно говорящих по-русски и смириться с неизбежным процентом "битых" переводов, чем ждать первоклассных "универсалов" и ныть: "Ой, чё-то хреново и медленно всё переводится! Ой, чё-то все переводы на ломаном русском!"
Вот потом, когда непереведённые строки станут скорее нонсенсом, чем нормой, можно будет отбирать многостаночников.
Тем более, что нормальный редактор, если видит, что какая-то ересь получается, может и сам обратиться к электронным переводчикам.
UPD:
Правда, я бы предложил сделать на друпалере при вступлении в редакторы и переводчики небольшой тест соответственно на грамотность по-русски и знание английского.
Хотя бы отсеять тех, кто не знает, когда в глаголе с постфиксом "-ся" пишется мягкий знак. И тех, кто не в курсе, как по-английски строятся безличные предложения.
А то уже мягко говоря достали такие ошибки.
Народ... Сталкнулся с проблемой около месяца назад. Хотел написать, но времени не было... А ут как-раз статья в тему... В общем есть сайт... С установленым переводом... Т.к. На него были залиты дополнительные модули, они были переведены средствами друпал. Когда я экспортировал перевод и попытался импортировать его на другой сайт, друпал послал меня на три веселых буквы и сказал, что файл перевода не найден... В чем может быть проблема??? На днях пытался сделать свою сборку друпала... Для теста поставил туда ранее импортированый перевод, установка прошла удачно, но перевелось 30% сайта... Может кто сталкивался с этим????
А почему, просто не скачать перевод с drupaler.ru ? Или у вас свой перевод?
Не то чтобы свой, частично изменен и в него включины переводы основных модулей которые я обязательно устанавливаю вместе со стандартным набором... Или лучше перевод этих модулей заливать в папку транслэит для каждого модуля??? Если да, то как я вытащу перевод для конкретного модуля из своего сайта???
Да ну? При чём тут слово "Начать"? Где-то встречается фраза "Закончить новую запись в блоге"? Или "Продолжить новую запись в блоге"?
Нет, но в данном случае отображается в блоге с записями пользователя, соответственно, пользователь начинает новую запись, а не продолжает старую или заканчивает...
Вопрос от новичка.
На самом деле мало технической информации о том каким образом выполнять перевод. Вот сейчас правлю русский перевод модуля trixbox, на drupaler.ru не полная версия. Открыл файл ru.po, и вижу такие строки к примеру:
#: thickbox.module:67
msgid "Login"
msgstr "Войти"
Меня интересует цифра "67", как определить что переводимый термин соответствует определенному числу и как узнать число которому соответствует термин. Я хочу заменить "Image" (упоминания которого в исходном .po файле нет ) на "Изображение", а вот какое число написать я хз.
Поясните кто в курсе.
Спасибо.
Цифра 67 означает номер строки в файле thickbox.module где встречается эта строка.
До тех пор, пока система переводов не учитывает файлы и номера строк - они не имеют значения. Например в D6.
Я где-то слышал, что в D7 уже учитываются имена файлов. Наверное там по другому.
по поводу своих строк, просто допишите в файлик:
msgid "Image"
msgstr "Изображение"
Спасибо.
У меня проблема - все PO-файлы которые удается каким-либо способом получить большие, поэтому когда импортируешь из них идет зависалово и бэд реквест. Настройки в пхп.ини не помогают. Нет ли альтернативной админки для языковых интерфейсов чтобы с прогрессбаром и через аякс импортировать из ПОшек? Удавалось кое-что непошное найти на русском, но этого очень мало, нехватает для русификации.
Денвер?
Если да - у меня подобная история, никакое повышение таймаутов не помогало. Но у меня так не со всеми po-файлами, а только с одним - с файлом для ядра.
Я решил в лоб: разбил вручную на несколько po-файлов (на 8, по-моему). Загрузить все строки друпалу требуется только один раз, при установке. Потом он совершенно спокойно кушает файлы, полученные через l10n_update.
P.S.: помнится, на друпалере при скачивании перевода были варианты - одним большим файлом, кучей маленьких... Жаль, что этого на ЛДО нет. Очевидно, проглотить кучу мелких файлов друпалу значительно легче, чем один большой.
Убедился, что действительно лучше на этапе установки языки загружать. Кстати, насчет деления пошек - у меня оно не работало. То ошибка с заголовком, то ничего не переводило. Но все равно сделать аяксную обработку пошек это тема. Есть плуги на jquery, которые позволяют это делать.
Ну так, ясное дело, там есть заголовок у файла. Его надо добавить во все "обрезки". И резать большой файл тоже можно не где попало, а только перед началом новой переводимой строки (перед строкой, начинающейся с хэша, которая перед msgid).
Ничего не переводило либо потому, что файл слишком большой, либо потому, что в файле ошибка: разрезал не там, где надо.