Translations-ru

From AMule Project FAQ
Revision as of 18:58, 15 January 2006 by Treplo (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

English | Português | Korean | Russian

Вступление

aMule очень легко переводить на другие языки. Теперь в нем поддерживается и Unicode, поэтому больше нет ограничений на используемые символы. Можно сделать перевод на китайский, корейский, арабский, иврит (...) на какой угодно язык!

Но для этого нужны переводчики, так что смело присоединяйтесь к миру aMule!

Чтобы стать переводчиком, необязательно уметь программировать на C++ или Klingon! Достаточно знать свой родной язык (!!) и немного английский!

Интересно? Тогда за дело!

Как начать

Время от времени (примерно раз в месяц) мы выкладываем текстовый файл, который называется source_strings.po, в разделе форума, посвященном Переводам.

Скачайте его и откройте программой KBabel, если вы пользуетесь KDE, либо PoEdit или gTranslator, если у вас Gnome.

Перед этим не забудьте настроить KBabel, PoEdit или gTranslator, то есть указать ваше имя, адрес электронной почты, кодировку и т.д.

Вот, что будет видно в окне KBabel:


http://www.amule.org/dev-up/kb1.png


В верхнем левом углу находится английская строка.

В верхнем правом углу указано имя файла, в котором эта строка используется.

Все, что вам надо сделать -- ввести перевод данной строки в поле в левом нижнем углу:


http://www.amule.org/dev-up/kb2.png


ОБЯЗАТЕЛЬНО скопируйте в переведенную строку все специальные символы, например &, %i, \n и сохраните начальные и конечные пробелы.

Пожалуйста, изучите также этот документ на предмет символов, которые нельзя изменять.

Обработайте таким образом все остальные строки, сохраните файл и...

Перевод закончен! Теперь выложите его в разделе форума aMule, посвященном переводам и вам будут благодарны тысячи людей. :)

Как продолжить уже начатый перевод

Если кто-то уже начал перевод, то вам не придется переписывать уже переведенные строки из предыдущего файла source_strings.po!

Процесс объединения уже переведенных строк с новым файлом source_strings.po можно автоматизировать.

Например, вы хотите продолжить перевод на французский:

  • Возьмите новый файл source_strings.po с форума и старый файл fr.po из предыдущей версии aMule.
  • Объедините оба файла, напечатав:

msgmerge --no-fuzzy-matching -o new_fr.po fr.po source_strings.po

Это же объединение можно произвести и встроенными в KBabel и PoEdit инструментами (проконсультируйтесь со справочными руководствами к этим программам).

Теперь действуйте с этим объединенным файлом new_fr.po так же, как с первоначальным файлом source_srings.po, с той разницей, что переводить надо будет только новые (добавленные) строки.

Тестирование вашего перевода

Первые замечания

После того, как вы перевели файл, можете сразу скомпилировать aMule или только проверить ваш файл на корректность (при компиляции aMule такая проверка происходит автоматически).

Второй вариант хорош тем, что надо будет собирать не весь aMule, а только ваш перевод.

Рекомендуется всегда сначала тестировать файл перевода на корректность, а только потом компилировать aMule с поддержкой этого перевода и смотреть, как он выглядит.

Проверка только переведенного файла

Для этого сначала запустите ./configure.

Теперь, когда вы переместили ваш файл перевода в каталог po/, выполните команду make язык_перевода.gmo, например make en_GB.gmo

Если с вашим переводом все в порядке, то вы увидите примерно такое сообщение

[~/aMule/amule-dev-cvs/po]$ make en_GB.gmo
rm -f en_GB.gmo && /usr/bin/msgfmt -c --statistics -o en_GB.gmo en_GB.po
1354 translated messages

Это был пример правильного и полного перевода.

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

В случае правильного, но неполного перевода будет показано следующее:

[~/aMule/amule-dev-cvs/po]$ make ru.gmo
rm -f ru.gmo && /usr/bin/msgfmt -c --statistics -o ru.gmo ru.po
1333 translated messages, 79 untranslated messages.

Как видите, 79 строк здесь еще не переведены.

Существуют также сомнительные переводы. Это переводы, которые угадывает gettext, но скорее всего они ошибочны (хотя вероятно не очень). Они отмечаются строкой #, fuzzy прямо перед переводом. Так что, если у вас будут сомнительные переводы, ищите такие строки и исправляйте их (или просто удаляйте #, fuzzy если со строками все в порядке).

Пример, в котором есть сомнительные переводы:

[~/aMule/amule-dev-cvs/po]$ make hr.gmo
rm -f hr.gmo && /usr/bin/msgfmt -c --statistics -o hr.gmo hr.po
544 translated messages, 412 fuzzy translations, 443 untranslated messages.

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

[~/aMule/amule-dev-cvs/po]$ make de.gmo
rm -f de.gmo && /usr/bin/msgfmt -c --statistics -o de.gmo de.po
de.po:88: number of format specifications in 'msgid' and 'msgstr' does not match
/usr/bin/msgfmt: found 1 fatal error
make: *** [de.gmo] Error 1

В этом примере найдена ошибка в строке 88 и файл перевода не будет сгенерирован, пока ошибка не будет исправлена.

Проверка перевода в aMule

Чтобы проверить перевод, вы можете скомпилировать aMule и посмотреть, как ваш перевод будет там выглядеть.

Если ваш язык не был доступен в aMule, добавьте его в базу, чтобы aMule знал о нем и скомпилировался с его поддержкой. Для этого добавьте код вашего языка в файл po/LINGUAS (там каждый язык в отдельной строке).

Теперь скомпилируйте aMule как обычно. Если при этом вам понадобится помощь, то изучите это руководство.

Перевод для продвинутых

Если вы не новичок в разработке под Linux или очень нетерпеливы и хотите всегда иметь самый свежий перевод...

Создайте файл source_strings.po сами!

Как это сделать?

  • Распакуйте архив, перейдите в его корневой каталог и сгенерируйте Makefiles:

tar -xjf aMule-cvs-20041009.tar.bz2
cd amule-cvs
./configure

  • Обновите файл POTFILE.in:

grep -m 1 '_(' `find * -name "*.cpp"` | cut -d: -f1 > po/POTFILES.in

  • Создайте новый файл source_strings.po:

cd po
mv amule.pot amule.pot.old
make amule.pot
mv amule.pot source_strings.po
mv amule.pot.old amule.pot



--Thepolish 22:46, 9 Oct 2004 (CEST)