mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-08-11 02:42:27 +08:00
feat(note_language): reload list of languages when changed
This commit is contained in:
parent
8e2517459f
commit
24c2b54bc9
@ -44,27 +44,7 @@ export default class NoteLanguageWidget extends NoteContextAwareWidget {
|
|||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
|
this.locales = NoteLanguageWidget.#buildLocales();
|
||||||
const enabledLanguages = JSON.parse(options.get("languages") ?? "[]") as string[];
|
|
||||||
const filteredLanguages = getAvailableLocales().filter((l) => typeof l !== "object" || enabledLanguages.includes(l.id));
|
|
||||||
const leftToRightLanguages = filteredLanguages.filter((l) => !l.rtl);
|
|
||||||
const rightToLeftLanguages = filteredLanguages.filter((l) => l.rtl);
|
|
||||||
|
|
||||||
this.locales = [
|
|
||||||
DEFAULT_LOCALE,
|
|
||||||
"---",
|
|
||||||
...leftToRightLanguages
|
|
||||||
];
|
|
||||||
|
|
||||||
if (rightToLeftLanguages.length > 0) {
|
|
||||||
this.locales = [
|
|
||||||
...this.locales,
|
|
||||||
"---",
|
|
||||||
...rightToLeftLanguages
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
this.locales.push("---"); // this will separate the list of languages from the "Configure languages" button.
|
|
||||||
}
|
}
|
||||||
|
|
||||||
doRender() {
|
doRender() {
|
||||||
@ -133,9 +113,37 @@ export default class NoteLanguageWidget extends NoteContextAwareWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async entitiesReloadedEvent({ loadResults }: EventData<"entitiesReloaded">) {
|
async entitiesReloadedEvent({ loadResults }: EventData<"entitiesReloaded">) {
|
||||||
|
if (loadResults.isOptionReloaded("languages")) {
|
||||||
|
this.locales = NoteLanguageWidget.#buildLocales();
|
||||||
|
}
|
||||||
|
|
||||||
if (loadResults.getAttributeRows().find((a) => a.noteId === this.noteId && a.name === "language")) {
|
if (loadResults.getAttributeRows().find((a) => a.noteId === this.noteId && a.name === "language")) {
|
||||||
this.refresh();
|
this.refresh();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static #buildLocales() {
|
||||||
|
const enabledLanguages = JSON.parse(options.get("languages") ?? "[]") as string[];
|
||||||
|
const filteredLanguages = getAvailableLocales().filter((l) => typeof l !== "object" || enabledLanguages.includes(l.id));
|
||||||
|
const leftToRightLanguages = filteredLanguages.filter((l) => !l.rtl);
|
||||||
|
const rightToLeftLanguages = filteredLanguages.filter((l) => l.rtl);
|
||||||
|
|
||||||
|
let locales: ("---" | Locale)[] = [
|
||||||
|
DEFAULT_LOCALE,
|
||||||
|
"---",
|
||||||
|
...leftToRightLanguages
|
||||||
|
];
|
||||||
|
|
||||||
|
if (rightToLeftLanguages.length > 0) {
|
||||||
|
locales = [
|
||||||
|
...locales,
|
||||||
|
"---",
|
||||||
|
...rightToLeftLanguages
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
locales.push("---"); // this will separate the list of languages from the "Configure languages" button.
|
||||||
|
return locales;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user