From ae97432ae55dc24ad1badba680210bbceb913911 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 30 Nov 2024 10:37:15 +0200 Subject: [PATCH] feat(i18n): translate hidden notes and settings --- src/services/hidden_subtree.ts | 447 +++++++++++++++++---------------- translations/en/server.json | 47 ++++ translations/ro/server.json | 47 ++++ 3 files changed, 322 insertions(+), 219 deletions(-) diff --git a/src/services/hidden_subtree.ts b/src/services/hidden_subtree.ts index 4438a023d..584803a2f 100644 --- a/src/services/hidden_subtree.ts +++ b/src/services/hidden_subtree.ts @@ -5,6 +5,7 @@ import becca from "../becca/becca.js"; import noteService from "./notes.js"; import log from "./log.js"; import migrationService from "./migration.js"; +import { t } from "i18next"; const LBTPL_ROOT = "_lbTplRoot"; const LBTPL_BASE = "_lbTplBase"; @@ -53,236 +54,244 @@ enum Command { * duplicate subtrees. This way, all instances will generate the same structure with the same IDs. */ -const HIDDEN_SUBTREE_DEFINITION: Item = { - id: '_hidden', - title: 'Hidden Notes', - type: 'doc', - icon: 'bx bx-hide', - // we want to keep the hidden subtree always last, otherwise there will be problems with e.g., keyboard navigation - // over tree when it's in the middle - notePosition: 999_999_999, - attributes: [ - { type: 'label', name: 'excludeFromNoteMap', isInheritable: true }, - { type: 'label', name: 'docName', value: 'hidden' } - ], - children: [ - { - id: '_search', - title: 'Search History', - type: 'doc' - }, - { - id: '_globalNoteMap', - title: 'Note Map', - type: 'noteMap', - attributes: [ - { type: 'label', name: 'mapRootNoteId', value: 'hoisted' }, - { type: 'label', name: 'keepCurrentHoisting' } - ] - }, - { - id: '_sqlConsole', - title: 'SQL Console History', - type: 'doc', - icon: 'bx-data' - }, - { - id: '_share', - title: 'Shared Notes', - type: 'doc', - attributes: [ { type: 'label', name: 'docName', value: 'share' } ] - }, - { - id: '_bulkAction', - title: 'Bulk Action', - type: 'doc', - }, - { - id: '_backendLog', - title: 'Backend Log', - type: 'contentWidget', - icon: 'bx-terminal', - attributes: [ - { type: 'label', name: 'keepCurrentHoisting' }, - { type: 'label', name: 'fullContentWidth' } - ] - }, - { - // place for user scripts hidden stuff (scripts should not create notes directly under hidden root) - id: '_userHidden', - title: 'User Hidden', - type: 'doc', - attributes: [ { type: 'label', name: 'docName', value: 'user_hidden' } ] - }, - { - id: LBTPL_ROOT, - title: 'Launch Bar Templates', - type: 'doc', - children: [ - { - id: LBTPL_BASE, - title: 'Base Abstract Launcher', - type: 'doc' - }, - { - id: LBTPL_COMMAND, - title: 'Command Launcher', - type: 'doc', - attributes: [ - { type: 'relation', name: 'template', value: LBTPL_BASE }, - { type: 'label', name: 'launcherType', value: 'command' }, - { type: 'label', name: 'docName', value: 'launchbar_command_launcher' } - ] - }, - { - id: LBTPL_NOTE_LAUNCHER, - title: 'Note Launcher', - type: 'doc', - attributes: [ - { type: 'relation', name: 'template', value: LBTPL_BASE }, - { type: 'label', name: 'launcherType', value: 'note' }, - { type: 'label', name: 'relation:target', value: 'promoted' }, - { type: 'label', name: 'relation:hoistedNote', value: 'promoted' }, - { type: 'label', name: 'label:keyboardShortcut', value: 'promoted,text' }, - { type: 'label', name: 'docName', value: 'launchbar_note_launcher' } - ] - }, - { - id: LBTPL_SCRIPT, - title: 'Script Launcher', - type: 'doc', - attributes: [ - { type: 'relation', name: 'template', value: LBTPL_BASE }, - { type: 'label', name: 'launcherType', value: 'script' }, - { type: 'label', name: 'relation:script', value: 'promoted' }, - { type: 'label', name: 'label:keyboardShortcut', value: 'promoted,text' }, - { type: 'label', name: 'docName', value: 'launchbar_script_launcher' } - ] - }, - { - id: LBTPL_BUILTIN_WIDGET, - title: 'Built-in Widget', - type: 'doc', - attributes: [ - { type: 'relation', name: 'template', value: LBTPL_BASE }, - { type: 'label', name: 'launcherType', value: 'builtinWidget' } - ] - }, - { - id: LBTPL_SPACER, - title: 'Spacer', - type: 'doc', - icon: 'bx-move-vertical', - attributes: [ - { type: 'relation', name: 'template', value: LBTPL_BUILTIN_WIDGET }, - { type: 'label', name: 'builtinWidget', value: 'spacer' }, - { type: 'label', name: 'label:baseSize', value: 'promoted,number' }, - { type: 'label', name: 'label:growthFactor', value: 'promoted,number' }, - { type: 'label', name: 'docName', value: 'launchbar_spacer' } - ] - }, - { - id: LBTPL_CUSTOM_WIDGET, - title: 'Custom Widget', - type: 'doc', - attributes: [ - { type: 'relation', name: 'template', value: LBTPL_BASE }, - { type: 'label', name: 'launcherType', value: 'customWidget' }, - { type: 'label', name: 'relation:widget', value: 'promoted' }, - { type: 'label', name: 'docName', value: 'launchbar_widget_launcher' } - ] - }, - ] - }, - { - id: '_lbRoot', - title: 'Launch Bar', - type: 'doc', - icon: 'bx-sidebar', - isExpanded: true, - attributes: [ { type: 'label', name: 'docName', value: 'launchbar_intro' } ], - children: [ - { - id: '_lbAvailableLaunchers', - title: 'Available Launchers', - type: 'doc', - icon: 'bx-hide', - isExpanded: true, - attributes: [ { type: 'label', name: 'docName', value: 'launchbar_intro' } ], - children: [ - { id: '_lbBackInHistory', title: 'Go to Previous Note', type: 'launcher', builtinWidget: 'backInHistoryButton', icon: 'bx bxs-chevron-left', - attributes: [ { type: 'label', name: 'docName', value: 'launchbar_history_navigation' } ]}, - { id: '_lbForwardInHistory', title: 'Go to Next Note', type: 'launcher', builtinWidget: 'forwardInHistoryButton', icon: 'bx bxs-chevron-right', - attributes: [ { type: 'label', name: 'docName', value: 'launchbar_history_navigation' } ]}, - { id: '_lbBackendLog', title: 'Backend Log', type: 'launcher', targetNoteId: '_backendLog', icon: 'bx bx-terminal' }, - ] - }, - { - id: '_lbVisibleLaunchers', - title: 'Visible Launchers', - type: 'doc', - icon: 'bx-show', - isExpanded: true, - attributes: [ { type: 'label', name: 'docName', value: 'launchbar_intro' } ], - children: [ - { id: '_lbNewNote', title: 'New Note', type: 'launcher', command: 'createNoteIntoInbox', icon: 'bx bx-file-blank' }, - { id: '_lbSearch', title: 'Search Notes', type: 'launcher', command: 'searchNotes', icon: 'bx bx-search', attributes: [ - { type: 'label', name: 'desktopOnly' } - ] }, - { id: '_lbJumpTo', title: 'Jump to Note', type: 'launcher', command: 'jumpToNote', icon: 'bx bx-send', attributes: [ - { type: 'label', name: 'desktopOnly' } - ] }, - { id: '_lbNoteMap', title: 'Note Map', type: 'launcher', targetNoteId: '_globalNoteMap', icon: 'bx bxs-network-chart' }, - { id: '_lbCalendar', title: 'Calendar', type: 'launcher', builtinWidget: 'calendar', icon: 'bx bx-calendar' }, - { id: '_lbRecentChanges', title: 'Recent Changes', type: 'launcher', command: 'showRecentChanges', icon: 'bx bx-history', attributes: [ - { type: 'label', name: 'desktopOnly' } - ] }, - { id: '_lbSpacer1', title: 'Spacer', type: 'launcher', builtinWidget: 'spacer', baseSize: "50", growthFactor: "0" }, - { id: '_lbBookmarks', title: 'Bookmarks', type: 'launcher', builtinWidget: 'bookmarks', icon: 'bx bx-bookmark' }, - { id: '_lbToday', title: "Open Today's Journal Note", type: 'launcher', builtinWidget: 'todayInJournal', icon: 'bx bx-calendar-star' }, - { id: '_lbSpacer2', title: 'Spacer', type: 'launcher', builtinWidget: 'spacer', baseSize: "0", growthFactor: "1" }, - { id: '_lbQuickSearch', title: "Quick Search", type: "launcher", builtinWidget: "quickSearch", icon: "bx bx-rectangle" }, - { id: '_lbProtectedSession', title: 'Protected Session', type: 'launcher', builtinWidget: 'protectedSession', icon: 'bx bx bx-shield-quarter' }, - { id: '_lbSyncStatus', title: 'Sync Status', type: 'launcher', builtinWidget: 'syncStatus', icon: 'bx bx-wifi' }, - { id: '_lbSettings', title: 'Settings', type: 'launcher', command: 'showOptions', icon: 'bx bx-cog' } - ] - } - ] - }, - { - id: '_options', - title: 'Options', - type: 'book', - icon: 'bx-cog', - children: [ - { id: '_optionsAppearance', title: 'Appearance', type: 'contentWidget', icon: 'bx-layout' }, - { id: '_optionsShortcuts', title: 'Shortcuts', type: 'contentWidget', icon: 'bxs-keyboard' }, - { id: '_optionsTextNotes', title: 'Text Notes', type: 'contentWidget', icon: 'bx-text' }, - { id: '_optionsCodeNotes', title: 'Code Notes', type: 'contentWidget', icon: 'bx-code' }, - { id: '_optionsImages', title: 'Images', type: 'contentWidget', icon: 'bx-image' }, - { id: '_optionsSpellcheck', title: 'Spellcheck', type: 'contentWidget', icon: 'bx-check-double' }, - { id: '_optionsPassword', title: 'Password', type: 'contentWidget', icon: 'bx-lock' }, - { id: '_optionsEtapi', title: 'ETAPI', type: 'contentWidget', icon: 'bx-extension' }, - { id: '_optionsBackup', title: 'Backup', type: 'contentWidget', icon: 'bx-data' }, - { id: '_optionsSync', title: 'Sync', type: 'contentWidget', icon: 'bx-wifi' }, - { id: '_optionsOther', title: 'Other', type: 'contentWidget', icon: 'bx-dots-horizontal' }, - { id: '_optionsAdvanced', title: 'Advanced', type: 'contentWidget' } - ] - } - ] -}; +let HIDDEN_SUBTREE_DEFINITION = buildHiddenSubtreeDefinition(); + +function buildHiddenSubtreeDefinition(): Item { + return { + id: '_hidden', + title: t("hidden-subtree.root-title"), + type: 'doc', + icon: 'bx bx-hide', + // we want to keep the hidden subtree always last, otherwise there will be problems with e.g., keyboard navigation + // over tree when it's in the middle + notePosition: 999_999_999, + attributes: [ + { type: 'label', name: 'excludeFromNoteMap', isInheritable: true }, + { type: 'label', name: 'docName', value: 'hidden' } + ], + children: [ + { + id: '_search', + title: t("hidden-subtree.search-history-title"), + type: 'doc' + }, + { + id: '_globalNoteMap', + title: t("hidden-subtree.note-map-title"), + type: 'noteMap', + attributes: [ + { type: 'label', name: 'mapRootNoteId', value: 'hoisted' }, + { type: 'label', name: 'keepCurrentHoisting' } + ] + }, + { + id: '_sqlConsole', + title: t("hidden-subtree.sql-console-history-title"), + type: 'doc', + icon: 'bx-data' + }, + { + id: '_share', + title: t("hidden-subtree.shared-notes-title"), + type: 'doc', + attributes: [ { type: 'label', name: 'docName', value: 'share' } ] + }, + { + id: '_bulkAction', + title: t("hidden-subtree.bulk-action-title"), + type: 'doc', + }, + { + id: '_backendLog', + title: t("hidden-subtree.backend-log-title"), + type: 'contentWidget', + icon: 'bx-terminal', + attributes: [ + { type: 'label', name: 'keepCurrentHoisting' }, + { type: 'label', name: 'fullContentWidth' } + ] + }, + { + // place for user scripts hidden stuff (scripts should not create notes directly under hidden root) + id: '_userHidden', + title: t("hidden-subtree.user-hidden-title"), + type: 'doc', + attributes: [ { type: 'label', name: 'docName', value: 'user_hidden' } ] + }, + { + id: LBTPL_ROOT, + title: t("hidden-subtree.launch-bar-templates-title"), + type: 'doc', + children: [ + { + id: LBTPL_BASE, + title: t("hidden-subtree.base-abstract-launcher-title"), + type: 'doc' + }, + { + id: LBTPL_COMMAND, + title: t("hidden-subtree.command-launcher-title"), + type: 'doc', + attributes: [ + { type: 'relation', name: 'template', value: LBTPL_BASE }, + { type: 'label', name: 'launcherType', value: 'command' }, + { type: 'label', name: 'docName', value: 'launchbar_command_launcher' } + ] + }, + { + id: LBTPL_NOTE_LAUNCHER, + title: t("hidden-subtree.note-launcher-title"), + type: 'doc', + attributes: [ + { type: 'relation', name: 'template', value: LBTPL_BASE }, + { type: 'label', name: 'launcherType', value: 'note' }, + { type: 'label', name: 'relation:target', value: 'promoted' }, + { type: 'label', name: 'relation:hoistedNote', value: 'promoted' }, + { type: 'label', name: 'label:keyboardShortcut', value: 'promoted,text' }, + { type: 'label', name: 'docName', value: 'launchbar_note_launcher' } + ] + }, + { + id: LBTPL_SCRIPT, + title: t("hidden-subtree.script-launcher-title"), + type: 'doc', + attributes: [ + { type: 'relation', name: 'template', value: LBTPL_BASE }, + { type: 'label', name: 'launcherType', value: 'script' }, + { type: 'label', name: 'relation:script', value: 'promoted' }, + { type: 'label', name: 'label:keyboardShortcut', value: 'promoted,text' }, + { type: 'label', name: 'docName', value: 'launchbar_script_launcher' } + ] + }, + { + id: LBTPL_BUILTIN_WIDGET, + title: t("hidden-subtree.built-in-widget-title"), + type: 'doc', + attributes: [ + { type: 'relation', name: 'template', value: LBTPL_BASE }, + { type: 'label', name: 'launcherType', value: 'builtinWidget' } + ] + }, + { + id: LBTPL_SPACER, + title: t("hidden-subtree.spacer-title"), + type: 'doc', + icon: 'bx-move-vertical', + attributes: [ + { type: 'relation', name: 'template', value: LBTPL_BUILTIN_WIDGET }, + { type: 'label', name: 'builtinWidget', value: 'spacer' }, + { type: 'label', name: 'label:baseSize', value: 'promoted,number' }, + { type: 'label', name: 'label:growthFactor', value: 'promoted,number' }, + { type: 'label', name: 'docName', value: 'launchbar_spacer' } + ] + }, + { + id: LBTPL_CUSTOM_WIDGET, + title: t("hidden-subtree.custom-widget-title"), + type: 'doc', + attributes: [ + { type: 'relation', name: 'template', value: LBTPL_BASE }, + { type: 'label', name: 'launcherType', value: 'customWidget' }, + { type: 'label', name: 'relation:widget', value: 'promoted' }, + { type: 'label', name: 'docName', value: 'launchbar_widget_launcher' } + ] + }, + ] + }, + { + id: '_lbRoot', + title: t("hidden-subtree.launch-bar-title"), + type: 'doc', + icon: 'bx-sidebar', + isExpanded: true, + attributes: [ { type: 'label', name: 'docName', value: 'launchbar_intro' } ], + children: [ + { + id: '_lbAvailableLaunchers', + title: t("hidden-subtree.available-launchers-title"), + type: 'doc', + icon: 'bx-hide', + isExpanded: true, + attributes: [ { type: 'label', name: 'docName', value: 'launchbar_intro' } ], + children: [ + { id: '_lbBackInHistory', title: t("hidden-subtree.go-to-previous-note-title"), type: 'launcher', builtinWidget: 'backInHistoryButton', icon: 'bx bxs-chevron-left', + attributes: [ { type: 'label', name: 'docName', value: 'launchbar_history_navigation' } ]}, + { id: '_lbForwardInHistory', title: t("hidden-subtree.go-to-next-note-title"), type: 'launcher', builtinWidget: 'forwardInHistoryButton', icon: 'bx bxs-chevron-right', + attributes: [ { type: 'label', name: 'docName', value: 'launchbar_history_navigation' } ]}, + { id: '_lbBackendLog', title: t("hidden-subtree.backend-log-title"), type: 'launcher', targetNoteId: '_backendLog', icon: 'bx bx-terminal' }, + ] + }, + { + id: '_lbVisibleLaunchers', + title: t("hidden-subtree.visible-launchers-title"), + type: 'doc', + icon: 'bx-show', + isExpanded: true, + attributes: [ { type: 'label', name: 'docName', value: 'launchbar_intro' } ], + children: [ + { id: '_lbNewNote', title: t("hidden-subtree.new-note-title"), type: 'launcher', command: 'createNoteIntoInbox', icon: 'bx bx-file-blank' }, + { id: '_lbSearch', title: t("hidden-subtree.search-notes-title"), type: 'launcher', command: 'searchNotes', icon: 'bx bx-search', attributes: [ + { type: 'label', name: 'desktopOnly' } + ] }, + { id: '_lbJumpTo', title: t("hidden-subtree.jump-to-note-title"), type: 'launcher', command: 'jumpToNote', icon: 'bx bx-send', attributes: [ + { type: 'label', name: 'desktopOnly' } + ] }, + { id: '_lbNoteMap', title: t("hidden-subtree.note-map-title"), type: 'launcher', targetNoteId: '_globalNoteMap', icon: 'bx bxs-network-chart' }, + { id: '_lbCalendar', title: t("hidden-subtree.calendar-title"), type: 'launcher', builtinWidget: 'calendar', icon: 'bx bx-calendar' }, + { id: '_lbRecentChanges', title: t("hidden-subtree.recent-changes-title"), type: 'launcher', command: 'showRecentChanges', icon: 'bx bx-history', attributes: [ + { type: 'label', name: 'desktopOnly' } + ] }, + { id: '_lbSpacer1', title: t("hidden-subtree.spacer-title"), type: 'launcher', builtinWidget: 'spacer', baseSize: "50", growthFactor: "0" }, + { id: '_lbBookmarks', title: t("hidden-subtree.bookmarks-title"), type: 'launcher', builtinWidget: 'bookmarks', icon: 'bx bx-bookmark' }, + { id: '_lbToday', title: t("hidden-subtree.open-today-journal-note-title"), type: 'launcher', builtinWidget: 'todayInJournal', icon: 'bx bx-calendar-star' }, + { id: '_lbSpacer2', title: t("hidden-subtree.spacer-title"), type: 'launcher', builtinWidget: 'spacer', baseSize: "0", growthFactor: "1" }, + { id: '_lbQuickSearch', title: t("hidden-subtree.quick-search-title"), type: "launcher", builtinWidget: "quickSearch", icon: "bx bx-rectangle" }, + { id: '_lbProtectedSession', title: t("hidden-subtree.protected-session-title"), type: 'launcher', builtinWidget: 'protectedSession', icon: 'bx bx bx-shield-quarter' }, + { id: '_lbSyncStatus', title: t("hidden-subtree.sync-status-title"), type: 'launcher', builtinWidget: 'syncStatus', icon: 'bx bx-wifi' }, + { id: '_lbSettings', title: t("hidden-subtree.settings-title"), type: 'launcher', command: 'showOptions', icon: 'bx bx-cog' } + ] + } + ] + }, + { + id: '_options', + title: t("hidden-subtree.options-title"), + type: 'book', + icon: 'bx-cog', + children: [ + { id: '_optionsAppearance', title: t("hidden-subtree.appearance-title"), type: 'contentWidget', icon: 'bx-layout' }, + { id: '_optionsShortcuts', title: t("hidden-subtree.shortcuts-title"), type: 'contentWidget', icon: 'bxs-keyboard' }, + { id: '_optionsTextNotes', title: t("hidden-subtree.text-notes"), type: 'contentWidget', icon: 'bx-text' }, + { id: '_optionsCodeNotes', title: t("hidden-subtree.code-notes-title"), type: 'contentWidget', icon: 'bx-code' }, + { id: '_optionsImages', title: t("hidden-subtree.images-title"), type: 'contentWidget', icon: 'bx-image' }, + { id: '_optionsSpellcheck', title: t("hidden-subtree.spellcheck-title"), type: 'contentWidget', icon: 'bx-check-double' }, + { id: '_optionsPassword', title: t("hidden-subtree.password-title"), type: 'contentWidget', icon: 'bx-lock' }, + { id: '_optionsEtapi', title: t("hidden-subtree.etapi-title"), type: 'contentWidget', icon: 'bx-extension' }, + { id: '_optionsBackup', title: t("hidden-subtree.backup-title"), type: 'contentWidget', icon: 'bx-data' }, + { id: '_optionsSync', title: t("hidden-subtree.sync-title"), type: 'contentWidget', icon: 'bx-wifi' }, + { id: '_optionsOther', title: t("hidden-subtree.other"), type: 'contentWidget', icon: 'bx-dots-horizontal' }, + { id: '_optionsAdvanced', title: t("hidden-subtree.advanced-title"), type: 'contentWidget' } + ] + } + ] + }; +} interface CheckHiddenExtraOpts { restoreNames?: boolean; } -function checkHiddenSubtree(force = false, extraOpts: CheckHiddenExtraOpts = {}) { +function checkHiddenSubtree(force = false, extraOpts: CheckHiddenExtraOpts = {}) { if (!force && !migrationService.isDbUpToDate()) { // on-delete hook might get triggered during some future migration and cause havoc log.info("Will not check hidden subtree until migration is finished."); return; } + if (force) { + HIDDEN_SUBTREE_DEFINITION = buildHiddenSubtreeDefinition(); + } + checkHiddenSubtreeRecursively('root', HIDDEN_SUBTREE_DEFINITION, extraOpts); } diff --git a/translations/en/server.json b/translations/en/server.json index 4db058c43..82d828f8c 100644 --- a/translations/en/server.json +++ b/translations/en/server.json @@ -193,5 +193,52 @@ "test_sync": { "not-configured": "Sync server host is not configured. Please configure sync first.", "successful": "Sync server handshake has been successful, sync has been started." + }, + "hidden-subtree": { + "root-title": "Hidden Notes", + "search-history-title": "Search History", + "note-map-title": "Note Map", + "sql-console-history-title": "SQL Console History", + "shared-notes-title": "Shared Notes", + "bulk-action-title": "Bulk Action", + "backend-log-title": "Backend Log", + "user-hidden-title": "User Hidden", + "launch-bar-templates-title": "Launch Bar Templates", + "base-abstract-launcher-title": "Base Abstract Launcher", + "command-launcher-title": "Command Launcher", + "note-launcher-title": "Note Launcher", + "script-launcher-title": "Script Launcher", + "built-in-widget-title": "Built-in Widget", + "spacer-title": "Spacer", + "custom-widget-title": "Custom Widget", + "launch-bar-title": "Launch Bar", + "available-launchers-title": "Available Launchers", + "go-to-previous-note-title": "Go to Previous Note", + "go-to-next-note-title": "Go to Next Note", + "new-note-title": "New Note", + "search-notes-title": "Search Notes", + "jump-to-note-title": "Jump to Note", + "calendar-title": "Calendar", + "recent-changes-title": "Recent Changes", + "bookmarks-title": "Bookmarks", + "open-today-journal-note-title": "Open Today's Journal Note", + "quick-search-title": "Quick Search", + "protected-session-title": "Protected Session", + "sync-status-title": "Sync Status", + "settings-title": "Settings", + "options-title": "Options", + "appearance-title": "Appearance", + "shortcuts-title": "Shortcuts", + "text-notes": "Text Notes", + "code-notes-title": "Code Notes", + "images-title": "Images", + "spellcheck-title": "Spellcheck", + "password-title": "Password", + "etapi-title": "ETAPI", + "backup-title": "Backup", + "sync-title": "Sync", + "other": "Other", + "advanced-title": "Advanced", + "visible-launchers-title": "Visible Launchers" } } diff --git a/translations/ro/server.json b/translations/ro/server.json index bc9f6abad..0e5833c3b 100644 --- a/translations/ro/server.json +++ b/translations/ro/server.json @@ -193,5 +193,52 @@ "test_sync": { "not-configured": "Calea către serverul de sincronizare nu este configurată. Configurați sincronizarea înainte.", "successful": "Comunicarea cu serverul de sincronizare a avut loc cu succes, s-a început sincronizarea." + }, + "hidden-subtree": { + "advanced-title": "Setări avansate", + "appearance-title": "Aspect", + "available-launchers-title": "Lansatoare disponibile", + "backup-title": "Copii de siguranță", + "base-abstract-launcher-title": "Lansator abstract de bază", + "bookmarks-title": "Semne de carte", + "built-in-widget-title": "Widget predefinit", + "bulk-action-title": "Acțiuni în masă", + "calendar-title": "Calendar", + "code-notes-title": "Notițe de cod", + "command-launcher-title": "Lansator de comenzi", + "custom-widget-title": "Widget personalizat", + "etapi-title": "ETAPI", + "go-to-previous-note-title": "Mergi la notița anterioară", + "images-title": "Imagini", + "jump-to-note-title": "Sari la notiță", + "launch-bar-title": "Bară de lansare", + "new-note-title": "Notiță nouă", + "note-launcher-title": "Lansator de notițe", + "note-map-title": "Harta notițelor", + "open-today-journal-note-title": "Deschide notița de astăzi", + "options-title": "Opțiuni", + "other": "Diverse", + "password-title": "Parolă", + "protected-session-title": "Sesiune protejată", + "recent-changes-title": "Schimbări recente", + "script-launcher-title": "Lansator de script-uri", + "search-history-title": "Istoric de căutare", + "settings-title": "Setări", + "shared-notes-title": "Notițe partajate", + "quick-search-title": "Căutare rapidă", + "root-title": "Notițe ascunse", + "search-notes-title": "Căutare notițe", + "shortcuts-title": "Scurtături", + "spellcheck-title": "Corectare gramaticală", + "sync-status-title": "Starea sincronizării", + "sync-title": "Sincronizare", + "text-notes": "Notițe text", + "user-hidden-title": "Definite de utilizator", + "backend-log-title": "Log backend", + "spacer-title": "Separator", + "sql-console-history-title": "Istoricul consolei SQL", + "go-to-next-note-title": "Mergi la notița următoare", + "launch-bar-templates-title": "Șabloane bară de lansare", + "visible-launchers-title": "Lansatoare vizibile" } }