зеркало из https://github.com/mozilla/pjs.git
108 строки
3.1 KiB
XML
108 строки
3.1 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<bindings id="stringBundleBindings"
|
|
xmlns="http://www.mozilla.org/xbl"
|
|
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
|
|
|
<binding id="stringbundleset" extends="xul:box"/>
|
|
|
|
<binding id="stringbundle" extends="xul:spacer">
|
|
<implementation name="XStringBundle">
|
|
|
|
<method name="getString">
|
|
<parameter name="aStringKey"/>
|
|
<body>
|
|
<![CDATA[
|
|
try {
|
|
return this.stringBundle.GetStringFromName(aStringKey);
|
|
}
|
|
catch (e) {
|
|
dump("*** Failed to get string " + aStringKey + " in bundle: " + this.src + "\n");
|
|
throw e;
|
|
}
|
|
]]>
|
|
</body>
|
|
</method>
|
|
|
|
<method name="getFormattedString">
|
|
<parameter name="aStringKey"/>
|
|
<parameter name="aStringsArray"/>
|
|
<body>
|
|
<![CDATA[
|
|
try {
|
|
return this.stringBundle.formatStringFromName(aStringKey, aStringsArray, aStringsArray.length);
|
|
}
|
|
catch (e) {
|
|
dump("*** Failed to format string " + aStringKey + " in bundle: " + this.src + "\n");
|
|
throw e;
|
|
}
|
|
]]>
|
|
</body>
|
|
</method>
|
|
|
|
<property name="stringBundle" readonly="true">
|
|
<getter>
|
|
<![CDATA[
|
|
if (!this._bundle) {
|
|
try {
|
|
var stringBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"]
|
|
.getService(Components.interfaces.nsIStringBundleService);
|
|
this._bundle = stringBundleService.createBundle(this.src, this.appLocale);
|
|
}
|
|
catch (e) {
|
|
dump("Failed to get stringbundle:\n");
|
|
dump(e + "\n");
|
|
}
|
|
}
|
|
return this._bundle;
|
|
]]>
|
|
</getter>
|
|
</property>
|
|
|
|
<property name="src">
|
|
<getter>
|
|
<![CDATA[
|
|
return this.getAttribute("src");
|
|
]]>
|
|
</getter>
|
|
<setter>
|
|
<![CDATA[
|
|
this._bundle = null;
|
|
this.setAttribute("src", val);
|
|
return val;
|
|
]]>
|
|
</setter>
|
|
</property>
|
|
|
|
<property name="appLocale">
|
|
<getter>
|
|
<![CDATA[
|
|
try {
|
|
var localeService = Components.classes["@mozilla.org/intl/nslocaleservice;1"]
|
|
.getService(Components.interfaces.nsILocaleService);
|
|
return localeService.getApplicationLocale();
|
|
}
|
|
catch (ex) {
|
|
return null;
|
|
}
|
|
]]>
|
|
</getter>
|
|
</property>
|
|
|
|
<property name="strings">
|
|
<getter>
|
|
<![CDATA[
|
|
// Note: this is a sucky method name! Should be:
|
|
// readonly attribute nsISimpleEnumerator strings;
|
|
return this.stringBundle.getSimpleEnumeration();
|
|
]]>
|
|
</getter>
|
|
</property>
|
|
|
|
<field name="_bundle">null</field>
|
|
|
|
</implementation>
|
|
</binding>
|
|
|
|
</bindings>
|