При переводе расширений столкнулся с такой проблемой!
Пытаясь сделать полный перевод расширения и редактируя файлы содержащие alert'ы не зависимо от выбранной кодировки в результате отображается нечитаемый текст (при использовании кириллицы). Введенное латиницей отображается правильно. Что нужно изменить, чтобы alert's содержащие русский текст отображались правильно? (еще раз напомню, что изменение кодировок не помогает).

Спасибо!

В Unicode, причем не текстом, а представляя каждый символ его кодом, примерно вот так:

\u0422\u0435\u043a\u0441\u0442

А более простого метода нет типа автоматичекого перевода в код, для последующей вставки?

Ну, если мне когда-нибудь это понадобится, я воспользуюсь конвертором в PSPad'е. А может, и лучшее решение есть.

ФФ с ТБ, надо думать, не вручную ведь переводились.

И еще при установке Unicode в расширении, например Copy Plain Text, alert's вообще перестает отображаться, а в других кодировках, символы отображаются как код, а не как текст.

При возможности лучше идти другим путём.

Выделить код

Код:

___.xul:
<stringbundleset id="stringbundleset">
    <stringbundle id="extension-string-bundle" src="chrome://extension/locale/extension.properties"/>
</stringbundleset>

extension.properties:
testAlert=Привет!
testConfirm=Вы уверены?

___.js:
var MY_BUNDLE = document.getElementById("extension-string-bundle");
......
alert(MY_BUNDLE.getString("testAlert"));
confirm(MY_BUNDLE.getString("testConfirm"));

И еще при установке Unicode в расширении, например Copy Plain Text, alert's вообще перестает отображаться

Copy_Plain_Text_0.3
алерты:

файл copyplaintext.js
alert("\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430\n"+ err)

файл options.js (в порядке появления)
alert("\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438.\n"+ e);
alert("\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438.\n"+ e);
alert("\u0411\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 \u043d\u043e\u0432\u044b\u0445 \u043e\u043a\u043d\u0430\u0445!");

У меня такой вариант прекрасно работает:

Выделить код

Код:

var myString=”Это тестовая строка”;      
var utf = Components.classes["@mozilla.org/intl/utf8converterservice;1"].createInstance(Components.interfaces.nsIUTF8ConverterService);
var utfMyString = utf.convertStringToUTF8(myString,"windows-1251","false");
alert(utfMyString);

По-моему, самый грамотный способ - тот, что описал Mash. Ну а самый простой привел alc.

Нет Yan, вы ошибаетесь, самый простой способ - мой :) Выделил, и применил конвертор. Все.
Разумеется, применительно только к переводчикам расширений.

Способ alc'а (имхо) удобен для отладки. А если исключить первую строку (а в нужных случаях - последнюю) - так и совсем становится весьма полезным.

Способ, приведенный Mash'ем, вообще обязателен для всякого, уважающего себя разработчика расширений. (Некоторые буржуйские девелоперы, видимо, себя не уважают :))

Anton
Ну, когда я писал, что самый простой, я имел в виду и простоту дальнейшей правки перевода. Т.е. если например через некоторое время захочется что-нибудь поменять, то копаться в unicode будет не очень удобно. :)

Ну, конвертер работает в обе стороны. Даже если писать в .properties, и оформлять через stringbundle, все равно придется мириться с юникодом, т.к. первый же байт с кодом 04 обозначит конец строки (не в файле, а в строковой переменной).

Про юникод в .properties само собой.
Я имел в виду что юникод вида

Выделить код

Код:

\u0422\u0435\u043a\u0441\u0442

для дальнейшего редактирования не особо нагляден и удобен.

для дальнейшего редактирования не особо нагляден и удобен.

Есть редакторы для такого кода, я даже ссылку приводил где-то на форуме.

