Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firefox addon 如何在js代码中使用locale实体_Firefox Addon - Fatal编程技术网

Firefox addon 如何在js代码中使用locale实体

Firefox addon 如何在js代码中使用locale实体,firefox-addon,Firefox Addon,是否可以获取实体的值 <!ENTITY gatwayError "Gateway error"> 更新:在我的ff侧栏中。xul在我的中 <stringbundleset id="stringbundleset"> <stringbundle id="strings" src="chrome://myaddon/locale/de/sidebar.properties"/> </stringbundles

是否可以获取实体的值

<!ENTITY gatwayError  "Gateway error">
更新:在我的
ff侧栏中。xul
在我的

<stringbundleset id="stringbundleset">
    <stringbundle id="strings" 
                  src="chrome://myaddon/locale/de/sidebar.properties"/>
</stringbundleset>
这给了我以下的错误

难道不是吗

var strbundle = document.getElementById("stringbundleset");

这不会给我错误,但也不会给我结果。

这适用于少量实体。例如,menuitems有时有两个文本略有不同的实体,具体取决于menuitem的用途,然后将正确的实体复制到标签上。最严重的滥用是Thunderbird和SeaMonkey的邮件窗口中的Delete menuitem,它的标签用于取消新闻组订阅、删除文件夹、取消新闻发布、删除单个或多个邮件,或者使用IMAP标记作为删除模式取消文件夹中的单个或多个邮件。呸


如果您有大量的区域设置数据,那么最好将其放入自己的
.properties
文件中,并使用。如果您的脚本没有访问
元素的权限,也可以从中手动检索。

Neil在那里发布的内容基本上就是您需要做的事情(减去第一段:p)

下面是一个例子(基本上是Neil链接的摘要):

您的XUL文件:

<stringbundleset id="strbundles">
    <stringbundle id="strings" src="chrome://yourextension/locale/something.properties"/>
</stringbundleset>
您的js文件:

var strbundle = document.getElementById("strings");
var localizedString = strbundle.getString("something");

希望这能有所帮助。

您希望为stringbundles的哪一部分提供示例?我已经给了你三个链接…这正是我做它的方式,但它不起作用,我在我的ff-sidebar.xul中设置了stringbundleset并访问它,就像你展示的那样,但它不起作用,firebug不会给出错误提示(strbundle);只是想看看你有没有收获。同时提醒(本地化字符串);-可怜人的调试,我知道:)chrome://myaddon/locale/de/sidebar.properties 是不正确的,您应该使用chrome://myaddon/locale/sidebar.properties (不带de或en或任何其他语言环境说明符)并使用document.getElementById(“字符串”)谢谢!!我删除了“de”,它可以工作,但是文件在../de路径中…是的,这就是重点:)-firefox将使用de,en,es。。。根据本地化要求
<stringbundleset id="strbundles">
    <stringbundle id="strings" src="chrome://yourextension/locale/something.properties"/>
</stringbundleset>
something=Some text for localization
something2=Some more text
var strbundle = document.getElementById("strings");
var localizedString = strbundle.getString("something");