Как переводить Веб-сайт
Перевод веб-сайта выполняется в файлах .po. До сих пор самый простой способ перевода веб-сайта - получить аккаунт на Transifex и присоединиться к команде переводчиков. Или можно переводить "по старинке", как описано ниже.
-
Подготовка
- Зайдите на #i2p-dev в IRC и поговорите с людьми. Запросите язык - Чтобы бы уверенными, что ваши соратники не затрут файлы, над которыми вы работаете, пожалуйста, обновляйте статус перевода на этой wiki страничке.
- Следуйте руководству нового разработчика, включая перевод monotone, извлеките ветку i2p.www и сгенерируйте ваши собственные ключи monotone. Вам не требуется подписывать соглашение разработчика.
- Создайте файлы:
Если файла для вашего языка еще нет:
- Выполните "
./extract-messages.sh
" чтобы сгенерироватьmessages.pot
в основной директории. Отредактируйте заголовок файла, затем выполните "./init-new-po.sh locale
" чтобы сгенерировать файлi2p2www/translations/locale/LC_MESSAGES/messages.po
. "mtn add
" этот файл. - Отредактируйте
i2p2www/pages/global/lang.html
и добавьте строку для вашего языка (скопируйте какую-нибудь строку). - Добавьте файл с изображением флага в
i2p2www/static/images/flags/
для меню (скопируйте из маршрутизатора).
- Выполните "
- Отредактируйте файлы:
Отредактируйте
i2p2www/translations/locale/LC_MESSAGES/messages.po
. Чтобы эффективно работать с файлами .po, возможно, вы захотите использовать POEdit - Разместите:
"
mtn pull
", "mtn update
". Затем выполните размещение "mtn ci -k yourname@mail.i2p file1 file2 ...
" Так вы соберете информацию а различиям в измененных вами файлах по вашему локальному репозиторию. Затем "mtn sync mtn.i2p2.de -k yourname-transport@mail.i2p i2p.i2p
". Так вы синхронизируете ваш локальный репозиторий с репозиторием на целевом компьютере. - Повторите. Размещайте чаще. Не ждите пока оно станет совершенным.
Как Переводить Консоль Маршрутизатора
До сих пор самый простой способ перевода консоли маршрутизатора - получить аккаунт на Transifex и присоединиться к команде переводчиков. Или можно переводить "по старинке", как описано ниже.
-
Подготовка
- Зайдите на #i2p-dev в IRC и поговорите с людьми. Запросите язык - Чтобы бы уверенными, что ваши соратники не затрут файлы, над которыми вы работаете, пожалуйста, обновляйте статус перевода на этой wiki страничке.
- Следуйте руководству нового разработчика, включая установку monotone and средств gettext, извлеките ветку i2p.i2p, и сгенерируйте свои собственные ключи monotone.
- Сгенерируйте ваш собственный gpg ключ и подпишите соглашение разработчика.
- До начала перевода консоли маршрутизатора, лучше сначал помогите перевести несколько веб-страниц i2p. Хотя бы домашнюю страницу i2p на ваш язык, это было бы здорово.
- Что переводить:
Есть около 15 файлов в ветке i2p.i2p, которые нужно перевести:
-
installer/resources/readme/readme_xx.html
-
installer/resources/initialNews/initialNews_xx.xml
-
apps/routerconsole/locale/messages_xx.po
-
installer/resources/proxy/*_xx.ht
(about 9 files) -
apps/routerconsole/jsp/help_xx.jsp
-
installer/resources/I2P Site.help/help/index_xx.html
-
apps/i2ptunnel/locale/messages_xx.po
-
apps/i2psnark/locale/messages_xx.po
-
apps/susidns/locale/messages_xx.po
-
- Создайте файлы:
Если файла для вашего языка еще нет, скопируйте файл другого языка в новый файл
foo_xx.bar
для вашего языка. Затем "mtn add
" файл. После создания файла .po, отредактируйте заголовки. Затем выполните "ant distclean poupdate
". - Начните работу: Отредактируйте файлы HTML в любом текстовом редакторе. Не нужно использовать редакторы в режиме HTML, которые отформатируют весь текст. Для более эффективной работы с файлами .po, вы, возможно, захотите использовать POEdit
- Разместите:
"
mtn pull
", "mtn update
". Затем выполните размещение "mtn ci -k yourname@mail.i2p file1 file2 ...
" Так вы соберете информацию а различиям в измененных вами файлах по вашему локальному репозиторию. Затем "mtn sync mtn.i2p2.de -k yourname-transport@mail.i2p i2p.i2p
". Так вы синхронизируете ваш локальный репозиторий с репозиторием на целевом компьютере. - Повторите. Размещайте чаще. Не ждите пока оно станет совершенным.
Как вы видите, это не так сложно.
Если у вас есть вопросы насчет значения терминов в консоли, спросите в #i2p-dev
в IRC.
FAQ
В: Зачем мне нужно устанавливать monotone, Java, jsp, знать о файлах .po и html и т.д.? Почему я не могу просто переводить и отправлять все вам на почту?
О: Несколько причин:
- Возможно вы заинтересуетесь переводом через Transifex. Присоединитесь к команде переводчиков тут.
- У нас нет людей, у которых есть время для приема помощи вручную и размещения в системе контроля версий от вашего имени. Даже если бы и были, это плохо масштабируется.
- Может вы думаете, что перевод это одношаговый процесс. Это не так. Вы не можете выполнить его за один раз. Вы будете совершать ошибки. Вам нужно его протестировать и сделать его верным до того, как вы его утвердите. Разработчики обновляют или добавляют Английский текст, поэтому требуется обновление перевода.
- Наличие переводчиков, использующих систему контроля версий, увязано с аутентификацией и отчетностью - мы знаем кто что делает, и мы можем отследить изменения, и отменить их в случае необходимости.
- в файлах .po нет ничего сложного. Если вы не хотите работать непосредственно с ними, мы рекомендуем 'poedit'.
- В файлах HTML нет ничего сложного. Просто игнорируйте все тэги и переводите текст.
- Установка и использование monotone не так сложны. Несколько переводчиков и других помощников I2P не являются программистами, и они регулярно используют monotone. Monotone - это просто система контроля версий, в нем нет ничего "программистского".
- Наша единица перевода - это не "документ". Это файлы html и .po, в определенном формате и кодировкой символов (UTF-8), это нужно поддерживать, и не поломать при отправке по почте или другими методами передачи.
- Мы рассматриваем 'pootle' в качестве фронт-энда для переводчиков. Он работает не так как нужно, нуждается в администрировании, и pootle-подобный процесс страдает от ряда вышеописанных недостатков.
В итоге: Да, мы знаем, что у начинающих есть преграды. Это действительно единственный способ. Попробуйте, это на самом деле не так сложно.
Больше информации
Канал #i2p-dev в IRC, или форум перевода на zzz.i2p.