diff options
Diffstat (limited to 'toolkit/content/widgets/stringbundle.xml')
-rw-r--r-- | toolkit/content/widgets/stringbundle.xml | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/toolkit/content/widgets/stringbundle.xml b/toolkit/content/widgets/stringbundle.xml new file mode 100644 index 000000000..3365bd61f --- /dev/null +++ b/toolkit/content/widgets/stringbundle.xml @@ -0,0 +1,96 @@ +<?xml version="1.0"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.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 { + this._bundle = Components.classes["@mozilla.org/intl/stringbundle;1"] + .getService(Components.interfaces.nsIStringBundleService) + .createBundle(this.src); + } + 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="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> |