diff --git a/addon/chrome/content/preferences.xhtml b/addon/chrome/content/preferences.xhtml
index f278bf8..86ad3f4 100644
--- a/addon/chrome/content/preferences.xhtml
+++ b/addon/chrome/content/preferences.xhtml
@@ -3,7 +3,7 @@
onload="Zotero.AddonTemplate.prefs.initPreferences(window)"
>
-
+
+
+
+
diff --git a/addon/chrome/locale/en-US/addontemplate.properties b/addon/chrome/locale/en-US/addontemplate.properties
new file mode 100644
index 0000000..4cfe2be
--- /dev/null
+++ b/addon/chrome/locale/en-US/addontemplate.properties
@@ -0,0 +1,5 @@
+menuitem.label=Addon Template: Menuitem
+menupopup.label=Addon Template: Menupopup
+menuitem.submenulabel=Addon Template
+menuitem.filemenulabel=Addon Template: File Menuitem
+prefs.title=Template
\ No newline at end of file
diff --git a/addon/chrome/locale/en-US/overlay.dtd b/addon/chrome/locale/en-US/overlay.dtd
index beffe6c..6cbfffb 100644
--- a/addon/chrome/locale/en-US/overlay.dtd
+++ b/addon/chrome/locale/en-US/overlay.dtd
@@ -1,3 +1,4 @@
+
diff --git a/addon/chrome/locale/zh-CN/addontemplate.properties b/addon/chrome/locale/zh-CN/addontemplate.properties
new file mode 100644
index 0000000..818fc3f
--- /dev/null
+++ b/addon/chrome/locale/zh-CN/addontemplate.properties
@@ -0,0 +1,5 @@
+menuitem.label=Addon Template: 菜单
+menupopup.label=Addon Template: 弹出菜单
+menuitem.submenulabel=Addon Template
+menuitem.filemenulabel=Addon Template: 文件菜单
+prefs.title=插件模板
\ No newline at end of file
diff --git a/addon/chrome/locale/zh-CN/overlay.dtd b/addon/chrome/locale/zh-CN/overlay.dtd
index 8d0a76f..5539400 100644
--- a/addon/chrome/locale/zh-CN/overlay.dtd
+++ b/addon/chrome/locale/zh-CN/overlay.dtd
@@ -1,3 +1,4 @@
+
diff --git a/src/addon.ts b/src/addon.ts
index 3e04f60..92980b1 100644
--- a/src/addon.ts
+++ b/src/addon.ts
@@ -1,14 +1,17 @@
import AddonEvents from "./events";
import AddonPrefs from "./prefs";
import AddonViews from "./views";
+import AddonLocale from "./locale";
import ZoteroToolkit from "zotero-plugin-toolkit";
+import Locale from "./locale";
class Addon {
public Zotero!: _ZoteroConstructable;
public events: AddonEvents;
public views: AddonViews;
public prefs: AddonPrefs;
+ public locale: AddonLocale;
public toolkit: ZoteroToolkit;
// root path to access the resources
public rootURI!: string;
@@ -17,6 +20,7 @@ class Addon {
this.events = new AddonEvents(this);
this.views = new AddonViews(this);
this.prefs = new AddonPrefs(this);
+ this.locale = new AddonLocale(this);
this.toolkit = new ZoteroToolkit();
}
}
diff --git a/src/events.ts b/src/events.ts
index 17ef87e..12bf68f 100644
--- a/src/events.ts
+++ b/src/events.ts
@@ -61,7 +61,7 @@ class AddonEvents extends AddonModule {
const prefOptions = {
pluginID: config.addonID,
src: this._Addon.rootURI + "chrome/content/preferences.xhtml",
- label: "Template",
+ label: this._Addon.locale.getString("prefs.title"),
image: `chrome://${config.addonRef}/content/icons/favicon.png`,
extraDTD: [`chrome://${config.addonRef}/locale/overlay.dtd`],
defaultXUL: true,
diff --git a/src/locale.ts b/src/locale.ts
new file mode 100644
index 0000000..9166476
--- /dev/null
+++ b/src/locale.ts
@@ -0,0 +1,19 @@
+import Addon from "./addon";
+import AddonModule from "./module";
+
+
+class AddonLocale extends AddonModule {
+ private stringBundle: any;
+ constructor(parent: Addon) {
+ super(parent);
+ this.stringBundle = Components.classes['@mozilla.org/intl/stringbundle;1']
+ .getService(Components.interfaces.nsIStringBundleService)
+ .createBundle('chrome://addontemplate/locale/addontemplate.properties');
+ }
+
+ public getString(localString: string): string {
+ return this.stringBundle.GetStringFromName(localString);
+ }
+}
+
+export default AddonLocale;
\ No newline at end of file
diff --git a/src/views.ts b/src/views.ts
index 449bf03..06b2ad0 100644
--- a/src/views.ts
+++ b/src/views.ts
@@ -24,7 +24,7 @@ class AddonViews extends AddonModule {
this._Addon.toolkit.UI.insertMenuItem("item", {
tag: "menuitem",
id: "zotero-itemmenu-addontemplate-test",
- label: "Addon Template: Menuitem",
+ label: this._Addon.locale.getString("menuitem.label"),
oncommand: "alert('Hello World! Default Menuitem.')",
icon: menuIcon,
});
@@ -33,11 +33,11 @@ class AddonViews extends AddonModule {
"item",
{
tag: "menu",
- label: "Addon Template: Menupopup",
+ label: this._Addon.locale.getString("menupopup.label"),
subElementOptions: [
{
tag: "menuitem",
- label: "Addon Template",
+ label: this._Addon.locale.getString("menuitem.submenulabel"),
oncommand: "alert('Hello World! Sub Menuitem.')",
},
],
@@ -53,7 +53,7 @@ class AddonViews extends AddonModule {
// menu->File menuitem
this._Addon.toolkit.UI.insertMenuItem("menuFile", {
tag: "menuitem",
- label: "Addon Template: File Menuitem",
+ label: this._Addon.locale.getString("menuitem.filemenulabel"),
oncommand: "alert('Hello World! File Menuitem.')",
});