Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

Плагины Thunderbird

Два дня писал плагин к Thunderbird (почтовый клиент на Gecko), получил level up. Документация скудная, разбросана по куче сайтов, часто приходится читать XUL-исходники интерфейса Thunderbird. А я ещё ругал документацию на Python…

Не то, чтобы я сходу сейчас напишу любой плагин, но знаю как всё устроено, умею биндить пункты меню, обращаться к заголовкам (в т.ч. нестандартным), обращаться с панелью письма и умею делать ещё дюжину разных трюков. Не дошли пока руки разобраться с довольно простой вещью — как делать локализацию. Кажется всё достаточно просто, но пока не взлетело.

10 комментариев
playpausenstop.livejournal.com 2008

а чем документация на питон не нравится? :) docs.python.org и всех проблем ;)

Евгений Степанищев (bolknote.ru) 2008

Комментарий для playpausenstop.livejournal.com:

Тем, что там ничего не найдёшь толком. Документация — это я не знаю как, а она мне помогает найти как. А эта «документация» старательно от меня всё прячет.

drucha.livejournal.com 2008

Я думаю тебе стоит потом описать полученный опыт :)

dionys.myopenid.com 2008

У Mozilla нет отдельной документации к каждому из продуктов, есть общая документация по XUL и XPCOM. В большинстве случаев для поиска информации достаточно двух сайтов: http://www.xulplanet.com/ и  http://developer.mozilla.org/​. Документации довольно много, но вот, например, самые древние интерфейсы XPCOM, действительно, практически не документированы.

А локализация это действительно просто. Для каждого языка создаётся набор DTD-файлов с описаниями entity. Потом эти entity используются внутри XUL-файлов вместо текста.

Евгений Степанищев (bolknote.ru) 2008

Комментарий для drucha.livejournal.com:

Книги не хватит :)

Евгений Степанищев (bolknote.ru) 2008

Комментарий для dionys.myopenid.com:

Про entity я знаю. Не заработало.

dionys.myopenid.com 2008

Комментарий для Евгения Степанищева:

А в chrome.manifest про локали написал? В XUL-файлы DOCTYPE правильный добавил?

Евгений Степанищев (bolknote.ru) 2008

Комментарий для dionys.myopenid.com:

В chrome.manifest написал, да. Правильный DOCTYPE в XUL-файле — это какой? Типа такого?

<!DOCTYPE window [
<!ENTITY % someDTD SYSTEM «chrome://messagefaces/locale/some.dtd» >
%someDTD;
]>

dionys.myopenid.com 2008

Комментарий для Евгения Степанищева:

Всё так. Если не работает, то без изучения поделки ничего больше подсказать не могу.

Евгений Степанищев (bolknote.ru) 2008

Комментарий для dionys.myopenid.com:

Ну вот и я не могу, но наружу выложить не могу, разберусь ещё.