如何使用Javascript获取Firefox扩展的区域设置

如何使用Javascript获取Firefox扩展的区域设置,javascript,firefox,firefox-addon,Javascript,Firefox,Firefox Addon,我花了很多时间试图找到一种方法,在扩展的Javascript代码中获取Firefox扩展的语言环境。关闭I am general.useragent.locale,我认为这是首选的本地化,但Firefox的用户语言可能完全不同 有什么想法吗?在尝试查询XUL包时,请查看 示例(查询全局/工具包包的区域设置): SDK加载项可以使用以下内容来确定自己的语言环境,尽管应该注意,此API标记为“不稳定” SDK加载项仍然可以使用nsIXULChromeRegistry.getSelectedLocal

我花了很多时间试图找到一种方法,在扩展的Javascript代码中获取Firefox扩展的语言环境。关闭I am general.useragent.locale,我认为这是首选的本地化,但Firefox的用户语言可能完全不同


有什么想法吗?

在尝试查询XUL包时,请查看

示例(查询全局/工具包包的区域设置):

SDK加载项可以使用以下内容来确定自己的语言环境,尽管应该注意,此API标记为“不稳定”


SDK加载项仍然可以使用
nsIXULChromeRegistry.getSelectedLocale(package)
通过模块查询其他加载项或浏览器。

尝试查询XUL软件包时,请查看

示例(查询全局/工具包包的区域设置):

SDK加载项可以使用以下内容来确定自己的语言环境,尽管应该注意,此API标记为“不稳定”


SDK加载项仍可使用
nsIXULChromeRegistry.getSelectedLocale(package)
通过模块查询其他加载项或浏览器。

Oops,抱歉。。。我编辑了答案。通常大多数代码使用
Cc=Components.class;Ci=Components.interfaces
,但它在默认情况下没有定义。只是一个小更新:“require(“sdk/l10n/core”).locale”不再起作用。新的方式似乎是“require(“sdk/l10n/locale”).getPreferedLocales();”,它返回一个数组。。。我编辑了答案。通常大多数代码使用
Cc=Components.class;Ci=Components.interfaces
,但它在默认情况下没有定义。只是一个小更新:“require(“sdk/l10n/core”).locale”不再起作用。新方法似乎是“require”(“sdk/l10n/locale”).getPreferedLocales();”,它返回一个数组。对不起,忘了问:XUL还是sdk加载项?我猜是XUL。我的意思是,它是一个常规扩展,在Firefox Chrome上附加一个按钮,并在按钮点击时执行一些操作。你使用XUL覆盖吗?那就是XUL。您使用的是加载项生成器还是SDK
cfx
?然后它是一个SDK附加组件。哦,现在我看到了区别,然后它肯定是XUL。谢谢老师,忘了问:XUL还是SDK插件?我想是XUL吧。我的意思是,它是一个常规扩展,在Firefox Chrome上附加一个按钮,并在按钮点击时执行一些操作。你使用XUL覆盖吗?那就是XUL。您使用的是加载项生成器还是SDK
cfx
?然后它是一个SDK附加组件。哦,现在我看到了区别,然后它肯定是XUL。谢谢
Components.classes["@mozilla.org/chrome/chrome-registry;1"]
  .getService(Components.interfaces.nsIXULChromeRegistry)
  .getSelectedLocale('global'); // e.g "en-US"
require("sdk/l10n/core").locale