mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-27 18:12:29 +08:00
Merge branch 'develop' into revisions_number_limit
This commit is contained in:
commit
0a9e76abb7
7479
package-lock.json
generated
7479
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
186
package.json
186
package.json
@ -49,36 +49,35 @@
|
|||||||
"generate-document": "cross-env nodemon src/tools/generate_document.ts 1000"
|
"generate-document": "cross-env nodemon src/tools/generate_document.ts 1000"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@braintree/sanitize-url": "^7.1.0",
|
"@braintree/sanitize-url": "7.1.0",
|
||||||
"@electron/remote": "2.1.2",
|
"@electron/remote": "2.1.2",
|
||||||
"@excalidraw/excalidraw": "^0.17.6",
|
"@excalidraw/excalidraw": "0.17.6",
|
||||||
"@types/electron-squirrel-startup": "^1.0.2",
|
"archiver": "7.0.1",
|
||||||
"archiver": "^7.0.1",
|
"async-mutex": "0.5.0",
|
||||||
"async-mutex": "^0.5.0",
|
"autocomplete.js": "0.38.1",
|
||||||
"autocomplete.js": "^0.38.1",
|
"axios": "1.7.7",
|
||||||
"axios": "^1.7.7",
|
"better-sqlite3": "11.3.0",
|
||||||
"better-sqlite3": "^11.3.0",
|
"bootstrap": "5.3.3",
|
||||||
"bootstrap": "^5.3.3",
|
|
||||||
"boxicons": "2.1.4",
|
"boxicons": "2.1.4",
|
||||||
"chokidar": "3.6.0",
|
"chokidar": "3.6.0",
|
||||||
"cls-hooked": "4.2.2",
|
"cls-hooked": "4.2.2",
|
||||||
"codemirror": "^5.65.17",
|
"codemirror": "5.65.17",
|
||||||
"compression": "1.7.4",
|
"compression": "1.7.4",
|
||||||
"cookie-parser": "1.4.6",
|
"cookie-parser": "1.4.6",
|
||||||
"csurf": "1.11.0",
|
"csurf": "1.11.0",
|
||||||
"dayjs": "^1.11.13",
|
"dayjs": "1.11.13",
|
||||||
"dayjs-plugin-utc": "0.1.2",
|
"dayjs-plugin-utc": "0.1.2",
|
||||||
"debounce": "^2.1.0",
|
"debounce": "2.1.1",
|
||||||
"ejs": "^3.1.10",
|
"ejs": "3.1.10",
|
||||||
"electron-debug": "^4.0.1",
|
"electron-debug": "4.0.1",
|
||||||
"electron-dl": "^4.0.0",
|
"electron-dl": "4.0.0",
|
||||||
"electron-squirrel-startup": "^1.0.0",
|
"electron-squirrel-startup": "1.0.1",
|
||||||
"electron-window-state": "5.0.3",
|
"electron-window-state": "5.0.3",
|
||||||
"escape-html": "1.0.3",
|
"escape-html": "1.0.3",
|
||||||
"eslint": "^9.10.0",
|
"eslint": "9.10.0",
|
||||||
"express": "^4.21.0",
|
"express": "4.21.0",
|
||||||
"express-partial-content": "1.0.2",
|
"express-partial-content": "1.0.2",
|
||||||
"express-rate-limit": "^7.3.1",
|
"express-rate-limit": "7.4.0",
|
||||||
"express-session": "1.18.0",
|
"express-session": "1.18.0",
|
||||||
"force-graph": "1.43.5",
|
"force-graph": "1.43.5",
|
||||||
"fs-extra": "11.2.0",
|
"fs-extra": "11.2.0",
|
||||||
@ -86,113 +85,114 @@
|
|||||||
"html": "1.0.0",
|
"html": "1.0.0",
|
||||||
"html2plaintext": "2.1.4",
|
"html2plaintext": "2.1.4",
|
||||||
"http-proxy-agent": "7.0.2",
|
"http-proxy-agent": "7.0.2",
|
||||||
"https-proxy-agent": "^7.0.5",
|
"https-proxy-agent": "7.0.5",
|
||||||
"i18next": "^23.15.1",
|
"i18next": "23.15.1",
|
||||||
"i18next-fs-backend": "^2.3.2",
|
"i18next-fs-backend": "2.3.2",
|
||||||
"i18next-http-backend": "^2.6.1",
|
"i18next-http-backend": "2.6.1",
|
||||||
"image-type": "4.1.0",
|
"image-type": "4.1.0",
|
||||||
"ini": "^5.0.0",
|
"ini": "5.0.0",
|
||||||
"is-animated": "2.0.2",
|
"is-animated": "2.0.2",
|
||||||
"is-svg": "4.3.2",
|
"is-svg": "4.3.2",
|
||||||
"jimp": "0.22.12",
|
"jimp": "0.22.12",
|
||||||
"joplin-turndown-plugin-gfm": "1.0.12",
|
"joplin-turndown-plugin-gfm": "1.0.12",
|
||||||
"jquery": "3.7.1",
|
"jquery": "3.7.1",
|
||||||
"jquery-hotkeys": "0.2.2",
|
"jquery-hotkeys": "0.2.2",
|
||||||
"jquery.fancytree": "^2.38.3",
|
"jquery.fancytree": "2.38.3",
|
||||||
"jsdom": "^25.0.0",
|
"jsdom": "25.0.0",
|
||||||
"jsplumb": "^2.15.6",
|
"jsplumb": "2.15.6",
|
||||||
"katex": "^0.16.11",
|
"katex": "0.16.11",
|
||||||
"knockout": "^3.5.1",
|
"knockout": "3.5.1",
|
||||||
"mark.js": "^8.11.1",
|
"mark.js": "8.11.1",
|
||||||
"marked": "^14.1.2",
|
"marked": "14.1.2",
|
||||||
"mermaid": "^11.1.1",
|
"mermaid": "11.2.0",
|
||||||
"mime-types": "2.1.35",
|
"mime-types": "2.1.35",
|
||||||
"mind-elixir": "^4.0.5",
|
"mind-elixir": "4.1.1",
|
||||||
"multer": "1.4.5-lts.1",
|
"multer": "1.4.5-lts.1",
|
||||||
"node-abi": "^3.65.0",
|
"node-abi": "3.67.0",
|
||||||
"normalize-strings": "1.1.1",
|
"normalize-strings": "1.1.1",
|
||||||
"normalize.css": "^8.0.1",
|
"normalize.css": "8.0.1",
|
||||||
"panzoom": "9.4.3",
|
"panzoom": "9.4.3",
|
||||||
"print-this": "2.0.0",
|
"print-this": "2.0.0",
|
||||||
"rand-token": "1.0.1",
|
"rand-token": "1.0.1",
|
||||||
"react": "^18.3.1",
|
"react": "18.3.1",
|
||||||
"react-dom": "^18.3.1",
|
"react-dom": "18.3.1",
|
||||||
"request": "2.88.2",
|
"request": "2.88.2",
|
||||||
"safe-compare": "1.1.4",
|
"safe-compare": "1.1.4",
|
||||||
"sanitize-filename": "1.6.3",
|
"sanitize-filename": "1.6.3",
|
||||||
"sanitize-html": "^2.13.0",
|
"sanitize-html": "2.13.0",
|
||||||
"sax": "^1.4.1",
|
"sax": "1.4.1",
|
||||||
"semver": "^7.6.3",
|
"semver": "7.6.3",
|
||||||
"serve-favicon": "2.5.0",
|
"serve-favicon": "2.5.0",
|
||||||
"session-file-store": "1.5.0",
|
"session-file-store": "1.5.0",
|
||||||
"source-map-support": "^0.5.21",
|
"source-map-support": "0.5.21",
|
||||||
"split.js": "1.6.5",
|
"split.js": "1.6.5",
|
||||||
"stream-throttle": "0.1.3",
|
"stream-throttle": "0.1.3",
|
||||||
"striptags": "3.2.0",
|
"striptags": "3.2.0",
|
||||||
"tmp": "0.2.3",
|
"tmp": "0.2.3",
|
||||||
"tree-kill": "1.2.2",
|
"tree-kill": "1.2.2",
|
||||||
"turndown": "^7.2.0",
|
"turndown": "7.2.0",
|
||||||
"unescape": "1.0.1",
|
"unescape": "1.0.1",
|
||||||
"vanilla-js-wheel-zoom": "^9.0.2",
|
"vanilla-js-wheel-zoom": "9.0.2",
|
||||||
"ws": "^8.18.0",
|
"ws": "8.18.0",
|
||||||
"xml2js": "0.6.2",
|
"xml2js": "0.6.2",
|
||||||
"yauzl": "^3.1.3"
|
"yauzl": "3.1.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@electron-forge/cli": "^7.4.0",
|
"@electron-forge/cli": "7.4.0",
|
||||||
"@electron-forge/maker-deb": "^7.4.0",
|
"@electron-forge/maker-deb": "7.4.0",
|
||||||
"@electron-forge/maker-dmg": "^7.4.0",
|
"@electron-forge/maker-dmg": "7.4.0",
|
||||||
"@electron-forge/maker-squirrel": "^7.4.0",
|
"@electron-forge/maker-squirrel": "7.4.0",
|
||||||
"@electron-forge/maker-zip": "^7.4.0",
|
"@electron-forge/maker-zip": "7.4.0",
|
||||||
"@electron-forge/plugin-auto-unpack-natives": "^7.4.0",
|
"@electron-forge/plugin-auto-unpack-natives": "7.4.0",
|
||||||
"@playwright/test": "^1.46.0",
|
"@playwright/test": "1.47.1",
|
||||||
"@types/archiver": "^6.0.2",
|
"@types/archiver": "6.0.2",
|
||||||
"@types/better-sqlite3": "^7.6.9",
|
"@types/better-sqlite3": "7.6.11",
|
||||||
"@types/cls-hooked": "^4.3.8",
|
"@types/cls-hooked": "4.3.8",
|
||||||
"@types/compression": "^1.7.5",
|
"@types/compression": "1.7.5",
|
||||||
"@types/cookie-parser": "^1.4.7",
|
"@types/cookie-parser": "1.4.7",
|
||||||
"@types/csurf": "^1.11.5",
|
"@types/csurf": "1.11.5",
|
||||||
"@types/debounce": "^1.2.4",
|
"@types/debounce": "1.2.4",
|
||||||
"@types/ejs": "^3.1.5",
|
"@types/ejs": "3.1.5",
|
||||||
"@types/escape-html": "^1.0.4",
|
"@types/electron-squirrel-startup": "1.0.2",
|
||||||
"@types/express": "^4.17.21",
|
"@types/escape-html": "1.0.4",
|
||||||
"@types/express-session": "^1.18.0",
|
"@types/express": "4.17.21",
|
||||||
"@types/html": "^1.0.4",
|
"@types/express-session": "1.18.0",
|
||||||
"@types/ini": "^4.1.0",
|
"@types/html": "1.0.4",
|
||||||
"@types/jasmine": "^5.1.4",
|
"@types/ini": "4.1.1",
|
||||||
"@types/jsdom": "^21.1.6",
|
"@types/jasmine": "5.1.4",
|
||||||
"@types/mime-types": "^2.1.4",
|
"@types/jsdom": "21.1.7",
|
||||||
"@types/multer": "^1.4.12",
|
"@types/mime-types": "2.1.4",
|
||||||
"@types/node": "^22.5.2",
|
"@types/multer": "1.4.12",
|
||||||
"@types/safe-compare": "^1.1.2",
|
"@types/node": "22.5.4",
|
||||||
"@types/sanitize-html": "^2.13.0",
|
"@types/safe-compare": "1.1.2",
|
||||||
"@types/sax": "^1.2.7",
|
"@types/sanitize-html": "2.13.0",
|
||||||
"@types/semver": "^7.5.8",
|
"@types/sax": "1.2.7",
|
||||||
"@types/serve-favicon": "^2.5.7",
|
"@types/semver": "7.5.8",
|
||||||
"@types/session-file-store": "^1.2.5",
|
"@types/serve-favicon": "2.5.7",
|
||||||
"@types/source-map-support": "^0.5.10",
|
"@types/session-file-store": "1.2.5",
|
||||||
"@types/stream-throttle": "^0.1.4",
|
"@types/source-map-support": "0.5.10",
|
||||||
"@types/tmp": "^0.2.6",
|
"@types/stream-throttle": "0.1.4",
|
||||||
"@types/turndown": "^5.0.5",
|
"@types/tmp": "0.2.6",
|
||||||
"@types/ws": "^8.5.12",
|
"@types/turndown": "5.0.5",
|
||||||
"@types/xml2js": "^0.4.14",
|
"@types/ws": "8.5.12",
|
||||||
|
"@types/xml2js": "0.4.14",
|
||||||
"cross-env": "7.0.3",
|
"cross-env": "7.0.3",
|
||||||
"electron": "^31.3.1",
|
"electron": "31.3.1",
|
||||||
"electron-packager": "17.1.2",
|
"electron-packager": "17.1.2",
|
||||||
"electron-rebuild": "3.2.9",
|
"electron-rebuild": "3.2.9",
|
||||||
"esm": "3.2.25",
|
"esm": "3.2.25",
|
||||||
"iconsur": "^1.7.0",
|
"iconsur": "1.7.0",
|
||||||
"jasmine": "^5.3.0",
|
"jasmine": "5.3.0",
|
||||||
"jsdoc": "^4.0.3",
|
"jsdoc": "4.0.3",
|
||||||
"lorem-ipsum": "2.0.8",
|
"lorem-ipsum": "2.0.8",
|
||||||
"nodemon": "^3.1.4",
|
"nodemon": "3.1.4",
|
||||||
"rcedit": "4.0.1",
|
"rcedit": "4.0.1",
|
||||||
"rimraf": "^6.0.1",
|
"rimraf": "6.0.1",
|
||||||
"ts-node": "^10.9.2",
|
"ts-node": "10.9.2",
|
||||||
"tslib": "^2.7.0",
|
"tslib": "2.7.0",
|
||||||
"tsx": "^4.19.1",
|
"tsx": "4.19.1",
|
||||||
"typescript": "^5.5.4",
|
"typescript": "5.6.2",
|
||||||
"webpack": "^5.93.0",
|
"webpack": "5.94.0",
|
||||||
"webpack-cli": "5.1.4"
|
"webpack-cli": "5.1.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -70,6 +70,7 @@ const TPL = `
|
|||||||
background-color: var(--button-background-color);
|
background-color: var(--button-background-color);
|
||||||
padding: 3px;
|
padding: 3px;
|
||||||
margin-left: 3px;
|
margin-left: 3px;
|
||||||
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.global-menu .zoom-buttons a:hover {
|
.global-menu .zoom-buttons a:hover {
|
||||||
|
@ -70,9 +70,9 @@ const TPL = `
|
|||||||
<button class="btn dropdown-toggle note-icon" type="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" title="${t("note_icon.change_note_icon")}"></button>
|
<button class="btn dropdown-toggle note-icon" type="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" title="${t("note_icon.change_note_icon")}"></button>
|
||||||
<div class="dropdown-menu" aria-labelledby="note-path-list-button" style="width: 610px;">
|
<div class="dropdown-menu" aria-labelledby="note-path-list-button" style="width: 610px;">
|
||||||
<div class="filter-row">
|
<div class="filter-row">
|
||||||
<span>Category:</span> <select name="icon-category" class="form-control"></select>
|
<span>${t("note_icon.category")}</span> <select name="icon-category" class="form-control"></select>
|
||||||
|
|
||||||
<span>Search:</span> <input type="text" name="icon-search" class="form-control" />
|
<span>${t("note_icon.search")}</span> <input type="text" name="icon-search" class="form-control" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="icon-list"></div>
|
<div class="icon-list"></div>
|
||||||
@ -151,7 +151,7 @@ export default class NoteIconWidget extends NoteContextAwareWidget {
|
|||||||
this.$iconList.append(
|
this.$iconList.append(
|
||||||
$(`<div style="text-align: center">`)
|
$(`<div style="text-align: center">`)
|
||||||
.append(
|
.append(
|
||||||
$('<button class="btn btn-sm">Reset to default icon</button>')
|
$(`<button class="btn btn-sm">${t("note_icon.reset-default")}</button>`)
|
||||||
.on('click', () => this.getIconLabels()
|
.on('click', () => this.getIconLabels()
|
||||||
.forEach(label => attributeService.removeAttributeById(this.noteId, label.attributeId))
|
.forEach(label => attributeService.removeAttributeById(this.noteId, label.attributeId))
|
||||||
)
|
)
|
||||||
|
@ -18,6 +18,7 @@ import options from "../services/options.js";
|
|||||||
import protectedSessionHolder from "../services/protected_session_holder.js";
|
import protectedSessionHolder from "../services/protected_session_holder.js";
|
||||||
import dialogService from "../services/dialog.js";
|
import dialogService from "../services/dialog.js";
|
||||||
import shortcutService from "../services/shortcuts.js";
|
import shortcutService from "../services/shortcuts.js";
|
||||||
|
import { t } from "../services/i18n.js";
|
||||||
|
|
||||||
const TPL = `
|
const TPL = `
|
||||||
<div class="tree-wrapper">
|
<div class="tree-wrapper">
|
||||||
@ -99,15 +100,15 @@ const TPL = `
|
|||||||
|
|
||||||
<div class="tree-actions">
|
<div class="tree-actions">
|
||||||
<button class="tree-floating-button bx bx-layer-minus collapse-tree-button"
|
<button class="tree-floating-button bx bx-layer-minus collapse-tree-button"
|
||||||
title="Collapse note tree"
|
title="${t("note_tree.collapse-title")}"
|
||||||
data-trigger-command="collapseTree"></button>
|
data-trigger-command="collapseTree"></button>
|
||||||
|
|
||||||
<button class="tree-floating-button bx bx-crosshair scroll-to-active-note-button"
|
<button class="tree-floating-button bx bx-crosshair scroll-to-active-note-button"
|
||||||
title="Scroll to active note"
|
title="${t("note_tree.scroll-active-title")}"
|
||||||
data-trigger-command="scrollToActiveNote"></button>
|
data-trigger-command="scrollToActiveNote"></button>
|
||||||
|
|
||||||
<button class="tree-floating-button bx bxs-tree tree-settings-button"
|
<button class="tree-floating-button bx bxs-tree tree-settings-button"
|
||||||
title="Tree settings"></button>
|
title="${t("note_tree.tree-settings-title")}"></button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@ -116,22 +117,22 @@ const TPL = `
|
|||||||
<label class="form-check-label">
|
<label class="form-check-label">
|
||||||
<input class="form-check-input hide-archived-notes" type="checkbox" value="">
|
<input class="form-check-input hide-archived-notes" type="checkbox" value="">
|
||||||
|
|
||||||
Hide archived notes
|
${t("note_tree.hide-archived-notes")}
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-check">
|
<div class="form-check">
|
||||||
<label class="form-check-label">
|
<label class="form-check-label">
|
||||||
<input class="form-check-input auto-collapse-note-tree" type="checkbox" value="">
|
<input class="form-check-input auto-collapse-note-tree" type="checkbox" value="">
|
||||||
|
|
||||||
Automatically collapse notes
|
${t("note_tree.automatically-collapse-notes")}
|
||||||
<span class="bx bx-info-circle"
|
<span class="bx bx-info-circle"
|
||||||
title="Notes will be collapsed after period of inactivity to declutter the tree."></span>
|
title="${t("note_tree.automatically-collapse-notes-title")}"></span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
<button class="btn btn-sm btn-primary save-tree-settings-button" type="submit">Save & apply changes</button>
|
<button class="btn btn-sm btn-primary save-tree-settings-button" type="submit">${t("note_tree.save-changes")}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
@ -5,6 +5,7 @@ import froca from "../services/froca.js";
|
|||||||
import utils from "../services/utils.js";
|
import utils from "../services/utils.js";
|
||||||
import appContext from "../components/app_context.js";
|
import appContext from "../components/app_context.js";
|
||||||
import shortcutService from "../services/shortcuts.js";
|
import shortcutService from "../services/shortcuts.js";
|
||||||
|
import { t } from "../services/i18n.js";
|
||||||
|
|
||||||
const TPL = `
|
const TPL = `
|
||||||
<div class="quick-search input-group input-group-sm">
|
<div class="quick-search input-group input-group-sm">
|
||||||
@ -35,7 +36,7 @@ const TPL = `
|
|||||||
</button>
|
</button>
|
||||||
<div class="dropdown-menu dropdown-menu-left"></div>
|
<div class="dropdown-menu dropdown-menu-left"></div>
|
||||||
</div>
|
</div>
|
||||||
<input type="text" class="form-control form-control-sm search-string" placeholder="Quick search">
|
<input type="text" class="form-control form-control-sm search-string" placeholder="${t("quick-search.placeholder")}">
|
||||||
</div>`;
|
</div>`;
|
||||||
|
|
||||||
const MAX_DISPLAYED_NOTES = 15;
|
const MAX_DISPLAYED_NOTES = 15;
|
||||||
@ -94,7 +95,7 @@ export default class QuickSearchWidget extends BasicWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.$dropdownMenu.empty();
|
this.$dropdownMenu.empty();
|
||||||
this.$dropdownMenu.append('<span class="dropdown-item disabled"><span class="bx bx-loader bx-spin"></span> Searching ...</span>');
|
this.$dropdownMenu.append(`<span class="dropdown-item disabled"><span class="bx bx-loader bx-spin"></span>${t("quick-search.searching")}</span>`);
|
||||||
|
|
||||||
const { searchResultNoteIds, error } = await server.get(`quick-search/${encodeURIComponent(searchString)}`);
|
const { searchResultNoteIds, error } = await server.get(`quick-search/${encodeURIComponent(searchString)}`);
|
||||||
|
|
||||||
@ -115,7 +116,7 @@ export default class QuickSearchWidget extends BasicWidget {
|
|||||||
this.$dropdownMenu.empty();
|
this.$dropdownMenu.empty();
|
||||||
|
|
||||||
if (displayedNoteIds.length === 0) {
|
if (displayedNoteIds.length === 0) {
|
||||||
this.$dropdownMenu.append('<span class="dropdown-item disabled">No results found</span>');
|
this.$dropdownMenu.append(`<span class="dropdown-item disabled">${t("quick-search.no-results")}</span>`);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const note of await froca.getNotes(displayedNoteIds)) {
|
for (const note of await froca.getNotes(displayedNoteIds)) {
|
||||||
@ -140,11 +141,12 @@ export default class QuickSearchWidget extends BasicWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (searchResultNoteIds.length > MAX_DISPLAYED_NOTES) {
|
if (searchResultNoteIds.length > MAX_DISPLAYED_NOTES) {
|
||||||
this.$dropdownMenu.append(`<span class="dropdown-item disabled">... and ${searchResultNoteIds.length - MAX_DISPLAYED_NOTES} more results.</span>`);
|
const numRemainingResults = (searchResultNoteIds.length - MAX_DISPLAYED_NOTES);
|
||||||
|
this.$dropdownMenu.append(`<span class="dropdown-item disabled">${t("quick-search.more-results", { number: numRemainingResults })}</span>`);
|
||||||
}
|
}
|
||||||
|
|
||||||
const $showInFullButton = $('<a class="dropdown-item" tabindex="0">')
|
const $showInFullButton = $('<a class="dropdown-item" tabindex="0">')
|
||||||
.append($('<button class="btn btn-sm">Show in full search</button>'));
|
.append($(`<button class="btn btn-sm">${t("quick-search.show-in-full-search")}</button>`));
|
||||||
|
|
||||||
this.$dropdownMenu.append($showInFullButton);
|
this.$dropdownMenu.append($showInFullButton);
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import BasicWidget from "./basic_widget.js";
|
import BasicWidget from "./basic_widget.js";
|
||||||
import options from "../services/options.js";
|
import options from "../services/options.js";
|
||||||
import utils from "../services/utils.js";
|
import utils from "../services/utils.js";
|
||||||
|
import { t } from "../services/i18n.js";
|
||||||
|
|
||||||
const TPL = `
|
const TPL = `
|
||||||
<div class="title-bar-buttons">
|
<div class="title-bar-buttons">
|
||||||
@ -41,7 +42,7 @@ const TPL = `
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<!-- divs act as a hitbox for the buttons, making them clickable on corners -->
|
<!-- divs act as a hitbox for the buttons, making them clickable on corners -->
|
||||||
<div class="top-btn" title="Keep this window on top. "><button class="btn bx bx-pin"></button></div>
|
<div class="top-btn" title="${t("title_bar_buttons.window-on-top")}"><button class="btn bx bx-pin"></button></div>
|
||||||
<div class="minimize-btn"><button class="btn bx bx-minus"></button></div>
|
<div class="minimize-btn"><button class="btn bx bx-minus"></button></div>
|
||||||
<div class="maximize-btn"><button class="btn bx bx-checkbox"></button></div>
|
<div class="maximize-btn"><button class="btn bx bx-checkbox"></button></div>
|
||||||
<div class="close-btn"><button class="btn bx bx-x"></button></div>
|
<div class="close-btn"><button class="btn bx bx-x"></button></div>
|
||||||
|
@ -80,8 +80,7 @@ export default class KeyboardShortcutsOptions extends OptionsWidget {
|
|||||||
.attr("style","background-color: var(--accented-background-color); font-weight: bold;")
|
.attr("style","background-color: var(--accented-background-color); font-weight: bold;")
|
||||||
.text(action.separator)
|
.text(action.separator)
|
||||||
)
|
)
|
||||||
}
|
} else if (action.defaultShortcuts) {
|
||||||
else {
|
|
||||||
$tr.append($("<td>").text(action.actionName))
|
$tr.append($("<td>").text(action.actionName))
|
||||||
.append($("<td>").append(
|
.append($("<td>").append(
|
||||||
$(`<input type="text" class="form-control">`)
|
$(`<input type="text" class="form-control">`)
|
||||||
|
@ -683,7 +683,10 @@
|
|||||||
"error_unrecognized_command": "Unrecognized command {{command}}"
|
"error_unrecognized_command": "Unrecognized command {{command}}"
|
||||||
},
|
},
|
||||||
"note_icon": {
|
"note_icon": {
|
||||||
"change_note_icon": "Change note icon"
|
"change_note_icon": "Change note icon",
|
||||||
|
"category": "Category:",
|
||||||
|
"search": "Search:",
|
||||||
|
"reset-default": "Reset to default icon"
|
||||||
},
|
},
|
||||||
"basic_properties": {
|
"basic_properties": {
|
||||||
"note_type": "Note type",
|
"note_type": "Note type",
|
||||||
@ -1356,5 +1359,24 @@
|
|||||||
},
|
},
|
||||||
"mermaid": {
|
"mermaid": {
|
||||||
"diagram_error": "The diagram could not be displayed. See <a href=\"https://mermaid-js.github.io/mermaid/#/flowchart?id=graph\">help and examples</a>."
|
"diagram_error": "The diagram could not be displayed. See <a href=\"https://mermaid-js.github.io/mermaid/#/flowchart?id=graph\">help and examples</a>."
|
||||||
|
},
|
||||||
|
"quick-search": {
|
||||||
|
"placeholder": "Quick search",
|
||||||
|
"searching": "Searching...",
|
||||||
|
"no-results": "No results found",
|
||||||
|
"more-results": "... and {{number}} more results.",
|
||||||
|
"show-in-full-search": "Show in full search"
|
||||||
|
},
|
||||||
|
"note_tree": {
|
||||||
|
"collapse-title": "Collapse note tree",
|
||||||
|
"scroll-active-title": "Scroll to active note",
|
||||||
|
"tree-settings-title": "Tree settings",
|
||||||
|
"hide-archived-notes": "Hide archived notes",
|
||||||
|
"automatically-collapse-notes": "Automatically collapse notes",
|
||||||
|
"automatically-collapse-notes-title": "Notes will be collapsed after period of inactivity to declutter the tree.",
|
||||||
|
"save-changes": "Save & apply changes"
|
||||||
|
},
|
||||||
|
"title_bar_buttons": {
|
||||||
|
"window-on-top": "Keep this window on top."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1318,5 +1318,55 @@
|
|||||||
"toggle-off-hint": "Înlătură notița ca șablon",
|
"toggle-off-hint": "Înlătură notița ca șablon",
|
||||||
"toggle-on-hint": "Marchează notița drept șablon"
|
"toggle-on-hint": "Marchează notița drept șablon"
|
||||||
},
|
},
|
||||||
"open-help-page": "Deschide pagina de informații"
|
"open-help-page": "Deschide pagina de informații",
|
||||||
|
"find": {
|
||||||
|
"match_words": "doar cuvinte întregi",
|
||||||
|
"case_sensitive": "ține cont de majuscule"
|
||||||
|
},
|
||||||
|
"highlights_list_2": {
|
||||||
|
"options": "Setări",
|
||||||
|
"title": "Listă de evidențieri"
|
||||||
|
},
|
||||||
|
"mermaid": {
|
||||||
|
"diagram_error": "Diagrama nu a putut fi afișată. Vedeți <a href=\"https://mermaid-js.github.io/mermaid/#/flowchart?id=graph\">informații și exemple pe site-ul oficial</a>."
|
||||||
|
},
|
||||||
|
"note_icon": {
|
||||||
|
"change_note_icon": "Schimbă iconița notiței",
|
||||||
|
"category": "Categorie:",
|
||||||
|
"reset-default": "Resetează la iconița implicită",
|
||||||
|
"search": "Căutare:"
|
||||||
|
},
|
||||||
|
"show_highlights_list_widget_button": {
|
||||||
|
"show_highlights_list": "Afișează lista de evidențieri"
|
||||||
|
},
|
||||||
|
"show_toc_widget_button": {
|
||||||
|
"show_toc": "Afișează cuprinsul"
|
||||||
|
},
|
||||||
|
"sync_status": {
|
||||||
|
"connected_no_changes": "<p>Conectat la server-ul de sincronizare.<br>Toate modificările au fost deja sincronizate.</p><p>Clic pentru a forța o sincronizare.</p>",
|
||||||
|
"connected_with_changes": "<p>Conectat la server-ul de sincronizare. <br>Există modificări nesincronizate.</p><p>Clic pentru a rula o sincronizare.</p>",
|
||||||
|
"disconnected_no_changes": "<p>Nu s-a putut stabili conexiunea la server-ul de sincronizare.<br>Toate modificările cunoscute au fost deja sincronizate.</p><p>Clic pentru a reîncerca sincronizarea.</p>",
|
||||||
|
"disconnected_with_changes": "<p>Nu s-a putut realiza conexiunea la server-ul de sincronizare.<br>Există modificări nesincronizate.</p><p>Clic pentru a rula o sincronizare.</p>",
|
||||||
|
"in_progress": "Sincronizare cu server-ul în curs.",
|
||||||
|
"unknown": "<p>Starea sincronizării va fi cunoscută după o încercare de sincronizare.</p><p>Clic pentru a rula sincronizarea acum.</p>"
|
||||||
|
},
|
||||||
|
"quick-search": {
|
||||||
|
"more-results": "... și încă {{number}} rezultate.",
|
||||||
|
"no-results": "Niciun rezultat găsit",
|
||||||
|
"placeholder": "Căutare rapidă",
|
||||||
|
"searching": "Se caută...",
|
||||||
|
"show-in-full-search": "Afișează în căutare completă"
|
||||||
|
},
|
||||||
|
"note_tree": {
|
||||||
|
"automatically-collapse-notes": "Minimează automat notițele",
|
||||||
|
"automatically-collapse-notes-title": "Notițele vor fi minimizate automat după o perioadă de inactivitate pentru a simplifica ierarhia notițelor.",
|
||||||
|
"collapse-title": "Minimizează ierarhia de notițe",
|
||||||
|
"hide-archived-notes": "Ascunde notițele arhivate",
|
||||||
|
"save-changes": "Salvează și aplică modificările",
|
||||||
|
"scroll-active-title": "Mergi la notița activă",
|
||||||
|
"tree-settings-title": "Setări ale ierarhiei notițelor"
|
||||||
|
},
|
||||||
|
"title_bar_buttons": {
|
||||||
|
"window-on-top": "Menține fereastra mereu vizibilă"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@ import utils from "./utils.js";
|
|||||||
const template = `[Desktop Entry]
|
const template = `[Desktop Entry]
|
||||||
Type=Application
|
Type=Application
|
||||||
Name=TriliumNext Notes
|
Name=TriliumNext Notes
|
||||||
|
StartupWMClass=TriliumNext Notes
|
||||||
Icon=#APP_ROOT_DIR#/icon.png
|
Icon=#APP_ROOT_DIR#/icon.png
|
||||||
Exec=#EXE_PATH#
|
Exec=#EXE_PATH#
|
||||||
Categories=Office
|
Categories=Office
|
||||||
|
@ -11,8 +11,7 @@ export async function initializeTranslations() {
|
|||||||
ns: "server",
|
ns: "server",
|
||||||
backend: {
|
backend: {
|
||||||
loadPath: "translations/{{lng}}/{{ns}}.json"
|
loadPath: "translations/{{lng}}/{{ns}}.json"
|
||||||
},
|
}
|
||||||
debug: true
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
{
|
{
|
||||||
"keyboard-actions": {
|
|
||||||
"note-navigation": "Navigarea printre notițe"
|
|
||||||
},
|
|
||||||
"keyboard_actions": {
|
"keyboard_actions": {
|
||||||
"activate-next-tab": "Activează tab-ul din dreapta",
|
"activate-next-tab": "Activează tab-ul din dreapta",
|
||||||
"activate-previous-tab": "Activează tab-ul din stânga",
|
"activate-previous-tab": "Activează tab-ul din stânga",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user