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.')", });