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");