mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-08-18 00:02:28 +08:00
feat(options/language): store list of languages
This commit is contained in:
parent
bc787213f4
commit
e7d2be4663
@ -28,15 +28,33 @@ export default class LanguageOptions extends OptionsWidget {
|
|||||||
this.$languagesContainer = this.$widget.find(".options-languages");
|
this.$languagesContainer = this.$widget.find(".options-languages");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async save() {
|
||||||
|
const enabledLanguages: string[] = [];
|
||||||
|
|
||||||
|
this.$languagesContainer.find("input:checked").each((i, el) => {
|
||||||
|
const languageId = $(el).attr("data-language-id");
|
||||||
|
if (languageId) {
|
||||||
|
enabledLanguages.push(languageId);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
await this.updateOption("languages", JSON.stringify(enabledLanguages));
|
||||||
|
}
|
||||||
|
|
||||||
async optionsLoaded(options: OptionMap) {
|
async optionsLoaded(options: OptionMap) {
|
||||||
const availableLocales = await server.get<Locale[]>("options/locales");
|
const availableLocales = await server.get<Locale[]>("options/locales");
|
||||||
|
const enabledLanguages = (JSON.parse(options.languages) as string[]);
|
||||||
|
|
||||||
this.$languagesContainer.empty();
|
this.$languagesContainer.empty();
|
||||||
for (const locale of availableLocales) {
|
for (const locale of availableLocales) {
|
||||||
const checkbox = $(`<label class="tn-checkbox">`)
|
const checkbox = $('<input type="checkbox" class="form-check-input">')
|
||||||
.append($('<input type="checkbox" class="form-check-input">'))
|
.attr("data-language-id", locale.id)
|
||||||
|
.prop("checked", enabledLanguages.includes(locale.id));
|
||||||
|
const wrapper = $(`<label class="tn-checkbox">`)
|
||||||
|
.append(checkbox)
|
||||||
|
.on("change", () => this.save())
|
||||||
.append(locale.name);
|
.append(locale.name);
|
||||||
this.$languagesContainer.append($("<li>").append(checkbox));
|
this.$languagesContainer.append($("<li>").append(wrapper));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,6 +71,7 @@ const ALLOWED_OPTIONS = new Set([
|
|||||||
"editedNotesOpenInRibbon",
|
"editedNotesOpenInRibbon",
|
||||||
"locale",
|
"locale",
|
||||||
"firstDayOfWeek",
|
"firstDayOfWeek",
|
||||||
|
"languages",
|
||||||
"textNoteEditorType",
|
"textNoteEditorType",
|
||||||
"textNoteEditorMultilineToolbar",
|
"textNoteEditorMultilineToolbar",
|
||||||
"layoutOrientation",
|
"layoutOrientation",
|
||||||
|
@ -124,7 +124,7 @@ const defaultOptions: DefaultOption[] = [
|
|||||||
{ name: "highlightsList", value: '["bold","italic","underline","color","bgColor"]', isSynced: true },
|
{ name: "highlightsList", value: '["bold","italic","underline","color","bgColor"]', isSynced: true },
|
||||||
{ name: "checkForUpdates", value: "true", isSynced: true },
|
{ name: "checkForUpdates", value: "true", isSynced: true },
|
||||||
{ name: "disableTray", value: "false", isSynced: false },
|
{ name: "disableTray", value: "false", isSynced: false },
|
||||||
{ name: "eraseUnusedAttachmentsAfterSeconds", value: "2592000", isSynced: true }, // default 30 days
|
{ name: "eraseUnusedAttachmentsAfterSeconds", value: "2592000", isSynced: true }, // default 30 days
|
||||||
{ name: "eraseUnusedAttachmentsAfterTimeScale", value: "86400", isSynced: true }, // default 86400 seconds = Day
|
{ name: "eraseUnusedAttachmentsAfterTimeScale", value: "86400", isSynced: true }, // default 86400 seconds = Day
|
||||||
{ name: "customSearchEngineName", value: "DuckDuckGo", isSynced: true },
|
{ name: "customSearchEngineName", value: "DuckDuckGo", isSynced: true },
|
||||||
{ name: "customSearchEngineUrl", value: "https://duckduckgo.com/?q={keyword}", isSynced: true },
|
{ name: "customSearchEngineUrl", value: "https://duckduckgo.com/?q={keyword}", isSynced: true },
|
||||||
@ -134,6 +134,7 @@ const defaultOptions: DefaultOption[] = [
|
|||||||
// Internationalization
|
// Internationalization
|
||||||
{ name: "locale", value: "en", isSynced: true },
|
{ name: "locale", value: "en", isSynced: true },
|
||||||
{ name: "firstDayOfWeek", value: "1", isSynced: true },
|
{ name: "firstDayOfWeek", value: "1", isSynced: true },
|
||||||
|
{ name: "languages", value: "[]", isSynced: true },
|
||||||
|
|
||||||
// Code block configuration
|
// Code block configuration
|
||||||
{
|
{
|
||||||
|
@ -71,6 +71,7 @@ export interface OptionDefinitions extends KeyboardShortcutsOptions<KeyboardActi
|
|||||||
eraseUnusedAttachmentsAfterSeconds: number;
|
eraseUnusedAttachmentsAfterSeconds: number;
|
||||||
eraseUnusedAttachmentsAfterTimeScale: number;
|
eraseUnusedAttachmentsAfterTimeScale: number;
|
||||||
firstDayOfWeek: number;
|
firstDayOfWeek: number;
|
||||||
|
languages: string;
|
||||||
|
|
||||||
initialized: boolean;
|
initialized: boolean;
|
||||||
isPasswordSet: boolean;
|
isPasswordSet: boolean;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user