update: use Localization
This commit is contained in:
parent
4d0b0a457d
commit
a254ff8bc3
@ -11,7 +11,6 @@ class Addon {
|
||||
ztoolkit: ZoteroToolkit;
|
||||
locale?: {
|
||||
current: any;
|
||||
default: any;
|
||||
};
|
||||
prefs?: {
|
||||
window: Window;
|
||||
|
@ -4,18 +4,12 @@ import { config } from "../../package.json";
|
||||
* Initialize locale data
|
||||
*/
|
||||
export function initLocale() {
|
||||
const l10n = ztoolkit.getGlobal("L10nRegistry").getInstance();
|
||||
const bundleGenerator = l10n.generateBundlesSync(
|
||||
[Zotero.locale, "en-US"],
|
||||
[`${config.addonRef}-addon.ftl`]
|
||||
const l10n = new (ztoolkit.getGlobal("Localization"))(
|
||||
[`${config.addonRef}-addon.ftl`],
|
||||
true
|
||||
);
|
||||
const currentBundle = bundleGenerator.next().value;
|
||||
// No default when in en-US
|
||||
const defaultBundle =
|
||||
Zotero.locale !== "en-US" ? bundleGenerator.next().value : null;
|
||||
addon.data.locale = {
|
||||
current: currentBundle,
|
||||
default: defaultBundle,
|
||||
current: l10n,
|
||||
};
|
||||
}
|
||||
|
||||
@ -35,24 +29,15 @@ export function initLocale() {
|
||||
* ```
|
||||
*/
|
||||
export function getString(localString: string, branch = ""): string {
|
||||
return (
|
||||
getStringFromBundle(addon.data.locale?.current, localString, branch) ||
|
||||
getStringFromBundle(addon.data.locale?.default, localString, branch) ||
|
||||
localString
|
||||
);
|
||||
}
|
||||
|
||||
function getStringFromBundle(bundle: any, localString: string, branch = "") {
|
||||
if (!bundle) {
|
||||
return "";
|
||||
const pattern = addon.data.locale?.current.formatMessagesSync([
|
||||
{ id: localString },
|
||||
])[0];
|
||||
if (!pattern) {
|
||||
return localString;
|
||||
}
|
||||
const patterns = bundle.getMessage(localString);
|
||||
if (!patterns) {
|
||||
return "";
|
||||
}
|
||||
if (branch) {
|
||||
return bundle.formatPattern(patterns.attributes[branch]);
|
||||
if (branch && pattern.attributes) {
|
||||
return pattern.attributes[branch] || localString;
|
||||
} else {
|
||||
return bundle.formatPattern(patterns.value);
|
||||
return pattern.value || localString;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user