Как переводить расширения
Из чего состоит расширение
В наших рассуждениях мы будем работать в Windows и использовать Total Commander. В Total Commander перейдите на установочный файл расширения (расширение XPI) и нажмите клавиши CTRL+PgDn. Как видно установочный файл расширения XPI — это простой ZIP-архив. Он, как правило, содержит следующие файлы: chrome.manifest, install.rdf, install.js и файл с расширением jar (который обычно находится в подкаталоге chrome). Рассмотрим эти файлы поподробнее:
chrome.manifest — служебный файл для установки расширения, используемый в Firefox 1.4, 1.5.
install.rdf — служебный файл для установки расширения, используемый в Firefox 0.9 и выше, Thunderbird 0.7 и выше.
install.js — служебный файл для установки расширения, используемый в Mozilla Suite, Firefox 0.8 и ниже, Thunderbird 0.6 и ниже.
файл с расширением jar — файл содержащий собственно само расширение.
Перейдите на файл с расширением jar и войдите в него нажав клавиши CTRL+PgDn (потому что этот файл тоже простой ZIP-архив). В нем мы можете увидеть от одного до трех из следующих каталогов: content, locale и skin. Если в нем окажется каталог locale — это значит расширение легко поддается локализации.
Чем переводить
Хотя расширения можно переводить, используя простой текстовый редактор, лучше это делать, используя специализированную программу — Mozilla Translator. Mozilla Translator написан на Java, поэтому для работы вам понадобится Sun Java Virtual Machine.
Перевод расширения
Упаковка перевода расширения в само расширение
- Получив файл с переводом, нужно решить что с ним делать. Лучше всего послать его автору расширения, чтобы он включил перевод в расширение. Или сделать русифицированное расширение самому. Для этого:
- Откройте полученный jar файл с переводом с помощью Total Commander. Вы увидите в нем структуру каталогов типа locale\ru-RU\flashgot (пример для расширения Flashgot).
- Откройте исходный jar файл извлеченный из установочного xpi файла с помощью Total Commander. Вы увидите в нем структуру каталогов типа locale\en-US\flashgot (пример для расширения Flashgot).
- Запакуйте переведенный файл в исходный jar файл. При этом должно получится структура такого типа — каталог locale, в нем 2 подкаталога — en-US и ru-RU.
- Запакуйте полученный jar файл с русской и английской локалями в xpi файл, из которого мы его извлекли.
- Теперь надо исправить служебный файл для установки расширения:
- Откройте файл chrome.manifest с помощью простого текстового редактора и вы увидите в нем код типа:
locale reloadevery en-US jar:chrome/reloadevery.jar!/locale/en-US/
Добавьте сюда аналогичную строку:
locale reloadevery ru-RU jar:chrome/reloadevery.jar!/locale/ru-RU/
- Откройте файл install.rdf с помощью простого текстового редактора и найдите в нем код типа:
<em:file>
<Description about="urn:mozilla:extension:file:flahgot.jar">
<em:locale>locale/en-US/flashgot/</em:locale>
</Description>
</em:file>
Добавьте в эту секцию строку locale/ru-RU/flashgot/, чтобы получился следующий код:
<em:file>
<Description about="urn:mozilla:extension:file:flahgot.jar">
<em:locale>locale/en-US/flashgot/</em:locale>
<em:locale>locale/ru-RU/flashgot/</em:locale>
</Description>
</em:file>
- Для файла install.js не определен стандартный способ добавления локализаций, для каждого расширения он свой. Посмотрите этот файл, чтобы определить как в нем добавляются локализации. Это может быть например такой код:
registerChrome(iContentFlag, getFolder(oFolder, gJar), "content/" + gAppName + "/");
registerChrome(iLocaleFlag, getFolder(oFolder, gJar), 'locale/en-US/' + gAppName +'/' );
В этом случае добавьте строку, чтобы получился следующий код:
registerChrome(iContentFlag, getFolder(oFolder, gJar), "content/" + gAppName + "/");
registerChrome(iLocaleFlag, getFolder(oFolder, gJar), 'locale/en-US/' + gAppName +'/' );
registerChrome(iLocaleFlag, getFolder(oFolder, gJar), 'locale/ru-RU/' + gAppName +'/' );
- Запакуйте файлы chrome.manifest, install.rdf и install.js в xpi файл, из которого мы их извлекли.
- Проверьте корректность процедуры перевода установкой полученного расширения.
Что делать при выходе новой версии расширения
- Извлеките новый jar файл из xpi файла расширения.
- Удалите из него все переводы кроме английского. Для этого зайдите в jar файл и удалите все каталоги в подкаталоге locale, кроме en-US.
- Запустите Mozilla Translator.
- В Mozilla Translator перейдите в меню File — Manage Products. В открывшемся окне выберите расширение, перевод которого вы хотите обновить и нажмите кнопку Edit. В поле «Jar File» при помощи кнопки Choose выберите файл с расширением jar. Нажмите OK, а потом Exit в окне Manage products.
- Перейдите в меню File — Update product. Выберите название расширения, которое вы набрали в пункте 4 и нажмите Ok. Перед вами появится окно:
- Оставьте те столбцы, которые вы видите на картинке (выбирая их мышью и удерживая при этом клавишу CTRL).
- В поле Locale наберите код языка на который вы собираетесь переводить расширение (для русского — ru-RU).
- Нажмите OK.
- Перед вами появится окно в котором будут отображены только те строки, которые были добавлены или изменены в новой версии расширения.
- Далее проследуйте процедуре описанной в главе «Перевод расширения».