<?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>