Полезная информация

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№131-08-2009 06:20:53

AllSeeingI
Участник
 
Группа: Members
Зарегистрирован: 12-03-2007
Сообщений: 107
UA: Firefox 3.5

Как определить текущую локаль расширения?

Здравствуйте форумчане.

Положим у меня русскоязычный файрфокс (т.е. локаль браузера - ru-Ru), и я на него устанавливаю расширение, имющее только en-Us локализацию. В этом случае, очевидно, для данного расширения будет использоваться DTD от en-US.

Вопрос вот в чём - можно ли, и если можно - как, узнать, какую локаль использует расширение с данным ID? Заранее спасибо.

Отсутствует

 

№231-08-2009 10:30:40

Jarichek
Member I
 
Группа: Members
Откуда: Минск
Зарегистрирован: 09-04-2009
Сообщений: 306
UA: Firefox 3.5

Re: Как определить текущую локаль расширения?

AllSeeingI
Странный какой-то вопрос... расширения не используют локаль браузера (точнее они берут сведения об текущей локали браузера и выбирается соответствующая локализация расширения). Если там нет русского, будет работать английская локализация расширения. Все локализации хранятся в самом расширении.

Отсутствует

 

№331-08-2009 15:22:21

banbot
Moderator
 
Группа: Moderators
Зарегистрирован: 23-12-2007
Сообщений: 5284

Re: Как определить текущую локаль расширения?

Тема перенесена из форума «Firefox» в форум «Разработка».


Do you feel lucky, punk?

Отсутствует

 

№431-08-2009 16:15:05

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Как определить текущую локаль расширения?

Если не найдется более прямого способа, видимо, придется читать chrome.manifest вручную (а если нужна поддержка старого формата, то и install.rdf). :|

Выделить код

Код:

var guid = "myextension@my.name";
var em = Components.classes["@mozilla.org/extensions/manager;1"]
	.getService(Components.interfaces.nsIExtensionManager);
var file = em.getInstallLocation(guid).getItemFile(guid, "chrome.manifest");

P.S. Насколько я помню, чем раньше объявлена локаль, тем она приоритетнее при отсутствии подходящей.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№531-08-2009 21:09:45

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Как определить текущую локаль расширения?

Для пакета можно узнать. Например, у меня для расширения Nightly Testers Tools 2.0.2

Выделить код

Код:

var cr = Components. classes ["@mozilla.org/chrome/chrome-registry;1"].
	 getService (Components. interfaces. nsIXULChromeRegistry);
alert (cr. getSelectedLocale ('nightly'));

даёт "en-US". Для других русифицированных и неотключенных, например 'stylish' - соответственно "ru-RU".

Отредактировано Anton (31-08-2009 21:14:37)


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№601-09-2009 20:42:05

AllSeeingI
Участник
 
Группа: Members
Зарегистрирован: 12-03-2007
Сообщений: 107
UA: Firefox 3.5

Re: Как определить текущую локаль расширения?

Anton пишет

Для пакета можно узнать.

Во! То что надо, спасибо Антон!

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]