Столкнулся с переводом расширений, чего-то не получается, раньше как-то работало.
Открываю в Winrar расширение, захожу в jar файл, добавляют туда переведённые файлы, но расширение не  ставится, и еще в какой кодировке нужно переводить, я тут смотрел что расширения переведены в Dos 866, я пробовал и в Dos 866 и в UTF-8 закидывать их в Jar файл, использую AkelPad, но ничего не работает всеравно, может Winrar глючит или кодировка? :/

расширение не  ставится

может, в rar-овский формат перепаковывается ?

Желательно подробней.

может, в rar-овский формат перепаковывается ?

Я тоже так думаю, если бы дело было в кодировке, то даже кракозяблы показывались, я пробовал также в 7zip, в Total Commander, но такой же глюк, они все пакуют в ZIP, так где взять нормальный JAR архиватор. Надо попробовать Power Arhiver, пишут что он поддерживает JAR - JavaARchiver.

jar - это обыкновенный zip

1) никаких DOS и попробуй другой редактор, м.б. этот шалит;
2) если не поможет, то лучше было бы выложить куда-нибудь на всеобщее обозрение переведённые (изменённые в процессе перевода) файлы и ссылку на само расширение. А то гадать тут,...

Я кажется понял, глючит только из-за одного файла ieview.dtd, тут теперь только в кодировке дело http://forum.mozilla.ru/uploaded/ieview … t_work.xpi

Оригинал http://mozdev.oregonstate.edu/ieview/ieview.xpi

Т.к. у меня сейчас нет установленного ru-RU, то я удалил из install.rdf локаль en-US и поставил ru-RU на первое место. Всё встало без ошибок.

Вот готово http://forum.mozilla.ru/uploaded/ieview … u_test.xpi, кто хочет протестируйте, отправляю разработчику.

У меня работает только если переводить через Mozilla Translator, как же обойтись без него? Какой редактор использовать вместо AkelPad?

emeditor, pspad -- на них вроде как никто не жаловался. Сам я другим пользуюсь, но рекомендовать не стану.

Мне нужно просто текст переконвертировать в такой Unicode  \u0422\u0435\u043a\u0441\u0442..., как в EmEditore это сделать, кто подскажет?

DecodeUnicode, EncodeUnicode

DecodeUnicode, EncodeUnicode

Я это пробовал уже, не получается или я неправильно делаю, ввожу текст по русски, выделяю, нажимаю DecodeUnicode или наоборот, но ничего не меняется, текст остаётся читаемым...

Ну, здесь это уже не скажу. М.б. кто-нибудь пользовался, подскажет.

кто-нибудь пользовался, подскажет.

пользуюсь постоянно, все работает...
После установки этих двух плагинов, нужно их настроить. Идешь в Инструменты > Плагины > Настройка плагинов. Выделяешь нужный жмешь Свойства и делаешь так:

Image1.png
и
Image2.png

Ну а потом просто пишешь текст, выделяешь и щелкаешь по кнопке Encode Unicode.

ragnaar
Окей, работает, остался один вопрос, если я перевожу файл ieview.dtd, в какой кодировке его сохранять, можно ли его конвертнуть в символы Encode Unicode также как и файл ieview.properties? Mozilla Translator почему-то именно этот файл сохраняет в такой кодировке, а остальные в другой (Dos, UTF-8, ANSI).

Короче вроде разобрался, файл ieview.properties нужно только декодировать в символы, а основной файл с переводом ieview.dtd нужно сохранять в UTF-8, наверное AkelPad глюкавый был, EmEditor получше конечно.

lcraFTl
http://www.mozilla.org/projects/l10n/mlp_chrome.html#text

Mainly localizable resources are made up of:

    * DTD files = XML definition tables. Encoding: UTF-8
    * properties files = Java/JS properties definitions. Encoding: Escaped Unicode (\uXXXX)

Что-то я не могу найти, как в PSPad преобразовать

Выделить код

Код:

Текст

в

Выделить код

Код:

\u0422\u0435\u043a\u0441\u0442

Может кто подскажет?

P.S. Уже нашел, всем спасибо за внимание. :)
(Инструменты/конвертеры пользователя)