>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Как определить текущую локаль расширения? http://forum.mozilla-russia.org/viewtopic.php?id=39250 |
AllSeeingI > 31-08-2009 06:20:53 |
Здравствуйте форумчане. Положим у меня русскоязычный файрфокс (т.е. локаль браузера - ru-Ru), и я на него устанавливаю расширение, имющее только en-Us локализацию. В этом случае, очевидно, для данного расширения будет использоваться DTD от en-US. Вопрос вот в чём - можно ли, и если можно - как, узнать, какую локаль использует расширение с данным ID? Заранее спасибо. |
Jarichek > 31-08-2009 10:30:40 |
AllSeeingI |
banbot > 31-08-2009 15:22:21 |
Тема перенесена из форума «Firefox» в форум «Разработка». |
Infocatcher > 31-08-2009 16:15:05 |
Если не найдется более прямого способа, видимо, придется читать 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. Насколько я помню, чем раньше объявлена локаль, тем она приоритетнее при отсутствии подходящей. |
Anton > 31-08-2009 21:09:45 |
Для пакета можно узнать. Например, у меня для расширения 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". |
AllSeeingI > 01-09-2009 20:42:05 |
Anton пишет
Во! То что надо, спасибо Антон! |