summaryrefslogtreecommitdiffstats
path: root/toolkit/content/widgets/stringbundle.xml
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/content/widgets/stringbundle.xml')
-rw-r--r--toolkit/content/widgets/stringbundle.xml96
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>