mirror of
https://github.com/zadam/trilium.git
synced 2025-10-27 00:06:30 +01:00
Compare commits
275 Commits
v0.99.2
...
feat/ui-im
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
638cb4281e | ||
|
|
1568908982 | ||
|
|
4459561308 | ||
|
|
b8e17959ae | ||
|
|
c16a135efc | ||
|
|
cbc756ba06 | ||
|
|
64daeb0826 | ||
|
|
e15839db47 | ||
|
|
dcdffed003 | ||
|
|
354f1d65c1 | ||
|
|
9310315c6a | ||
|
|
b3bc0572e5 | ||
|
|
253ce1f223 | ||
|
|
2f3bf94b47 | ||
|
|
d802caa03b | ||
|
|
e69751a8b3 | ||
|
|
0760ea22fb | ||
|
|
8a8f407e99 | ||
|
|
e030dd96da | ||
|
|
01abfc2528 | ||
|
|
042b929dc5 | ||
|
|
ab1d5e31fb | ||
|
|
d073e4c37f | ||
|
|
d60d965a42 | ||
|
|
1c87cfbbd9 | ||
|
|
fee333512a | ||
|
|
38a3f46506 | ||
|
|
bf7506fcd8 | ||
|
|
6fbba426de | ||
|
|
d5bdec13b5 | ||
|
|
cc1b6eb42d | ||
|
|
8baf496f96 | ||
|
|
23a20c4490 | ||
|
|
c8b98f2db6 | ||
|
|
3f36f515db | ||
|
|
892eb5b95d | ||
|
|
62a69a0da0 | ||
|
|
3588e38543 | ||
|
|
41450ab85a | ||
|
|
0526d99560 | ||
|
|
557d576b85 | ||
|
|
041c961cfa | ||
|
|
dcc35bd507 | ||
|
|
09c3e5b56e | ||
|
|
950793377d | ||
|
|
7dac61dc26 | ||
|
|
42dcb8f141 | ||
|
|
43dc8a4b87 | ||
|
|
35316a4c45 | ||
|
|
1366489f99 | ||
|
|
31ee78b1aa | ||
|
|
808ba75ee0 | ||
|
|
ac1399a139 | ||
|
|
1e4793351a | ||
|
|
f502fe41c7 | ||
|
|
0ec0091357 | ||
|
|
0e2196f872 | ||
|
|
32dee254cd | ||
|
|
d4a6a297f4 | ||
|
|
a64d8cd8e2 | ||
|
|
bf4cfb9c02 | ||
|
|
a99dfecf43 | ||
|
|
1530d96eca | ||
|
|
5dc066f4c6 | ||
|
|
3341e59a80 | ||
|
|
74a805056b | ||
|
|
1e8f179f81 | ||
|
|
54c906de8d | ||
|
|
114b3ef4d1 | ||
|
|
f6fa1e69b3 | ||
|
|
fcc8086f9c | ||
|
|
f42e870de1 | ||
|
|
7eefff0a74 | ||
|
|
1b842e35ff | ||
|
|
c9021ca742 | ||
|
|
b229ab3c02 | ||
|
|
6825f28ba0 | ||
|
|
5e72f271ea | ||
|
|
9ad6dfd5e9 | ||
|
|
81031673c3 | ||
|
|
1a6423fd36 | ||
|
|
9b872617e6 | ||
|
|
57be2e2474 | ||
|
|
1d65afef53 | ||
|
|
b6385618d1 | ||
|
|
e3d7c7419f | ||
|
|
2a6c295967 | ||
|
|
f5f32df847 | ||
|
|
1f350b2730 | ||
|
|
386992255e | ||
|
|
eb505c4615 | ||
|
|
003d2b5354 | ||
|
|
b452f78242 | ||
|
|
ca3964f8b7 | ||
|
|
7d1abee8e4 | ||
|
|
d503993a74 | ||
|
|
ddafda5f4e | ||
|
|
40b08e1828 | ||
|
|
5141f0a0d5 | ||
|
|
fe98ba8c8c | ||
|
|
18608ecb34 | ||
|
|
ab6da26a25 | ||
|
|
f95082ccdb | ||
|
|
e94b5ac07a | ||
|
|
5d0669b464 | ||
|
|
af95d85b73 | ||
|
|
aae90ede19 | ||
|
|
0fa1c0f5c4 | ||
|
|
d2b6014b49 | ||
|
|
94d62f810a | ||
|
|
e953f0cc1a | ||
|
|
8c165c0401 | ||
|
|
b4dd40e128 | ||
|
|
535b960b76 | ||
|
|
b58f37cd4a | ||
|
|
a01fb39599 | ||
|
|
be15934b22 | ||
|
|
347da8abde | ||
|
|
5ff07820d3 | ||
|
|
6eccaac4bb | ||
|
|
f5038a08e5 | ||
|
|
96b3464f00 | ||
|
|
d1e6bd9c3a | ||
|
|
7911973a83 | ||
|
|
968b595aec | ||
|
|
2470b0b334 | ||
|
|
4344687303 | ||
|
|
b4fe46eba3 | ||
|
|
704f2c2238 | ||
|
|
f6b86d725c | ||
|
|
a7e0866e0d | ||
|
|
2cb3b877d1 | ||
|
|
0b808b8db3 | ||
|
|
f02af893bb | ||
|
|
cb3f941760 | ||
|
|
93f145a20f | ||
|
|
d34e2a0246 | ||
|
|
9a0b4f67ed | ||
|
|
651e158e3a | ||
|
|
d11784a894 | ||
|
|
14db789b7f | ||
|
|
c4a4995da0 | ||
|
|
45de9da893 | ||
|
|
a6fce1b4c8 | ||
|
|
1d28a5e5b8 | ||
|
|
d4b05fa0a0 | ||
|
|
4bcf209072 | ||
|
|
4b34ae3fd4 | ||
|
|
8590ff1f46 | ||
|
|
c4e2c003de | ||
|
|
eee3aa2bb4 | ||
|
|
ce9f703e0c | ||
|
|
279ccec3ab | ||
|
|
ab3852678e | ||
|
|
65f7aaeee8 | ||
|
|
7a76b9dd0b | ||
|
|
e7b7afabea | ||
|
|
c072c1fd9d | ||
|
|
1f3d9db161 | ||
|
|
62852b8978 | ||
|
|
429767e45c | ||
|
|
87d6771c47 | ||
|
|
68033580a5 | ||
|
|
8a3b6ea694 | ||
|
|
ac269bb51e | ||
|
|
1d583a2d1f | ||
|
|
cdde69cc7c | ||
|
|
9e1e300c72 | ||
|
|
797741c7d0 | ||
|
|
10f844f232 | ||
|
|
5291649c50 | ||
|
|
fc57314905 | ||
|
|
1df0e7b2b0 | ||
|
|
6486c741a2 | ||
|
|
2aa9ddc026 | ||
|
|
d45177042c | ||
|
|
b24dbc6462 | ||
|
|
5dc2630d2a | ||
|
|
800c668962 | ||
|
|
b2955afa61 | ||
|
|
052f4f65cd | ||
|
|
f3df1c2f15 | ||
|
|
272ac1b990 | ||
|
|
c4af60480a | ||
|
|
ef94033908 | ||
|
|
78bb10b1df | ||
|
|
43ac3ac0fe | ||
|
|
bdc274ebba | ||
|
|
2baaf12d24 | ||
|
|
11e2632b61 | ||
|
|
70bc09b306 | ||
|
|
0f73cbeec3 | ||
|
|
ac28411b36 | ||
|
|
1dbfe0950b | ||
|
|
f02c499168 | ||
|
|
f9db642abb | ||
|
|
deb7eb4476 | ||
|
|
f64d52e9ca | ||
|
|
dddbbe64ea | ||
|
|
adfb268dd6 | ||
|
|
bc0750947e | ||
|
|
6404b2c7fd | ||
|
|
921dfe9cc5 | ||
|
|
c5abeafc70 | ||
|
|
a1ef80f5ae | ||
|
|
d9a350a003 | ||
|
|
3b9bb98d8d | ||
|
|
87e7449da2 | ||
|
|
a2c8695a6d | ||
|
|
2f74e84777 | ||
|
|
db9591a011 | ||
|
|
e56e29fd64 | ||
|
|
06e4a8bc50 | ||
|
|
d4a1905e73 | ||
|
|
bc583b0ceb | ||
|
|
d5b8666dee | ||
|
|
905e311e42 | ||
|
|
d3d4c88b47 | ||
|
|
7cdad71a8e | ||
|
|
4e2b331ba0 | ||
|
|
f0c0c6ec67 | ||
|
|
57656efacc | ||
|
|
a8b26cbe27 | ||
|
|
1c9ffe5378 | ||
|
|
47d3bb7575 | ||
|
|
03d6cb58db | ||
|
|
5d0f64db46 | ||
|
|
76a973ac8a | ||
|
|
0491f27d55 | ||
|
|
3caa7fcfa5 | ||
|
|
bfdb3caa50 | ||
|
|
f815c2ff8d | ||
|
|
7c654903f6 | ||
|
|
27bfaba5ec | ||
|
|
c2548cb4fa | ||
|
|
086fe79dd9 | ||
|
|
e8dfce7421 | ||
|
|
c55da9de12 | ||
|
|
ed5763d89a | ||
|
|
e49912e83c | ||
|
|
0b90bf460a | ||
|
|
cf5f5476df | ||
|
|
a12ba57de7 | ||
|
|
4574a233e6 | ||
|
|
6e9ebf75ad | ||
|
|
1e720d4810 | ||
|
|
2e2c20f8a3 | ||
|
|
f1b976d4e4 | ||
|
|
071e8a0cc1 | ||
|
|
c0006e961b | ||
|
|
7754829e1a | ||
|
|
a752e75409 | ||
|
|
61a9706b6a | ||
|
|
12a510c9c8 | ||
|
|
936d274f5a | ||
|
|
42fac91aed | ||
|
|
b934045cbd | ||
|
|
b77ebedf78 | ||
|
|
3c09f27676 | ||
|
|
c545a4c685 | ||
|
|
9f0c5bf123 | ||
|
|
22a1c4cc65 | ||
|
|
dcd51d64fb | ||
|
|
92f95e7288 | ||
|
|
31cbe99224 | ||
|
|
45aad74b01 | ||
|
|
f1b8a1b7f2 | ||
|
|
4356adcdfe | ||
|
|
8c1d9c27c2 | ||
|
|
52c593c54e | ||
|
|
977615aa2b | ||
|
|
58cc1280ce | ||
|
|
eaeb2f1bb2 | ||
|
|
f1d912e4bd | ||
|
|
7c3619675a |
8
.github/workflows/main-docker.yml
vendored
8
.github/workflows/main-docker.yml
vendored
@@ -86,12 +86,12 @@ jobs:
|
|||||||
|
|
||||||
- name: Upload Playwright trace
|
- name: Upload Playwright trace
|
||||||
if: failure()
|
if: failure()
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: Playwright trace (${{ matrix.dockerfile }})
|
name: Playwright trace (${{ matrix.dockerfile }})
|
||||||
path: test-output/playwright/output
|
path: test-output/playwright/output
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v5
|
||||||
if: ${{ !cancelled() }}
|
if: ${{ !cancelled() }}
|
||||||
with:
|
with:
|
||||||
name: Playwright report (${{ matrix.dockerfile }})
|
name: Playwright report (${{ matrix.dockerfile }})
|
||||||
@@ -209,7 +209,7 @@ jobs:
|
|||||||
touch "/tmp/digests/${digest#sha256:}"
|
touch "/tmp/digests/${digest#sha256:}"
|
||||||
|
|
||||||
- name: Upload digest
|
- name: Upload digest
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: digests-${{ env.PLATFORM_PAIR }}-${{ matrix.dockerfile }}
|
name: digests-${{ env.PLATFORM_PAIR }}-${{ matrix.dockerfile }}
|
||||||
path: /tmp/digests/*
|
path: /tmp/digests/*
|
||||||
@@ -223,7 +223,7 @@ jobs:
|
|||||||
- build
|
- build
|
||||||
steps:
|
steps:
|
||||||
- name: Download digests
|
- name: Download digests
|
||||||
uses: actions/download-artifact@v5
|
uses: actions/download-artifact@v6
|
||||||
with:
|
with:
|
||||||
path: /tmp/digests
|
path: /tmp/digests
|
||||||
pattern: digests-*
|
pattern: digests-*
|
||||||
|
|||||||
2
.github/workflows/nightly.yml
vendored
2
.github/workflows/nightly.yml
vendored
@@ -89,7 +89,7 @@ jobs:
|
|||||||
name: Nightly Build
|
name: Nightly Build
|
||||||
|
|
||||||
- name: Publish artifacts
|
- name: Publish artifacts
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v5
|
||||||
if: ${{ github.event_name == 'pull_request' }}
|
if: ${{ github.event_name == 'pull_request' }}
|
||||||
with:
|
with:
|
||||||
name: TriliumNotes ${{ matrix.os.name }} ${{ matrix.arch }}
|
name: TriliumNotes ${{ matrix.os.name }} ${{ matrix.arch }}
|
||||||
|
|||||||
2
.github/workflows/playwright.yml
vendored
2
.github/workflows/playwright.yml
vendored
@@ -35,7 +35,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Upload test report
|
- name: Upload test report
|
||||||
if: failure()
|
if: failure()
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: e2e report
|
name: e2e report
|
||||||
path: apps/server-e2e/test-output
|
path: apps/server-e2e/test-output
|
||||||
|
|||||||
6
.github/workflows/release.yml
vendored
6
.github/workflows/release.yml
vendored
@@ -73,7 +73,7 @@ jobs:
|
|||||||
GPG_SIGNING_KEY: ${{ secrets.GPG_SIGN_KEY }}
|
GPG_SIGNING_KEY: ${{ secrets.GPG_SIGN_KEY }}
|
||||||
|
|
||||||
- name: Upload the artifact
|
- name: Upload the artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: release-desktop-${{ matrix.os.name }}-${{ matrix.arch }}
|
name: release-desktop-${{ matrix.os.name }}-${{ matrix.arch }}
|
||||||
path: apps/desktop/upload/*.*
|
path: apps/desktop/upload/*.*
|
||||||
@@ -100,7 +100,7 @@ jobs:
|
|||||||
arch: ${{ matrix.arch }}
|
arch: ${{ matrix.arch }}
|
||||||
|
|
||||||
- name: Upload the artifact
|
- name: Upload the artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: release-server-linux-${{ matrix.arch }}
|
name: release-server-linux-${{ matrix.arch }}
|
||||||
path: upload/*.*
|
path: upload/*.*
|
||||||
@@ -120,7 +120,7 @@ jobs:
|
|||||||
docs/Release Notes
|
docs/Release Notes
|
||||||
|
|
||||||
- name: Download all artifacts
|
- name: Download all artifacts
|
||||||
uses: actions/download-artifact@v5
|
uses: actions/download-artifact@v6
|
||||||
with:
|
with:
|
||||||
merge-multiple: true
|
merge-multiple: true
|
||||||
pattern: release-*
|
pattern: release-*
|
||||||
|
|||||||
@@ -38,8 +38,8 @@
|
|||||||
"@playwright/test": "1.56.1",
|
"@playwright/test": "1.56.1",
|
||||||
"@stylistic/eslint-plugin": "5.5.0",
|
"@stylistic/eslint-plugin": "5.5.0",
|
||||||
"@types/express": "5.0.3",
|
"@types/express": "5.0.3",
|
||||||
"@types/node": "22.18.11",
|
"@types/node": "22.18.12",
|
||||||
"@types/yargs": "17.0.33",
|
"@types/yargs": "17.0.34",
|
||||||
"@vitest/coverage-v8": "3.2.4",
|
"@vitest/coverage-v8": "3.2.4",
|
||||||
"eslint": "9.38.0",
|
"eslint": "9.38.0",
|
||||||
"eslint-plugin-simple-import-sort": "12.1.1",
|
"eslint-plugin-simple-import-sort": "12.1.1",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@triliumnext/client",
|
"name": "@triliumnext/client",
|
||||||
"version": "0.99.2",
|
"version": "0.99.3",
|
||||||
"description": "JQuery-based client for TriliumNext, used for both web and desktop (via Electron)",
|
"description": "JQuery-based client for TriliumNext, used for both web and desktop (via Electron)",
|
||||||
"private": true,
|
"private": true,
|
||||||
"license": "AGPL-3.0-only",
|
"license": "AGPL-3.0-only",
|
||||||
@@ -32,6 +32,7 @@
|
|||||||
"@triliumnext/commons": "workspace:*",
|
"@triliumnext/commons": "workspace:*",
|
||||||
"@triliumnext/highlightjs": "workspace:*",
|
"@triliumnext/highlightjs": "workspace:*",
|
||||||
"@triliumnext/share-theme": "workspace:*",
|
"@triliumnext/share-theme": "workspace:*",
|
||||||
|
"@triliumnext/split.js": "workspace:*",
|
||||||
"autocomplete.js": "0.38.1",
|
"autocomplete.js": "0.38.1",
|
||||||
"bootstrap": "5.3.8",
|
"bootstrap": "5.3.8",
|
||||||
"boxicons": "2.1.4",
|
"boxicons": "2.1.4",
|
||||||
@@ -54,13 +55,12 @@
|
|||||||
"mark.js": "8.11.1",
|
"mark.js": "8.11.1",
|
||||||
"marked": "16.4.1",
|
"marked": "16.4.1",
|
||||||
"mermaid": "11.12.0",
|
"mermaid": "11.12.0",
|
||||||
"mind-elixir": "5.3.3",
|
"mind-elixir": "5.3.4",
|
||||||
"normalize.css": "8.0.1",
|
"normalize.css": "8.0.1",
|
||||||
"panzoom": "9.4.3",
|
"panzoom": "9.4.3",
|
||||||
"preact": "10.27.2",
|
"preact": "10.27.2",
|
||||||
"react-i18next": "16.1.0",
|
"react-i18next": "16.2.0",
|
||||||
"reveal.js": "5.2.1",
|
"reveal.js": "5.2.1",
|
||||||
"split.js": "1.6.5",
|
|
||||||
"svg-pan-zoom": "3.6.2",
|
"svg-pan-zoom": "3.6.2",
|
||||||
"tabulator-tables": "6.3.1",
|
"tabulator-tables": "6.3.1",
|
||||||
"vanilla-js-wheel-zoom": "9.0.4"
|
"vanilla-js-wheel-zoom": "9.0.4"
|
||||||
@@ -74,9 +74,9 @@
|
|||||||
"@types/leaflet-gpx": "1.3.8",
|
"@types/leaflet-gpx": "1.3.8",
|
||||||
"@types/mark.js": "8.11.12",
|
"@types/mark.js": "8.11.12",
|
||||||
"@types/reveal.js": "5.2.1",
|
"@types/reveal.js": "5.2.1",
|
||||||
"@types/tabulator-tables": "6.2.11",
|
"@types/tabulator-tables": "6.3.0",
|
||||||
"copy-webpack-plugin": "13.0.1",
|
"copy-webpack-plugin": "13.0.1",
|
||||||
"happy-dom": "20.0.7",
|
"happy-dom": "20.0.8",
|
||||||
"script-loader": "0.7.2",
|
"script-loader": "0.7.2",
|
||||||
"vite-plugin-static-copy": "3.1.4"
|
"vite-plugin-static-copy": "3.1.4"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,8 +29,9 @@ import PromotedAttributesWidget from "../widgets/promoted_attributes.js";
|
|||||||
import NoteDetailWidget from "../widgets/note_detail.js";
|
import NoteDetailWidget from "../widgets/note_detail.js";
|
||||||
import CallToActionDialog from "../widgets/dialogs/call_to_action.jsx";
|
import CallToActionDialog from "../widgets/dialogs/call_to_action.jsx";
|
||||||
import NoteTitleWidget from "../widgets/note_title.jsx";
|
import NoteTitleWidget from "../widgets/note_title.jsx";
|
||||||
import { PopupEditorFormattingToolbar } from "../widgets/ribbon/FormattingToolbar.js";
|
import FormattingToolbar from "../widgets/ribbon/FormattingToolbar.js";
|
||||||
import NoteList from "../widgets/collections/NoteList.jsx";
|
import NoteList from "../widgets/collections/NoteList.jsx";
|
||||||
|
import StandaloneRibbonAdapter from "../widgets/ribbon/components/StandaloneRibbonAdapter.jsx";
|
||||||
|
|
||||||
export function applyModals(rootContainer: RootContainer) {
|
export function applyModals(rootContainer: RootContainer) {
|
||||||
rootContainer
|
rootContainer
|
||||||
@@ -63,7 +64,7 @@ export function applyModals(rootContainer: RootContainer) {
|
|||||||
.cssBlock(".title-row > * { margin: 5px; }")
|
.cssBlock(".title-row > * { margin: 5px; }")
|
||||||
.child(<NoteIconWidget />)
|
.child(<NoteIconWidget />)
|
||||||
.child(<NoteTitleWidget />))
|
.child(<NoteTitleWidget />))
|
||||||
.child(<PopupEditorFormattingToolbar />)
|
.child(<StandaloneRibbonAdapter component={FormattingToolbar} />)
|
||||||
.child(new PromotedAttributesWidget())
|
.child(new PromotedAttributesWidget())
|
||||||
.child(new NoteDetailWidget())
|
.child(new NoteDetailWidget())
|
||||||
.child(<NoteList media="screen" displayOnlyCollections />))
|
.child(<NoteList media="screen" displayOnlyCollections />))
|
||||||
|
|||||||
@@ -24,6 +24,9 @@ import CloseZenModeButton from "../widgets/close_zen_button.js";
|
|||||||
import NoteWrapperWidget from "../widgets/note_wrapper.js";
|
import NoteWrapperWidget from "../widgets/note_wrapper.js";
|
||||||
import MobileDetailMenu from "../widgets/mobile_widgets/mobile_detail_menu.js";
|
import MobileDetailMenu from "../widgets/mobile_widgets/mobile_detail_menu.js";
|
||||||
import NoteList from "../widgets/collections/NoteList.jsx";
|
import NoteList from "../widgets/collections/NoteList.jsx";
|
||||||
|
import StandaloneRibbonAdapter from "../widgets/ribbon/components/StandaloneRibbonAdapter.jsx";
|
||||||
|
import SearchDefinitionTab from "../widgets/ribbon/SearchDefinitionTab.jsx";
|
||||||
|
import SearchResult from "../widgets/search_result.jsx";
|
||||||
|
|
||||||
const MOBILE_CSS = `
|
const MOBILE_CSS = `
|
||||||
<style>
|
<style>
|
||||||
@@ -155,6 +158,8 @@ export default class MobileLayout {
|
|||||||
.contentSized()
|
.contentSized()
|
||||||
.child(new NoteDetailWidget())
|
.child(new NoteDetailWidget())
|
||||||
.child(<NoteList media="screen" />)
|
.child(<NoteList media="screen" />)
|
||||||
|
.child(<StandaloneRibbonAdapter component={SearchDefinitionTab} />)
|
||||||
|
.child(<SearchResult />)
|
||||||
.child(<FilePropertiesWrapper />)
|
.child(<FilePropertiesWrapper />)
|
||||||
)
|
)
|
||||||
.child(<MobileEditorToolbar />)
|
.child(<MobileEditorToolbar />)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import options from "./options.js";
|
import options from "./options.js";
|
||||||
import Split from "split.js"
|
import Split from "@triliumnext/split.js";
|
||||||
|
|
||||||
export const DEFAULT_GUTTER_SIZE = 5;
|
export const DEFAULT_GUTTER_SIZE = 5;
|
||||||
|
|
||||||
@@ -46,6 +46,7 @@ function setupLeftPaneResizer(leftPaneVisible: boolean) {
|
|||||||
sizes: [leftPaneWidth, restPaneWidth],
|
sizes: [leftPaneWidth, restPaneWidth],
|
||||||
gutterSize: DEFAULT_GUTTER_SIZE,
|
gutterSize: DEFAULT_GUTTER_SIZE,
|
||||||
minSize: [150, 300],
|
minSize: [150, 300],
|
||||||
|
rtl: glob.isRtl,
|
||||||
onDragEnd: (sizes) => {
|
onDragEnd: (sizes) => {
|
||||||
leftPaneWidth = Math.round(sizes[0]);
|
leftPaneWidth = Math.round(sizes[0]);
|
||||||
options.save("leftPaneWidth", Math.round(sizes[0]));
|
options.save("leftPaneWidth", Math.round(sizes[0]));
|
||||||
@@ -79,6 +80,7 @@ function setupRightPaneResizer() {
|
|||||||
sizes: [100 - rightPaneWidth, rightPaneWidth],
|
sizes: [100 - rightPaneWidth, rightPaneWidth],
|
||||||
gutterSize: DEFAULT_GUTTER_SIZE,
|
gutterSize: DEFAULT_GUTTER_SIZE,
|
||||||
minSize: [300, 180],
|
minSize: [300, 180],
|
||||||
|
rtl: glob.isRtl,
|
||||||
onDragEnd: (sizes) => {
|
onDragEnd: (sizes) => {
|
||||||
rightPaneWidth = Math.round(sizes[1]);
|
rightPaneWidth = Math.round(sizes[1]);
|
||||||
options.save("rightPaneWidth", Math.round(sizes[1]));
|
options.save("rightPaneWidth", Math.round(sizes[1]));
|
||||||
@@ -99,7 +101,7 @@ function setupNoteSplitResizer(ntxIds: string[]) {
|
|||||||
let targetNtxIds: string[] | undefined;
|
let targetNtxIds: string[] | undefined;
|
||||||
for (const ntxId of ntxIds) {
|
for (const ntxId of ntxIds) {
|
||||||
targetNtxIds = findKeyByNtxId(ntxId);
|
targetNtxIds = findKeyByNtxId(ntxId);
|
||||||
if (targetNtxIds) break;
|
if (targetNtxIds) break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (targetNtxIds) {
|
if (targetNtxIds) {
|
||||||
@@ -154,6 +156,7 @@ function createSplitInstance(targetNtxIds: string[]) {
|
|||||||
const splitPanels = [...splitNoteContainer.querySelectorAll<HTMLElement>(':scope > .note-split')]
|
const splitPanels = [...splitNoteContainer.querySelectorAll<HTMLElement>(':scope > .note-split')]
|
||||||
.filter(el => targetNtxIds.includes(el.getAttribute('data-ntx-id') ?? ""));
|
.filter(el => targetNtxIds.includes(el.getAttribute('data-ntx-id') ?? ""));
|
||||||
const splitInstance = Split(splitPanels, {
|
const splitInstance = Split(splitPanels, {
|
||||||
|
rtl: glob.isRtl,
|
||||||
gutterSize: DEFAULT_GUTTER_SIZE,
|
gutterSize: DEFAULT_GUTTER_SIZE,
|
||||||
minSize: 150,
|
minSize: 150,
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -4,9 +4,6 @@ import froca from "./froca.js";
|
|||||||
import hoistedNoteService from "./hoisted_note.js";
|
import hoistedNoteService from "./hoisted_note.js";
|
||||||
import appContext from "../components/app_context.js";
|
import appContext from "../components/app_context.js";
|
||||||
|
|
||||||
/**
|
|
||||||
* @returns {string|null}
|
|
||||||
*/
|
|
||||||
async function resolveNotePath(notePath: string, hoistedNoteId = "root") {
|
async function resolveNotePath(notePath: string, hoistedNoteId = "root") {
|
||||||
const runPath = await resolveNotePathToSegments(notePath, hoistedNoteId);
|
const runPath = await resolveNotePathToSegments(notePath, hoistedNoteId);
|
||||||
|
|
||||||
|
|||||||
@@ -2432,4 +2432,8 @@ iframe.print-iframe {
|
|||||||
bottom: 0;
|
bottom: 0;
|
||||||
width: 0;
|
width: 0;
|
||||||
height: 0;
|
height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.excalidraw.theme--dark canvas {
|
||||||
|
--theme-filter: invert(100%) hue-rotate(180deg);
|
||||||
}
|
}
|
||||||
@@ -86,6 +86,13 @@ body ::-webkit-calendar-picker-indicator {
|
|||||||
--custom-color: var(--dark-theme-custom-color);
|
--custom-color: var(--dark-theme-custom-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:root .reference-link,
|
||||||
|
:root .reference-link:hover,
|
||||||
|
.ck-content a.reference-link > span,
|
||||||
|
.board-note {
|
||||||
|
color: var(--dark-theme-custom-color, inherit);
|
||||||
|
}
|
||||||
|
|
||||||
.excalidraw.theme--dark {
|
.excalidraw.theme--dark {
|
||||||
--theme-filter: invert(80%) hue-rotate(180deg) !important;
|
--theme-filter: invert(80%) hue-rotate(180deg) !important;
|
||||||
}
|
}
|
||||||
@@ -101,3 +108,4 @@ body .todo-list input[type="checkbox"]:not(:checked):before {
|
|||||||
.ck-content pre {
|
.ck-content pre {
|
||||||
box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.6) !important;
|
box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.6) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -84,4 +84,11 @@ html {
|
|||||||
|
|
||||||
#left-pane .fancytree-node.tinted {
|
#left-pane .fancytree-node.tinted {
|
||||||
--custom-color: var(--light-theme-custom-color);
|
--custom-color: var(--light-theme-custom-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
:root .reference-link,
|
||||||
|
:root .reference-link:hover,
|
||||||
|
.ck-content a.reference-link > span,
|
||||||
|
.board-note {
|
||||||
|
color: var(--light-theme-custom-color, inherit);
|
||||||
}
|
}
|
||||||
@@ -166,6 +166,9 @@
|
|||||||
--protected-session-active-icon-color: #8edd8e;
|
--protected-session-active-icon-color: #8edd8e;
|
||||||
--sync-status-error-pulse-color: #f47871;
|
--sync-status-error-pulse-color: #f47871;
|
||||||
|
|
||||||
|
--center-pane-vert-layout-background-color-bgfx: #0c0c0c69;
|
||||||
|
--center-pane-horiz-layout-background-color-bgfx: #1e1e1ec7;
|
||||||
|
|
||||||
--right-pane-heading-color: gray;
|
--right-pane-heading-color: gray;
|
||||||
|
|
||||||
--root-background: var(--left-pane-background-color);
|
--root-background: var(--left-pane-background-color);
|
||||||
@@ -192,9 +195,9 @@
|
|||||||
--badge-background-color: #ffffff1a;
|
--badge-background-color: #ffffff1a;
|
||||||
--badge-text-color: var(--muted-text-color);
|
--badge-text-color: var(--muted-text-color);
|
||||||
|
|
||||||
--promoted-attribute-card-background-color: var(--card-background-color);
|
--promoted-attribute-card-background-color: #ffffff21;
|
||||||
--promoted-attribute-card-shadow-color: #000000b3;
|
--promoted-attribute-card-shadow: none;
|
||||||
|
|
||||||
--floating-button-shadow-color: #00000080;
|
--floating-button-shadow-color: #00000080;
|
||||||
--floating-button-background-color: #494949d2;
|
--floating-button-background-color: #494949d2;
|
||||||
--floating-button-color: var(--button-text-color);
|
--floating-button-color: var(--button-text-color);
|
||||||
@@ -227,8 +230,8 @@
|
|||||||
--card-background-color: #ffffff12;
|
--card-background-color: #ffffff12;
|
||||||
--card-background-hover-color: #3c3c3c;
|
--card-background-hover-color: #3c3c3c;
|
||||||
--card-background-press-color: #464646;
|
--card-background-press-color: #464646;
|
||||||
--card-border-color: #222222;
|
--card-border-color: transparent;
|
||||||
--card-box-shadow: 0 0 12px rgba(0, 0, 0, 0.15);
|
--card-box-shadow: none;
|
||||||
|
|
||||||
--calendar-color: var(--menu-text-color);
|
--calendar-color: var(--menu-text-color);
|
||||||
--calendar-weekday-labels-color: var(--muted-text-color);
|
--calendar-weekday-labels-color: var(--muted-text-color);
|
||||||
@@ -277,6 +280,13 @@
|
|||||||
--custom-bg-color: hsl(var(--custom-color-hue), 20%, 33%, 0.4);
|
--custom-bg-color: hsl(var(--custom-color-hue), 20%, 33%, 0.4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:root .reference-link,
|
||||||
|
:root .reference-link:hover,
|
||||||
|
.ck-content a.reference-link > span,
|
||||||
|
.board-note {
|
||||||
|
color: var(--dark-theme-custom-color, inherit);
|
||||||
|
}
|
||||||
|
|
||||||
body ::-webkit-calendar-picker-indicator {
|
body ::-webkit-calendar-picker-indicator {
|
||||||
filter: invert(1);
|
filter: invert(1);
|
||||||
}
|
}
|
||||||
@@ -287,4 +297,10 @@ body ::-webkit-calendar-picker-indicator {
|
|||||||
|
|
||||||
body .todo-list input[type="checkbox"]:not(:checked):before {
|
body .todo-list input[type="checkbox"]:not(:checked):before {
|
||||||
border-color: var(--muted-text-color) !important;
|
border-color: var(--muted-text-color) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tinted-quick-edit-dialog {
|
||||||
|
--modal-background-color: hsl(var(--custom-color-hue), 8.8%, 11.2%);
|
||||||
|
--modal-border-color: hsl(var(--custom-color-hue), 9.4%, 25.1%);
|
||||||
|
--promoted-attribute-card-background-color: hsl(var(--custom-color-hue), 13.2%, 20.8%);
|
||||||
}
|
}
|
||||||
@@ -159,6 +159,9 @@
|
|||||||
--protected-session-active-icon-color: #16b516;
|
--protected-session-active-icon-color: #16b516;
|
||||||
--sync-status-error-pulse-color: #ff5528;
|
--sync-status-error-pulse-color: #ff5528;
|
||||||
|
|
||||||
|
--center-pane-vert-layout-background-color-bgfx: #ffffff75;
|
||||||
|
--center-pane-horiz-layout-background-color-bgfx: #ffffffd6;
|
||||||
|
|
||||||
--right-pane-heading-color: gray;
|
--right-pane-heading-color: gray;
|
||||||
|
|
||||||
--root-background: var(--left-pane-background-color);
|
--root-background: var(--left-pane-background-color);
|
||||||
@@ -185,8 +188,8 @@
|
|||||||
--badge-background-color: #00000011;
|
--badge-background-color: #00000011;
|
||||||
--badge-text-color: var(--muted-text-color);
|
--badge-text-color: var(--muted-text-color);
|
||||||
|
|
||||||
--promoted-attribute-card-background-color: var(--card-background-color);
|
--promoted-attribute-card-background-color: #00000014;
|
||||||
--promoted-attribute-card-shadow-color: #00000033;
|
--promoted-attribute-card-shadow: none;
|
||||||
|
|
||||||
--floating-button-shadow-color: #00000042;
|
--floating-button-shadow-color: #00000042;
|
||||||
--floating-button-background-color: #eaeaeacc;
|
--floating-button-background-color: #eaeaeacc;
|
||||||
@@ -223,12 +226,12 @@
|
|||||||
|
|
||||||
--code-block-box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.1), 0px 0px 2px rgba(0, 0, 0, 0.2);
|
--code-block-box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.1), 0px 0px 2px rgba(0, 0, 0, 0.2);
|
||||||
|
|
||||||
--card-background-color: var(--accented-background-color);
|
--card-background-color: #0000000d;
|
||||||
--card-background-hover-color: #f9f9f9;
|
--card-background-hover-color: #f9f9f9;
|
||||||
--card-background-press-color: #efefef;
|
--card-background-press-color: #efefef;
|
||||||
--card-border-color: #eaeaea;
|
--card-border-color: transparent;
|
||||||
--card-shadow-color: rgba(0, 0, 0, 0.1);
|
--card-shadow-color: rgba(0, 0, 0, 0.1);
|
||||||
--card-box-shadow: 0 0 12px var(--card-shadow-color);
|
--card-box-shadow: none;
|
||||||
|
|
||||||
--calendar-color: var(--menu-text-color);
|
--calendar-color: var(--menu-text-color);
|
||||||
--calendar-weekday-labels-color: var(--muted-text-color);
|
--calendar-weekday-labels-color: var(--muted-text-color);
|
||||||
@@ -270,4 +273,10 @@
|
|||||||
* The --custom-color-hue variable contains the hue of the user-selected note color.
|
* The --custom-color-hue variable contains the hue of the user-selected note color.
|
||||||
* This value is unset for gray tones. */
|
* This value is unset for gray tones. */
|
||||||
--custom-bg-color: hsl(var(--custom-color-hue), 37%, 89%, 1);
|
--custom-bg-color: hsl(var(--custom-color-hue), 37%, 89%, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.tinted-quick-edit-dialog {
|
||||||
|
--modal-background-color: hsl(var(--custom-color-hue), 56%, 96%);
|
||||||
|
--modal-border-color: hsl(var(--custom-color-hue), 33%, 41%);
|
||||||
|
--promoted-attribute-card-background-color: hsl(var(--custom-color-hue), 40%, 88%);
|
||||||
}
|
}
|
||||||
@@ -392,7 +392,8 @@ div.tn-tool-dialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.delete-notes-list .note-path {
|
.delete-notes-list .note-path {
|
||||||
padding-inline-end: 8px;
|
padding-inline-start: 8px;
|
||||||
|
color: var(--muted-text-color)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -666,4 +666,17 @@ html .note-detail-editable-text :not(figure, .include-note, hr):first-child {
|
|||||||
.ck-content .table > figcaption {
|
.ck-content .table > figcaption {
|
||||||
background: var(--accented-background-color);
|
background: var(--accented-background-color);
|
||||||
color: var(--main-text-color);
|
color: var(--main-text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Reference link */
|
||||||
|
|
||||||
|
.ck-content a.reference-link,
|
||||||
|
.ck-content a.reference-link:hover {
|
||||||
|
/* Apply underline only to the span inside the link so it can follow the
|
||||||
|
* target note's user defined color */
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ck-content a.reference-link > span {
|
||||||
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
@@ -63,7 +63,7 @@
|
|||||||
|
|
||||||
/* Button bar */
|
/* Button bar */
|
||||||
.search-definition-widget .search-setting-table tbody:last-child div {
|
.search-definition-widget .search-setting-table tbody:last-child div {
|
||||||
justify-content: flex-end !important;
|
justify-content: flex-end;
|
||||||
gap: 8px;
|
gap: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -148,7 +148,7 @@ div.note-detail-empty {
|
|||||||
--options-card-min-width: 500px;
|
--options-card-min-width: 500px;
|
||||||
--options-card-max-width: 900px;
|
--options-card-max-width: 900px;
|
||||||
--options-card-padding: 17px;
|
--options-card-padding: 17px;
|
||||||
--options-title-font-size: 1rem;
|
--options-title-font-size: .75rem;
|
||||||
--options-title-offset: 13px;
|
--options-title-offset: 13px;
|
||||||
}
|
}
|
||||||
/* Create a gap at the top of the option pages */
|
/* Create a gap at the top of the option pages */
|
||||||
@@ -173,8 +173,7 @@ div.note-detail-empty {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.options-section:not(.tn-no-card) {
|
.options-section:not(.tn-no-card) {
|
||||||
margin: auto;
|
border-radius: 8px;
|
||||||
border-radius: 12px;
|
|
||||||
border: 1px solid var(--card-border-color) !important;
|
border: 1px solid var(--card-border-color) !important;
|
||||||
box-shadow: var(--card-box-shadow);
|
box-shadow: var(--card-box-shadow);
|
||||||
background: var(--card-background-color);
|
background: var(--card-background-color);
|
||||||
@@ -182,7 +181,7 @@ div.note-detail-empty {
|
|||||||
margin-bottom: calc(var(--options-title-offset) + 26px) !important;
|
margin-bottom: calc(var(--options-title-offset) + 26px) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
body.desktop .option-section:not(.tn-no-card) {
|
body.desktop .options-section:not(.tn-no-card) {
|
||||||
min-width: var(--options-card-min-width);
|
min-width: var(--options-card-min-width);
|
||||||
max-width: var(--options-card-max-width);
|
max-width: var(--options-card-max-width);
|
||||||
}
|
}
|
||||||
@@ -193,9 +192,16 @@ body.desktop .option-section:not(.tn-no-card) {
|
|||||||
padding-bottom: var(--default-padding);
|
padding-bottom: var(--default-padding);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.options-section:not(.tn-no-card) h4,
|
||||||
|
.options-section:not(.tn-no-card) h5 {
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: .4pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.options-section:not(.tn-no-card) h4 {
|
.options-section:not(.tn-no-card) h4 {
|
||||||
font-size: var(--options-title-font-size);
|
font-size: var(--options-title-font-size);
|
||||||
font-weight: bold;
|
font-weight: 600;
|
||||||
color: var(--launcher-pane-text-color);
|
color: var(--launcher-pane-text-color);
|
||||||
margin-top: calc(-1 * var(--options-card-padding) - var(--options-title-font-size) - var(--options-title-offset)) !important;
|
margin-top: calc(-1 * var(--options-card-padding) - var(--options-title-font-size) - var(--options-title-offset)) !important;
|
||||||
margin-bottom: calc(var(--options-title-offset) + var(--options-card-padding)) !important;
|
margin-bottom: calc(var(--options-title-offset) + var(--options-card-padding)) !important;
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
div.promoted-attributes-container {
|
div.promoted-attributes-container {
|
||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
|
margin-inline-start: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--dropdown-backdrop-filter: blur(10px) saturate(6);
|
--dropdown-backdrop-filter: blur(20px) saturate(6);
|
||||||
--dropdown-border-radius: 10px;
|
--dropdown-border-radius: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,13 +43,19 @@ body.background-effects.platform-win32 {
|
|||||||
--tab-background-color: var(--window-background-color-bgfx);
|
--tab-background-color: var(--window-background-color-bgfx);
|
||||||
--new-tab-button-background: var(--window-background-color-bgfx);
|
--new-tab-button-background: var(--window-background-color-bgfx);
|
||||||
--active-tab-background-color: var(--launcher-pane-horiz-background-color);
|
--active-tab-background-color: var(--launcher-pane-horiz-background-color);
|
||||||
|
--root-background: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
body.background-effects.platform-win32.layout-vertical {
|
body.background-effects.platform-win32.layout-vertical {
|
||||||
--left-pane-background-color: var(--window-background-color-bgfx);
|
--left-pane-background-color: var(--window-background-color-bgfx);
|
||||||
|
--center-pane-background-color-bgfx: var(--center-pane-vert-layout-background-color-bgfx);
|
||||||
--background-material: mica;
|
--background-material: mica;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body.background-effects.platform-win32.layout-horizontal {
|
||||||
|
--center-pane-background-color-bgfx: var(--center-pane-horiz-layout-background-color-bgfx);
|
||||||
|
}
|
||||||
|
|
||||||
body.background-effects.platform-win32,
|
body.background-effects.platform-win32,
|
||||||
body.background-effects.platform-win32 #root-widget {
|
body.background-effects.platform-win32 #root-widget {
|
||||||
background: var(--window-background-color-bgfx) !important;
|
background: var(--window-background-color-bgfx) !important;
|
||||||
@@ -59,6 +65,12 @@ body.background-effects.platform-win32.layout-horizontal #horizontal-main-contai
|
|||||||
body.background-effects.platform-win32.layout-vertical #vertical-main-container {
|
body.background-effects.platform-win32.layout-vertical #vertical-main-container {
|
||||||
background-color: var(--root-background);
|
background-color: var(--root-background);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Settings page */
|
||||||
|
body.background-effects.platform-win32 #center-pane .note-split.options {
|
||||||
|
--note-split-background-color: var(--center-pane-background-color-bgfx);
|
||||||
|
}
|
||||||
|
|
||||||
/* #endregion */
|
/* #endregion */
|
||||||
|
|
||||||
/* Matches when the left pane is collapsed */
|
/* Matches when the left pane is collapsed */
|
||||||
@@ -1171,21 +1183,19 @@ body.layout-vertical .tab-row-widget-is-sorting .note-tab.note-tab-is-dragging .
|
|||||||
* CENTER PANE
|
* CENTER PANE
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#center-pane {
|
/* The first visible note split */
|
||||||
background: var(--main-background-color);
|
.vertical-layout #center-pane .note-split:not(.visible ~ .visible) {
|
||||||
}
|
|
||||||
|
|
||||||
.vertical-layout #center-pane {
|
|
||||||
border-radius: var(--center-pane-border-radius) 0 0 0;
|
border-radius: var(--center-pane-border-radius) 0 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.note-split {
|
#center-pane .note-split {
|
||||||
padding-top: 2px;
|
padding-top: 2px;
|
||||||
|
background-color: var(--note-split-background-color, var(--main-background-color));
|
||||||
animation: note-entrance 100ms linear;
|
animation: note-entrance 100ms linear;
|
||||||
/* will-change: opacity; -- causes some weird artifacts to the note menu in split view */
|
/* will-change: opacity; -- causes some weird artifacts to the note menu in split view */
|
||||||
}
|
}
|
||||||
|
|
||||||
.split-note-container-widget > .gutter {
|
#center-pane .split-note-container-widget > .gutter {
|
||||||
background: var(--root-background) !important;
|
background: var(--root-background) !important;
|
||||||
transition: background 150ms ease-out;
|
transition: background 150ms ease-out;
|
||||||
}
|
}
|
||||||
@@ -1328,8 +1338,7 @@ div.promoted-attribute-cell {
|
|||||||
--pa-card-padding-inline-end: 2px;
|
--pa-card-padding-inline-end: 2px;
|
||||||
--input-background-color: transparent;
|
--input-background-color: transparent;
|
||||||
|
|
||||||
box-shadow: 1px 1px 2px var(--promoted-attribute-card-shadow-color);
|
box-shadow: var(--promoted-attribute-card-shadow);
|
||||||
|
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
|
|||||||
@@ -12,6 +12,9 @@
|
|||||||
"toast": {
|
"toast": {
|
||||||
"critical-error": {
|
"critical-error": {
|
||||||
"title": "خطأ فادح"
|
"title": "خطأ فادح"
|
||||||
|
},
|
||||||
|
"widget-error": {
|
||||||
|
"title": "فشل في البدء بعنصر الواجهة"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"add_link": {
|
"add_link": {
|
||||||
@@ -26,7 +29,8 @@
|
|||||||
"edit_branch_prefix": "تعديل بادئة الفرع",
|
"edit_branch_prefix": "تعديل بادئة الفرع",
|
||||||
"prefix": "البادئة: ",
|
"prefix": "البادئة: ",
|
||||||
"save": "حفظ",
|
"save": "حفظ",
|
||||||
"help_on_tree_prefix": "مساعدة حول بادئة الشجرة"
|
"help_on_tree_prefix": "مساعدة حول بادئة الشجرة",
|
||||||
|
"branch_prefix_saved": "تم حفظ بادئة الفرع."
|
||||||
},
|
},
|
||||||
"bulk_actions": {
|
"bulk_actions": {
|
||||||
"bulk_actions": "اجراءات جماعية",
|
"bulk_actions": "اجراءات جماعية",
|
||||||
@@ -83,7 +87,8 @@
|
|||||||
"workspace_calendar_root": "تحديد جذر التقويم لكل مساحة عمل",
|
"workspace_calendar_root": "تحديد جذر التقويم لكل مساحة عمل",
|
||||||
"hide_highlight_widget": "اخفاء عنصر واجهة قائمة التمييزات",
|
"hide_highlight_widget": "اخفاء عنصر واجهة قائمة التمييزات",
|
||||||
"is_owned_by_note": "تخص الملاحظة",
|
"is_owned_by_note": "تخص الملاحظة",
|
||||||
"and_more": "... و {{count}}مرات اكثر."
|
"and_more": "... و {{count}}مرات اكثر.",
|
||||||
|
"related_notes_title": "ملاحظات اخرى بنفس التسمية"
|
||||||
},
|
},
|
||||||
"rename_label": {
|
"rename_label": {
|
||||||
"to": "الى",
|
"to": "الى",
|
||||||
@@ -127,7 +132,9 @@
|
|||||||
"delete_attachment": "حذف المرفق",
|
"delete_attachment": "حذف المرفق",
|
||||||
"upload_new_revision": "رفع مراجعة جديدة",
|
"upload_new_revision": "رفع مراجعة جديدة",
|
||||||
"copy_link_to_clipboard": "نسخ الرابط الى الحافظة",
|
"copy_link_to_clipboard": "نسخ الرابط الى الحافظة",
|
||||||
"convert_attachment_into_note": "تحويل المرفق الى ملاحظة"
|
"convert_attachment_into_note": "تحويل المرفق الى ملاحظة",
|
||||||
|
"delete_success": "تم حذف المرفق \"{{title}}\" .",
|
||||||
|
"enter_new_name": "ادخل اسم مرفق جديد"
|
||||||
},
|
},
|
||||||
"calendar": {
|
"calendar": {
|
||||||
"week": "أسبوع",
|
"week": "أسبوع",
|
||||||
@@ -259,7 +266,8 @@
|
|||||||
"note_paths": {
|
"note_paths": {
|
||||||
"search": "بحث",
|
"search": "بحث",
|
||||||
"archived": "مؤرشف",
|
"archived": "مؤرشف",
|
||||||
"title": "مسارات الملاحظة"
|
"title": "مسارات الملاحظة",
|
||||||
|
"clone_button": "جار نسخ الملاحظة الى مكان جديد..."
|
||||||
},
|
},
|
||||||
"script_executor": {
|
"script_executor": {
|
||||||
"query": "استعلام",
|
"query": "استعلام",
|
||||||
@@ -372,7 +380,8 @@
|
|||||||
"export_note_title": "تصدير الملاحظة",
|
"export_note_title": "تصدير الملاحظة",
|
||||||
"export_status": "حالة التصدير",
|
"export_status": "حالة التصدير",
|
||||||
"export_finished_successfully": "اكتمل التصدير بنجاح.",
|
"export_finished_successfully": "اكتمل التصدير بنجاح.",
|
||||||
"export_in_progress": "جار التصدير: {{progressCount}}"
|
"export_in_progress": "جار التصدير: {{progressCount}}",
|
||||||
|
"choose_export_type": "اختر نوع التصدير اولا من فضلك"
|
||||||
},
|
},
|
||||||
"help": {
|
"help": {
|
||||||
"troubleshooting": "أستكشاف الاخطاء واصلاحها",
|
"troubleshooting": "أستكشاف الاخطاء واصلاحها",
|
||||||
@@ -402,7 +411,10 @@
|
|||||||
"movingCloningNotes": "نقل/ استنساخ الملاحظات",
|
"movingCloningNotes": "نقل/ استنساخ الملاحظات",
|
||||||
"deleteNotes": "حذف الملاحظة/ الشجرة الفرعية",
|
"deleteNotes": "حذف الملاحظة/ الشجرة الفرعية",
|
||||||
"collapseWholeTree": "طي شجرة الملاحظة باكملها",
|
"collapseWholeTree": "طي شجرة الملاحظة باكملها",
|
||||||
"followLink": "اتبع تلرابط تحت المؤشر"
|
"followLink": "اتبع تلرابط تحت المؤشر",
|
||||||
|
"onlyInDesktop": "في سطح المكتب فقط(Electron build)",
|
||||||
|
"createEditLink": "انشاء/ تحرير رابط خارجي",
|
||||||
|
"quickSearch": "الانتقال الى مربع البحث السريع"
|
||||||
},
|
},
|
||||||
"import": {
|
"import": {
|
||||||
"options": "خيارات",
|
"options": "خيارات",
|
||||||
@@ -465,7 +477,13 @@
|
|||||||
"delete_all_button": "حذف كل المراجعات",
|
"delete_all_button": "حذف كل المراجعات",
|
||||||
"settings": "اعدادات مراجعة الملاحظة",
|
"settings": "اعدادات مراجعة الملاحظة",
|
||||||
"diff_not_available": "المقارنة غير متوفرة.",
|
"diff_not_available": "المقارنة غير متوفرة.",
|
||||||
"help_title": "مساعدة حول مراجعات الملاحظة"
|
"help_title": "مساعدة حول مراجعات الملاحظة",
|
||||||
|
"diff_off_hint": "انقر لعرض محتويات الملاحظة",
|
||||||
|
"revisions_deleted": "تم حذف جميع نسخ المراجعات للملاحظة.",
|
||||||
|
"revision_restored": "تم استعادة نسخ المراجعة للملاحظة.",
|
||||||
|
"revision_deleted": "تم حذف مراجعة الملاحظة.",
|
||||||
|
"snapshot_interval": "فاصل زمني لحفظ لقطات اصدارات المراجعة: {{seconds}}",
|
||||||
|
"maximum_revisions": "حد عدد لقطات اصدارات الملاحظة: {{number}}"
|
||||||
},
|
},
|
||||||
"sort_child_notes": {
|
"sort_child_notes": {
|
||||||
"title": "عنوان",
|
"title": "عنوان",
|
||||||
@@ -479,13 +497,15 @@
|
|||||||
"sorting_direction": "اتجاه الترتيب",
|
"sorting_direction": "اتجاه الترتيب",
|
||||||
"natural_sort": "الترتيب الطبيعي",
|
"natural_sort": "الترتيب الطبيعي",
|
||||||
"natural_sort_language": "لغات الترتيب الطبيعي",
|
"natural_sort_language": "لغات الترتيب الطبيعي",
|
||||||
"sort_children_by": "ترتيب العناصر الفرعية حسب..."
|
"sort_children_by": "ترتيب العناصر الفرعية حسب...",
|
||||||
|
"sort_folders_at_top": "ترتيب المجلدات في الاعلى"
|
||||||
},
|
},
|
||||||
"recent_changes": {
|
"recent_changes": {
|
||||||
"undelete_link": "الغاء الحذف",
|
"undelete_link": "الغاء الحذف",
|
||||||
"title": "التغيرات الاخيرة",
|
"title": "التغيرات الاخيرة",
|
||||||
"no_changes_message": "لايوجد تغيير لحد الان...",
|
"no_changes_message": "لايوجد تغيير لحد الان...",
|
||||||
"erase_notes_button": "مسح الملاحظات المحذوفة الان"
|
"erase_notes_button": "مسح الملاحظات المحذوفة الان",
|
||||||
|
"deleted_notes_message": "تم حذف الملاحظات نهائيا."
|
||||||
},
|
},
|
||||||
"edited_notes": {
|
"edited_notes": {
|
||||||
"deleted": "(حذف)",
|
"deleted": "(حذف)",
|
||||||
@@ -655,7 +675,11 @@
|
|||||||
"google": "جوجل",
|
"google": "جوجل",
|
||||||
"save_button": "حفظ",
|
"save_button": "حفظ",
|
||||||
"baidu": "Baidu",
|
"baidu": "Baidu",
|
||||||
"title": "محرك البحث"
|
"title": "محرك البحث",
|
||||||
|
"predefined_templates_label": "قوالب محرك البحث المعرفة مسبقا",
|
||||||
|
"custom_name_label": "اسم محرك البحث المخصص",
|
||||||
|
"custom_name_placeholder": "اسم محرك البحث المخصص",
|
||||||
|
"custom_url_placeholder": "تخصيص عنوان URL لمحرك البحث"
|
||||||
},
|
},
|
||||||
"heading_style": {
|
"heading_style": {
|
||||||
"plain": "بسيط",
|
"plain": "بسيط",
|
||||||
@@ -676,7 +700,8 @@
|
|||||||
"wednesday": "الاربعاء",
|
"wednesday": "الاربعاء",
|
||||||
"thursday": "الخميس",
|
"thursday": "الخميس",
|
||||||
"friday": "الجمعة",
|
"friday": "الجمعة",
|
||||||
"saturday": "السبت"
|
"saturday": "السبت",
|
||||||
|
"formatting-locale": "تنسيق التاريخ والارقام"
|
||||||
},
|
},
|
||||||
"backup": {
|
"backup": {
|
||||||
"path": "مسار",
|
"path": "مسار",
|
||||||
@@ -699,7 +724,10 @@
|
|||||||
"token_name": "اسم الرمز",
|
"token_name": "اسم الرمز",
|
||||||
"default_token_name": "رمز جديد",
|
"default_token_name": "رمز جديد",
|
||||||
"rename_token_title": "اعادة تسمية الرمز",
|
"rename_token_title": "اعادة تسمية الرمز",
|
||||||
"rename_token": "اعادة تسمية هذا الرمز"
|
"rename_token": "اعادة تسمية هذا الرمز",
|
||||||
|
"create_token": "انشاء رمز PEAPI جديد",
|
||||||
|
"new_token_title": "رمز ETAPI جديد",
|
||||||
|
"token_created_title": "انشاء رمز ETAPI"
|
||||||
},
|
},
|
||||||
"password": {
|
"password": {
|
||||||
"heading": "كلمة المرور",
|
"heading": "كلمة المرور",
|
||||||
@@ -731,7 +759,8 @@
|
|||||||
"timeout": "انتهاء مهلة المزامنة",
|
"timeout": "انتهاء مهلة المزامنة",
|
||||||
"test_title": "اختبار المزامنة",
|
"test_title": "اختبار المزامنة",
|
||||||
"test_button": "اختبار المزامنة",
|
"test_button": "اختبار المزامنة",
|
||||||
"server_address": "عنوان نسخة الخادم"
|
"server_address": "عنوان نسخة الخادم",
|
||||||
|
"proxy_label": "خادم وكيل المزامنة (اخياري)"
|
||||||
},
|
},
|
||||||
"api_log": {
|
"api_log": {
|
||||||
"close": "أغلاق"
|
"close": "أغلاق"
|
||||||
@@ -751,7 +780,8 @@
|
|||||||
"new_tab": "تبويب جديد",
|
"new_tab": "تبويب جديد",
|
||||||
"close_all_tabs": "اغلاق كل علامات التبويب",
|
"close_all_tabs": "اغلاق كل علامات التبويب",
|
||||||
"add_new_tab": "اضافة علامة تبويب جديدة",
|
"add_new_tab": "اضافة علامة تبويب جديدة",
|
||||||
"close_other_tabs": "اغلاق علامات التبويب الاخرى"
|
"close_other_tabs": "اغلاق علامات التبويب الاخرى",
|
||||||
|
"reopen_last_tab": "اعادة فتح اخر علامة تبويب مغلقة"
|
||||||
},
|
},
|
||||||
"toc": {
|
"toc": {
|
||||||
"options": "خيارات",
|
"options": "خيارات",
|
||||||
@@ -791,7 +821,8 @@
|
|||||||
},
|
},
|
||||||
"call_to_action": {
|
"call_to_action": {
|
||||||
"dismiss": "تجاهل",
|
"dismiss": "تجاهل",
|
||||||
"background_effects_button": "تفعيل مؤثرات الخلفية"
|
"background_effects_button": "تفعيل مؤثرات الخلفية",
|
||||||
|
"next_theme_button": "جرب النسق الجديد"
|
||||||
},
|
},
|
||||||
"units": {
|
"units": {
|
||||||
"percentage": "%"
|
"percentage": "%"
|
||||||
@@ -802,7 +833,8 @@
|
|||||||
"help_on_links": "مساعدة حول الارتباطات التشعبية",
|
"help_on_links": "مساعدة حول الارتباطات التشعبية",
|
||||||
"notes_to_clone": "ملاحظات للنسخ",
|
"notes_to_clone": "ملاحظات للنسخ",
|
||||||
"target_parent_note": "الملاحظة الاصلية الهدف",
|
"target_parent_note": "الملاحظة الاصلية الهدف",
|
||||||
"clone_to_selected_note": "استنساخ الى الملاحظة المحددة"
|
"clone_to_selected_note": "استنساخ الى الملاحظة المحددة",
|
||||||
|
"no_path_to_clone_to": "لايوجد مسار لنسخ المحتوى الية."
|
||||||
},
|
},
|
||||||
"table_of_contents": {
|
"table_of_contents": {
|
||||||
"unit": "عناوين",
|
"unit": "عناوين",
|
||||||
@@ -835,7 +867,8 @@
|
|||||||
"search-in-subtree": "البحث في الشجرة الفرعية",
|
"search-in-subtree": "البحث في الشجرة الفرعية",
|
||||||
"edit-branch-prefix": "تعديل بادئة الفرع",
|
"edit-branch-prefix": "تعديل بادئة الفرع",
|
||||||
"convert-to-attachment": "التحويل الى مرفق",
|
"convert-to-attachment": "التحويل الى مرفق",
|
||||||
"apply-bulk-actions": "تطبيق الاجراءات الجماعية"
|
"apply-bulk-actions": "تطبيق الاجراءات الجماعية",
|
||||||
|
"recent-changes-in-subtree": "التغييرات الاخيرة في الشجرة الفرعية"
|
||||||
},
|
},
|
||||||
"note_types": {
|
"note_types": {
|
||||||
"text": "نص",
|
"text": "نص",
|
||||||
@@ -884,7 +917,8 @@
|
|||||||
"quick-search": {
|
"quick-search": {
|
||||||
"searching": "جار البحث...",
|
"searching": "جار البحث...",
|
||||||
"placeholder": "البحث السريع",
|
"placeholder": "البحث السريع",
|
||||||
"no-results": "لم يتم العثور على نتائج"
|
"no-results": "لم يتم العثور على نتائج",
|
||||||
|
"show-in-full-search": "عرض في البحث الكامل"
|
||||||
},
|
},
|
||||||
"note_tree": {
|
"note_tree": {
|
||||||
"unhoist": "ارجاع الى الترتيب الطبيعي",
|
"unhoist": "ارجاع الى الترتيب الطبيعي",
|
||||||
@@ -893,7 +927,12 @@
|
|||||||
"collapse-title": "طي شجرة الملاحظة",
|
"collapse-title": "طي شجرة الملاحظة",
|
||||||
"hide-archived-notes": "اخفاء الملاحظات المؤرشفة",
|
"hide-archived-notes": "اخفاء الملاحظات المؤرشفة",
|
||||||
"automatically-collapse-notes": "طي الملاحظات تلقائيا",
|
"automatically-collapse-notes": "طي الملاحظات تلقائيا",
|
||||||
"create-child-note": "انشاء ملاحظة فرعية"
|
"create-child-note": "انشاء ملاحظة فرعية",
|
||||||
|
"scroll-active-title": "تمرير الى الملاحظة النشطة",
|
||||||
|
"save-changes": "حفظ وتطبيق التغييرات",
|
||||||
|
"saved-search-note-refreshed": "تم تحديث ملاحظة البحث المحفوظة.",
|
||||||
|
"hoist-this-note-workspace": "تثبيت هذه الملاحظة (مساحة العمل)",
|
||||||
|
"refresh-saved-search-results": "تحديث نتائج البحث المحفوظة"
|
||||||
},
|
},
|
||||||
"sql_table_schemas": {
|
"sql_table_schemas": {
|
||||||
"tables": "جداول"
|
"tables": "جداول"
|
||||||
@@ -901,7 +940,13 @@
|
|||||||
"launcher_context_menu": {
|
"launcher_context_menu": {
|
||||||
"reset": "اعادة ضبط",
|
"reset": "اعادة ضبط",
|
||||||
"add-spacer": "اضافة فاصل",
|
"add-spacer": "اضافة فاصل",
|
||||||
"delete": "حذف\n<kbd data-command=\"deleteNotes\">"
|
"delete": "حذف\n<kbd data-command=\"deleteNotes\">",
|
||||||
|
"add-note-launcher": "اضافة مشغل الملاحظة",
|
||||||
|
"add-script-launcher": "اضافة مشغل السكريبت",
|
||||||
|
"add-custom-widget": "اضافة عنصر واجهة مخصص",
|
||||||
|
"move-to-visible-launchers": "نقل الى المشغلات المرئية",
|
||||||
|
"move-to-available-launchers": "نقل الى المشغلات المتوفرة",
|
||||||
|
"duplicate-launcher": "تكرار المشغل <kbd data-command=\"duplicateSubtree\">"
|
||||||
},
|
},
|
||||||
"editable-text": {
|
"editable-text": {
|
||||||
"auto-detect-language": "تم اكتشافه تلقائيا"
|
"auto-detect-language": "تم اكتشافه تلقائيا"
|
||||||
@@ -927,7 +972,9 @@
|
|||||||
"cut": "قص",
|
"cut": "قص",
|
||||||
"copy": "نسخ",
|
"copy": "نسخ",
|
||||||
"paste": "لصق",
|
"paste": "لصق",
|
||||||
"copy-link": "نسخ الرابط"
|
"copy-link": "نسخ الرابط",
|
||||||
|
"add-term-to-dictionary": "اضافة \"{{term}}\" الى القاموس",
|
||||||
|
"paste-as-plain-text": "لصق كنص عادي"
|
||||||
},
|
},
|
||||||
"promoted_attributes": {
|
"promoted_attributes": {
|
||||||
"url_placeholder": "http://website...",
|
"url_placeholder": "http://website...",
|
||||||
@@ -977,7 +1024,11 @@
|
|||||||
"totp_secret_regenerate": "اعادة توليد TOTP السري",
|
"totp_secret_regenerate": "اعادة توليد TOTP السري",
|
||||||
"totp_secret_generated": "تم انشاء TOTP السري",
|
"totp_secret_generated": "تم انشاء TOTP السري",
|
||||||
"oauth_missing_vars": "اعدادات مفقودة: {{-variables}}",
|
"oauth_missing_vars": "اعدادات مفقودة: {{-variables}}",
|
||||||
"totp_secret_title": "توليد TOTP سري"
|
"totp_secret_title": "توليد TOTP سري",
|
||||||
|
"totp_title": "كلمة مرور لمرة واحدة معتمدة على الوقت (TOTP)",
|
||||||
|
"recovery_keys_title": "مفاتيح استرداد تسجيل الدخول الاحادي",
|
||||||
|
"recovery_keys_error": "حدث خطأ اثناء توليد رموز الاسترجاع",
|
||||||
|
"recovery_keys_no_key_set": "لاتوجد رموز استرجاع معينة"
|
||||||
},
|
},
|
||||||
"execute_script": {
|
"execute_script": {
|
||||||
"execute_script": "تنفيذ السكريبت"
|
"execute_script": "تنفيذ السكريبت"
|
||||||
@@ -1001,7 +1052,8 @@
|
|||||||
},
|
},
|
||||||
"delete_note": {
|
"delete_note": {
|
||||||
"delete_note": "حذف الملاحظة",
|
"delete_note": "حذف الملاحظة",
|
||||||
"delete_matched_notes": "حف الملاحظات المطابقة"
|
"delete_matched_notes": "حف الملاحظات المطابقة",
|
||||||
|
"delete_matched_notes_description": "سوف يؤدي هذا الى حذف الملاحظات المطابقة."
|
||||||
},
|
},
|
||||||
"rename_note": {
|
"rename_note": {
|
||||||
"rename_note": "اعادة تسمية الملاحظة",
|
"rename_note": "اعادة تسمية الملاحظة",
|
||||||
@@ -1119,7 +1171,12 @@
|
|||||||
"title": "اخفاء هوية البيانات",
|
"title": "اخفاء هوية البيانات",
|
||||||
"full_anonymization": "الاخفاء الكامل للهوية",
|
"full_anonymization": "الاخفاء الكامل للهوية",
|
||||||
"light_anonymization": "الاخفاء الجزئي للهوية",
|
"light_anonymization": "الاخفاء الجزئي للهوية",
|
||||||
"existing_anonymized_databases": "قواعد البيانات المجهولة الحالية"
|
"existing_anonymized_databases": "قواعد البيانات المجهولة الحالية",
|
||||||
|
"save_fully_anonymized_database": "حفظ قاعدة البيانات بعد اخفاء كل الهويات",
|
||||||
|
"save_lightly_anonymized_database": "حفظ قاعدةةبيانات مخفية جزئيا",
|
||||||
|
"creating_fully_anonymized_database": "انشاء قاعدة بيانات مجهولة بالكامل",
|
||||||
|
"creating_lightly_anonymized_database": "انشاء قاعدةة بيانات مجهولة جزئيا...",
|
||||||
|
"no_anonymized_database_yet": "لاتوجد قاعدة بيانات مجهولة بعد."
|
||||||
},
|
},
|
||||||
"vacuum_database": {
|
"vacuum_database": {
|
||||||
"title": "تحرير مساحة قاعدة البيانات",
|
"title": "تحرير مساحة قاعدة البيانات",
|
||||||
@@ -1146,7 +1203,8 @@
|
|||||||
"italic": "نص مائل",
|
"italic": "نص مائل",
|
||||||
"underline": "خط تحت النص",
|
"underline": "خط تحت النص",
|
||||||
"color": "نص ملون",
|
"color": "نص ملون",
|
||||||
"visibility_title": "اظهار قائمة التضليلات"
|
"visibility_title": "اظهار قائمة التضليلات",
|
||||||
|
"bg_color": "نص مع لون خلفية"
|
||||||
},
|
},
|
||||||
"revisions_button": {
|
"revisions_button": {
|
||||||
"note_revisions": "مراجعات الملاحظة"
|
"note_revisions": "مراجعات الملاحظة"
|
||||||
@@ -1163,7 +1221,8 @@
|
|||||||
"title": "التدقيق الاملائي",
|
"title": "التدقيق الاملائي",
|
||||||
"enable": "تفعيل التدقيق الاملائي",
|
"enable": "تفعيل التدقيق الاملائي",
|
||||||
"language_code_label": "رمز اللغة او رموز اللغات",
|
"language_code_label": "رمز اللغة او رموز اللغات",
|
||||||
"available_language_codes_label": "رموز اللغات المتاحة:"
|
"available_language_codes_label": "رموز اللغات المتاحة:",
|
||||||
|
"language_code_placeholder": "على سبيل المثال \"en-US\", \"de-AI\""
|
||||||
},
|
},
|
||||||
"note-map": {
|
"note-map": {
|
||||||
"button-link-map": "خريطة الروابط",
|
"button-link-map": "خريطة الروابط",
|
||||||
@@ -1177,7 +1236,9 @@
|
|||||||
},
|
},
|
||||||
"branches": {
|
"branches": {
|
||||||
"delete-status": "حالة الحذف",
|
"delete-status": "حالة الحذف",
|
||||||
"delete-finished-successfully": "تم الحذف بنجاح."
|
"delete-finished-successfully": "تم الحذف بنجاح.",
|
||||||
|
"cannot-move-notes-here": "لايمكن نقل الملاحظات الى هنا.",
|
||||||
|
"undeleting-notes-finished-successfully": "تم استرجاع الملاحظات بنجاح."
|
||||||
},
|
},
|
||||||
"highlighting": {
|
"highlighting": {
|
||||||
"title": "كتل الكود",
|
"title": "كتل الكود",
|
||||||
@@ -1199,14 +1260,16 @@
|
|||||||
"native-title-bar": "شريط العنوان الاصلي"
|
"native-title-bar": "شريط العنوان الاصلي"
|
||||||
},
|
},
|
||||||
"note_tooltip": {
|
"note_tooltip": {
|
||||||
"quick-edit": "التحرير السريع"
|
"quick-edit": "التحرير السريع",
|
||||||
|
"note-has-been-deleted": "تم حذف الملاحظة."
|
||||||
},
|
},
|
||||||
"geo-map-context": {
|
"geo-map-context": {
|
||||||
"open-location": "فتح الموقع",
|
"open-location": "فتح الموقع",
|
||||||
"remove-from-map": "ازالة من الخريطة"
|
"remove-from-map": "ازالة من الخريطة"
|
||||||
},
|
},
|
||||||
"share": {
|
"share": {
|
||||||
"title": "اعدادات المشاركة"
|
"title": "اعدادات المشاركة",
|
||||||
|
"check_share_root": "التحقق من حالة جذر المشاركة"
|
||||||
},
|
},
|
||||||
"note_language": {
|
"note_language": {
|
||||||
"not_set": "غير محدد",
|
"not_set": "غير محدد",
|
||||||
@@ -1251,7 +1314,8 @@
|
|||||||
"search_subtree_title": "بحث في الشجرة الفرعية",
|
"search_subtree_title": "بحث في الشجرة الفرعية",
|
||||||
"search_history_title": "عرص سجل البحث",
|
"search_history_title": "عرص سجل البحث",
|
||||||
"search_history_description": "عرض البحث السابق",
|
"search_history_description": "عرض البحث السابق",
|
||||||
"configure_launch_bar_title": "تكوين شريط الاطلاق"
|
"configure_launch_bar_title": "تكوين شريط الاطلاق",
|
||||||
|
"search_subtree_description": "البحث ضمن الشجرة الفرعية الحالية"
|
||||||
},
|
},
|
||||||
"content_renderer": {
|
"content_renderer": {
|
||||||
"open_externally": "فتح خارجيا"
|
"open_externally": "فتح خارجيا"
|
||||||
@@ -1272,7 +1336,8 @@
|
|||||||
"notes_to_move": "الملاحظات المراد نقلها",
|
"notes_to_move": "الملاحظات المراد نقلها",
|
||||||
"target_parent_note": "ملاحظة الاصل الهدف",
|
"target_parent_note": "ملاحظة الاصل الهدف",
|
||||||
"dialog_title": "انقل الملاحظات الى...",
|
"dialog_title": "انقل الملاحظات الى...",
|
||||||
"move_button": "نقل الىالملاحظة المحددة"
|
"move_button": "نقل الىالملاحظة المحددة",
|
||||||
|
"error_no_path": "لايوجد مسار لنقل العنصر الية."
|
||||||
},
|
},
|
||||||
"delete_revisions": {
|
"delete_revisions": {
|
||||||
"delete_note_revisions": "حذف مراجعات الملاحظة"
|
"delete_note_revisions": "حذف مراجعات الملاحظة"
|
||||||
@@ -1295,7 +1360,8 @@
|
|||||||
"database_integrity_check": {
|
"database_integrity_check": {
|
||||||
"title": "فحص سلامة قاعدة البيانات",
|
"title": "فحص سلامة قاعدة البيانات",
|
||||||
"check_button": "التحقق من سلامة قاعدة البيانات",
|
"check_button": "التحقق من سلامة قاعدة البيانات",
|
||||||
"checking_integrity": "جار التحقق من سلامة قاعدة البيانات..."
|
"checking_integrity": "جار التحقق من سلامة قاعدة البيانات...",
|
||||||
|
"integrity_check_failed": "فشل التحقق من السلامة: {{results}}"
|
||||||
},
|
},
|
||||||
"watched_file_update_status": {
|
"watched_file_update_status": {
|
||||||
"upload_modified_file": "رفع الملف المعدل",
|
"upload_modified_file": "رفع الملف المعدل",
|
||||||
@@ -1322,13 +1388,15 @@
|
|||||||
"save_attributes": "حفظ السمات <enter>",
|
"save_attributes": "حفظ السمات <enter>",
|
||||||
"add_a_new_attribute": "اضافة سمة جديدة",
|
"add_a_new_attribute": "اضافة سمة جديدة",
|
||||||
"add_new_label_definition": "اضافة تعريف لتسمية جديدة",
|
"add_new_label_definition": "اضافة تعريف لتسمية جديدة",
|
||||||
"add_new_relation_definition": "اضافة تعريف لعلاقة جديدة"
|
"add_new_relation_definition": "اضافة تعريف لعلاقة جديدة",
|
||||||
|
"add_new_relation": "اضافة علاقة جديدة <kbd data-command=\"addNewRelation\">"
|
||||||
},
|
},
|
||||||
"zen_mode": {
|
"zen_mode": {
|
||||||
"button_exit": "الخروج من وضع Zen"
|
"button_exit": "الخروج من وضع Zen"
|
||||||
},
|
},
|
||||||
"attachment_erasure_timeout": {
|
"attachment_erasure_timeout": {
|
||||||
"attachment_erasure_timeout": "مهلة مسح المرفقات"
|
"attachment_erasure_timeout": "مهلة مسح المرفقات",
|
||||||
|
"erase_attachments_after": "حذف المرفقات الغير مستخدمة بعد:"
|
||||||
},
|
},
|
||||||
"note_erasure_timeout": {
|
"note_erasure_timeout": {
|
||||||
"note_erasure_timeout_title": "مهلة مسح الملاحظة",
|
"note_erasure_timeout_title": "مهلة مسح الملاحظة",
|
||||||
@@ -1366,5 +1434,34 @@
|
|||||||
},
|
},
|
||||||
"revisions_snapshot_interval": {
|
"revisions_snapshot_interval": {
|
||||||
"note_revisions_snapshot_interval_title": "الفاصل الزمني لنسخ الملاحظات الاحتياطية"
|
"note_revisions_snapshot_interval_title": "الفاصل الزمني لنسخ الملاحظات الاحتياطية"
|
||||||
|
},
|
||||||
|
"note_detail": {
|
||||||
|
"printing": "جار الطباعة ..."
|
||||||
|
},
|
||||||
|
"attachment_detail_2": {
|
||||||
|
"role_and_size": "الدور: {{role}}، الحجم: {{size}}",
|
||||||
|
"unrecognized_role": "دور المرفق '{{role}}'الغير معروف."
|
||||||
|
},
|
||||||
|
"title_bar_buttons": {
|
||||||
|
"window-on-top": "ابقاء النافذة في الاعلى"
|
||||||
|
},
|
||||||
|
"note_title": {
|
||||||
|
"placeholder": "اكتب عنوان الملاحظة هنا..."
|
||||||
|
},
|
||||||
|
"image_context_menu": {
|
||||||
|
"copy_reference_to_clipboard": "نسخ المرجع الى الحافظة",
|
||||||
|
"copy_image_to_clipboard": "نسخ الصورة الى الحافظة"
|
||||||
|
},
|
||||||
|
"geo-map": {
|
||||||
|
"unable-to-load-map": "تعذر تحميل الخريطة."
|
||||||
|
},
|
||||||
|
"content_widget": {
|
||||||
|
"unknown_widget": "عنصر واجهة غير معروف للمعرف \"{{id}}\"."
|
||||||
|
},
|
||||||
|
"png_export_button": {
|
||||||
|
"button_title": "تصدير المخطط كملف PNG"
|
||||||
|
},
|
||||||
|
"protected_session_status": {
|
||||||
|
"inactive": "انقر للدخول الى جلسة محمية"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -184,7 +184,8 @@
|
|||||||
},
|
},
|
||||||
"import-status": "Importstatus",
|
"import-status": "Importstatus",
|
||||||
"in-progress": "Import läuft: {{progress}}",
|
"in-progress": "Import läuft: {{progress}}",
|
||||||
"successful": "Import erfolgreich abgeschlossen."
|
"successful": "Import erfolgreich abgeschlossen.",
|
||||||
|
"importZipRecommendation": "Beim Import einer ZIP-Datei wird die Notizhierarchie aus der Ordnerstruktur im Archiv übernommen."
|
||||||
},
|
},
|
||||||
"include_note": {
|
"include_note": {
|
||||||
"dialog_title": "Notiz beifügen",
|
"dialog_title": "Notiz beifügen",
|
||||||
@@ -1521,7 +1522,9 @@
|
|||||||
"window-on-top": "Dieses Fenster immer oben halten"
|
"window-on-top": "Dieses Fenster immer oben halten"
|
||||||
},
|
},
|
||||||
"note_detail": {
|
"note_detail": {
|
||||||
"could_not_find_typewidget": "Konnte typeWidget für Typ ‚{{type}}‘ nicht finden"
|
"could_not_find_typewidget": "Konnte typeWidget für Typ ‚{{type}}‘ nicht finden",
|
||||||
|
"printing": "Druckvorgang läuft…",
|
||||||
|
"printing_pdf": "PDF-Export läuft…"
|
||||||
},
|
},
|
||||||
"note_title": {
|
"note_title": {
|
||||||
"placeholder": "Titel der Notiz hier eingeben…"
|
"placeholder": "Titel der Notiz hier eingeben…"
|
||||||
@@ -2078,7 +2081,7 @@
|
|||||||
"rendering_error": "Aufgrund eines Fehlers können keine Inhalte angezeigt werden."
|
"rendering_error": "Aufgrund eines Fehlers können keine Inhalte angezeigt werden."
|
||||||
},
|
},
|
||||||
"presentation_view": {
|
"presentation_view": {
|
||||||
"edit-slide": "Diese Folie bearbeiten",
|
"edit-slide": "Folie bearbeiten",
|
||||||
"start-presentation": "Präsentation starten"
|
"start-presentation": "Präsentation starten"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +1,24 @@
|
|||||||
{
|
{
|
||||||
"about": {
|
"about": {
|
||||||
"title": "Πληροφορίες για το Trilium Notes",
|
"title": "Πληροφορίες για το Trilium Notes",
|
||||||
"homepage": "Αρχική Σελίδα:",
|
"homepage": "Αρχική Σελίδα:",
|
||||||
"app_version": "Έκδοση εφαρμογής:",
|
"app_version": "Έκδοση εφαρμογής:",
|
||||||
"db_version": "Έκδοση βάσης δεδομένων:",
|
"db_version": "Έκδοση βάσης δεδομένων:",
|
||||||
"sync_version": "Έκδοση πρωτοκόλου συγχρονισμού:",
|
"sync_version": "Έκδοση πρωτοκόλου συγχρονισμού:",
|
||||||
"build_date": "Ημερομηνία χτισίματος εφαρμογής:",
|
"build_date": "Ημερομηνία χτισίματος εφαρμογής:",
|
||||||
"build_revision": "Αριθμός αναθεώρησης χτισίματος:",
|
"build_revision": "Αριθμός αναθεώρησης χτισίματος:",
|
||||||
"data_directory": "Φάκελος δεδομένων:"
|
"data_directory": "Φάκελος δεδομένων:"
|
||||||
},
|
},
|
||||||
"toast": {
|
"toast": {
|
||||||
"critical-error": {
|
"critical-error": {
|
||||||
"title": "Κρίσιμο σφάλμα",
|
"title": "Κρίσιμο σφάλμα",
|
||||||
"message": "Συνέβη κάποιο κρίσιμο σφάλμα, το οποίο δεν επιτρέπει στην εφαρμογή χρήστη να ξεκινήσει:\n\n{{message}}\n\nΤο πιθανότερο είναι να προκλήθηκε από κάποιο script που απέτυχε απρόοπτα. Δοκιμάστε να ξεκινήσετε την εφαρμογή σε ασφαλή λειτουργία για να λύσετε το πρόβλημα."
|
"message": "Συνέβη κάποιο κρίσιμο σφάλμα, το οποίο δεν επιτρέπει στην εφαρμογή χρήστη να ξεκινήσει:\n\n{{message}}\n\nΤο πιθανότερο είναι να προκλήθηκε από κάποιο script που απέτυχε απρόοπτα. Δοκιμάστε να ξεκινήσετε την εφαρμογή σε ασφαλή λειτουργία για να λύσετε το πρόβλημα."
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"ai_llm": {
|
||||||
|
"n_notes_queued": "{{ count }} σημείωση στην ουρά για εύρεση",
|
||||||
|
"n_notes_queued_plural": "{{ count }} σημειώσεις στην ουρά για εύρεση",
|
||||||
|
"notes_indexed": "{{ count }} σημείωση με ευρετήριο",
|
||||||
|
"notes_indexed_plural": "{{ count }} σημειώσεις με ευρετήριο"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -184,7 +184,8 @@
|
|||||||
},
|
},
|
||||||
"import-status": "Statut de l'importation",
|
"import-status": "Statut de l'importation",
|
||||||
"in-progress": "Importation en cours : {{progress}}",
|
"in-progress": "Importation en cours : {{progress}}",
|
||||||
"successful": "Importation terminée avec succès."
|
"successful": "Importation terminée avec succès.",
|
||||||
|
"importZipRecommendation": "Lors de l'importation d'un fichier ZIP, la hiérarchie des notes reflétera la structure des sous-répertoires au sein de l'archive."
|
||||||
},
|
},
|
||||||
"include_note": {
|
"include_note": {
|
||||||
"dialog_title": "Inclure une note",
|
"dialog_title": "Inclure une note",
|
||||||
@@ -279,8 +280,8 @@
|
|||||||
"delete_button": "Supprimer",
|
"delete_button": "Supprimer",
|
||||||
"diff_on": "Afficher les différences",
|
"diff_on": "Afficher les différences",
|
||||||
"diff_off": "Afficher le contenu",
|
"diff_off": "Afficher le contenu",
|
||||||
"diff_on_hint": "Cliquez pour afficher les différences de la note d'origine",
|
"diff_on_hint": "Cliquer pour afficher les différences avec la note d'origine",
|
||||||
"diff_off_hint": "Cliquez pour afficher le contenu de la note",
|
"diff_off_hint": "Cliquer pour afficher le contenu de la note",
|
||||||
"diff_not_available": "La comparaison n'est pas disponible."
|
"diff_not_available": "La comparaison n'est pas disponible."
|
||||||
},
|
},
|
||||||
"sort_child_notes": {
|
"sort_child_notes": {
|
||||||
@@ -646,7 +647,9 @@
|
|||||||
"about": "À propos de Trilium Notes",
|
"about": "À propos de Trilium Notes",
|
||||||
"logout": "Déconnexion",
|
"logout": "Déconnexion",
|
||||||
"show-cheatsheet": "Afficher l'aide rapide",
|
"show-cheatsheet": "Afficher l'aide rapide",
|
||||||
"toggle-zen-mode": "Zen Mode"
|
"toggle-zen-mode": "Zen Mode",
|
||||||
|
"new-version-available": "Nouvelle mise à jour disponible",
|
||||||
|
"download-update": "Obtenir la version {{latestVersion}}"
|
||||||
},
|
},
|
||||||
"zen_mode": {
|
"zen_mode": {
|
||||||
"button_exit": "Sortir du Zen mode"
|
"button_exit": "Sortir du Zen mode"
|
||||||
@@ -673,7 +676,7 @@
|
|||||||
"search_in_note": "Rechercher dans la note",
|
"search_in_note": "Rechercher dans la note",
|
||||||
"note_source": "Code source",
|
"note_source": "Code source",
|
||||||
"note_attachments": "Pièces jointes",
|
"note_attachments": "Pièces jointes",
|
||||||
"open_note_externally": "Ouverture externe",
|
"open_note_externally": "Ouvrir la note en externe",
|
||||||
"open_note_externally_title": "Le fichier sera ouvert dans une application externe et les modifications apportées seront surveillées. Vous pourrez ensuite téléverser la version modifiée dans Trilium.",
|
"open_note_externally_title": "Le fichier sera ouvert dans une application externe et les modifications apportées seront surveillées. Vous pourrez ensuite téléverser la version modifiée dans Trilium.",
|
||||||
"open_note_custom": "Ouvrir la note avec",
|
"open_note_custom": "Ouvrir la note avec",
|
||||||
"import_files": "Importer des fichiers",
|
"import_files": "Importer des fichiers",
|
||||||
@@ -766,7 +769,8 @@
|
|||||||
"table": "Tableau",
|
"table": "Tableau",
|
||||||
"geo-map": "Carte géographique",
|
"geo-map": "Carte géographique",
|
||||||
"board": "Tableau de bord",
|
"board": "Tableau de bord",
|
||||||
"include_archived_notes": "Afficher les notes archivées"
|
"include_archived_notes": "Afficher les notes archivées",
|
||||||
|
"presentation": "Présentation"
|
||||||
},
|
},
|
||||||
"edited_notes": {
|
"edited_notes": {
|
||||||
"no_edited_notes_found": "Aucune note modifiée ce jour-là...",
|
"no_edited_notes_found": "Aucune note modifiée ce jour-là...",
|
||||||
@@ -1141,7 +1145,8 @@
|
|||||||
"code_auto_read_only_size": {
|
"code_auto_read_only_size": {
|
||||||
"title": "Taille pour la lecture seule automatique",
|
"title": "Taille pour la lecture seule automatique",
|
||||||
"description": "La taille pour la lecture seule automatique est le seuil au-delà de laquelle les notes seront affichées en mode lecture seule (pour optimiser les performances).",
|
"description": "La taille pour la lecture seule automatique est le seuil au-delà de laquelle les notes seront affichées en mode lecture seule (pour optimiser les performances).",
|
||||||
"label": "Taille pour la lecture seule automatique (notes de code)"
|
"label": "Taille pour la lecture seule automatique (notes de code)",
|
||||||
|
"unit": "caractères"
|
||||||
},
|
},
|
||||||
"code_mime_types": {
|
"code_mime_types": {
|
||||||
"title": "Types MIME disponibles dans la liste déroulante"
|
"title": "Types MIME disponibles dans la liste déroulante"
|
||||||
@@ -1160,7 +1165,8 @@
|
|||||||
"download_images_description": "Le HTML collé peut contenir des références à des images en ligne, Trilium trouvera ces références et téléchargera les images afin qu'elles soient disponibles hors ligne.",
|
"download_images_description": "Le HTML collé peut contenir des références à des images en ligne, Trilium trouvera ces références et téléchargera les images afin qu'elles soient disponibles hors ligne.",
|
||||||
"enable_image_compression": "Activer la compression des images",
|
"enable_image_compression": "Activer la compression des images",
|
||||||
"max_image_dimensions": "Largeur/hauteur maximale d'une image en pixels (l'image sera redimensionnée si elle dépasse ce paramètre).",
|
"max_image_dimensions": "Largeur/hauteur maximale d'une image en pixels (l'image sera redimensionnée si elle dépasse ce paramètre).",
|
||||||
"jpeg_quality_description": "Qualité JPEG (10 - pire qualité, 100 - meilleure qualité, 50 - 85 est recommandé)"
|
"jpeg_quality_description": "Qualité JPEG (10 - pire qualité, 100 - meilleure qualité, 50 - 85 est recommandé)",
|
||||||
|
"max_image_dimensions_unit": "pixels"
|
||||||
},
|
},
|
||||||
"attachment_erasure_timeout": {
|
"attachment_erasure_timeout": {
|
||||||
"attachment_erasure_timeout": "Délai d'effacement des pièces jointes",
|
"attachment_erasure_timeout": "Délai d'effacement des pièces jointes",
|
||||||
@@ -1192,7 +1198,8 @@
|
|||||||
"note_revisions_snapshot_limit_description": "La limite du nombre de versions de note désigne le nombre maximum de versions pouvant être enregistrées pour chaque note. -1 signifie aucune limite, 0 signifie supprimer toutes les versions. Vous pouvez définir le nombre maximal de versions pour une seule note avec le label #versioningLimit.",
|
"note_revisions_snapshot_limit_description": "La limite du nombre de versions de note désigne le nombre maximum de versions pouvant être enregistrées pour chaque note. -1 signifie aucune limite, 0 signifie supprimer toutes les versions. Vous pouvez définir le nombre maximal de versions pour une seule note avec le label #versioningLimit.",
|
||||||
"snapshot_number_limit_label": "Nombre limite de versions de note :",
|
"snapshot_number_limit_label": "Nombre limite de versions de note :",
|
||||||
"erase_excess_revision_snapshots": "Effacer maintenant les versions en excès",
|
"erase_excess_revision_snapshots": "Effacer maintenant les versions en excès",
|
||||||
"erase_excess_revision_snapshots_prompt": "Les versions en excès ont été effacées."
|
"erase_excess_revision_snapshots_prompt": "Les versions en excès ont été effacées.",
|
||||||
|
"snapshot_number_limit_unit": "instantanés"
|
||||||
},
|
},
|
||||||
"search_engine": {
|
"search_engine": {
|
||||||
"title": "Moteur de recherche",
|
"title": "Moteur de recherche",
|
||||||
@@ -1234,19 +1241,35 @@
|
|||||||
"title": "Table des matières",
|
"title": "Table des matières",
|
||||||
"description": "La table des matières apparaîtra dans les notes textuelles lorsque la note comporte plus d'un nombre défini de titres. Vous pouvez personnaliser ce nombre :",
|
"description": "La table des matières apparaîtra dans les notes textuelles lorsque la note comporte plus d'un nombre défini de titres. Vous pouvez personnaliser ce nombre :",
|
||||||
"disable_info": "Vous pouvez également utiliser cette option pour désactiver la table des matières en définissant un nombre très élevé.",
|
"disable_info": "Vous pouvez également utiliser cette option pour désactiver la table des matières en définissant un nombre très élevé.",
|
||||||
"shortcut_info": "Vous pouvez configurer un raccourci clavier pour afficher/masquer le volet de droite (y compris la table des matières) dans Options -> Raccourcis (nom « toggleRightPane »)."
|
"shortcut_info": "Vous pouvez configurer un raccourci clavier pour afficher/masquer le volet de droite (y compris la table des matières) dans Options -> Raccourcis (nom « toggleRightPane »).",
|
||||||
|
"unit": "titres"
|
||||||
},
|
},
|
||||||
"text_auto_read_only_size": {
|
"text_auto_read_only_size": {
|
||||||
"title": "Taille automatique en lecture seule",
|
"title": "Taille automatique en lecture seule",
|
||||||
"description": "La taille automatique des notes en lecture seule est la taille au-delà de laquelle les notes seront affichées en mode lecture seule (pour des raisons de performances).",
|
"description": "La taille automatique des notes en lecture seule est la taille au-delà de laquelle les notes seront affichées en mode lecture seule (pour des raisons de performances).",
|
||||||
"label": "Taille automatique en lecture seule (notes de texte)"
|
"label": "Taille automatique en lecture seule (notes de texte)",
|
||||||
|
"unit": "caractères"
|
||||||
},
|
},
|
||||||
"i18n": {
|
"i18n": {
|
||||||
"title": "Paramètres régionaux",
|
"title": "Paramètres régionaux",
|
||||||
"language": "Langue",
|
"language": "Langue",
|
||||||
"first-day-of-the-week": "Premier jour de la semaine",
|
"first-day-of-the-week": "Premier jour de la semaine",
|
||||||
"sunday": "Dimanche",
|
"sunday": "Dimanche",
|
||||||
"monday": "Lundi"
|
"monday": "Lundi",
|
||||||
|
"tuesday": "Mardi",
|
||||||
|
"wednesday": "Mercredi",
|
||||||
|
"thursday": "Jeudi",
|
||||||
|
"friday": "Vendredi",
|
||||||
|
"saturday": "Samedi",
|
||||||
|
"first-week-of-the-year": "Première semaine de l'année",
|
||||||
|
"first-week-contains-first-day": "La première semaine contient le premier jour de l'année",
|
||||||
|
"first-week-contains-first-thursday": "La première semaine contient le premier jeudi de l'année",
|
||||||
|
"first-week-has-minimum-days": "La première semaine a un nombre minimum de jours",
|
||||||
|
"min-days-in-first-week": "Nombre minimum de jours dans la première semaine",
|
||||||
|
"first-week-info": "La première semaine contient le premier jeudi de l'année et est basée sur la norme <a href=\"https://en.wikipedia.org/wiki/ISO_week_date#First_week\">ISO 8601</a> .",
|
||||||
|
"first-week-warning": "La modification des options de la première semaine peut entraîner des doublons avec les notes de semaine existantes et les notes de semaine existantes ne seront pas mises à jour en conséquence.",
|
||||||
|
"formatting-locale": "Format de date et de nombre",
|
||||||
|
"formatting-locale-auto": "En fonction de la langue de l'application"
|
||||||
},
|
},
|
||||||
"backup": {
|
"backup": {
|
||||||
"automatic_backup": "Sauvegarde automatique",
|
"automatic_backup": "Sauvegarde automatique",
|
||||||
@@ -1284,7 +1307,9 @@
|
|||||||
"delete_token": "Supprimer/désactiver ce token",
|
"delete_token": "Supprimer/désactiver ce token",
|
||||||
"rename_token_title": "Renommer le jeton",
|
"rename_token_title": "Renommer le jeton",
|
||||||
"rename_token_message": "Veuillez saisir le nom du nouveau jeton",
|
"rename_token_message": "Veuillez saisir le nom du nouveau jeton",
|
||||||
"delete_token_confirmation": "Êtes-vous sûr de vouloir supprimer le jeton ETAPI « {{name}} » ?"
|
"delete_token_confirmation": "Êtes-vous sûr de vouloir supprimer le jeton ETAPI « {{name}} » ?",
|
||||||
|
"see_more": "Voir plus de détails dans le {{- link_to_wiki}} et le {{- link_to_openapi_spec}} ou le {{- link_to_swagger_ui }}.",
|
||||||
|
"swagger_ui": "Interface utilisateur ETAPI Swagger"
|
||||||
},
|
},
|
||||||
"options_widget": {
|
"options_widget": {
|
||||||
"options_status": "Statut des options",
|
"options_status": "Statut des options",
|
||||||
@@ -1347,7 +1372,8 @@
|
|||||||
"test_title": "Test de synchronisation",
|
"test_title": "Test de synchronisation",
|
||||||
"test_description": "Testera la connexion et la prise de contact avec le serveur de synchronisation. Si le serveur de synchronisation n'est pas initialisé, cela le configurera pour qu'il se synchronise avec le document local.",
|
"test_description": "Testera la connexion et la prise de contact avec le serveur de synchronisation. Si le serveur de synchronisation n'est pas initialisé, cela le configurera pour qu'il se synchronise avec le document local.",
|
||||||
"test_button": "Tester la synchronisation",
|
"test_button": "Tester la synchronisation",
|
||||||
"handshake_failed": "Échec de la négociation avec le serveur de synchronisation, erreur : {{message}}"
|
"handshake_failed": "Échec de la négociation avec le serveur de synchronisation, erreur : {{message}}",
|
||||||
|
"timeout_unit": "millisecondes"
|
||||||
},
|
},
|
||||||
"api_log": {
|
"api_log": {
|
||||||
"close": "Fermer"
|
"close": "Fermer"
|
||||||
@@ -1407,11 +1433,14 @@
|
|||||||
"import-into-note": "Importer dans la note",
|
"import-into-note": "Importer dans la note",
|
||||||
"apply-bulk-actions": "Appliquer des Actions groupées",
|
"apply-bulk-actions": "Appliquer des Actions groupées",
|
||||||
"converted-to-attachments": "Les notes {{count}} ont été converties en pièces jointes.",
|
"converted-to-attachments": "Les notes {{count}} ont été converties en pièces jointes.",
|
||||||
"convert-to-attachment-confirm": "Êtes-vous sûr de vouloir convertir les notes sélectionnées en pièces jointes de leurs notes parentes ?"
|
"convert-to-attachment-confirm": "Êtes-vous sûr de vouloir convertir les notes sélectionnées en pièces jointes de leurs notes parentes ?",
|
||||||
|
"archive": "Archive",
|
||||||
|
"unarchive": "Désarchiver",
|
||||||
|
"open-in-popup": "Modification rapide"
|
||||||
},
|
},
|
||||||
"shared_info": {
|
"shared_info": {
|
||||||
"shared_publicly": "Cette note est partagée publiquement sur {{- link}}",
|
"shared_publicly": "Cette note est partagée publiquement sur {{- link}}.",
|
||||||
"shared_locally": "Cette note est partagée localement sur {{- link}}",
|
"shared_locally": "Cette note est partagée localement sur {{- link}}.",
|
||||||
"help_link": "Pour obtenir de l'aide, visitez le <a href=\"https://triliumnext.github.io/Docs/Wiki/sharing.html\">wiki</a>."
|
"help_link": "Pour obtenir de l'aide, visitez le <a href=\"https://triliumnext.github.io/Docs/Wiki/sharing.html\">wiki</a>."
|
||||||
},
|
},
|
||||||
"note_types": {
|
"note_types": {
|
||||||
@@ -1433,7 +1462,11 @@
|
|||||||
"confirm-change": "Il n'est pas recommandé de modifier le type de note lorsque son contenu n'est pas vide. Voulez-vous continuer ?",
|
"confirm-change": "Il n'est pas recommandé de modifier le type de note lorsque son contenu n'est pas vide. Voulez-vous continuer ?",
|
||||||
"geo-map": "Carte géo",
|
"geo-map": "Carte géo",
|
||||||
"beta-feature": "Beta",
|
"beta-feature": "Beta",
|
||||||
"task-list": "Liste de tâches"
|
"task-list": "Liste de tâches",
|
||||||
|
"book": "Collection",
|
||||||
|
"ai-chat": "Chat IA",
|
||||||
|
"new-feature": "Nouveau",
|
||||||
|
"collections": "Collections"
|
||||||
},
|
},
|
||||||
"protect_note": {
|
"protect_note": {
|
||||||
"toggle-on": "Protéger la note",
|
"toggle-on": "Protéger la note",
|
||||||
@@ -1486,13 +1519,16 @@
|
|||||||
"hoist-this-note-workspace": "Focus cette note (espace de travail)",
|
"hoist-this-note-workspace": "Focus cette note (espace de travail)",
|
||||||
"refresh-saved-search-results": "Rafraîchir les résultats de recherche enregistrée",
|
"refresh-saved-search-results": "Rafraîchir les résultats de recherche enregistrée",
|
||||||
"create-child-note": "Créer une note enfant",
|
"create-child-note": "Créer une note enfant",
|
||||||
"unhoist": "Désactiver le focus"
|
"unhoist": "Désactiver le focus",
|
||||||
|
"toggle-sidebar": "Basculer la barre latérale"
|
||||||
},
|
},
|
||||||
"title_bar_buttons": {
|
"title_bar_buttons": {
|
||||||
"window-on-top": "Épingler cette fenêtre au premier plan"
|
"window-on-top": "Épingler cette fenêtre au premier plan"
|
||||||
},
|
},
|
||||||
"note_detail": {
|
"note_detail": {
|
||||||
"could_not_find_typewidget": "Impossible de trouver typeWidget pour le type '{{type}}'"
|
"could_not_find_typewidget": "Impossible de trouver typeWidget pour le type '{{type}}'",
|
||||||
|
"printing": "Impression en cours...",
|
||||||
|
"printing_pdf": "Export au format PDF en cours..."
|
||||||
},
|
},
|
||||||
"note_title": {
|
"note_title": {
|
||||||
"placeholder": "saisir le titre de la note ici..."
|
"placeholder": "saisir le titre de la note ici..."
|
||||||
@@ -1543,7 +1579,9 @@
|
|||||||
},
|
},
|
||||||
"clipboard": {
|
"clipboard": {
|
||||||
"cut": "Les note(s) ont été coupées dans le presse-papiers.",
|
"cut": "Les note(s) ont été coupées dans le presse-papiers.",
|
||||||
"copied": "Les note(s) ont été coupées dans le presse-papiers."
|
"copied": "Les note(s) ont été coupées dans le presse-papiers.",
|
||||||
|
"copy_failed": "Impossible de copier dans le presse-papiers en raison de problèmes d'autorisation.",
|
||||||
|
"copy_success": "Copié dans le presse-papiers."
|
||||||
},
|
},
|
||||||
"entrypoints": {
|
"entrypoints": {
|
||||||
"note-revision-created": "La version de la note a été créée.",
|
"note-revision-created": "La version de la note a été créée.",
|
||||||
@@ -1565,7 +1603,9 @@
|
|||||||
"ws": {
|
"ws": {
|
||||||
"sync-check-failed": "Le test de synchronisation a échoué !",
|
"sync-check-failed": "Le test de synchronisation a échoué !",
|
||||||
"consistency-checks-failed": "Les tests de cohérence ont échoué ! Consultez les journaux pour plus de détails.",
|
"consistency-checks-failed": "Les tests de cohérence ont échoué ! Consultez les journaux pour plus de détails.",
|
||||||
"encountered-error": "Erreur \"{{message}}\", consultez la console."
|
"encountered-error": "Erreur \"{{message}}\", consultez la console.",
|
||||||
|
"lost-websocket-connection-title": "Connexion au serveur perdue",
|
||||||
|
"lost-websocket-connection-message": "Vérifiez la configuration de votre proxy inverse (par exemple nginx ou Apache) pour vous assurer que les connexions WebSocket sont correctement autorisées et ne sont pas bloquées."
|
||||||
},
|
},
|
||||||
"hoisted_note": {
|
"hoisted_note": {
|
||||||
"confirm_unhoisting": "La note demandée «{{requestedNote}}» est en dehors du sous-arbre de la note focus «{{hoistedNote}}». Le focus doit être désactivé pour accéder à la note. Voulez-vous enlever le focus ?"
|
"confirm_unhoisting": "La note demandée «{{requestedNote}}» est en dehors du sous-arbre de la note focus «{{hoistedNote}}». Le focus doit être désactivé pour accéder à la note. Voulez-vous enlever le focus ?"
|
||||||
@@ -1587,13 +1627,15 @@
|
|||||||
},
|
},
|
||||||
"highlighting": {
|
"highlighting": {
|
||||||
"description": "Contrôle la coloration syntaxique des blocs de code à l'intérieur des notes texte, les notes de code ne seront pas affectées.",
|
"description": "Contrôle la coloration syntaxique des blocs de code à l'intérieur des notes texte, les notes de code ne seront pas affectées.",
|
||||||
"color-scheme": "Jeu de couleurs"
|
"color-scheme": "Jeu de couleurs",
|
||||||
|
"title": "Blocs de code"
|
||||||
},
|
},
|
||||||
"code_block": {
|
"code_block": {
|
||||||
"word_wrapping": "Saut à la ligne automatique suivant la largeur",
|
"word_wrapping": "Saut à la ligne automatique suivant la largeur",
|
||||||
"theme_none": "Pas de coloration syntaxique",
|
"theme_none": "Pas de coloration syntaxique",
|
||||||
"theme_group_light": "Thèmes clairs",
|
"theme_group_light": "Thèmes clairs",
|
||||||
"theme_group_dark": "Thèmes sombres"
|
"theme_group_dark": "Thèmes sombres",
|
||||||
|
"copy_title": "Copier dans le presse-papiers"
|
||||||
},
|
},
|
||||||
"classic_editor_toolbar": {
|
"classic_editor_toolbar": {
|
||||||
"title": "Mise en forme"
|
"title": "Mise en forme"
|
||||||
@@ -1652,7 +1694,8 @@
|
|||||||
"full-text-search": "Recherche dans le texte"
|
"full-text-search": "Recherche dans le texte"
|
||||||
},
|
},
|
||||||
"note_tooltip": {
|
"note_tooltip": {
|
||||||
"note-has-been-deleted": "La note a été supprimée."
|
"note-has-been-deleted": "La note a été supprimée.",
|
||||||
|
"quick-edit": "Edition rapide"
|
||||||
},
|
},
|
||||||
"geo-map": {
|
"geo-map": {
|
||||||
"create-child-note-title": "Créer une nouvelle note enfant et l'ajouter à la carte",
|
"create-child-note-title": "Créer une nouvelle note enfant et l'ajouter à la carte",
|
||||||
@@ -1661,7 +1704,8 @@
|
|||||||
},
|
},
|
||||||
"geo-map-context": {
|
"geo-map-context": {
|
||||||
"open-location": "Ouvrir la position",
|
"open-location": "Ouvrir la position",
|
||||||
"remove-from-map": "Retirer de la carte"
|
"remove-from-map": "Retirer de la carte",
|
||||||
|
"add-note": "Ajouter un marqueur à cet endroit"
|
||||||
},
|
},
|
||||||
"help-button": {
|
"help-button": {
|
||||||
"title": "Ouvrir la page d'aide correspondante"
|
"title": "Ouvrir la page d'aide correspondante"
|
||||||
@@ -1688,10 +1732,41 @@
|
|||||||
"minimum_input": "La valeur de temps saisie doit être d'au moins {{minimumSeconds}} secondes."
|
"minimum_input": "La valeur de temps saisie doit être d'au moins {{minimumSeconds}} secondes."
|
||||||
},
|
},
|
||||||
"multi_factor_authentication": {
|
"multi_factor_authentication": {
|
||||||
"oauth_user_email": "Courriel de l'utilisateur : "
|
"oauth_user_email": "Courriel de l'utilisateur : ",
|
||||||
|
"title": "Authentification multifacteur",
|
||||||
|
"description": "L'authentification multifacteur (MFA) renforce la sécurité de votre compte. Au lieu de simplement saisir un mot de passe pour vous connecter, le MFA vous demande de fournir une ou plusieurs preuves supplémentaires pour vérifier votre identité. Ainsi, même si quelqu'un obtient votre mot de passe, il ne peut accéder à votre compte sans cette deuxième information. C'est comme ajouter une serrure supplémentaire à votre porte, rendant l'effraction beaucoup plus difficile.<br><br>Veuillez suivre les instructions ci-dessous pour activer le MFA. Si vous ne configurez pas correctement, la connexion se fera uniquement par mot de passe.",
|
||||||
|
"mfa_enabled": "Activer l'authentification multifacteur",
|
||||||
|
"mfa_method": "Méthode MFA",
|
||||||
|
"electron_disabled": "L'authentification multifacteur n'est actuellement pas prise en charge dans la version de bureau.",
|
||||||
|
"totp_title": "Mot de passe à usage unique basé sur le temps (TOTP)",
|
||||||
|
"totp_description": "Le TOTP (Time-Based One-Time Password) est une fonctionnalité de sécurité qui génère un code unique et temporaire, modifié toutes les 30 secondes. Vous utilisez ce code, associé à votre mot de passe, pour vous connecter à votre compte, ce qui rend l'accès à celui-ci beaucoup plus difficile.",
|
||||||
|
"totp_secret_title": "Générer un secret TOTP",
|
||||||
|
"totp_secret_generate": "Générer un secret TOTP",
|
||||||
|
"totp_secret_regenerate": "Re-générer un secret TOTP",
|
||||||
|
"no_totp_secret_warning": "Pour activer TOTP, vous devez d’abord générer un secret TOTP.",
|
||||||
|
"totp_secret_description_warning": "Après avoir généré un nouveau secret TOTP, vous devrez vous reconnecter avec le nouveau secret TOTP.",
|
||||||
|
"totp_secret_generated": "Secret TOTP généré",
|
||||||
|
"totp_secret_warning": "Veuillez conserver le secret généré dans un endroit sûr. Il ne sera plus affiché.",
|
||||||
|
"totp_secret_regenerate_confirm": "Voulez-vous vraiment régénérer le secret TOTP ? Cela invalidera le secret TOTP précédent et tous les codes de récupération existants.",
|
||||||
|
"recovery_keys_title": "Clés de récupération d'authentification unique",
|
||||||
|
"recovery_keys_description": "Les clés de récupération d'authentification unique sont utilisées pour vous connecter même si vous ne pouvez pas accéder à vos codes d'authentification.",
|
||||||
|
"recovery_keys_description_warning": "Les clés de récupération ne seront plus affichées après avoir quitté la page, conservez-les dans un endroit sûr et sécurisé.<br>Une fois qu'une clé de récupération a été utilisée, elle devient inutilisable.",
|
||||||
|
"recovery_keys_error": "Erreur lors de la génération des codes de récupération",
|
||||||
|
"recovery_keys_no_key_set": "Aucun code de récupération défini",
|
||||||
|
"recovery_keys_generate": "Générer des codes de récupération",
|
||||||
|
"recovery_keys_regenerate": "Re-générer des codes de récupération",
|
||||||
|
"recovery_keys_used": "Utilisé : {{date}}",
|
||||||
|
"recovery_keys_unused": "Le code de récupération {{index}} n'est pas utilisé",
|
||||||
|
"oauth_title": "OAuth/OpenID",
|
||||||
|
"oauth_description": "OpenID est un moyen standardisé de vous connecter à des sites web avec un compte d'un autre service, comme Google, afin de vérifier votre identité. L'émetteur par défaut est Google, mais vous pouvez le modifier pour n'importe quel autre fournisseur OpenID. Consultez <a href=\"#root/_hidden/_help/_help_Otzi9La2YAUX/_help_WOcw2SLH6tbX/_help_7DAiwaf8Z7Rz\">ici</a> pour plus d'informations. Suivez ces <a href=\"https://developers.google.com/identity/openid-connect/openid-connect\">instructions</a> pour configurer un service OpenID via Google.",
|
||||||
|
"oauth_description_warning": "Pour activer OAuth/OpenID, vous devez définir l'URL de base, l'ID client et le secret client OAuth/OpenID dans le fichier config.ini, puis redémarrer l'application. Pour les définir à partir des variables d'environnement, définissez TRILIUM_OAUTH_BASE_URL, TRILIUM_OAUTH_CLIENT_ID et TRILIUM_OAUTH_CLIENT_SECRET.",
|
||||||
|
"oauth_missing_vars": "Paramètres manquants : {{-variables}}",
|
||||||
|
"oauth_user_account": "Compte utilisateur: ",
|
||||||
|
"oauth_user_not_logged_in": "Pas connecté !"
|
||||||
},
|
},
|
||||||
"modal": {
|
"modal": {
|
||||||
"close": "Fermer"
|
"close": "Fermer",
|
||||||
|
"help_title": "Afficher plus d'informations sur cet écran"
|
||||||
},
|
},
|
||||||
"ai_llm": {
|
"ai_llm": {
|
||||||
"not_started": "Non démarré",
|
"not_started": "Non démarré",
|
||||||
@@ -1771,13 +1846,76 @@
|
|||||||
"reprocessing_index": "Mise à jour...",
|
"reprocessing_index": "Mise à jour...",
|
||||||
"reprocess_index_started": "L'optimisation de l'indice de recherche à commencer en arrière-plan",
|
"reprocess_index_started": "L'optimisation de l'indice de recherche à commencer en arrière-plan",
|
||||||
"reprocess_index_error": "Erreur dans le rafraichissement de l'indice de recherche",
|
"reprocess_index_error": "Erreur dans le rafraichissement de l'indice de recherche",
|
||||||
"failed_notes": "Notes échouées",
|
"failed_notes": "Notes en erreur",
|
||||||
"last_processed": "Dernier traitement",
|
"last_processed": "Dernier traitement",
|
||||||
"restore_provider": "Restaurer le fournisseur de la recherche",
|
"restore_provider": "Restaurer le fournisseur de recherche",
|
||||||
"index_rebuild_progress": "Progression de la reconstruction de l'index",
|
"index_rebuild_progress": "Progression de la reconstruction de l'index",
|
||||||
"index_rebuilding": "Optimisation de l'index ({{percentage}}%)",
|
"index_rebuilding": "Optimisation de l'index ({{percentage}}%)",
|
||||||
"index_rebuild_complete": "Optimisation de l'index terminée",
|
"index_rebuild_complete": "Optimisation de l'index terminée",
|
||||||
"index_rebuild_status_error": "Erreur lors de la vérification de l'état de reconstruction de l'index"
|
"index_rebuild_status_error": "Erreur lors de la vérification de l'état de reconstruction de l'index",
|
||||||
|
"provider_precedence": "Priorité du fournisseur",
|
||||||
|
"never": "Jamais",
|
||||||
|
"processing": "Traitement en cours ({{percentage}}%)",
|
||||||
|
"incomplete": "Incomplet ({{percentage}}%)",
|
||||||
|
"complete": "Terminé (100%)",
|
||||||
|
"refreshing": "Mise à jour...",
|
||||||
|
"auto_refresh_notice": "Actualisation automatique toutes les {{seconds}} secondes",
|
||||||
|
"note_queued_for_retry": "Note mise en file d'attente pour une nouvelle tentative",
|
||||||
|
"failed_to_retry_note": "Échec de la nouvelle tentative de note",
|
||||||
|
"all_notes_queued_for_retry": "Toutes les notes ayant échoué sont mises en file d'attente pour une nouvelle tentative",
|
||||||
|
"failed_to_retry_all": "Échec du ré essai des notes",
|
||||||
|
"ai_settings": "Paramètres IA",
|
||||||
|
"api_key_tooltip": "Clé API pour accéder au service",
|
||||||
|
"empty_key_warning": {
|
||||||
|
"anthropic": "La clé API Anthropic est vide. Veuillez saisir une clé API valide.",
|
||||||
|
"openai": "La clé API OpenAI est vide. Veuillez saisir une clé API valide.",
|
||||||
|
"voyage": "La clé API Voyage est vide. Veuillez saisir une clé API valide.",
|
||||||
|
"ollama": "La clé API Ollama est vide. Veuillez saisir une clé API valide."
|
||||||
|
},
|
||||||
|
"agent": {
|
||||||
|
"processing": "Traitement...",
|
||||||
|
"thinking": "Réflexion...",
|
||||||
|
"loading": "Chargement...",
|
||||||
|
"generating": "Génération..."
|
||||||
|
},
|
||||||
|
"name": "IA",
|
||||||
|
"openai": "OpenAI",
|
||||||
|
"use_enhanced_context": "Utiliser un contexte amélioré",
|
||||||
|
"enhanced_context_description": "Fournit à l'IA plus de contexte à partir de la note et de ses notes associées pour de meilleures réponses",
|
||||||
|
"show_thinking": "Montrer la réflexion",
|
||||||
|
"show_thinking_description": "Montrer la chaîne de pensée de l'IA",
|
||||||
|
"enter_message": "Entrez votre message...",
|
||||||
|
"error_contacting_provider": "Erreur lors de la connexion au fournisseur d'IA. Veuillez vérifier vos paramètres et votre connexion Internet.",
|
||||||
|
"error_generating_response": "Erreur lors de la génération de la réponse de l'IA",
|
||||||
|
"index_all_notes": "Indexer toutes les notes",
|
||||||
|
"index_status": "Statut de l'index",
|
||||||
|
"indexed_notes": "Notes indexées",
|
||||||
|
"indexing_stopped": "Arrêt de l'indexation",
|
||||||
|
"indexing_in_progress": "Indexation en cours...",
|
||||||
|
"last_indexed": "Dernière indexée",
|
||||||
|
"note_chat": "Note discussion",
|
||||||
|
"sources": "Sources",
|
||||||
|
"start_indexing": "Démarrage de l'indexation",
|
||||||
|
"use_advanced_context": "Utiliser le contexte avancé",
|
||||||
|
"ollama_no_url": "Ollama n'est pas configuré. Veuillez saisir une URL valide.",
|
||||||
|
"chat": {
|
||||||
|
"root_note_title": "Discussions IA",
|
||||||
|
"root_note_content": "Cette note contient vos conversations de chat IA enregistrées.",
|
||||||
|
"new_chat_title": "Nouvelle discussion",
|
||||||
|
"create_new_ai_chat": "Créer une nouvelle discussion IA"
|
||||||
|
},
|
||||||
|
"create_new_ai_chat": "Créer une nouvelle discussion IA",
|
||||||
|
"configuration_warnings": "Il y a quelques problèmes avec la configuration de votre IA. Veuillez vérifier vos paramètres.",
|
||||||
|
"experimental_warning": "La fonctionnalité LLM est actuellement expérimentale – vous êtes prévenu.",
|
||||||
|
"selected_provider": "Fournisseur sélectionné",
|
||||||
|
"selected_provider_description": "Choisissez le fournisseur d’IA pour les fonctionnalités de discussion et de complétion",
|
||||||
|
"select_model": "Sélectionner le modèle...",
|
||||||
|
"select_provider": "Sélectionnez un fournisseur...",
|
||||||
|
"ai_enabled": "Fonctionnalités d'IA activées",
|
||||||
|
"ai_disabled": "Fonctionnalités d'IA désactivées",
|
||||||
|
"no_models_found_online": "Aucun modèle trouvé. Veuillez vérifier votre clé API et vos paramètres.",
|
||||||
|
"no_models_found_ollama": "Aucun modèle Ollama trouvé. Veuillez vérifier si Ollama est en cours d'exécution.",
|
||||||
|
"error_fetching": "Erreur lors de la récupération des modèles : {{error}}"
|
||||||
},
|
},
|
||||||
"ui-performance": {
|
"ui-performance": {
|
||||||
"title": "Performance",
|
"title": "Performance",
|
||||||
@@ -1786,5 +1924,168 @@
|
|||||||
"enable-backdrop-effects": "Activer les effets d'arrière plan pour les menus, popups et panneaux",
|
"enable-backdrop-effects": "Activer les effets d'arrière plan pour les menus, popups et panneaux",
|
||||||
"enable-smooth-scroll": "Active le défilement fluide",
|
"enable-smooth-scroll": "Active le défilement fluide",
|
||||||
"app-restart-required": "(redémarrer l'application pour appliquer les changements)"
|
"app-restart-required": "(redémarrer l'application pour appliquer les changements)"
|
||||||
|
},
|
||||||
|
"custom_date_time_format": {
|
||||||
|
"title": "Format de date/heure personnalisé",
|
||||||
|
"description": "Personnalisez le format de la date et de l'heure insérées via <shortcut /> ou la barre d'outils. Consultez la <doc>Day.js docs</doc> pour connaître les formats disponibles.",
|
||||||
|
"format_string": "Chaîne de format :",
|
||||||
|
"formatted_time": "Date/heure formatée :"
|
||||||
|
},
|
||||||
|
"table_view": {
|
||||||
|
"delete_column_confirmation": "Êtes-vous sûr de vouloir supprimer cette colonne ? L'attribut correspondant sera supprimé de toutes les notes.",
|
||||||
|
"delete-column": "Supprimer la colonne",
|
||||||
|
"new-column-label": "Étiquette",
|
||||||
|
"new-column-relation": "Relation",
|
||||||
|
"edit-column": "Editer la colonne",
|
||||||
|
"add-column-to-the-right": "Ajouter une colonne à droite",
|
||||||
|
"new-row": "Nouvelle ligne",
|
||||||
|
"new-column": "Nouvelle colonne",
|
||||||
|
"sort-column-by": "Trier par « {{title}} »",
|
||||||
|
"sort-column-ascending": "Ascendant",
|
||||||
|
"sort-column-descending": "Descendant",
|
||||||
|
"sort-column-clear": "Annuler le tri",
|
||||||
|
"hide-column": "Masquer la colonne \"{{title}}\"",
|
||||||
|
"show-hide-columns": "Afficher/masquer les colonnes",
|
||||||
|
"row-insert-above": "Insérer une ligne au-dessus",
|
||||||
|
"row-insert-below": "Insérer une ligne au-dessous",
|
||||||
|
"row-insert-child": "Insérer une note enfant",
|
||||||
|
"add-column-to-the-left": "Ajouter une colonne à gauche"
|
||||||
|
},
|
||||||
|
"book_properties_config": {
|
||||||
|
"hide-weekends": "Masquer les week-ends",
|
||||||
|
"display-week-numbers": "Afficher les numéros de semaine",
|
||||||
|
"map-style": "Style de carte :",
|
||||||
|
"max-nesting-depth": "Profondeur d'imbrication maximale :",
|
||||||
|
"raster": "Trame",
|
||||||
|
"vector_light": "Vecteur (clair)",
|
||||||
|
"vector_dark": "Vecteur (foncé)",
|
||||||
|
"show-scale": "Afficher l'échelle"
|
||||||
|
},
|
||||||
|
"table_context_menu": {
|
||||||
|
"delete_row": "Supprimer la ligne"
|
||||||
|
},
|
||||||
|
"board_view": {
|
||||||
|
"delete-note": "Supprimer la note...",
|
||||||
|
"remove-from-board": "Retirer du tableau",
|
||||||
|
"archive-note": "Note archivée",
|
||||||
|
"unarchive-note": "Note désarchivée",
|
||||||
|
"move-to": "Déplacer vers",
|
||||||
|
"insert-above": "Insérer au-dessus",
|
||||||
|
"insert-below": "Insérer au-dessous",
|
||||||
|
"delete-column": "Supprimer la colonne",
|
||||||
|
"delete-column-confirmation": "Êtes-vous sûr de vouloir supprimer cette colonne ? L'attribut correspondant sera également supprimé dans les notes sous cette colonne.",
|
||||||
|
"new-item": "Nouvel article",
|
||||||
|
"new-item-placeholder": "Entrez le titre de note...",
|
||||||
|
"add-column": "Ajouter une colonne",
|
||||||
|
"add-column-placeholder": "Entrez le nom de la colonne...",
|
||||||
|
"edit-note-title": "Cliquez pour modifier le titre de la note",
|
||||||
|
"edit-column-title": "Cliquez pour modifier le titre de la colonne"
|
||||||
|
},
|
||||||
|
"presentation_view": {
|
||||||
|
"edit-slide": "Modifier cette diapositive",
|
||||||
|
"start-presentation": "Démarrer la présentation",
|
||||||
|
"slide-overview": "Afficher un aperçu des diapositives"
|
||||||
|
},
|
||||||
|
"command_palette": {
|
||||||
|
"tree-action-name": "Arborescence : {{name}}",
|
||||||
|
"export_note_title": "Exporter la note",
|
||||||
|
"export_note_description": "Exporter la note actuelle",
|
||||||
|
"show_attachments_title": "Afficher les pièces jointes",
|
||||||
|
"show_attachments_description": "Afficher les pièces jointes des notes",
|
||||||
|
"search_notes_title": "Rechercher des notes",
|
||||||
|
"search_notes_description": "Ouvrir la recherche avancée",
|
||||||
|
"search_subtree_title": "Rechercher dans la sous-arborescence",
|
||||||
|
"search_subtree_description": "Rechercher dans la sous-arborescence actuelle",
|
||||||
|
"search_history_title": "Afficher l'historique de recherche",
|
||||||
|
"search_history_description": "Afficher les recherches précédentes",
|
||||||
|
"configure_launch_bar_title": "Configurer la barre de lancement",
|
||||||
|
"configure_launch_bar_description": "Ouvrir la configuration de la barre de lancement pour ajouter ou supprimer des éléments."
|
||||||
|
},
|
||||||
|
"content_renderer": {
|
||||||
|
"open_externally": "Ouverture externe"
|
||||||
|
},
|
||||||
|
"call_to_action": {
|
||||||
|
"next_theme_title": "Essayez le nouveau thème Trilium",
|
||||||
|
"next_theme_message": "Vous utilisez actuellement le thème hérité de l'ancienne version, souhaitez-vous essayer le nouveau thème ?",
|
||||||
|
"next_theme_button": "Essayez le nouveau thème",
|
||||||
|
"background_effects_title": "Les effets d'arrière-plan sont désormais stables",
|
||||||
|
"background_effects_message": "Sur les appareils Windows, les effets d'arrière-plan sont désormais parfaitement stables. Ils ajoutent une touche de couleur à l'interface utilisateur en floutant l'arrière-plan. Cette technique est également utilisée dans d'autres applications comme l'Explorateur Windows.",
|
||||||
|
"background_effects_button": "Activer les effets d'arrière-plan",
|
||||||
|
"dismiss": "Rejeter"
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"related_settings": "Paramètres associés"
|
||||||
|
},
|
||||||
|
"settings_appearance": {
|
||||||
|
"related_code_blocks": "Schéma de coloration syntaxique pour les blocs de code dans les notes de texte",
|
||||||
|
"related_code_notes": "Schéma de couleurs pour les notes de code"
|
||||||
|
},
|
||||||
|
"units": {
|
||||||
|
"percentage": "%"
|
||||||
|
},
|
||||||
|
"pagination": {
|
||||||
|
"page_title": "Page de {{startIndex}} - {{endIndex}}",
|
||||||
|
"total_notes": "{{count}} notes"
|
||||||
|
},
|
||||||
|
"collections": {
|
||||||
|
"rendering_error": "Impossible d'afficher le contenu en raison d'une erreur."
|
||||||
|
},
|
||||||
|
"code-editor-options": {
|
||||||
|
"title": "Éditeur"
|
||||||
|
},
|
||||||
|
"tasks": {
|
||||||
|
"due": {
|
||||||
|
"today": "Aujourd'hui",
|
||||||
|
"tomorrow": "Demain",
|
||||||
|
"yesterday": "Hier"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"content_widget": {
|
||||||
|
"unknown_widget": "Widget inconnu pour « {{id}} »."
|
||||||
|
},
|
||||||
|
"note_language": {
|
||||||
|
"not_set": "Non défini",
|
||||||
|
"configure-languages": "Configurer les langues..."
|
||||||
|
},
|
||||||
|
"content_language": {
|
||||||
|
"title": "Contenu des langues",
|
||||||
|
"description": "Sélectionnez une ou plusieurs langues à afficher dans la section « Propriétés de base » d'une note textuelle en lecture seule ou modifiable. Cela permettra d'utiliser des fonctionnalités telles que la vérification orthographique ou la prise en charge de l'écriture de droite à gauche."
|
||||||
|
},
|
||||||
|
"switch_layout_button": {
|
||||||
|
"title_vertical": "Déplacer le volet d'édition vers le bas",
|
||||||
|
"title_horizontal": "Déplacer le panneau d'édition vers la gauche"
|
||||||
|
},
|
||||||
|
"toggle_read_only_button": {
|
||||||
|
"unlock-editing": "Déverrouiller l'édition",
|
||||||
|
"lock-editing": "Verrouiller l'édition"
|
||||||
|
},
|
||||||
|
"png_export_button": {
|
||||||
|
"button_title": "Exporter le diagramme au format PNG"
|
||||||
|
},
|
||||||
|
"svg": {
|
||||||
|
"export_to_png": "Le diagramme n'a pas pu être exporté au format PNG."
|
||||||
|
},
|
||||||
|
"code_theme": {
|
||||||
|
"title": "Apparence",
|
||||||
|
"word_wrapping": "retour à la ligne automatique",
|
||||||
|
"color-scheme": "Jeu de couleurs"
|
||||||
|
},
|
||||||
|
"cpu_arch_warning": {
|
||||||
|
"title": "Veuillez télécharger la version ARM64",
|
||||||
|
"message_macos": "TriliumNext fonctionne actuellement sous Rosetta 2, ce qui signifie que vous utilisez la version Intel (x64) sur un Mac Apple Silicon. Cela aura un impact significatif sur les performances et l'autonomie de la batterie.",
|
||||||
|
"message_windows": "TriliumNext fonctionne actuellement en mode émulation, ce qui signifie que vous utilisez la version Intel (x64) sur un appareil Windows sur ARM. Cela aura un impact significatif sur les performances et l'autonomie de la batterie.",
|
||||||
|
"recommendation": "Pour une expérience optimale, veuillez télécharger la version ARM64 native de TriliumNext depuis notre page de versions.",
|
||||||
|
"download_link": "Télécharger la version native",
|
||||||
|
"continue_anyway": "Continuer quand même",
|
||||||
|
"dont_show_again": "Ne plus afficher cet avertissement"
|
||||||
|
},
|
||||||
|
"editorfeatures": {
|
||||||
|
"title": "Caractéristiques",
|
||||||
|
"emoji_completion_enabled": "Activer la saisie semi-automatique des emojis",
|
||||||
|
"emoji_completion_description": "Si cette option est activée, les emojis peuvent être facilement insérés dans le texte en tapant `:` , suivi du nom d'un emoji.",
|
||||||
|
"note_completion_enabled": "Activer la saisie semi-automatique des notes",
|
||||||
|
"note_completion_description": "Si cette option est activée, des liens vers des notes peuvent être créés en tapant `@` suivi du titre d'une note.",
|
||||||
|
"slash_commands_enabled": "Activer les commandes slash",
|
||||||
|
"slash_commands_description": "Si cette option est activée, les commandes d'édition telles que l'insertion de sauts de ligne ou d'en-têtes peuvent être activées en tapant `/`."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1,50 @@
|
|||||||
{}
|
{
|
||||||
|
"about": {
|
||||||
|
"title": "A Trilium Notes-ról",
|
||||||
|
"homepage": "Kezdőlap:",
|
||||||
|
"app_version": "Alkalmazás verziója:",
|
||||||
|
"db_version": "Adatbázis verzió:",
|
||||||
|
"sync_version": "Verzió szinkronizálás :",
|
||||||
|
"build_revision": "Build revízió:",
|
||||||
|
"data_directory": "Adatkönyvtár:",
|
||||||
|
"build_date": "Build dátum:"
|
||||||
|
},
|
||||||
|
"toast": {
|
||||||
|
"critical-error": {
|
||||||
|
"title": "Kritikus hiba",
|
||||||
|
"message": "Kritikus hiba történt, amely megakadályozza a kliensalkalmazás indítását:\n\n{{message}}\n\nEzt valószínűleg egy váratlan szkripthiba okozza. Próbálja meg biztonságos módban elindítani az alkalmazást, és hárítsa el a problémát."
|
||||||
|
},
|
||||||
|
"widget-error": {
|
||||||
|
"title": "Nem sikerült inicializálni egy widgetet",
|
||||||
|
"message-custom": "A(z) \"{{id}}\" azonosítójú, \"{{title}}\" című jegyzetből származó egyéni widget inicializálása sikertelen volt a következő ok miatt:\n\n{{message}}",
|
||||||
|
"message-unknown": "Ismeretlen widget inicializálása sikertelen volt a következő ok miatt:\n\n{{message}}"
|
||||||
|
},
|
||||||
|
"bundle-error": {
|
||||||
|
"title": "Nem sikerült betölteni az egyéni szkriptet",
|
||||||
|
"message": "A(z) \"{{id}}\" azonosítójú, \"{{title}}\" című jegyzetből származó szkript nem hajtható végre a következő ok miatt:\n\n{{message}}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"add_link": {
|
||||||
|
"add_link": "Link hozzáadása",
|
||||||
|
"help_on_links": "Segítség a linkekhez",
|
||||||
|
"note": "Jegyzet",
|
||||||
|
"search_note": "név szerinti jegyzetkeresés",
|
||||||
|
"link_title_mirrors": "A link cím tükrözi a jegyzet aktuális címét",
|
||||||
|
"link_title_arbitrary": "link cím önkényesen módosítható",
|
||||||
|
"link_title": "Link cím",
|
||||||
|
"button_add_link": "Link hozzáadása"
|
||||||
|
},
|
||||||
|
"branch_prefix": {
|
||||||
|
"edit_branch_prefix": "Az elágazás előtagjának szerkesztése",
|
||||||
|
"help_on_tree_prefix": "Segítség a fa előtagján",
|
||||||
|
"prefix": "Az előtag: ",
|
||||||
|
"save": "Mentés"
|
||||||
|
},
|
||||||
|
"bulk_actions": {
|
||||||
|
"bulk_actions": "Tömeges akciók",
|
||||||
|
"affected_notes": "Érintett jegyzetek",
|
||||||
|
"labels": "Címkék",
|
||||||
|
"relations": "Kapcsolatok",
|
||||||
|
"notes": "Jegyzetek"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -73,7 +73,7 @@
|
|||||||
},
|
},
|
||||||
"left_pane_toggle": {
|
"left_pane_toggle": {
|
||||||
"show_panel": "パネルを表示",
|
"show_panel": "パネルを表示",
|
||||||
"hide_panel": "パネルを隠す"
|
"hide_panel": "パネルを非表示"
|
||||||
},
|
},
|
||||||
"move_pane_button": {
|
"move_pane_button": {
|
||||||
"move_left": "左に移動",
|
"move_left": "左に移動",
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
},
|
},
|
||||||
"clone_to": {
|
"clone_to": {
|
||||||
"notes_to_clone": "クローンするノート",
|
"notes_to_clone": "クローンするノート",
|
||||||
"target_parent_note": "ターゲットの親ノート",
|
"target_parent_note": "対象の親ノート",
|
||||||
"search_for_note_by_its_name": "ノート名で検索",
|
"search_for_note_by_its_name": "ノート名で検索",
|
||||||
"cloned_note_prefix_title": "クローンされたノートは、指定された接頭辞を付けてノートツリーに表示されます",
|
"cloned_note_prefix_title": "クローンされたノートは、指定された接頭辞を付けてノートツリーに表示されます",
|
||||||
"prefix_optional": "接頭辞(任意)",
|
"prefix_optional": "接頭辞(任意)",
|
||||||
@@ -286,7 +286,7 @@
|
|||||||
"pasteNotes": "ノートをサブノートとしてアクティブノートに貼り付ける(コピーされたか切り取りされたかに よって、移動またはクローンになる)",
|
"pasteNotes": "ノートをサブノートとしてアクティブノートに貼り付ける(コピーされたか切り取りされたかに よって、移動またはクローンになる)",
|
||||||
"deleteNotes": "ノート/サブツリーを削除",
|
"deleteNotes": "ノート/サブツリーを削除",
|
||||||
"editingNotes": "ノート編集",
|
"editingNotes": "ノート編集",
|
||||||
"editNoteTitle": "押下するとツリーペインからタイトルの編集に移ります。タイトルの編集からEnterキーを押すと、本文の編集に移動します。<kbd>Ctrl+.</kbd> で本文の編集からツリーペインに戻ります。",
|
"editNoteTitle": "ツリーペインでEnterキーを押すと、ツリーペインからノートタイトルに切り替わります。ノートタイトルだとテキストエディタにフォーカスが切り替わります。<kbd>Ctrl+.</kbd> を押すと、エディタからツリーペインに戻ります。",
|
||||||
"createEditLink": "外部リンクの作成/編集",
|
"createEditLink": "外部リンクの作成/編集",
|
||||||
"createInternalLink": "内部リンクの作成",
|
"createInternalLink": "内部リンクの作成",
|
||||||
"followLink": "カーソル下のリンクをたどる",
|
"followLink": "カーソル下のリンクをたどる",
|
||||||
@@ -334,7 +334,8 @@
|
|||||||
"import-status": "インポート状況",
|
"import-status": "インポート状況",
|
||||||
"in-progress": "インポート中: {{progress}}",
|
"in-progress": "インポート中: {{progress}}",
|
||||||
"successful": "インポートは正常に終了しました。",
|
"successful": "インポートは正常に終了しました。",
|
||||||
"explodeArchives": "<code>.zip</code>, <code>.enex</code> および <code>.opml</code> アーカイブの内容を読み取ります。"
|
"explodeArchives": "<code>.zip</code>, <code>.enex</code> および <code>.opml</code> アーカイブの内容を読み取ります。",
|
||||||
|
"importZipRecommendation": "ZIP ファイルをインポートすると、ノートの階層はアーカイブ内のサブディレクトリ構造を反映します。"
|
||||||
},
|
},
|
||||||
"password_not_set": {
|
"password_not_set": {
|
||||||
"title": "パスワードが設定されていない",
|
"title": "パスワードが設定されていない",
|
||||||
@@ -352,18 +353,18 @@
|
|||||||
},
|
},
|
||||||
"sort_child_notes": {
|
"sort_child_notes": {
|
||||||
"sort_children_by": "子ノートの並び替え...",
|
"sort_children_by": "子ノートの並び替え...",
|
||||||
"sorting_criteria": "ソート基準",
|
"sorting_criteria": "並べ替えの基準",
|
||||||
"title": "タイトル",
|
"title": "タイトル",
|
||||||
"date_created": "作成日",
|
"date_created": "作成日",
|
||||||
"date_modified": "更新日",
|
"date_modified": "更新日",
|
||||||
"sorting_direction": "ソート方向",
|
"sorting_direction": "並べ替えの方向",
|
||||||
"ascending": "昇順",
|
"ascending": "昇順",
|
||||||
"descending": "降順",
|
"descending": "降順",
|
||||||
"folders": "フォルダ",
|
"folders": "フォルダ",
|
||||||
"sort_folders_at_top": "フォルダーを一番上にソートする",
|
"sort_folders_at_top": "フォルダーを上にして並べ替える",
|
||||||
"natural_sort": "自然順",
|
"natural_sort": "自然順",
|
||||||
"sort_with_respect_to_different_character_sorting": "言語や地域によって異なる文字の並べ替えや照合順序の規則に従ってソートする。",
|
"sort_with_respect_to_different_character_sorting": "言語や地域によって異なる文字の並べ替えや照合順序の規則に従って並べ替える。",
|
||||||
"sort": "ソート",
|
"sort": "並べ替え",
|
||||||
"natural_sort_language": "自然順言語",
|
"natural_sort_language": "自然順言語",
|
||||||
"the_language_code_for_natural_sort": "自然順の言語コード。例えば、中国語の場合は \"zh-CN\"。"
|
"the_language_code_for_natural_sort": "自然順の言語コード。例えば、中国語の場合は \"zh-CN\"。"
|
||||||
},
|
},
|
||||||
@@ -404,9 +405,9 @@
|
|||||||
"protect-subtree": "サブツリーを保護",
|
"protect-subtree": "サブツリーを保護",
|
||||||
"unprotect-subtree": "サブツリーの保護を解除",
|
"unprotect-subtree": "サブツリーの保護を解除",
|
||||||
"copy-clone": "コピー/クローン",
|
"copy-clone": "コピー/クローン",
|
||||||
"clone-to": "クローン先...",
|
"clone-to": "クローン...",
|
||||||
"cut": "切り取り",
|
"cut": "切り取り",
|
||||||
"move-to": "移動先...",
|
"move-to": "移動...",
|
||||||
"paste-into": "貼り付け",
|
"paste-into": "貼り付け",
|
||||||
"paste-after": "後ろに貼り付け",
|
"paste-after": "後ろに貼り付け",
|
||||||
"duplicate": "複製",
|
"duplicate": "複製",
|
||||||
@@ -416,7 +417,7 @@
|
|||||||
"converted-to-attachments": "{{count}}ノートが添付ファイルに変換されました。",
|
"converted-to-attachments": "{{count}}ノートが添付ファイルに変換されました。",
|
||||||
"convert-to-attachment": "添付ファイルに変換",
|
"convert-to-attachment": "添付ファイルに変換",
|
||||||
"convert-to-attachment-confirm": "選択したノートを親ノートの添付ファイルに変換しますか?",
|
"convert-to-attachment-confirm": "選択したノートを親ノートの添付ファイルに変換しますか?",
|
||||||
"open-in-popup": "クイックエディット",
|
"open-in-popup": "クイック編集",
|
||||||
"hoist-note": "ホイストノート",
|
"hoist-note": "ホイストノート",
|
||||||
"unhoist-note": "ノートをホイストしない",
|
"unhoist-note": "ノートをホイストしない",
|
||||||
"edit-branch-prefix": "ブランチの接頭辞を編集",
|
"edit-branch-prefix": "ブランチの接頭辞を編集",
|
||||||
@@ -740,7 +741,7 @@
|
|||||||
"new-column": "新しい列",
|
"new-column": "新しい列",
|
||||||
"sort-column-by": "\"{{title}}\" で並べ替え",
|
"sort-column-by": "\"{{title}}\" で並べ替え",
|
||||||
"sort-column-clear": "並べ替えをクリア",
|
"sort-column-clear": "並べ替えをクリア",
|
||||||
"hide-column": "列 \"{{title}}\" を隠す",
|
"hide-column": "列 \"{{title}}\" を非表示",
|
||||||
"show-hide-columns": "列を表示/非表示",
|
"show-hide-columns": "列を表示/非表示",
|
||||||
"row-insert-above": "上に行を挿入",
|
"row-insert-above": "上に行を挿入",
|
||||||
"row-insert-below": "下に行を挿入",
|
"row-insert-below": "下に行を挿入",
|
||||||
@@ -1054,7 +1055,7 @@
|
|||||||
"inheritable": "継承",
|
"inheritable": "継承",
|
||||||
"related_notes_title": "このラベルが付いた他のノート",
|
"related_notes_title": "このラベルが付いた他のノート",
|
||||||
"attr_detail_title": "属性の詳細なタイトル",
|
"attr_detail_title": "属性の詳細なタイトル",
|
||||||
"target_note_title": "リレーションは、ソースノートとターゲットノート間の名前付き接続です。",
|
"target_note_title": "リレーションは、ソースノートと対象のノート間の名前付き接続です。",
|
||||||
"target_note": "対象のノート",
|
"target_note": "対象のノート",
|
||||||
"promoted_title": "プロモート属性はノートに目立つように表示されます。",
|
"promoted_title": "プロモート属性はノートに目立つように表示されます。",
|
||||||
"promoted": "プロモート",
|
"promoted": "プロモート",
|
||||||
@@ -1077,7 +1078,7 @@
|
|||||||
"sorted": "子ノートをアルファベット順に並べ替える",
|
"sorted": "子ノートをアルファベット順に並べ替える",
|
||||||
"sort_direction": "ASC(デフォルト)または DESC",
|
"sort_direction": "ASC(デフォルト)または DESC",
|
||||||
"sort_folders_first": "フォルダ(子を持つノート)を上にして並べる",
|
"sort_folders_first": "フォルダ(子を持つノート)を上にして並べる",
|
||||||
"top": "指定されたノートをその親ノートの一番上に表示します(ソートされた親ノートにのみ適用されます)",
|
"top": "指定されたノートをその親ノートの一番上に表示します(並べ替えらた親ノートにのみ適用されます)",
|
||||||
"hide_promoted_attributes": "このノートのプロモート属性を非表示にする",
|
"hide_promoted_attributes": "このノートのプロモート属性を非表示にする",
|
||||||
"read_only": "エディターは読み取り専用モードです。テキストとコードノートのみ機能します。",
|
"read_only": "エディターは読み取り専用モードです。テキストとコードノートのみ機能します。",
|
||||||
"auto_read_only_disabled": "テキスト/コードノートは、サイズが大きすぎる場合、自動的に読み取りモードに設定されます。このラベルをノートに追加することで、ノートごとにこの動作を無効にすることができます",
|
"auto_read_only_disabled": "テキスト/コードノートは、サイズが大きすぎる場合、自動的に読み取りモードに設定されます。このラベルをノートに追加することで、ノートごとにこの動作を無効にすることができます",
|
||||||
@@ -1151,13 +1152,13 @@
|
|||||||
"print_page_size": "PDF にエクスポートするときに、ページのサイズを変更します。サポートされる値: <code>A0</code>, <code>A1</code>, <code>A2</code>, <code>A3</code>, <code>A4</code>, <code>A5</code>, <code>A6</code>, <code>Legal</code>, <code>Letter</code>, <code>Tabloid</code>, <code>Ledger</code>。"
|
"print_page_size": "PDF にエクスポートするときに、ページのサイズを変更します。サポートされる値: <code>A0</code>, <code>A1</code>, <code>A2</code>, <code>A3</code>, <code>A4</code>, <code>A5</code>, <code>A6</code>, <code>Legal</code>, <code>Letter</code>, <code>Tabloid</code>, <code>Ledger</code>。"
|
||||||
},
|
},
|
||||||
"link_context_menu": {
|
"link_context_menu": {
|
||||||
"open_note_in_popup": "クイックエディット",
|
"open_note_in_popup": "クイック編集",
|
||||||
"open_note_in_new_tab": "新しいタブでノートを開く",
|
"open_note_in_new_tab": "新しいタブでノートを開く",
|
||||||
"open_note_in_new_split": "新しく分割してノートを開く",
|
"open_note_in_new_split": "新しく分割してノートを開く",
|
||||||
"open_note_in_new_window": "新しいウィンドウでノートを開く"
|
"open_note_in_new_window": "新しいウィンドウでノートを開く"
|
||||||
},
|
},
|
||||||
"note_tooltip": {
|
"note_tooltip": {
|
||||||
"quick-edit": "クイックエディット",
|
"quick-edit": "クイック編集",
|
||||||
"note-has-been-deleted": "ノートは削除されました。"
|
"note-has-been-deleted": "ノートは削除されました。"
|
||||||
},
|
},
|
||||||
"protect_note": {
|
"protect_note": {
|
||||||
@@ -1199,7 +1200,7 @@
|
|||||||
"collapse-title": "ノートツリーを折りたたむ",
|
"collapse-title": "ノートツリーを折りたたむ",
|
||||||
"scroll-active-title": "アクティブノートまでスクロール",
|
"scroll-active-title": "アクティブノートまでスクロール",
|
||||||
"tree-settings-title": "ツリーの設定",
|
"tree-settings-title": "ツリーの設定",
|
||||||
"hide-archived-notes": "アーカイブノートを隠す",
|
"hide-archived-notes": "アーカイブノートを非表示",
|
||||||
"automatically-collapse-notes": "ノートを自動的に折りたたむ",
|
"automatically-collapse-notes": "ノートを自動的に折りたたむ",
|
||||||
"automatically-collapse-notes-title": "一定期間使用されないと、ツリーを整理するためにノートは折りたたまれます。",
|
"automatically-collapse-notes-title": "一定期間使用されないと、ツリーを整理するためにノートは折りたたまれます。",
|
||||||
"save-changes": "変更を保存して適用",
|
"save-changes": "変更を保存して適用",
|
||||||
@@ -1213,7 +1214,7 @@
|
|||||||
},
|
},
|
||||||
"bulk_actions": {
|
"bulk_actions": {
|
||||||
"bulk_actions": "一括操作",
|
"bulk_actions": "一括操作",
|
||||||
"affected_notes": "影響されたノート",
|
"affected_notes": "影響されるノート",
|
||||||
"include_descendants": "選択したノートの子ノートを含む",
|
"include_descendants": "選択したノートの子ノートを含む",
|
||||||
"available_actions": "利用可能なアクション",
|
"available_actions": "利用可能なアクション",
|
||||||
"chosen_actions": "選択されたアクション",
|
"chosen_actions": "選択されたアクション",
|
||||||
@@ -1759,7 +1760,7 @@
|
|||||||
"target_parent_note": "対象の親ノート",
|
"target_parent_note": "対象の親ノート",
|
||||||
"move_note_new_parent": "ノートに親が 1 つしかない場合は、ノートを新しい親に移動します (つまり、古いブランチが削除され、新しい親に新しいブランチが作成されます)",
|
"move_note_new_parent": "ノートに親が 1 つしかない場合は、ノートを新しい親に移動します (つまり、古いブランチが削除され、新しい親に新しいブランチが作成されます)",
|
||||||
"clone_note_new_parent": "ノートに複数のクローン/ブランチがある場合、ノートを新しい親にクローンします(どのブランチを削除すべきか不明なため)",
|
"clone_note_new_parent": "ノートに複数のクローン/ブランチがある場合、ノートを新しい親にクローンします(どのブランチを削除すべきか不明なため)",
|
||||||
"nothing_will_happen": "ノートをターゲットノートに移動できない場合は何も起こりません(つまり、ツリーサイクルが生じるため)",
|
"nothing_will_happen": "ノートを対象のノートに移動できない場合は何も起こりません(つまり、ツリーサイクルが生じるため)",
|
||||||
"to": "次へ"
|
"to": "次へ"
|
||||||
},
|
},
|
||||||
"onclick_button": {
|
"onclick_button": {
|
||||||
|
|||||||
@@ -556,7 +556,7 @@
|
|||||||
"dialog_title": "Zaimportuj Markdown",
|
"dialog_title": "Zaimportuj Markdown",
|
||||||
"import_button": "Import",
|
"import_button": "Import",
|
||||||
"import_success": "Treść Markdown została zaimportowana do dokumentu.",
|
"import_success": "Treść Markdown została zaimportowana do dokumentu.",
|
||||||
"modal_body_text": "Ze względu na piaskownicę przeglądarki nie jest możliwe bezpośrednie odczytanie schowka z JavaScript. Wklej Markdown do importu do poniższego pola tekstowego i kliknij przycisk Importuj"
|
"modal_body_text": "Ze względu na środowisko przeglądarki nie jest możliwe bezpośrednie odczytanie schowka z JavaScript. Wklej Markdown do importu do poniższego pola tekstowego i kliknij przycisk Importuj"
|
||||||
},
|
},
|
||||||
"limit": {
|
"limit": {
|
||||||
"limit": "Limit",
|
"limit": "Limit",
|
||||||
@@ -721,7 +721,7 @@
|
|||||||
"modal_body": "Wybierz typ / szablon notatki dla nowej notatki:",
|
"modal_body": "Wybierz typ / szablon notatki dla nowej notatki:",
|
||||||
"templates": "Szablony",
|
"templates": "Szablony",
|
||||||
"builtin_templates": "Wbudowane szablony",
|
"builtin_templates": "Wbudowane szablony",
|
||||||
"change_path_prompt": "Zmień, gdzie utworzyć nową notatkę:",
|
"change_path_prompt": "Zmień ścieżkę, gdzie utworzyć nową notatkę:",
|
||||||
"search_placeholder": "wyszukaj ścieżkę po nazwie (domyślna, jeśli pusta)"
|
"search_placeholder": "wyszukaj ścieżkę po nazwie (domyślna, jeśli pusta)"
|
||||||
},
|
},
|
||||||
"password_not_set": {
|
"password_not_set": {
|
||||||
|
|||||||
@@ -184,7 +184,8 @@
|
|||||||
},
|
},
|
||||||
"import-status": "匯入狀態",
|
"import-status": "匯入狀態",
|
||||||
"in-progress": "正在匯入:{{progress}}",
|
"in-progress": "正在匯入:{{progress}}",
|
||||||
"successful": "匯入成功。"
|
"successful": "匯入成功。",
|
||||||
|
"importZipRecommendation": "匯入 ZIP 檔案時,筆記層級將反映壓縮檔內的子目錄結構。"
|
||||||
},
|
},
|
||||||
"include_note": {
|
"include_note": {
|
||||||
"dialog_title": "內嵌筆記",
|
"dialog_title": "內嵌筆記",
|
||||||
|
|||||||
@@ -11,7 +11,8 @@
|
|||||||
},
|
},
|
||||||
"add_link": {
|
"add_link": {
|
||||||
"add_link": "Thêm liên kết",
|
"add_link": "Thêm liên kết",
|
||||||
"button_add_link": "Thêm liên kết"
|
"button_add_link": "Thêm liên kết",
|
||||||
|
"help_on_links": "Trợ giúp về các liên kết"
|
||||||
},
|
},
|
||||||
"bulk_actions": {
|
"bulk_actions": {
|
||||||
"other": "Khác"
|
"other": "Khác"
|
||||||
@@ -41,7 +42,13 @@
|
|||||||
"message": "Đã xảy ra lỗi nghiêm trọng ngăn ứng dụng client khởi động\n\n{{message}}\n\nĐiều này có khả năng bị gây ra bởi một script hoạt động không như mong đợi. Hãy thử khởi động ứng dụng ở chế độ an toàn và giải quyết vấn đề."
|
"message": "Đã xảy ra lỗi nghiêm trọng ngăn ứng dụng client khởi động\n\n{{message}}\n\nĐiều này có khả năng bị gây ra bởi một script hoạt động không như mong đợi. Hãy thử khởi động ứng dụng ở chế độ an toàn và giải quyết vấn đề."
|
||||||
},
|
},
|
||||||
"widget-error": {
|
"widget-error": {
|
||||||
"title": "Khởi tạo widget thất bại"
|
"title": "Khởi tạo widget thất bại",
|
||||||
|
"message-custom": "Tiện ích tùy chỉnh từ ghi chú với ID \"{{id}}\", tiêu đề \"{{title}}\" không thể khởi tạo vì:\n\n{{message}}",
|
||||||
|
"message-unknown": "Tiện ích chưa biết không thể được khởi tạo vì:\n\n{{message}}"
|
||||||
|
},
|
||||||
|
"bundle-error": {
|
||||||
|
"title": "Tải script tùy chọn thất bại",
|
||||||
|
"message": "Script từ ghi chú ID \"{{id}}\", tiêu đề \"{{title}}\" không thể chạy được vì:\n\n{{message}}"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"import": {
|
"import": {
|
||||||
|
|||||||
19
apps/client/src/utils/formatters.spec.ts
Normal file
19
apps/client/src/utils/formatters.spec.ts
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
import options from "../services/options";
|
||||||
|
import { formatDateTime, normalizeLocale } from "./formatters";
|
||||||
|
|
||||||
|
describe("formatters", () => {
|
||||||
|
it("tolerates incorrect locale", () => {
|
||||||
|
options.set("formattingLocale", "cn_TW");
|
||||||
|
|
||||||
|
expect(formatDateTime(new Date())).toBeTruthy();
|
||||||
|
expect(formatDateTime(new Date(), "full", "none")).toBeTruthy();
|
||||||
|
expect(formatDateTime(new Date(), "none", "full")).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("normalizes locale", () => {
|
||||||
|
expect(normalizeLocale("zh_CN")).toBe("zh-CN");
|
||||||
|
expect(normalizeLocale("cn")).toBe("zh-CN");
|
||||||
|
expect(normalizeLocale("tw")).toBe("zh-TW");
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -10,7 +10,7 @@ export function formatDateTime(date: string | Date | number | null | undefined,
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
const locale = options.get("formattingLocale") || options.get("locale") || navigator.language;
|
const locale = normalizeLocale(options.get("formattingLocale") || options.get("locale") || navigator.language);
|
||||||
|
|
||||||
let parsedDate;
|
let parsedDate;
|
||||||
if (typeof date === "string" || typeof date === "number") {
|
if (typeof date === "string" || typeof date === "number") {
|
||||||
@@ -26,15 +26,37 @@ export function formatDateTime(date: string | Date | number | null | undefined,
|
|||||||
|
|
||||||
if (timeStyle !== "none" && dateStyle !== "none") {
|
if (timeStyle !== "none" && dateStyle !== "none") {
|
||||||
// Format the date and time
|
// Format the date and time
|
||||||
const formatter = new Intl.DateTimeFormat(locale, { dateStyle, timeStyle });
|
try {
|
||||||
return formatter.format(parsedDate);
|
const formatter = new Intl.DateTimeFormat(locale, { dateStyle, timeStyle });
|
||||||
|
return formatter.format(parsedDate);
|
||||||
|
} catch (e) {
|
||||||
|
const formatter = new Intl.DateTimeFormat(undefined, { dateStyle, timeStyle });
|
||||||
|
return formatter.format(parsedDate);
|
||||||
|
}
|
||||||
} else if (timeStyle === "none" && dateStyle !== "none") {
|
} else if (timeStyle === "none" && dateStyle !== "none") {
|
||||||
// Format only the date
|
// Format only the date
|
||||||
return parsedDate.toLocaleDateString(locale, { dateStyle });
|
try {
|
||||||
|
return parsedDate.toLocaleDateString(locale, { dateStyle });
|
||||||
|
} catch (e) {
|
||||||
|
return parsedDate.toLocaleDateString(undefined, { dateStyle });
|
||||||
|
}
|
||||||
} else if (dateStyle === "none" && timeStyle !== "none") {
|
} else if (dateStyle === "none" && timeStyle !== "none") {
|
||||||
// Format only the time
|
// Format only the time
|
||||||
return parsedDate.toLocaleTimeString(locale, { timeStyle });
|
try {
|
||||||
|
return parsedDate.toLocaleTimeString(locale, { timeStyle });
|
||||||
|
} catch (e) {
|
||||||
|
return parsedDate.toLocaleTimeString(undefined, { timeStyle });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new Error("Incorrect state.");
|
throw new Error("Incorrect state.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function normalizeLocale(locale: string) {
|
||||||
|
locale = locale.replaceAll("_", "-");
|
||||||
|
switch (locale) {
|
||||||
|
case "cn": return "zh-CN";
|
||||||
|
case "tw": return "zh-TW";
|
||||||
|
default: return locale;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
.floating-buttons-children,
|
.floating-buttons-children,
|
||||||
.show-floating-buttons {
|
.show-floating-buttons {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: var(--floating-buttons-vert-offset, 10px);
|
top: var(--floating-buttons-vert-offset, 14px);
|
||||||
inset-inline-end: var(--floating-buttons-horiz-offset, 10px);
|
inset-inline-end: var(--floating-buttons-horiz-offset, 10px);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
|||||||
@@ -47,8 +47,9 @@ export default class RightDropdownButtonWidget extends BasicWidget {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
this.$tooltip = this.$widget.find(".tooltip-trigger").attr("title", this.title);
|
this.$widget.attr("title", this.title);
|
||||||
this.tooltip = new Tooltip(this.$tooltip[0], {
|
this.tooltip = Tooltip.getOrCreateInstance(this.$widget[0], {
|
||||||
|
trigger: "hover",
|
||||||
placement: handleRightToLeftPlacement(this.settings.titlePlacement),
|
placement: handleRightToLeftPlacement(this.settings.titlePlacement),
|
||||||
fallbackPlacements: [ handleRightToLeftPlacement(this.settings.titlePlacement) ]
|
fallbackPlacements: [ handleRightToLeftPlacement(this.settings.titlePlacement) ]
|
||||||
});
|
});
|
||||||
@@ -56,9 +57,7 @@ export default class RightDropdownButtonWidget extends BasicWidget {
|
|||||||
this.$widget
|
this.$widget
|
||||||
.find(".right-dropdown-button")
|
.find(".right-dropdown-button")
|
||||||
.addClass(this.iconClass)
|
.addClass(this.iconClass)
|
||||||
.on("click", () => this.tooltip.hide())
|
.on("click", () => this.tooltip.hide());
|
||||||
.on("mouseenter", () => this.tooltip.show())
|
|
||||||
.on("mouseleave", () => this.tooltip.hide());
|
|
||||||
|
|
||||||
this.$widget.on("show.bs.dropdown", async () => {
|
this.$widget.on("show.bs.dropdown", async () => {
|
||||||
await this.dropdownShown();
|
await this.dropdownShown();
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ export const LOCALE_MAPPINGS: Record<DISPLAYABLE_LOCALE_IDS, (() => Promise<{ de
|
|||||||
de: () => import("@fullcalendar/core/locales/de"),
|
de: () => import("@fullcalendar/core/locales/de"),
|
||||||
es: () => import("@fullcalendar/core/locales/es"),
|
es: () => import("@fullcalendar/core/locales/es"),
|
||||||
fr: () => import("@fullcalendar/core/locales/fr"),
|
fr: () => import("@fullcalendar/core/locales/fr"),
|
||||||
|
it: () => import("@fullcalendar/core/locales/it"),
|
||||||
cn: () => import("@fullcalendar/core/locales/zh-cn"),
|
cn: () => import("@fullcalendar/core/locales/zh-cn"),
|
||||||
tw: () => import("@fullcalendar/core/locales/zh-tw"),
|
tw: () => import("@fullcalendar/core/locales/zh-tw"),
|
||||||
ro: () => import("@fullcalendar/core/locales/ro"),
|
ro: () => import("@fullcalendar/core/locales/ro"),
|
||||||
|
|||||||
@@ -141,7 +141,11 @@ function NoteContent({ note, trim, noChildrenList, highlightedTokens }: { note:
|
|||||||
})
|
})
|
||||||
.then(({ $renderedContent, type }) => {
|
.then(({ $renderedContent, type }) => {
|
||||||
if (!contentRef.current) return;
|
if (!contentRef.current) return;
|
||||||
contentRef.current.replaceChildren(...$renderedContent);
|
if ($renderedContent[0].innerHTML) {
|
||||||
|
contentRef.current.replaceChildren(...$renderedContent);
|
||||||
|
} else {
|
||||||
|
contentRef.current.replaceChildren();
|
||||||
|
}
|
||||||
contentRef.current.classList.add(`type-${type}`);
|
contentRef.current.classList.add(`type-${type}`);
|
||||||
highlightSearch(contentRef.current);
|
highlightSearch(contentRef.current);
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -57,17 +57,19 @@ const TPL = /*html*/`\
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<div class="modal-dialog modal-lg" role="document">
|
<div class="quick-edit-dialog-wrapper">
|
||||||
<div class="modal-content">
|
<div class="modal-dialog modal-lg" role="document">
|
||||||
<div class="modal-header">
|
<div class="modal-content">
|
||||||
<div class="modal-title">
|
<div class="modal-header">
|
||||||
<!-- This is where the first child will be injected -->
|
<div class="modal-title">
|
||||||
|
<!-- This is where the first child will be injected -->
|
||||||
|
</div>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<!-- This is where all but the first child will be injected. -->
|
<!-- This is where all but the first child will be injected. -->
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -79,6 +81,7 @@ export default class PopupEditorDialog extends Container<BasicWidget> {
|
|||||||
private noteContext: NoteContext;
|
private noteContext: NoteContext;
|
||||||
private $modalHeader!: JQuery<HTMLElement>;
|
private $modalHeader!: JQuery<HTMLElement>;
|
||||||
private $modalBody!: JQuery<HTMLElement>;
|
private $modalBody!: JQuery<HTMLElement>;
|
||||||
|
private $wrapper!: JQuery<HTMLDivElement>;
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
@@ -93,6 +96,7 @@ export default class PopupEditorDialog extends Container<BasicWidget> {
|
|||||||
const $newWidget = $(TPL);
|
const $newWidget = $(TPL);
|
||||||
this.$modalHeader = $newWidget.find(".modal-title");
|
this.$modalHeader = $newWidget.find(".modal-title");
|
||||||
this.$modalBody = $newWidget.find(".modal-body");
|
this.$modalBody = $newWidget.find(".modal-body");
|
||||||
|
this.$wrapper = $newWidget.find(".quick-edit-dialog-wrapper");
|
||||||
|
|
||||||
const children = this.$widget.children();
|
const children = this.$widget.children();
|
||||||
this.$modalHeader.append(children[0]);
|
this.$modalHeader.append(children[0]);
|
||||||
@@ -112,6 +116,21 @@ export default class PopupEditorDialog extends Container<BasicWidget> {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const colorClass = this.noteContext.note?.getColorClass();
|
||||||
|
const wrapperElement = this.$wrapper.get(0)!;
|
||||||
|
|
||||||
|
if (colorClass) {
|
||||||
|
wrapperElement.className = "quick-edit-dialog-wrapper " + colorClass;
|
||||||
|
} else {
|
||||||
|
wrapperElement.className = "quick-edit-dialog-wrapper";
|
||||||
|
}
|
||||||
|
|
||||||
|
const customHue = getComputedStyle(wrapperElement).getPropertyValue("--custom-color-hue");
|
||||||
|
if (customHue) {
|
||||||
|
/* Apply the tinted-dialog class only if the custom color CSS class specifies a hue */
|
||||||
|
wrapperElement.classList.add("tinted-quick-edit-dialog");
|
||||||
|
}
|
||||||
|
|
||||||
const activeEl = document.activeElement;
|
const activeEl = document.activeElement;
|
||||||
if (activeEl && "blur" in activeEl) {
|
if (activeEl && "blur" in activeEl) {
|
||||||
(activeEl as HTMLElement).blur();
|
(activeEl as HTMLElement).blur();
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ export default class NoteWrapperWidget extends FlexContainer<BasicWidget> {
|
|||||||
|
|
||||||
this.$widget.addClass(utils.getNoteTypeClass(note.type));
|
this.$widget.addClass(utils.getNoteTypeClass(note.type));
|
||||||
this.$widget.addClass(utils.getMimeTypeClass(note.mime));
|
this.$widget.addClass(utils.getMimeTypeClass(note.mime));
|
||||||
|
this.$widget.toggleClass("options", note.isOptions());
|
||||||
this.$widget.toggleClass("protected", note.isProtected);
|
this.$widget.toggleClass("protected", note.isProtected);
|
||||||
|
|
||||||
const noteLanguage = note?.getLabelValue("language");
|
const noteLanguage = note?.getLabelValue("language");
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { useNoteContext, useTriliumOption } from "../react/hooks";
|
import { useTriliumOption } from "../react/hooks";
|
||||||
|
import { TabContext } from "./ribbon-interface";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the editing toolbar when the CKEditor is in decoupled mode.
|
* Handles the editing toolbar when the CKEditor is in decoupled mode.
|
||||||
@@ -6,19 +7,13 @@ import { useNoteContext, useTriliumOption } from "../react/hooks";
|
|||||||
* This toolbar is only enabled if the user has selected the classic CKEditor.
|
* This toolbar is only enabled if the user has selected the classic CKEditor.
|
||||||
*
|
*
|
||||||
* The ribbon item is active by default for text notes, as long as they are not in read-only mode.
|
* The ribbon item is active by default for text notes, as long as they are not in read-only mode.
|
||||||
*
|
*
|
||||||
* ! The toolbar is not only used in the ribbon, but also in the quick edit feature.
|
* ! The toolbar is not only used in the ribbon, but also in the quick edit feature.
|
||||||
*/
|
*/
|
||||||
export default function FormattingToolbar({ hidden }: { hidden?: boolean }) {
|
export default function FormattingToolbar({ hidden }: TabContext) {
|
||||||
const [ textNoteEditorType ] = useTriliumOption("textNoteEditorType");
|
const [ textNoteEditorType ] = useTriliumOption("textNoteEditorType");
|
||||||
|
|
||||||
return (textNoteEditorType === "ckeditor-classic" &&
|
return (textNoteEditorType === "ckeditor-classic" &&
|
||||||
<div className={`classic-toolbar-widget ${hidden ? "hidden-ext" : ""}`} />
|
<div className={`classic-toolbar-widget ${hidden ? "hidden-ext" : ""}`} />
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
export function PopupEditorFormattingToolbar() {
|
|
||||||
// TODO: Integrate this directly once we migrate away from class components.
|
|
||||||
const { note } = useNoteContext();
|
|
||||||
return <FormattingToolbar hidden={note?.type !== "text"} />;
|
|
||||||
}
|
|
||||||
@@ -46,7 +46,7 @@ function NoteContextMenu({ note, noteContext }: { note: FNote, noteContext?: Not
|
|||||||
const parentComponent = useContext(ParentComponent);
|
const parentComponent = useContext(ParentComponent);
|
||||||
const canBeConvertedToAttachment = note?.isEligibleForConversionToAttachment();
|
const canBeConvertedToAttachment = note?.isEligibleForConversionToAttachment();
|
||||||
const isSearchable = ["text", "code", "book", "mindMap", "doc"].includes(note.type);
|
const isSearchable = ["text", "code", "book", "mindMap", "doc"].includes(note.type);
|
||||||
const isInOptions = note.noteId.startsWith("_options");
|
const isInOptionsOrHelp = note?.noteId.startsWith("_options") || note?.noteId.startsWith("_help");
|
||||||
const isPrintable = ["text", "code"].includes(note.type) || (note.type === "book" && note.getLabelValue("viewType") === "presentation");
|
const isPrintable = ["text", "code"].includes(note.type) || (note.type === "book" && note.getLabelValue("viewType") === "presentation");
|
||||||
const isElectron = getIsElectron();
|
const isElectron = getIsElectron();
|
||||||
const isMac = getIsMac();
|
const isMac = getIsMac();
|
||||||
@@ -69,10 +69,10 @@ function NoteContextMenu({ note, noteContext }: { note: FNote, noteContext?: Not
|
|||||||
<FormDropdownDivider />
|
<FormDropdownDivider />
|
||||||
|
|
||||||
<CommandItem icon="bx bx-import" text={t("note_actions.import_files")}
|
<CommandItem icon="bx bx-import" text={t("note_actions.import_files")}
|
||||||
disabled={isInOptions || note.type === "search"}
|
disabled={isInOptionsOrHelp || note.type === "search"}
|
||||||
command={() => parentComponent?.triggerCommand("showImportDialog", { noteId: note.noteId })} />
|
command={() => parentComponent?.triggerCommand("showImportDialog", { noteId: note.noteId })} />
|
||||||
<CommandItem icon="bx bx-export" text={t("note_actions.export_note")}
|
<CommandItem icon="bx bx-export" text={t("note_actions.export_note")}
|
||||||
disabled={isInOptions || note.noteId === "_backendLog"}
|
disabled={isInOptionsOrHelp || note.noteId === "_backendLog"}
|
||||||
command={() => noteContext?.notePath && parentComponent?.triggerCommand("showExportDialog", {
|
command={() => noteContext?.notePath && parentComponent?.triggerCommand("showExportDialog", {
|
||||||
notePath: noteContext.notePath,
|
notePath: noteContext.notePath,
|
||||||
defaultType: "single"
|
defaultType: "single"
|
||||||
@@ -84,14 +84,14 @@ function NoteContextMenu({ note, noteContext }: { note: FNote, noteContext?: Not
|
|||||||
<CommandItem command="showNoteSource" icon="bx bx-code" disabled={!hasSource} text={t("note_actions.note_source")} />
|
<CommandItem command="showNoteSource" icon="bx bx-code" disabled={!hasSource} text={t("note_actions.note_source")} />
|
||||||
<FormDropdownDivider />
|
<FormDropdownDivider />
|
||||||
|
|
||||||
<CommandItem command="forceSaveRevision" icon="bx bx-save" disabled={isInOptions} text={t("note_actions.save_revision")} />
|
<CommandItem command="forceSaveRevision" icon="bx bx-save" disabled={isInOptionsOrHelp} text={t("note_actions.save_revision")} />
|
||||||
<CommandItem icon="bx bx-trash destructive-action-icon" text={t("note_actions.delete_note")} destructive
|
<CommandItem icon="bx bx-trash destructive-action-icon" text={t("note_actions.delete_note")} destructive
|
||||||
disabled={isInOptions}
|
disabled={isInOptionsOrHelp}
|
||||||
command={() => branches.deleteNotes([note.getParentBranches()[0].branchId])}
|
command={() => branches.deleteNotes([note.getParentBranches()[0].branchId])}
|
||||||
/>
|
/>
|
||||||
<FormDropdownDivider />
|
<FormDropdownDivider />
|
||||||
|
|
||||||
<CommandItem command="showAttachments" icon="bx bx-paperclip" disabled={isInOptions} text={t("note_actions.note_attachments")} />
|
<CommandItem command="showAttachments" icon="bx bx-paperclip" disabled={isInOptionsOrHelp} text={t("note_actions.note_attachments")} />
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,163 +1,15 @@
|
|||||||
import { useCallback, useEffect, useMemo, useRef, useState } from "preact/hooks";
|
import { useCallback, useEffect, useMemo, useRef, useState } from "preact/hooks";
|
||||||
import { t } from "../../services/i18n";
|
|
||||||
import { useNoteContext, useNoteProperty, useStaticTooltipWithKeyboardShortcut, useTriliumEvents } from "../react/hooks";
|
import { useNoteContext, useNoteProperty, useStaticTooltipWithKeyboardShortcut, useTriliumEvents } from "../react/hooks";
|
||||||
import "./style.css";
|
import "./style.css";
|
||||||
import { VNode } from "preact";
|
|
||||||
import BasicPropertiesTab from "./BasicPropertiesTab";
|
|
||||||
import FormattingToolbar from "./FormattingToolbar";
|
|
||||||
import { numberObjectsInPlace } from "../../services/utils";
|
import { numberObjectsInPlace } from "../../services/utils";
|
||||||
import { TabContext } from "./ribbon-interface";
|
|
||||||
import options from "../../services/options";
|
|
||||||
import { EventNames } from "../../components/app_context";
|
import { EventNames } from "../../components/app_context";
|
||||||
import FNote from "../../entities/fnote";
|
|
||||||
import ScriptTab from "./ScriptTab";
|
|
||||||
import EditedNotesTab from "./EditedNotesTab";
|
|
||||||
import NotePropertiesTab from "./NotePropertiesTab";
|
|
||||||
import NoteInfoTab from "./NoteInfoTab";
|
|
||||||
import SimilarNotesTab from "./SimilarNotesTab";
|
|
||||||
import FilePropertiesTab from "./FilePropertiesTab";
|
|
||||||
import ImagePropertiesTab from "./ImagePropertiesTab";
|
|
||||||
import NotePathsTab from "./NotePathsTab";
|
|
||||||
import NoteMapTab from "./NoteMapTab";
|
|
||||||
import OwnedAttributesTab from "./OwnedAttributesTab";
|
|
||||||
import InheritedAttributesTab from "./InheritedAttributesTab";
|
|
||||||
import CollectionPropertiesTab from "./CollectionPropertiesTab";
|
|
||||||
import SearchDefinitionTab from "./SearchDefinitionTab";
|
|
||||||
import NoteActions from "./NoteActions";
|
import NoteActions from "./NoteActions";
|
||||||
import { KeyboardActionNames } from "@triliumnext/commons";
|
import { KeyboardActionNames } from "@triliumnext/commons";
|
||||||
|
import { RIBBON_TAB_DEFINITIONS } from "./RibbonDefinition";
|
||||||
|
import { TabConfiguration, TitleContext } from "./ribbon-interface";
|
||||||
|
|
||||||
interface TitleContext {
|
const TAB_CONFIGURATION = numberObjectsInPlace<TabConfiguration>(RIBBON_TAB_DEFINITIONS);
|
||||||
note: FNote | null | undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface TabConfiguration {
|
|
||||||
title: string | ((context: TitleContext) => string);
|
|
||||||
icon: string;
|
|
||||||
content: (context: TabContext) => VNode | false;
|
|
||||||
show: boolean | ((context: TitleContext) => boolean | null | undefined);
|
|
||||||
toggleCommand?: KeyboardActionNames;
|
|
||||||
activate?: boolean | ((context: TitleContext) => boolean);
|
|
||||||
/**
|
|
||||||
* By default the tab content will not be rendered unless the tab is active (i.e. selected by the user). Setting to `true` will ensure that the tab is rendered even when inactive, for cases where the tab needs to be accessible at all times (e.g. for the detached editor toolbar) or if event handling is needed.
|
|
||||||
*/
|
|
||||||
stayInDom?: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
const TAB_CONFIGURATION = numberObjectsInPlace<TabConfiguration>([
|
|
||||||
{
|
|
||||||
title: t("classic_editor_toolbar.title"),
|
|
||||||
icon: "bx bx-text",
|
|
||||||
show: ({ note }) => note?.type === "text" && options.get("textNoteEditorType") === "ckeditor-classic",
|
|
||||||
toggleCommand: "toggleRibbonTabClassicEditor",
|
|
||||||
content: FormattingToolbar,
|
|
||||||
activate: true,
|
|
||||||
stayInDom: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: ({ note }) => note?.isTriliumSqlite() ? t("script_executor.query") : t("script_executor.script"),
|
|
||||||
icon: "bx bx-play",
|
|
||||||
content: ScriptTab,
|
|
||||||
activate: true,
|
|
||||||
show: ({ note }) => note &&
|
|
||||||
(note.isTriliumScript() || note.isTriliumSqlite()) &&
|
|
||||||
(note.hasLabel("executeDescription") || note.hasLabel("executeButton"))
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: t("search_definition.search_parameters"),
|
|
||||||
icon: "bx bx-search",
|
|
||||||
content: SearchDefinitionTab,
|
|
||||||
activate: true,
|
|
||||||
show: ({ note }) => note?.type === "search"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: t("edited_notes.title"),
|
|
||||||
icon: "bx bx-calendar-edit",
|
|
||||||
content: EditedNotesTab,
|
|
||||||
show: ({ note }) => note?.hasOwnedLabel("dateNote"),
|
|
||||||
activate: ({ note }) => (note?.getPromotedDefinitionAttributes().length === 0 || !options.is("promotedAttributesOpenInRibbon")) && options.is("editedNotesOpenInRibbon")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: t("book_properties.book_properties"),
|
|
||||||
icon: "bx bx-book",
|
|
||||||
content: CollectionPropertiesTab,
|
|
||||||
show: ({ note }) => note?.type === "book" || note?.type === "search",
|
|
||||||
toggleCommand: "toggleRibbonTabBookProperties"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: t("note_properties.info"),
|
|
||||||
icon: "bx bx-info-square",
|
|
||||||
content: NotePropertiesTab,
|
|
||||||
show: ({ note }) => !!note?.getLabelValue("pageUrl"),
|
|
||||||
activate: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: t("file_properties.title"),
|
|
||||||
icon: "bx bx-file",
|
|
||||||
content: FilePropertiesTab,
|
|
||||||
show: ({ note }) => note?.type === "file",
|
|
||||||
toggleCommand: "toggleRibbonTabFileProperties",
|
|
||||||
activate: ({ note }) => note?.mime !== "application/pdf"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: t("image_properties.title"),
|
|
||||||
icon: "bx bx-image",
|
|
||||||
content: ImagePropertiesTab,
|
|
||||||
show: ({ note }) => note?.type === "image",
|
|
||||||
toggleCommand: "toggleRibbonTabImageProperties",
|
|
||||||
activate: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
// BasicProperties
|
|
||||||
title: t("basic_properties.basic_properties"),
|
|
||||||
icon: "bx bx-slider",
|
|
||||||
content: BasicPropertiesTab,
|
|
||||||
show: ({note}) => !note?.isLaunchBarConfig(),
|
|
||||||
toggleCommand: "toggleRibbonTabBasicProperties"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: t("owned_attribute_list.owned_attributes"),
|
|
||||||
icon: "bx bx-list-check",
|
|
||||||
content: OwnedAttributesTab,
|
|
||||||
show: ({note}) => !note?.isLaunchBarConfig(),
|
|
||||||
toggleCommand: "toggleRibbonTabOwnedAttributes",
|
|
||||||
stayInDom: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: t("inherited_attribute_list.title"),
|
|
||||||
icon: "bx bx-list-plus",
|
|
||||||
content: InheritedAttributesTab,
|
|
||||||
show: ({note}) => !note?.isLaunchBarConfig(),
|
|
||||||
toggleCommand: "toggleRibbonTabInheritedAttributes"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: t("note_paths.title"),
|
|
||||||
icon: "bx bx-collection",
|
|
||||||
content: NotePathsTab,
|
|
||||||
show: true,
|
|
||||||
toggleCommand: "toggleRibbonTabNotePaths"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: t("note_map.title"),
|
|
||||||
icon: "bx bxs-network-chart",
|
|
||||||
content: NoteMapTab,
|
|
||||||
show: true,
|
|
||||||
toggleCommand: "toggleRibbonTabNoteMap"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: t("similar_notes.title"),
|
|
||||||
icon: "bx bx-bar-chart",
|
|
||||||
show: ({ note }) => note?.type !== "search" && !note?.isLabelTruthy("similarNotesWidgetDisabled"),
|
|
||||||
content: SimilarNotesTab,
|
|
||||||
toggleCommand: "toggleRibbonTabSimilarNotes"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: t("note_info_widget.title"),
|
|
||||||
icon: "bx bx-info-circle",
|
|
||||||
show: ({ note }) => !!note,
|
|
||||||
content: NoteInfoTab,
|
|
||||||
toggleCommand: "toggleRibbonTabNoteInfo"
|
|
||||||
}
|
|
||||||
]);
|
|
||||||
|
|
||||||
export default function Ribbon() {
|
export default function Ribbon() {
|
||||||
const { note, ntxId, hoistedNoteId, notePath, noteContext, componentId } = useNoteContext();
|
const { note, ntxId, hoistedNoteId, notePath, noteContext, componentId } = useNoteContext();
|
||||||
|
|||||||
134
apps/client/src/widgets/ribbon/RibbonDefinition.ts
Normal file
134
apps/client/src/widgets/ribbon/RibbonDefinition.ts
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
import ScriptTab from "./ScriptTab";
|
||||||
|
import EditedNotesTab from "./EditedNotesTab";
|
||||||
|
import NotePropertiesTab from "./NotePropertiesTab";
|
||||||
|
import NoteInfoTab from "./NoteInfoTab";
|
||||||
|
import SimilarNotesTab from "./SimilarNotesTab";
|
||||||
|
import FilePropertiesTab from "./FilePropertiesTab";
|
||||||
|
import ImagePropertiesTab from "./ImagePropertiesTab";
|
||||||
|
import NotePathsTab from "./NotePathsTab";
|
||||||
|
import NoteMapTab from "./NoteMapTab";
|
||||||
|
import OwnedAttributesTab from "./OwnedAttributesTab";
|
||||||
|
import InheritedAttributesTab from "./InheritedAttributesTab";
|
||||||
|
import CollectionPropertiesTab from "./CollectionPropertiesTab";
|
||||||
|
import SearchDefinitionTab from "./SearchDefinitionTab";
|
||||||
|
import BasicPropertiesTab from "./BasicPropertiesTab";
|
||||||
|
import FormattingToolbar from "./FormattingToolbar";
|
||||||
|
import options from "../../services/options";
|
||||||
|
import { t } from "../../services/i18n";
|
||||||
|
import { TabConfiguration } from "./ribbon-interface";
|
||||||
|
|
||||||
|
export const RIBBON_TAB_DEFINITIONS: TabConfiguration[] = [
|
||||||
|
{
|
||||||
|
title: t("classic_editor_toolbar.title"),
|
||||||
|
icon: "bx bx-text",
|
||||||
|
show: ({ note }) => note?.type === "text" && options.get("textNoteEditorType") === "ckeditor-classic",
|
||||||
|
toggleCommand: "toggleRibbonTabClassicEditor",
|
||||||
|
content: FormattingToolbar,
|
||||||
|
activate: true,
|
||||||
|
stayInDom: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: ({ note }) => note?.isTriliumSqlite() ? t("script_executor.query") : t("script_executor.script"),
|
||||||
|
icon: "bx bx-play",
|
||||||
|
content: ScriptTab,
|
||||||
|
activate: true,
|
||||||
|
show: ({ note }) => note &&
|
||||||
|
(note.isTriliumScript() || note.isTriliumSqlite()) &&
|
||||||
|
(note.hasLabel("executeDescription") || note.hasLabel("executeButton"))
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: t("search_definition.search_parameters"),
|
||||||
|
icon: "bx bx-search",
|
||||||
|
content: SearchDefinitionTab,
|
||||||
|
activate: true,
|
||||||
|
show: ({ note }) => note?.type === "search"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: t("edited_notes.title"),
|
||||||
|
icon: "bx bx-calendar-edit",
|
||||||
|
content: EditedNotesTab,
|
||||||
|
show: ({ note }) => note?.hasOwnedLabel("dateNote"),
|
||||||
|
activate: ({ note }) => (note?.getPromotedDefinitionAttributes().length === 0 || !options.is("promotedAttributesOpenInRibbon")) && options.is("editedNotesOpenInRibbon")
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: t("book_properties.book_properties"),
|
||||||
|
icon: "bx bx-book",
|
||||||
|
content: CollectionPropertiesTab,
|
||||||
|
show: ({ note }) => note?.type === "book" || note?.type === "search",
|
||||||
|
toggleCommand: "toggleRibbonTabBookProperties"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: t("note_properties.info"),
|
||||||
|
icon: "bx bx-info-square",
|
||||||
|
content: NotePropertiesTab,
|
||||||
|
show: ({ note }) => !!note?.getLabelValue("pageUrl"),
|
||||||
|
activate: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: t("file_properties.title"),
|
||||||
|
icon: "bx bx-file",
|
||||||
|
content: FilePropertiesTab,
|
||||||
|
show: ({ note }) => note?.type === "file",
|
||||||
|
toggleCommand: "toggleRibbonTabFileProperties",
|
||||||
|
activate: ({ note }) => note?.mime !== "application/pdf"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: t("image_properties.title"),
|
||||||
|
icon: "bx bx-image",
|
||||||
|
content: ImagePropertiesTab,
|
||||||
|
show: ({ note }) => note?.type === "image",
|
||||||
|
toggleCommand: "toggleRibbonTabImageProperties",
|
||||||
|
activate: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// BasicProperties
|
||||||
|
title: t("basic_properties.basic_properties"),
|
||||||
|
icon: "bx bx-slider",
|
||||||
|
content: BasicPropertiesTab,
|
||||||
|
show: ({note}) => !note?.isLaunchBarConfig(),
|
||||||
|
toggleCommand: "toggleRibbonTabBasicProperties"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: t("owned_attribute_list.owned_attributes"),
|
||||||
|
icon: "bx bx-list-check",
|
||||||
|
content: OwnedAttributesTab,
|
||||||
|
show: ({note}) => !note?.isLaunchBarConfig(),
|
||||||
|
toggleCommand: "toggleRibbonTabOwnedAttributes",
|
||||||
|
stayInDom: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: t("inherited_attribute_list.title"),
|
||||||
|
icon: "bx bx-list-plus",
|
||||||
|
content: InheritedAttributesTab,
|
||||||
|
show: ({note}) => !note?.isLaunchBarConfig(),
|
||||||
|
toggleCommand: "toggleRibbonTabInheritedAttributes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: t("note_paths.title"),
|
||||||
|
icon: "bx bx-collection",
|
||||||
|
content: NotePathsTab,
|
||||||
|
show: true,
|
||||||
|
toggleCommand: "toggleRibbonTabNotePaths"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: t("note_map.title"),
|
||||||
|
icon: "bx bxs-network-chart",
|
||||||
|
content: NoteMapTab,
|
||||||
|
show: true,
|
||||||
|
toggleCommand: "toggleRibbonTabNoteMap"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: t("similar_notes.title"),
|
||||||
|
icon: "bx bx-bar-chart",
|
||||||
|
show: ({ note }) => note?.type !== "search" && !note?.isLabelTruthy("similarNotesWidgetDisabled"),
|
||||||
|
content: SimilarNotesTab,
|
||||||
|
toggleCommand: "toggleRibbonTabSimilarNotes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: t("note_info_widget.title"),
|
||||||
|
icon: "bx bx-info-circle",
|
||||||
|
show: ({ note }) => !!note,
|
||||||
|
content: NoteInfoTab,
|
||||||
|
toggleCommand: "toggleRibbonTabNoteInfo"
|
||||||
|
}
|
||||||
|
];
|
||||||
@@ -115,7 +115,7 @@ function SearchOption({ note, title, titleIcon, children, help, attributeName, a
|
|||||||
additionalAttributesToDelete?: { type: "label" | "relation", name: string }[]
|
additionalAttributesToDelete?: { type: "label" | "relation", name: string }[]
|
||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<tr>
|
<tr className={attributeName}>
|
||||||
<td className="title-column">
|
<td className="title-column">
|
||||||
{titleIcon && <><Icon icon={titleIcon} />{" "}</>}
|
{titleIcon && <><Icon icon={titleIcon} />{" "}</>}
|
||||||
{title}
|
{title}
|
||||||
|
|||||||
174
apps/client/src/widgets/ribbon/SearchDefinitionTab.css
Normal file
174
apps/client/src/widgets/ribbon/SearchDefinitionTab.css
Normal file
@@ -0,0 +1,174 @@
|
|||||||
|
.search-setting-table {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 7px;
|
||||||
|
width: 100%;
|
||||||
|
border-collapse: separate;
|
||||||
|
border-spacing: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-setting-table div {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-setting-table .title-column {
|
||||||
|
/* minimal width so that table remains static sized and most space remains for middle column with settings */
|
||||||
|
width: 50px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-setting-table .button-column {
|
||||||
|
/* minimal width so that table remains static sized and most space remains for middle column with settings */
|
||||||
|
width: 50px;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-align: end;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-setting-table .button-column .dropdown {
|
||||||
|
display: inline-block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-setting-table .button-column .dropdown-menu {
|
||||||
|
white-space: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-setting-table .button-column > * {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.attribute-list hr {
|
||||||
|
height: 1px;
|
||||||
|
border-color: var(--main-border-color);
|
||||||
|
position: relative;
|
||||||
|
top: 4px;
|
||||||
|
margin-top: 5px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-definition-widget input:invalid {
|
||||||
|
border: 3px solid red;
|
||||||
|
}
|
||||||
|
|
||||||
|
.add-search-option button {
|
||||||
|
margin: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-header {
|
||||||
|
background-color: var(--accented-background-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-actions-container {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-evenly;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.mobile .search-definition-widget {
|
||||||
|
contain: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 720px) {
|
||||||
|
|
||||||
|
.search-setting-table {
|
||||||
|
display: block;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-setting-table tr {
|
||||||
|
padding: 0.5em 0;
|
||||||
|
border-bottom: 1px solid var(--main-border-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-setting-table tr,
|
||||||
|
.search-setting-table td {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-setting-table tbody {
|
||||||
|
display: block;
|
||||||
|
padding: 0 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-setting-table tbody:first-of-type {
|
||||||
|
display: block;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-setting-table .add-search-option {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-setting-table .add-search-option button {
|
||||||
|
font-size: 0.75em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-options tr,
|
||||||
|
.action-options tr {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-options tr > td > div {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 0.5em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-options input {
|
||||||
|
max-width: 75vw;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-setting-table .title-column {
|
||||||
|
width: unset;
|
||||||
|
margin-right: 0.5em;
|
||||||
|
min-width: 30%;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-setting-table .button-column {
|
||||||
|
flex-grow: 1;
|
||||||
|
justify-content: end;
|
||||||
|
overflow: hidden;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-setting-table .button-column .bx-help-circle {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-setting-table tr.orderBy td:nth-of-type(2) {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
overflow: hidden;
|
||||||
|
gap: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-setting-table tr.searchString td:nth-of-type(2) {
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-setting-table tr.searchString .button-column {
|
||||||
|
flex-grow: 0;
|
||||||
|
flex-shrink: 0;
|
||||||
|
width: 64px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-setting-table tr.ancestor > td > div {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-actions tr {
|
||||||
|
border-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-actions-container {
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-result-widget,
|
||||||
|
.note-list.list-view,
|
||||||
|
.note-list-wrapper {
|
||||||
|
overflow: unset;
|
||||||
|
height: unset !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -20,8 +20,9 @@ import bulk_action, { ACTION_GROUPS } from "../../services/bulk_action";
|
|||||||
import { FormListHeader, FormListItem } from "../react/FormList";
|
import { FormListHeader, FormListItem } from "../react/FormList";
|
||||||
import RenameNoteBulkAction from "../bulk_actions/note/rename_note";
|
import RenameNoteBulkAction from "../bulk_actions/note/rename_note";
|
||||||
import { getErrorMessage } from "../../services/utils";
|
import { getErrorMessage } from "../../services/utils";
|
||||||
|
import "./SearchDefinitionTab.css";
|
||||||
|
|
||||||
export default function SearchDefinitionTab({ note, ntxId }: TabContext) {
|
export default function SearchDefinitionTab({ note, ntxId, hidden }: TabContext) {
|
||||||
const parentComponent = useContext(ParentComponent);
|
const parentComponent = useContext(ParentComponent);
|
||||||
const [ searchOptions, setSearchOptions ] = useState<{ availableOptions: SearchOption[], activeOptions: SearchOption[] }>();
|
const [ searchOptions, setSearchOptions ] = useState<{ availableOptions: SearchOption[], activeOptions: SearchOption[] }>();
|
||||||
const [ error, setError ] = useState<{ message: string }>();
|
const [ error, setError ] = useState<{ message: string }>();
|
||||||
@@ -75,7 +76,7 @@ export default function SearchDefinitionTab({ note, ntxId }: TabContext) {
|
|||||||
return (
|
return (
|
||||||
<div className="search-definition-widget">
|
<div className="search-definition-widget">
|
||||||
<div className="search-settings">
|
<div className="search-settings">
|
||||||
{note &&
|
{note && !hidden &&
|
||||||
<table className="search-setting-table">
|
<table className="search-setting-table">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -110,10 +111,10 @@ export default function SearchDefinitionTab({ note, ntxId }: TabContext) {
|
|||||||
})}
|
})}
|
||||||
</tbody>
|
</tbody>
|
||||||
<BulkActionsList note={note} />
|
<BulkActionsList note={note} />
|
||||||
<tbody>
|
<tbody className="search-actions">
|
||||||
<tr>
|
<tr>
|
||||||
<td colSpan={3}>
|
<td colSpan={3}>
|
||||||
<div style={{ display: "flex", justifyContent: "space-evenly" }}>
|
<div className="search-actions-container">
|
||||||
<Button
|
<Button
|
||||||
icon="bx bx-search"
|
icon="bx bx-search"
|
||||||
text={t("search_definition.search_button")}
|
text={t("search_definition.search_button")}
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
import { ComponentChildren } from "preact";
|
||||||
|
import { useNoteContext } from "../../react/hooks";
|
||||||
|
import { TabContext, TitleContext } from "../ribbon-interface";
|
||||||
|
import { useEffect, useMemo, useState } from "preact/hooks";
|
||||||
|
import { RIBBON_TAB_DEFINITIONS } from "../RibbonDefinition";
|
||||||
|
|
||||||
|
interface StandaloneRibbonAdapterProps {
|
||||||
|
component: (props: TabContext) => ComponentChildren;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Takes in any ribbon tab component and renders it in standalone mod using the note context, thus requiring no inputs.
|
||||||
|
* Especially useful on mobile to detach components that would normally fit in the ribbon.
|
||||||
|
*/
|
||||||
|
export default function StandaloneRibbonAdapter({ component }: StandaloneRibbonAdapterProps) {
|
||||||
|
const Component = component;
|
||||||
|
const { note, ntxId, hoistedNoteId, notePath, noteContext, componentId } = useNoteContext();
|
||||||
|
const definition = useMemo(() => RIBBON_TAB_DEFINITIONS.find(def => def.content === component), [ component ]);
|
||||||
|
const [ shown, setShown ] = useState(unwrapShown(definition?.show, { note }));
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
setShown(unwrapShown(definition?.show, { note }));
|
||||||
|
}, [ note ]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Component
|
||||||
|
note={note}
|
||||||
|
hidden={!shown}
|
||||||
|
ntxId={ntxId}
|
||||||
|
hoistedNoteId={hoistedNoteId}
|
||||||
|
notePath={notePath}
|
||||||
|
noteContext={noteContext}
|
||||||
|
componentId={componentId}
|
||||||
|
activate={() => {}}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function unwrapShown(value: boolean | ((context: TitleContext) => boolean | null | undefined) | undefined, context: TitleContext) {
|
||||||
|
if (!value) return true;
|
||||||
|
if (typeof value === "boolean") return value;
|
||||||
|
return !!value(context);
|
||||||
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
|
import { KeyboardActionNames } from "@triliumnext/commons";
|
||||||
import NoteContext from "../../components/note_context";
|
import NoteContext from "../../components/note_context";
|
||||||
import FNote from "../../entities/fnote";
|
import FNote from "../../entities/fnote";
|
||||||
|
import { VNode } from "preact";
|
||||||
|
|
||||||
export interface TabContext {
|
export interface TabContext {
|
||||||
note: FNote | null | undefined;
|
note: FNote | null | undefined;
|
||||||
@@ -11,3 +13,20 @@ export interface TabContext {
|
|||||||
componentId: string;
|
componentId: string;
|
||||||
activate(): void;
|
activate(): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface TitleContext {
|
||||||
|
note: FNote | null | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TabConfiguration {
|
||||||
|
title: string | ((context: TitleContext) => string);
|
||||||
|
icon: string;
|
||||||
|
content: (context: TabContext) => VNode | false;
|
||||||
|
show: boolean | ((context: TitleContext) => boolean | null | undefined);
|
||||||
|
toggleCommand?: KeyboardActionNames;
|
||||||
|
activate?: boolean | ((context: TitleContext) => boolean);
|
||||||
|
/**
|
||||||
|
* By default the tab content will not be rendered unless the tab is active (i.e. selected by the user). Setting to `true` will ensure that the tab is rendered even when inactive, for cases where the tab needs to be accessible at all times (e.g. for the detached editor toolbar) or if event handling is needed.
|
||||||
|
*/
|
||||||
|
stayInDom?: boolean;
|
||||||
|
}
|
||||||
|
|||||||
@@ -376,67 +376,6 @@ body[dir=rtl] .attribute-list-editor {
|
|||||||
}
|
}
|
||||||
/* #endregion */
|
/* #endregion */
|
||||||
|
|
||||||
/* #region Search definition */
|
|
||||||
.search-setting-table {
|
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 7px;
|
|
||||||
width: 100%;
|
|
||||||
border-collapse: separate;
|
|
||||||
border-spacing: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search-setting-table div {
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search-setting-table .title-column {
|
|
||||||
/* minimal width so that table remains static sized and most space remains for middle column with settings */
|
|
||||||
width: 50px;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search-setting-table .button-column {
|
|
||||||
/* minimal width so that table remains static sized and most space remains for middle column with settings */
|
|
||||||
width: 50px;
|
|
||||||
white-space: nowrap;
|
|
||||||
text-align: end;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search-setting-table .button-column .dropdown {
|
|
||||||
display: inline-block !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search-setting-table .button-column .dropdown-menu {
|
|
||||||
white-space: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search-setting-table .button-column > * {
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
.attribute-list hr {
|
|
||||||
height: 1px;
|
|
||||||
border-color: var(--main-border-color);
|
|
||||||
position: relative;
|
|
||||||
top: 4px;
|
|
||||||
margin-top: 5px;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search-definition-widget input:invalid {
|
|
||||||
border: 3px solid red;
|
|
||||||
}
|
|
||||||
|
|
||||||
.add-search-option button {
|
|
||||||
margin: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-header {
|
|
||||||
background-color: var(--accented-background-color);
|
|
||||||
}
|
|
||||||
/* #endregion */
|
|
||||||
|
|
||||||
/* #region Note actions */
|
/* #region Note actions */
|
||||||
.note-actions {
|
.note-actions {
|
||||||
width: 35px;
|
width: 35px;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import type FNote from "../../entities/fnote.js";
|
|||||||
import utils from "../../services/utils.js";
|
import utils from "../../services/utils.js";
|
||||||
import EditableCodeTypeWidget from "./editable_code.js";
|
import EditableCodeTypeWidget from "./editable_code.js";
|
||||||
import TypeWidget from "./type_widget.js";
|
import TypeWidget from "./type_widget.js";
|
||||||
import Split from "split.js";
|
import Split from "@triliumnext/split.js";
|
||||||
import { DEFAULT_GUTTER_SIZE } from "../../services/resizer.js";
|
import { DEFAULT_GUTTER_SIZE } from "../../services/resizer.js";
|
||||||
import options from "../../services/options.js";
|
import options from "../../services/options.js";
|
||||||
import type { EventData } from "../../components/app_context.js";
|
import type { EventData } from "../../components/app_context.js";
|
||||||
@@ -229,6 +229,7 @@ export default abstract class AbstractSplitTypeWidget extends TypeWidget {
|
|||||||
|
|
||||||
if (!this.isReadOnly) {
|
if (!this.isReadOnly) {
|
||||||
this.splitInstance = Split(elements, {
|
this.splitInstance = Split(elements, {
|
||||||
|
rtl: glob.isRtl,
|
||||||
sizes: [ 50, 50 ],
|
sizes: [ 50, 50 ],
|
||||||
direction: this.layoutOrientation,
|
direction: this.layoutOrientation,
|
||||||
gutterSize: DEFAULT_GUTTER_SIZE,
|
gutterSize: DEFAULT_GUTTER_SIZE,
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ function TokenList({ tokens }: { tokens: EtapiToken[] }) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
tokens.length ? (
|
tokens.length ? (
|
||||||
<div style={{ overflow: "auto", height: "500px"}}>
|
<div style={{ overflow: "auto"}}>
|
||||||
<table className="table table-stripped">
|
<table className="table table-stripped">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -33,7 +33,11 @@ function LocalizationOptions() {
|
|||||||
return true;
|
return true;
|
||||||
}),
|
}),
|
||||||
formattingLocales: [
|
formattingLocales: [
|
||||||
...allLocales.filter(locale => locale.electronLocale)
|
...allLocales.filter(locale => {
|
||||||
|
if (!locale.electronLocale) return false;
|
||||||
|
if (locale.devOnly && !glob.isDev) return false;
|
||||||
|
return true;
|
||||||
|
})
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}, []);
|
}, []);
|
||||||
|
|||||||
@@ -70,7 +70,6 @@ const config: ForgeConfig = {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
rebuildConfig: {
|
rebuildConfig: {
|
||||||
force: true,
|
|
||||||
extraModules: [ "better-sqlite3" ]
|
extraModules: [ "better-sqlite3" ]
|
||||||
},
|
},
|
||||||
makers: [
|
makers: [
|
||||||
@@ -85,14 +84,30 @@ const config: ForgeConfig = {
|
|||||||
config: {
|
config: {
|
||||||
options: {
|
options: {
|
||||||
...baseLinuxMakerConfigOptions,
|
...baseLinuxMakerConfigOptions,
|
||||||
|
desktopTemplate: undefined, // otherwise it would put in the wrong exec
|
||||||
|
icon: {
|
||||||
|
"128x128": path.join(APP_ICON_PATH, "png/128x128.png"),
|
||||||
|
},
|
||||||
id: "com.triliumnext.notes",
|
id: "com.triliumnext.notes",
|
||||||
runtimeVersion: "24.08",
|
runtimeVersion: "24.08",
|
||||||
base: "org.electronjs.Electron2.BaseApp",
|
base: "org.electronjs.Electron2.BaseApp",
|
||||||
baseVersion: "24.08",
|
baseVersion: "24.08",
|
||||||
baseFlatpakref: "https://flathub.org/repo/flathub.flatpakrepo",
|
baseFlatpakref: "https://flathub.org/repo/flathub.flatpakrepo",
|
||||||
finishArgs: [
|
finishArgs: [
|
||||||
|
// Wayland/X11 Rendering
|
||||||
"--socket=fallback-x11",
|
"--socket=fallback-x11",
|
||||||
"--socket=wayland"
|
"--socket=wayland",
|
||||||
|
"--share=ipc",
|
||||||
|
// Open GL
|
||||||
|
"--device=dri",
|
||||||
|
// Audio output
|
||||||
|
"--socket=pulseaudio",
|
||||||
|
// Read/write home directory access
|
||||||
|
"--filesystem=home",
|
||||||
|
// Allow communication with network
|
||||||
|
"--share=network",
|
||||||
|
// System notifications with libnotify
|
||||||
|
"--talk-name=org.freedesktop.Notifications",
|
||||||
],
|
],
|
||||||
modules: [
|
modules: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@triliumnext/desktop",
|
"name": "@triliumnext/desktop",
|
||||||
"version": "0.99.2",
|
"version": "0.99.3",
|
||||||
"description": "Build your personal knowledge base with Trilium Notes",
|
"description": "Build your personal knowledge base with Trilium Notes",
|
||||||
"private": true,
|
"private": true,
|
||||||
"main": "src/main.ts",
|
"main": "src/main.ts",
|
||||||
@@ -15,7 +15,8 @@
|
|||||||
"start-no-dir": "cross-env TRILIUM_PORT=37743 tsx ../../scripts/electron-start.mts src/main.ts",
|
"start-no-dir": "cross-env TRILIUM_PORT=37743 tsx ../../scripts/electron-start.mts src/main.ts",
|
||||||
"build": "tsx scripts/build.ts",
|
"build": "tsx scripts/build.ts",
|
||||||
"start-prod": "pnpm build && cross-env TRILIUM_DATA_DIR=data TRILIUM_PORT=37841 ELECTRON_IS_DEV=0 electron dist",
|
"start-prod": "pnpm build && cross-env TRILIUM_DATA_DIR=data TRILIUM_PORT=37841 ELECTRON_IS_DEV=0 electron dist",
|
||||||
"electron-forge:make": "pnpm build && cross-env electron-forge make dist",
|
"electron-forge:make": "pnpm build && electron-forge make dist",
|
||||||
|
"electron-forge:make-flatpak": "pnpm build && electron-forge make dist --targets=@electron-forge/maker-flatpak",
|
||||||
"electron-forge:package": "pnpm build && electron-forge package dist",
|
"electron-forge:package": "pnpm build && electron-forge package dist",
|
||||||
"electron-forge:start": "pnpm build && electron-forge start dist",
|
"electron-forge:start": "pnpm build && electron-forge start dist",
|
||||||
"e2e": "pnpm build && cross-env TRILIUM_INTEGRATION_TEST=memory-no-store TRILIUM_PORT=8082 TRILIUM_DATA_DIR=data-e2e ELECTRON_IS_DEV=0 playwright test"
|
"e2e": "pnpm build && cross-env TRILIUM_INTEGRATION_TEST=memory-no-store TRILIUM_PORT=8082 TRILIUM_DATA_DIR=data-e2e ELECTRON_IS_DEV=0 playwright test"
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/better-sqlite3": "7.6.13",
|
"@types/better-sqlite3": "7.6.13",
|
||||||
"@types/mime-types": "3.0.1",
|
"@types/mime-types": "3.0.1",
|
||||||
"@types/yargs": "17.0.33"
|
"@types/yargs": "17.0.34"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "tsx src/main.ts",
|
"dev": "tsx src/main.ts",
|
||||||
|
|||||||
23
apps/edit-docs/demo/!!!meta.json
vendored
23
apps/edit-docs/demo/!!!meta.json
vendored
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"formatVersion": 2,
|
"formatVersion": 2,
|
||||||
"appVersion": "0.99.1",
|
"appVersion": "0.99.2",
|
||||||
"files": [
|
"files": [
|
||||||
{
|
{
|
||||||
"isClone": false,
|
"isClone": false,
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
"title": "Journal",
|
"title": "Journal",
|
||||||
"notePosition": 10,
|
"notePosition": 10,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": true,
|
"isExpanded": false,
|
||||||
"type": "book",
|
"type": "book",
|
||||||
"mime": "",
|
"mime": "",
|
||||||
"attributes": [
|
"attributes": [
|
||||||
@@ -82,45 +82,52 @@
|
|||||||
"title": "Trilium Demo",
|
"title": "Trilium Demo",
|
||||||
"notePosition": 20,
|
"notePosition": 20,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": true,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
"mime": "text/html",
|
"mime": "text/html",
|
||||||
"attributes": [
|
"attributes": [
|
||||||
{
|
{
|
||||||
"type": "relation",
|
"type": "relation",
|
||||||
"name": "internalLink",
|
"name": "internalLink",
|
||||||
"value": "Th0SHTjziC8R",
|
"value": "xY1FldcqIlaS",
|
||||||
"isInheritable": false,
|
"isInheritable": false,
|
||||||
"position": 10
|
"position": 10
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "relation",
|
"type": "relation",
|
||||||
"name": "internalLink",
|
"name": "internalLink",
|
||||||
"value": "1afuYh5pfoEP",
|
"value": "Th0SHTjziC8R",
|
||||||
"isInheritable": false,
|
"isInheritable": false,
|
||||||
"position": 20
|
"position": 20
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "relation",
|
"type": "relation",
|
||||||
"name": "internalLink",
|
"name": "internalLink",
|
||||||
"value": "FtCt1LKirRGs",
|
"value": "1afuYh5pfoEP",
|
||||||
"isInheritable": false,
|
"isInheritable": false,
|
||||||
"position": 30
|
"position": 30
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "relation",
|
"type": "relation",
|
||||||
"name": "internalLink",
|
"name": "internalLink",
|
||||||
"value": "uppxiNYbjvGw",
|
"value": "FtCt1LKirRGs",
|
||||||
"isInheritable": false,
|
"isInheritable": false,
|
||||||
"position": 40
|
"position": 40
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "relation",
|
"type": "relation",
|
||||||
"name": "internalLink",
|
"name": "internalLink",
|
||||||
"value": "Q3ve69mXIaMY",
|
"value": "uppxiNYbjvGw",
|
||||||
"isInheritable": false,
|
"isInheritable": false,
|
||||||
"position": 50
|
"position": 50
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "relation",
|
||||||
|
"name": "internalLink",
|
||||||
|
"value": "Q3ve69mXIaMY",
|
||||||
|
"isInheritable": false,
|
||||||
|
"position": 60
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "label",
|
"type": "label",
|
||||||
"name": "iconClass",
|
"name": "iconClass",
|
||||||
|
|||||||
53
apps/edit-docs/demo/root/Trilium Demo.html
vendored
53
apps/edit-docs/demo/root/Trilium Demo.html
vendored
@@ -18,55 +18,66 @@
|
|||||||
height="150">
|
height="150">
|
||||||
</figure>
|
</figure>
|
||||||
<p><strong>Welcome to Trilium Notes!</strong>
|
<p><strong>Welcome to Trilium Notes!</strong>
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
<p>This is initial "demo" document provided by TriliumNext by default to
|
<p>This is a "demo" document packaged with Trilium to showcase some of its
|
||||||
showcase some of its features and also give you some ideas how you might
|
features and also give you some ideas on how you might structure your notes.
|
||||||
structure your notes. You can play with it, modify note content and tree
|
You can play with it, and modify the note content and tree structure as
|
||||||
structure as you wish.</p>
|
you wish.</p>
|
||||||
<p>If you need any help, visit TriliumNext website: <a href="https://github.com/TriliumNext">https://github.com/TriliumNext</a>
|
<p>If you need any help, visit <a href="https://triliumnotes.org">triliumnotes.org</a> or
|
||||||
|
our <a href="https://github.com/TriliumNext">GitHub repository</a>
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
<h3>Cleanup</h3>
|
<h2>Cleanup</h2>
|
||||||
|
|
||||||
<p>Once you're finished with experimenting and want to cleanup these pages,
|
<p>Once you're finished with experimenting and want to cleanup these pages,
|
||||||
you can simply delete them all.</p>
|
you can simply delete them all.</p>
|
||||||
<h3>Formatting</h3>
|
<h2>Formatting</h2>
|
||||||
<p>TriliumNext supports classic formatting like <em>italic</em>, <strong>bold</strong>, <em><strong>bold and italic</strong></em>.
|
|
||||||
Of course you can add links like this one pointing to <a href="http://www.google.com">google.com</a>
|
<p>Trilium supports classic formatting like <em>italic</em>, <strong>bold</strong>, <em><strong>bold and italic</strong></em>.
|
||||||
</p>
|
You can add links pointing to <a href="https://triliumnotes.org/">external pages</a> or
|
||||||
<p>Lists</p>
|
<a
|
||||||
|
class="reference-link" href="Trilium%20Demo/Formatting%20examples">Formatting examples</a>.</p>
|
||||||
|
<h3>Lists</h3>
|
||||||
|
|
||||||
<p><strong>Ordered:</strong>
|
<p><strong>Ordered:</strong>
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
<ol>
|
<ol>
|
||||||
<li>First Item</li>
|
<li data-list-item-id="e877cc655d0239b8bb0f38696ad5d8abb">First Item</li>
|
||||||
<li>Second item
|
<li data-list-item-id="e375e76d4e40e41d3b2d81c82c5ea09cd">Second item
|
||||||
<ol>
|
<ol>
|
||||||
<li>First sub-item
|
<li data-list-item-id="e0b2bd1e3bc1e3c5d8abec0fbc16aca16">First sub-item
|
||||||
<ol>
|
<ol>
|
||||||
<li>sub-sub-item</li>
|
<li data-list-item-id="ecaa8faedd3102f712d126f4119bca7df">sub-sub-item</li>
|
||||||
</ol>
|
</ol>
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
<p><strong>Unordered:</strong>
|
<p><strong>Unordered:</strong>
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Item</li>
|
<li data-list-item-id="e68bf4b518a16671c314a72073c3d900a">Item</li>
|
||||||
<li>Another item
|
<li data-list-item-id="eff02ac92025971883f324fbee5ec8233">Another item
|
||||||
<ul>
|
<ul>
|
||||||
<li>Sub-item</li>
|
<li data-list-item-id="e413637ee8e0f3d429e06ddd683df0ea6">Sub-item</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Block quotes</p>
|
<h3>Block quotes</h3>
|
||||||
|
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>Whereof one cannot speak, thereof one must be silent”</p>
|
<p>Whereof one cannot speak, thereof one must be silent”</p>
|
||||||
<p>– Ludwig Wittgenstein</p>
|
<p>– Ludwig Wittgenstein</p>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
<p>Checkout also other examples like <a href="Trilium%20Demo/Formatting%20examples/School%20schedule.html">tables</a>,
|
<hr>
|
||||||
|
<p>See also other examples like <a href="Trilium%20Demo/Formatting%20examples/School%20schedule.html">tables</a>,
|
||||||
<a
|
<a
|
||||||
href="Trilium%20Demo/Formatting%20examples/Checkbox%20lists.html">checkbox lists,</a> <a href="Trilium%20Demo/Formatting%20examples/Highlighting.html">highlighting</a>,
|
href="Trilium%20Demo/Formatting%20examples/Checkbox%20lists.html">checkbox lists,</a> <a href="Trilium%20Demo/Formatting%20examples/Highlighting.html">highlighting</a>,
|
||||||
<a
|
<a
|
||||||
href="Trilium%20Demo/Formatting%20examples/Code%20blocks.html">code blocks</a>and <a href="Trilium%20Demo/Formatting%20examples/Math.html">math examples</a>.</p>
|
href="Trilium%20Demo/Formatting%20examples/Code%20blocks.html">code blocks</a>and <a href="Trilium%20Demo/Formatting%20examples/Math.html">math examples</a>.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -13,12 +13,11 @@
|
|||||||
<h1 data-trilium-h1>To read</h1>
|
<h1 data-trilium-h1>To read</h1>
|
||||||
|
|
||||||
<div class="ck-content">
|
<div class="ck-content">
|
||||||
<p>Checkout Kindle daily deals: <a href="https://www.amazon.com/gp/feature.html?docId=1000677541">https://www.amazon.com/gp/feature.html?docId=1000677541</a>
|
<p>Check out <a href="https://www.amazon.com/amz-books/book-deals">Kindle Daily Deals</a>:</p>
|
||||||
</p>
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Cixin Liu - <a href="https://www.amazon.com/Dark-Forest-Remembrance-Earths-Past/dp/0765386690/ref=pd_bxgy_14_img_2?_encoding=UTF8&pd_rd_i=0765386690&pd_rd_r=AB0J179TM9NTEAMHE240&pd_rd_w=FAhxX&pd_rd_wg=pLGK7&psc=1&refRID=AB0J179TM9NTEAMHE240">The Dark Forest</a>
|
<li data-list-item-id="e5bec34ede90d88a3ad5f7362ab60cbfb">Cixin Liu - <a href="https://www.amazon.com/Dark-Forest-Remembrance-Earths-Past/dp/0765386690/">The Dark Forest</a>
|
||||||
</li>
|
</li>
|
||||||
<li>Ann Leckie - <a href="https://www.amazon.com/Ancillary-Sword-Imperial-Radch-Leckie/dp/0316246654/ref=pd_sim_14_1?_encoding=UTF8&pd_rd_i=0316246654&pd_rd_r=D7KDTGZFP7YM1YSYVY4G&pd_rd_w=jkn28&pd_rd_wg=JVhtw&psc=1&refRID=D7KDTGZFP7YM1YSYVY4G">Ancillary Sword</a>
|
<li data-list-item-id="ef10faa539920a4fd817f09ba564d69d3">Ann Leckie - <a href="https://www.amazon.com/Ancillary-Sword-Imperial-Radch-Leckie/dp/0316246654/">Ancillary Sword</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -21,20 +21,8 @@
|
|||||||
language, should that fail it is possible to manually adjust it. The color
|
language, should that fail it is possible to manually adjust it. The color
|
||||||
scheme for the syntax highlighting is adjustable in settings. </p><pre><code class="language-application-javascript-env-frontend">function helloWorld() {
|
scheme for the syntax highlighting is adjustable in settings. </p><pre><code class="language-application-javascript-env-frontend">function helloWorld() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
alert("Hello world");
|
alert("Hello world");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}</code></pre>
|
}</code></pre>
|
||||||
<p>For larger pieces of code it is better to use a code note, which uses
|
<p>For larger pieces of code it is better to use a code note, which uses
|
||||||
a fully-fledged code editor (CodeMirror). For an example of a code note,
|
a fully-fledged code editor (CodeMirror). For an example of a code note,
|
||||||
|
|||||||
@@ -14,7 +14,8 @@
|
|||||||
|
|
||||||
<div class="ck-content">
|
<div class="ck-content">
|
||||||
<p>How to be a stoic from Massimo Pigliuci:</p>
|
<p>How to be a stoic from Massimo Pigliuci:</p>
|
||||||
<p><a href="https://www.amazon.com/gp/product/B01K3WN1BY?pf_rd_m=A2R2RITDJNW1Q6&storeType=ebooks&pageType=STOREFRONT&pf_rd_p=8e2a96d9-c848-435b-92bd-0856850ad544&pf_rd_r=4J6CT15BS4X8062XNGDF&pf_rd_s=merchandised-search-5&pf_rd_t=40901&ref_=dbs_f_ebk_rwt_scns_mwl_ms5_kmw_8e2a96d9-c848-435b-92bd-0856850ad544_2&pf_rd_i=154606011">https://www.amazon.com/gp/product/B01K3WN1BY?pf_rd_m=A2R2RITDJNW1Q6&storeType=ebooks&pageType=STOREFRONT&pf_rd_p=8e2a96d9-c848-435b-92bd-0856850ad544&pf_rd_r=4J6CT15BS4X8062XNGDF&pf_rd_s=merchandised-search-5&pf_rd_t=40901&ref_=dbs_f_ebk_rwt_scns_mwl_ms5_kmw_8e2a96d9-c848-435b-92bd-0856850ad544_2&pf_rd_i=154606011</a> </p>
|
<p><a href="https://www.amazon.com/gp/product/B01K3WN1BY">https://www.amazon.com/gp/product/B01K3WN1BY</a>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -16,76 +16,18 @@
|
|||||||
<p>Documentation: <a href="http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_09_02.html">http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_09_02.html</a>
|
<p>Documentation: <a href="http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_09_02.html">http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_09_02.html</a>
|
||||||
</p><pre><code class="language-text-x-sh">#!/bin/bash
|
</p><pre><code class="language-text-x-sh">#!/bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# This script opens 4 terminal windows.
|
# This script opens 4 terminal windows.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
i="0"
|
i="0"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
while [ $i -lt 4 ]
|
while [ $i -lt 4 ]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
do
|
do
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
xterm &
|
xterm &
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
i=$[$i+1]
|
i=$[$i+1]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
done</code></pre>
|
done</code></pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM node:22.20.0-bullseye-slim AS builder
|
FROM node:22.21.0-bullseye-slim AS builder
|
||||||
RUN corepack enable
|
RUN corepack enable
|
||||||
|
|
||||||
# Install native dependencies since we might be building cross-platform.
|
# Install native dependencies since we might be building cross-platform.
|
||||||
@@ -7,7 +7,7 @@ COPY ./docker/package.json ./docker/pnpm-workspace.yaml /usr/src/app/
|
|||||||
# We have to use --no-frozen-lockfile due to CKEditor patches
|
# We have to use --no-frozen-lockfile due to CKEditor patches
|
||||||
RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild
|
RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild
|
||||||
|
|
||||||
FROM node:22.20.0-bullseye-slim
|
FROM node:22.21.0-bullseye-slim
|
||||||
# Install only runtime dependencies
|
# Install only runtime dependencies
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y --no-install-recommends \
|
apt-get install -y --no-install-recommends \
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM node:22.20.0-alpine AS builder
|
FROM node:22.21.0-alpine AS builder
|
||||||
RUN corepack enable
|
RUN corepack enable
|
||||||
|
|
||||||
# Install native dependencies since we might be building cross-platform.
|
# Install native dependencies since we might be building cross-platform.
|
||||||
@@ -7,7 +7,7 @@ COPY ./docker/package.json ./docker/pnpm-workspace.yaml /usr/src/app/
|
|||||||
# We have to use --no-frozen-lockfile due to CKEditor patches
|
# We have to use --no-frozen-lockfile due to CKEditor patches
|
||||||
RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild
|
RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild
|
||||||
|
|
||||||
FROM node:22.20.0-alpine
|
FROM node:22.21.0-alpine
|
||||||
# Install runtime dependencies
|
# Install runtime dependencies
|
||||||
RUN apk add --no-cache su-exec shadow
|
RUN apk add --no-cache su-exec shadow
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM node:22.20.0-alpine AS builder
|
FROM node:22.21.0-alpine AS builder
|
||||||
RUN corepack enable
|
RUN corepack enable
|
||||||
|
|
||||||
# Install native dependencies since we might be building cross-platform.
|
# Install native dependencies since we might be building cross-platform.
|
||||||
@@ -7,7 +7,7 @@ COPY ./docker/package.json ./docker/pnpm-workspace.yaml /usr/src/app/
|
|||||||
# We have to use --no-frozen-lockfile due to CKEditor patches
|
# We have to use --no-frozen-lockfile due to CKEditor patches
|
||||||
RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild
|
RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild
|
||||||
|
|
||||||
FROM node:22.20.0-alpine
|
FROM node:22.21.0-alpine
|
||||||
# Create a non-root user with configurable UID/GID
|
# Create a non-root user with configurable UID/GID
|
||||||
ARG USER=trilium
|
ARG USER=trilium
|
||||||
ARG UID=1001
|
ARG UID=1001
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM node:22.20.0-bullseye-slim AS builder
|
FROM node:22.21.0-bullseye-slim AS builder
|
||||||
RUN corepack enable
|
RUN corepack enable
|
||||||
|
|
||||||
# Install native dependencies since we might be building cross-platform.
|
# Install native dependencies since we might be building cross-platform.
|
||||||
@@ -7,7 +7,7 @@ COPY ./docker/package.json ./docker/pnpm-workspace.yaml /usr/src/app/
|
|||||||
# We have to use --no-frozen-lockfile due to CKEditor patches
|
# We have to use --no-frozen-lockfile due to CKEditor patches
|
||||||
RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild
|
RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild
|
||||||
|
|
||||||
FROM node:22.20.0-bullseye-slim
|
FROM node:22.21.0-bullseye-slim
|
||||||
# Create a non-root user with configurable UID/GID
|
# Create a non-root user with configurable UID/GID
|
||||||
ARG USER=trilium
|
ARG USER=trilium
|
||||||
ARG UID=1001
|
ARG UID=1001
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@triliumnext/server",
|
"name": "@triliumnext/server",
|
||||||
"version": "0.99.2",
|
"version": "0.99.3",
|
||||||
"description": "The server-side component of TriliumNext, which exposes the client via the web, allows for sync and provides a REST API for both internal and external use.",
|
"description": "The server-side component of TriliumNext, which exposes the client via the web, allows for sync and provides a REST API for both internal and external use.",
|
||||||
"private": true,
|
"private": true,
|
||||||
"main": "./src/main.ts",
|
"main": "./src/main.ts",
|
||||||
@@ -36,11 +36,11 @@
|
|||||||
"@triliumnext/commons": "workspace:*",
|
"@triliumnext/commons": "workspace:*",
|
||||||
"@triliumnext/express-partial-content": "workspace:*",
|
"@triliumnext/express-partial-content": "workspace:*",
|
||||||
"@triliumnext/turndown-plugin-gfm": "workspace:*",
|
"@triliumnext/turndown-plugin-gfm": "workspace:*",
|
||||||
"@types/archiver": "6.0.3",
|
"@types/archiver": "6.0.4",
|
||||||
"@types/better-sqlite3": "7.6.13",
|
"@types/better-sqlite3": "7.6.13",
|
||||||
"@types/cls-hooked": "4.3.9",
|
"@types/cls-hooked": "4.3.9",
|
||||||
"@types/compression": "1.8.1",
|
"@types/compression": "1.8.1",
|
||||||
"@types/cookie-parser": "1.4.9",
|
"@types/cookie-parser": "1.4.10",
|
||||||
"@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/escape-html": "1.0.4",
|
||||||
@@ -56,8 +56,7 @@
|
|||||||
"@types/sanitize-html": "2.16.0",
|
"@types/sanitize-html": "2.16.0",
|
||||||
"@types/sax": "1.2.7",
|
"@types/sax": "1.2.7",
|
||||||
"@types/serve-favicon": "2.5.7",
|
"@types/serve-favicon": "2.5.7",
|
||||||
"@types/serve-static": "1.15.9",
|
"@types/serve-static": "1.15.10",
|
||||||
"@types/session-file-store": "1.2.5",
|
|
||||||
"@types/stream-throttle": "0.1.4",
|
"@types/stream-throttle": "0.1.4",
|
||||||
"@types/supertest": "6.0.3",
|
"@types/supertest": "6.0.3",
|
||||||
"@types/swagger-ui-express": "4.1.8",
|
"@types/swagger-ui-express": "4.1.8",
|
||||||
@@ -100,7 +99,7 @@
|
|||||||
"i18next": "25.6.0",
|
"i18next": "25.6.0",
|
||||||
"i18next-fs-backend": "2.6.0",
|
"i18next-fs-backend": "2.6.0",
|
||||||
"image-type": "6.0.0",
|
"image-type": "6.0.0",
|
||||||
"ini": "5.0.0",
|
"ini": "6.0.0",
|
||||||
"is-animated": "2.0.2",
|
"is-animated": "2.0.2",
|
||||||
"is-svg": "6.1.0",
|
"is-svg": "6.1.0",
|
||||||
"jimp": "1.6.0",
|
"jimp": "1.6.0",
|
||||||
@@ -110,7 +109,7 @@
|
|||||||
"multer": "2.0.2",
|
"multer": "2.0.2",
|
||||||
"normalize-strings": "1.1.1",
|
"normalize-strings": "1.1.1",
|
||||||
"ollama": "0.6.0",
|
"ollama": "0.6.0",
|
||||||
"openai": "6.5.0",
|
"openai": "6.7.0",
|
||||||
"rand-token": "1.0.1",
|
"rand-token": "1.0.1",
|
||||||
"safe-compare": "1.1.4",
|
"safe-compare": "1.1.4",
|
||||||
"sanitize-filename": "1.6.3",
|
"sanitize-filename": "1.6.3",
|
||||||
@@ -125,9 +124,9 @@
|
|||||||
"swagger-ui-express": "5.0.1",
|
"swagger-ui-express": "5.0.1",
|
||||||
"time2fa": "1.4.2",
|
"time2fa": "1.4.2",
|
||||||
"tmp": "0.2.5",
|
"tmp": "0.2.5",
|
||||||
"turndown": "7.2.1",
|
"turndown": "7.2.2",
|
||||||
"unescape": "1.0.1",
|
"unescape": "1.0.1",
|
||||||
"vite": "7.1.10",
|
"vite": "7.1.11",
|
||||||
"ws": "8.18.3",
|
"ws": "8.18.3",
|
||||||
"xml2js": "0.6.2",
|
"xml2js": "0.6.2",
|
||||||
"yauzl": "3.2.0"
|
"yauzl": "3.2.0"
|
||||||
|
|||||||
Binary file not shown.
@@ -84,7 +84,9 @@
|
|||||||
"show-backend-log": "فتح صفحة \"سجل الخلفية\"",
|
"show-backend-log": "فتح صفحة \"سجل الخلفية\"",
|
||||||
"edit-readonly-note": "تعديل ملاحظة القراءة فقط",
|
"edit-readonly-note": "تعديل ملاحظة القراءة فقط",
|
||||||
"attributes-labels-and-relations": "سمات ( تسميات و علاقات)",
|
"attributes-labels-and-relations": "سمات ( تسميات و علاقات)",
|
||||||
"render-active-note": "عرض ( اعادة عرض) الملاحظة المؤرشفة"
|
"render-active-note": "عرض ( اعادة عرض) الملاحظة المؤرشفة",
|
||||||
|
"show-help": "فتح دليل التعليمات",
|
||||||
|
"copy-without-formatting": "نسخ النص المحدد بدون تنسيق"
|
||||||
},
|
},
|
||||||
"setup_sync-from-server": {
|
"setup_sync-from-server": {
|
||||||
"note": "ملاحظة:",
|
"note": "ملاحظة:",
|
||||||
@@ -196,7 +198,8 @@
|
|||||||
"expand": "توسيع",
|
"expand": "توسيع",
|
||||||
"site-theme": "المظهر العام للموقع",
|
"site-theme": "المظهر العام للموقع",
|
||||||
"image_alt": "صورة المقال",
|
"image_alt": "صورة المقال",
|
||||||
"on-this-page": "في هذه السفحة"
|
"on-this-page": "في هذه السفحة",
|
||||||
|
"last-updated": "اخر تحديث {{- date}}"
|
||||||
},
|
},
|
||||||
"hidden_subtree_templates": {
|
"hidden_subtree_templates": {
|
||||||
"description": "الوصف",
|
"description": "الوصف",
|
||||||
@@ -258,7 +261,8 @@
|
|||||||
},
|
},
|
||||||
"share_page": {
|
"share_page": {
|
||||||
"parent": "الأصل:",
|
"parent": "الأصل:",
|
||||||
"child-notes": "الملاحظات الفرعية:"
|
"child-notes": "الملاحظات الفرعية:",
|
||||||
|
"no-content": "لاتحتوي هذة الملاحظة على محتوى."
|
||||||
},
|
},
|
||||||
"notes": {
|
"notes": {
|
||||||
"duplicate-note-suffix": "(مكرر)",
|
"duplicate-note-suffix": "(مكرر)",
|
||||||
@@ -339,7 +343,24 @@
|
|||||||
"toggle-system-tray-icon": "تبديل ايقونة علبة النظام",
|
"toggle-system-tray-icon": "تبديل ايقونة علبة النظام",
|
||||||
"switch-to-first-tab": "التبديل الى التبويب الاول",
|
"switch-to-first-tab": "التبديل الى التبويب الاول",
|
||||||
"follow-link-under-cursor": "اتبع الرابط اسفل المؤشر",
|
"follow-link-under-cursor": "اتبع الرابط اسفل المؤشر",
|
||||||
"paste-markdown-into-text": "لصق نص بتنسبق Markdown"
|
"paste-markdown-into-text": "لصق نص بتنسبق Markdown",
|
||||||
|
"move-note-up-in-hierarchy": "نقل الملاحظة للاعلى في الهيكل",
|
||||||
|
"move-note-down-in-hierarchy": "نقل الملاحظة للاسفل في الهيكل",
|
||||||
|
"select-all-notes-in-parent": "تحديد جميع الملاحظات التابعة للملاحظة الاصل",
|
||||||
|
"add-note-above-to-selection": "اضافة ملاحظة فوق الملاحظة المحددة",
|
||||||
|
"add-note-below-to-selection": "اصافة ملاحظة اسفل الملاحظة المحددة",
|
||||||
|
"add-include-note-to-text": "اضافة الملاحظة الى النص",
|
||||||
|
"toggle-ribbon-tab-image-properties": "اظهار/ اخفاء صورة علامة التبويب في الشريط.",
|
||||||
|
"toggle-ribbon-tab-classic-editor": "عرض/اخفاء تبويب المحور الكلاسيكي",
|
||||||
|
"toggle-ribbon-tab-basic-properties": "عرض/اخفاء تبويب الخصائص الاساسية",
|
||||||
|
"toggle-ribbon-tab-book-properties": "عرض/اخفاء تبويب خصائص الدفتر",
|
||||||
|
"toggle-ribbon-tab-file-properties": "عرض/ادخفاء تبويب خصائص الملف",
|
||||||
|
"toggle-ribbon-tab-owned-attributes": "عرض/اخفاء تبويب المميزات المملوكة",
|
||||||
|
"toggle-ribbon-tab-inherited-attributes": "عرض/اخفاء تبويب السمات الموروثة",
|
||||||
|
"toggle-ribbon-tab-promoted-attributes": "عرض/ اخفاء تبويب السمات المعززة",
|
||||||
|
"toggle-ribbon-tab-note-map": "عرض/اخفاء تبويب خريطة الملاحظات",
|
||||||
|
"toggle-ribbon-tab-similar-notes": "عرض/اخفاء شريط الملاحظات المشابهة",
|
||||||
|
"export-active-note-as-pdf": "تصدير الملاحظة النشطة كملفPDF"
|
||||||
},
|
},
|
||||||
"share_404": {
|
"share_404": {
|
||||||
"title": "غير موجود",
|
"title": "غير موجود",
|
||||||
@@ -348,6 +369,7 @@
|
|||||||
"weekdayNumber": "الاسبوع{رقم الاسيوع}",
|
"weekdayNumber": "الاسبوع{رقم الاسيوع}",
|
||||||
"quarterNumber": "الربع {رقم الربع}",
|
"quarterNumber": "الربع {رقم الربع}",
|
||||||
"pdf": {
|
"pdf": {
|
||||||
"export_filter": "مستند PDF (.pdf)"
|
"export_filter": "مستند PDF (.pdf)",
|
||||||
|
"unable-to-export-title": "تعذر التصدير كملف PDF"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -274,7 +274,8 @@
|
|||||||
"export_filter": "PDF Dokument (*.pdf)",
|
"export_filter": "PDF Dokument (*.pdf)",
|
||||||
"unable-to-export-message": "Die aktuelle Notiz konnte nicht als PDF exportiert werden.",
|
"unable-to-export-message": "Die aktuelle Notiz konnte nicht als PDF exportiert werden.",
|
||||||
"unable-to-export-title": "Export als PDF fehlgeschlagen",
|
"unable-to-export-title": "Export als PDF fehlgeschlagen",
|
||||||
"unable-to-save-message": "Die ausgewählte Datei konnte nicht beschrieben werden. Erneut versuchen oder ein anderes Ziel auswählen."
|
"unable-to-save-message": "Die ausgewählte Datei konnte nicht beschrieben werden. Erneut versuchen oder ein anderes Ziel auswählen.",
|
||||||
|
"unable-to-print": "Notiz kann nicht gedruckt werden"
|
||||||
},
|
},
|
||||||
"tray": {
|
"tray": {
|
||||||
"tooltip": "Trilium Notes",
|
"tooltip": "Trilium Notes",
|
||||||
|
|||||||
@@ -1 +1,8 @@
|
|||||||
{}
|
{
|
||||||
|
"keyboard_actions": {
|
||||||
|
"back-in-note-history": "Μετάβαση στην προηγούμενη σημείωση στο ιστορικό",
|
||||||
|
"forward-in-note-history": "Μεταβείτε στην επόμενη σημείωση στο ιστορικό",
|
||||||
|
"open-jump-to-note-dialog": "Ανοίξτε το παράθυρο διαλόγου \"Μετάβαση στη σημείωση\"",
|
||||||
|
"open-command-palette": "Άνοιγμα παλέτας εντολών"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -250,7 +250,13 @@
|
|||||||
"other": "Autre",
|
"other": "Autre",
|
||||||
"advanced-title": "Avancé",
|
"advanced-title": "Avancé",
|
||||||
"visible-launchers-title": "Raccourcis visibles",
|
"visible-launchers-title": "Raccourcis visibles",
|
||||||
"user-guide": "Guide de l'utilisateur"
|
"user-guide": "Guide de l'utilisateur",
|
||||||
|
"jump-to-note-title": "Aller à...",
|
||||||
|
"llm-chat-title": "Discuter avec Notes",
|
||||||
|
"multi-factor-authentication-title": "MFA",
|
||||||
|
"ai-llm-title": "AI/LLM",
|
||||||
|
"localization": "Langue et région",
|
||||||
|
"inbox-title": "Boîte de réception"
|
||||||
},
|
},
|
||||||
"notes": {
|
"notes": {
|
||||||
"new-note": "Nouvelle note",
|
"new-note": "Nouvelle note",
|
||||||
@@ -268,7 +274,8 @@
|
|||||||
"export_filter": "Document PDF (*.pdf)",
|
"export_filter": "Document PDF (*.pdf)",
|
||||||
"unable-to-export-message": "La note actuelle n'a pas pu être exportée en format PDF.",
|
"unable-to-export-message": "La note actuelle n'a pas pu être exportée en format PDF.",
|
||||||
"unable-to-export-title": "Impossible d'exporter au format PDF",
|
"unable-to-export-title": "Impossible d'exporter au format PDF",
|
||||||
"unable-to-save-message": "Le fichier sélectionné n'a pas pu être écrit. Réessayez ou sélectionnez une autre destination."
|
"unable-to-save-message": "Le fichier sélectionné n'a pas pu être écrit. Réessayez ou sélectionnez une autre destination.",
|
||||||
|
"unable-to-print": "Impossible d'imprimer la note"
|
||||||
},
|
},
|
||||||
"tray": {
|
"tray": {
|
||||||
"tooltip": "Trilium Notes",
|
"tooltip": "Trilium Notes",
|
||||||
@@ -277,7 +284,8 @@
|
|||||||
"bookmarks": "Signets",
|
"bookmarks": "Signets",
|
||||||
"today": "Ouvrir la note du journal du jour",
|
"today": "Ouvrir la note du journal du jour",
|
||||||
"new-note": "Nouvelle note",
|
"new-note": "Nouvelle note",
|
||||||
"show-windows": "Afficher les fenêtres"
|
"show-windows": "Afficher les fenêtres",
|
||||||
|
"open_new_window": "Ouvrir une nouvelle fenêtre"
|
||||||
},
|
},
|
||||||
"migration": {
|
"migration": {
|
||||||
"old_version": "La migration directe à partir de votre version actuelle n'est pas prise en charge. Veuillez d'abord mettre à jour vers la version v0.60.4, puis vers cette nouvelle version.",
|
"old_version": "La migration directe à partir de votre version actuelle n'est pas prise en charge. Veuillez d'abord mettre à jour vers la version v0.60.4, puis vers cette nouvelle version.",
|
||||||
@@ -375,7 +383,14 @@
|
|||||||
"zoom-in": "Zoomer",
|
"zoom-in": "Zoomer",
|
||||||
"reset-zoom-level": "Réinitilaliser le zoom",
|
"reset-zoom-level": "Réinitilaliser le zoom",
|
||||||
"copy-without-formatting": "Copier sans mise en forme",
|
"copy-without-formatting": "Copier sans mise en forme",
|
||||||
"force-save-revision": "Forcer la sauvegarde de la révision"
|
"force-save-revision": "Forcer la sauvegarde de la révision",
|
||||||
|
"toggle-ribbon-tab-promoted-attributes": "Basculer les attributs promus de l'onglet du ruban",
|
||||||
|
"toggle-ribbon-tab-note-map": "Basculer l'onglet du ruban Note Map",
|
||||||
|
"toggle-ribbon-tab-note-info": "Basculer l'onglet du ruban Note Info",
|
||||||
|
"toggle-ribbon-tab-note-paths": "Basculer les chemins de notes de l'onglet du ruban",
|
||||||
|
"toggle-ribbon-tab-similar-notes": "Basculer l'onglet du ruban Notes similaires",
|
||||||
|
"toggle-note-hoisting": "Activer la focalisation sur la note",
|
||||||
|
"unhoist-note": "Désactiver la focalisation sur la note"
|
||||||
},
|
},
|
||||||
"sql_init": {
|
"sql_init": {
|
||||||
"db_not_initialized_desktop": "Base de données non initialisée, merci de suivre les instructions à l'écran.",
|
"db_not_initialized_desktop": "Base de données non initialisée, merci de suivre les instructions à l'écran.",
|
||||||
@@ -383,5 +398,44 @@
|
|||||||
},
|
},
|
||||||
"desktop": {
|
"desktop": {
|
||||||
"instance_already_running": "Une instance est déjà en cours d'execution, ouverture de cette instance à la place."
|
"instance_already_running": "Une instance est déjà en cours d'execution, ouverture de cette instance à la place."
|
||||||
|
},
|
||||||
|
"weekdayNumber": "Semaine {weekNumber}",
|
||||||
|
"quarterNumber": "Trimestre {quarterNumber}",
|
||||||
|
"share_theme": {
|
||||||
|
"site-theme": "Thème du site",
|
||||||
|
"search_placeholder": "Recherche...",
|
||||||
|
"image_alt": "Image de l'article",
|
||||||
|
"last-updated": "Dernière mise à jour le {{- date}}",
|
||||||
|
"subpages": "Sous-pages:",
|
||||||
|
"on-this-page": "Sur cette page",
|
||||||
|
"expand": "Développer"
|
||||||
|
},
|
||||||
|
"hidden_subtree_templates": {
|
||||||
|
"text-snippet": "Extrait de texte",
|
||||||
|
"description": "Description",
|
||||||
|
"list-view": "Vue en liste",
|
||||||
|
"grid-view": "Vue en grille",
|
||||||
|
"calendar": "Calendrier",
|
||||||
|
"table": "Tableau",
|
||||||
|
"geo-map": "Carte géographique",
|
||||||
|
"start-date": "Date de début",
|
||||||
|
"end-date": "Date de fin",
|
||||||
|
"start-time": "Heure de début",
|
||||||
|
"end-time": "Heure de fin",
|
||||||
|
"geolocation": "Géolocalisation",
|
||||||
|
"built-in-templates": "Modèles intégrés",
|
||||||
|
"board": "Tableau de bord",
|
||||||
|
"status": "État",
|
||||||
|
"board_note_first": "Première note",
|
||||||
|
"board_note_second": "Deuxième note",
|
||||||
|
"board_note_third": "Troisième note",
|
||||||
|
"board_status_todo": "A faire",
|
||||||
|
"board_status_progress": "En cours",
|
||||||
|
"board_status_done": "Terminé",
|
||||||
|
"presentation": "Présentation",
|
||||||
|
"presentation_slide": "Diapositive de présentation",
|
||||||
|
"presentation_slide_first": "Première diapositive",
|
||||||
|
"presentation_slide_second": "Deuxième diapositive",
|
||||||
|
"background": "Arrière-plan"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,14 @@
|
|||||||
"edit-note-title": "Ugrás fáról a jegyzet részleteihez és a cím szerkesztése",
|
"edit-note-title": "Ugrás fáról a jegyzet részleteihez és a cím szerkesztése",
|
||||||
"edit-branch-prefix": "\"Ág címjelzésének szerkesztése\" ablak mutatása",
|
"edit-branch-prefix": "\"Ág címjelzésének szerkesztése\" ablak mutatása",
|
||||||
"clone-notes-to": "Kijelölt jegyzetek másolása",
|
"clone-notes-to": "Kijelölt jegyzetek másolása",
|
||||||
"move-notes-to": "Kijelölt jegyzetek elhelyzése"
|
"move-notes-to": "Kijelölt jegyzetek elhelyzése",
|
||||||
|
"note-clipboard": "Megjegyzés vágólap",
|
||||||
|
"copy-notes-to-clipboard": "Másolja a kiválasztott jegyzeteket a vágólapra",
|
||||||
|
"paste-notes-from-clipboard": "A vágólapról szóló jegyzetek beillesztése aktív jegyzetbe",
|
||||||
|
"cut-notes-to-clipboard": "A kiválasztott jegyzetek kivágása a vágólapra",
|
||||||
|
"select-all-notes-in-parent": "Válassza ki az összes jegyzetet az aktuális jegyzetszintről",
|
||||||
|
"activate-next-tab": "Aktiválja a jobb oldali fület",
|
||||||
|
"activate-previous-tab": "Aktiválja a lapot a bal oldalon",
|
||||||
|
"open-new-window": "Nyiss új üres ablakot"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -165,7 +165,8 @@
|
|||||||
"export_filter": "Documento PDF (*.pdf)",
|
"export_filter": "Documento PDF (*.pdf)",
|
||||||
"unable-to-export-message": "La nota corrente non può essere esportata come PDF.",
|
"unable-to-export-message": "La nota corrente non può essere esportata come PDF.",
|
||||||
"unable-to-export-title": "Impossibile esportare come PDF",
|
"unable-to-export-title": "Impossibile esportare come PDF",
|
||||||
"unable-to-save-message": "Il file selezionato non può essere salvato. Prova di nuovo o seleziona un'altra destinazione."
|
"unable-to-save-message": "Il file selezionato non può essere salvato. Prova di nuovo o seleziona un'altra destinazione.",
|
||||||
|
"unable-to-print": "Impossibile stampare la nota"
|
||||||
},
|
},
|
||||||
"tray": {
|
"tray": {
|
||||||
"tooltip": "Trilium Notes",
|
"tooltip": "Trilium Notes",
|
||||||
@@ -430,7 +431,8 @@
|
|||||||
"presentation": "Presentazione",
|
"presentation": "Presentazione",
|
||||||
"presentation_slide": "Diapositiva di presentazione",
|
"presentation_slide": "Diapositiva di presentazione",
|
||||||
"presentation_slide_first": "Prima diapositiva",
|
"presentation_slide_first": "Prima diapositiva",
|
||||||
"presentation_slide_second": "Seconda diapositiva"
|
"presentation_slide_second": "Seconda diapositiva",
|
||||||
|
"background": "Contesto"
|
||||||
},
|
},
|
||||||
"sql_init": {
|
"sql_init": {
|
||||||
"db_not_initialized_desktop": "Database non inizializzato, seguire le istruzioni a schermo.",
|
"db_not_initialized_desktop": "Database non inizializzato, seguire le istruzioni a schermo.",
|
||||||
|
|||||||
@@ -152,14 +152,14 @@ function restoreRevision(req: Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getEditedNotesOnDate(req: Request) {
|
function getEditedNotesOnDate(req: Request) {
|
||||||
const noteIds = sql.getColumn<string>(
|
const noteIds = sql.getColumn<string>(/*sql*/`\
|
||||||
`
|
|
||||||
SELECT notes.*
|
SELECT notes.*
|
||||||
FROM notes
|
FROM notes
|
||||||
WHERE noteId IN (
|
WHERE noteId IN (
|
||||||
SELECT noteId FROM notes
|
SELECT noteId FROM notes
|
||||||
WHERE notes.dateCreated LIKE :date
|
WHERE
|
||||||
OR notes.dateModified LIKE :date
|
(notes.dateCreated LIKE :date OR notes.dateModified LIKE :date)
|
||||||
|
AND (noteId NOT LIKE '_%')
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT noteId FROM revisions
|
SELECT noteId FROM revisions
|
||||||
WHERE revisions.dateLastEdited LIKE :date
|
WHERE revisions.dateLastEdited LIKE :date
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import { describe, expect, it } from "vitest";
|
import { describe, expect, it } from "vitest";
|
||||||
import BNote from "../../becca/entities/bnote.js";
|
|
||||||
import { mapByNoteType } from "./single.js";
|
import { mapByNoteType } from "./single.js";
|
||||||
|
import { buildNote } from "../../test/becca_easy_mocking.js";
|
||||||
|
|
||||||
describe("Note type mappings", () => {
|
describe("Note type mappings", () => {
|
||||||
it("supports mermaid note", () => {
|
it("supports mermaid note", () => {
|
||||||
const note = new BNote({
|
const note = buildNote({
|
||||||
type: "mermaid",
|
type: "mermaid",
|
||||||
title: "New note"
|
title: "New note"
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ export const DAYJS_LOADER: Record<LOCALE_IDS, () => Promise<typeof import("dayjs
|
|||||||
"es": () => import("dayjs/locale/es.js"),
|
"es": () => import("dayjs/locale/es.js"),
|
||||||
"fa": () => import("dayjs/locale/fa.js"),
|
"fa": () => import("dayjs/locale/fa.js"),
|
||||||
"fr": () => import("dayjs/locale/fr.js"),
|
"fr": () => import("dayjs/locale/fr.js"),
|
||||||
|
"it": () => import("dayjs/locale/it.js"),
|
||||||
"he": () => import("dayjs/locale/he.js"),
|
"he": () => import("dayjs/locale/he.js"),
|
||||||
"ja": () => import("dayjs/locale/ja.js"),
|
"ja": () => import("dayjs/locale/ja.js"),
|
||||||
"ku": () => import("dayjs/locale/ku.js"),
|
"ku": () => import("dayjs/locale/ku.js"),
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ sqlInit.dbReady.then(() => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
setInterval(() => checkProtectedSessionExpiration(), 1);
|
setInterval(() => checkProtectedSessionExpiration(), 30000);
|
||||||
});
|
});
|
||||||
|
|
||||||
function checkProtectedSessionExpiration() {
|
function checkProtectedSessionExpiration() {
|
||||||
|
|||||||
@@ -681,3 +681,34 @@ describe("#normalizeCustomHandlerPattern", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe("#slugify", () => {
|
||||||
|
it("should return a slugified string", () => {
|
||||||
|
const testString = "This is a Test String! With unicode & Special #Chars.";
|
||||||
|
const expectedSlug = "this-is-a-test-string-with-unicode-special-chars";
|
||||||
|
const result = utils.slugify(testString);
|
||||||
|
expect(result).toBe(expectedSlug);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("supports CJK characters without alteration", () => {
|
||||||
|
const testString = "测试中文字符";
|
||||||
|
const expectedSlug = "测试中文字符";
|
||||||
|
const result = utils.slugify(testString);
|
||||||
|
expect(result).toBe(expectedSlug);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("supports Cyrillic characters without alteration", () => {
|
||||||
|
const testString = "Тестирование кириллических символов";
|
||||||
|
const expectedSlug = "тестирование-кириллических-символов";
|
||||||
|
const result = utils.slugify(testString);
|
||||||
|
expect(result).toBe(expectedSlug);
|
||||||
|
});
|
||||||
|
|
||||||
|
// preserves diacritic marks
|
||||||
|
it("preserves diacritic marks", () => {
|
||||||
|
const testString = "Café naïve façade jalapeño";
|
||||||
|
const expectedSlug = "café-naïve-façade-jalapeño";
|
||||||
|
const result = utils.slugify(testString);
|
||||||
|
expect(result).toBe(expectedSlug);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|||||||
@@ -497,6 +497,14 @@ export function formatSize(size: number | null | undefined) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function slugify(text: string) {
|
||||||
|
return text
|
||||||
|
.normalize("NFC") // keep composed form, preserves accents
|
||||||
|
.toLowerCase()
|
||||||
|
.replace(/[^\p{Letter}\p{Number}]+/gu, "-") // replace non-letter/number with "-"
|
||||||
|
.replace(/(^-|-$)+/g, ""); // trim dashes
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
compareVersions,
|
compareVersions,
|
||||||
crash,
|
crash,
|
||||||
@@ -532,6 +540,7 @@ export default {
|
|||||||
safeExtractMessageAndStackFromError,
|
safeExtractMessageAndStackFromError,
|
||||||
sanitizeSqlIdentifier,
|
sanitizeSqlIdentifier,
|
||||||
stripTags,
|
stripTags,
|
||||||
|
slugify,
|
||||||
timeLimit,
|
timeLimit,
|
||||||
toBase64,
|
toBase64,
|
||||||
toMap,
|
toMap,
|
||||||
|
|||||||
@@ -175,7 +175,8 @@ function register(router: Router) {
|
|||||||
appPath: isDev ? appPath : `../${appPath}`,
|
appPath: isDev ? appPath : `../${appPath}`,
|
||||||
showLoginInShareTheme,
|
showLoginInShareTheme,
|
||||||
t,
|
t,
|
||||||
isDev
|
isDev,
|
||||||
|
utils
|
||||||
};
|
};
|
||||||
let useDefaultView = true;
|
let useDefaultView = true;
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import utils from "../services/utils.js";
|
|||||||
import BNote from "../becca/entities/bnote.js";
|
import BNote from "../becca/entities/bnote.js";
|
||||||
import BAttribute from "../becca/entities/battribute.js";
|
import BAttribute from "../becca/entities/battribute.js";
|
||||||
import BBranch from "../becca/entities/bbranch.js";
|
import BBranch from "../becca/entities/bbranch.js";
|
||||||
|
import { NoteType } from "@triliumnext/commons";
|
||||||
|
|
||||||
type AttributeDefinitions = { [key in `#${string}`]: string; };
|
type AttributeDefinitions = { [key in `#${string}`]: string; };
|
||||||
type RelationDefinitions = { [key in `~${string}`]: string; };
|
type RelationDefinitions = { [key in `~${string}`]: string; };
|
||||||
@@ -10,6 +11,7 @@ interface NoteDefinition extends AttributeDefinitions, RelationDefinitions {
|
|||||||
id?: string | undefined;
|
id?: string | undefined;
|
||||||
title?: string;
|
title?: string;
|
||||||
content?: string;
|
content?: string;
|
||||||
|
type?: NoteType;
|
||||||
children?: NoteDefinition[];
|
children?: NoteDefinition[];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,7 +44,7 @@ export function buildNote(noteDef: NoteDefinition) {
|
|||||||
const note = new BNote({
|
const note = new BNote({
|
||||||
noteId: noteDef.id ?? utils.randomString(12),
|
noteId: noteDef.id ?? utils.randomString(12),
|
||||||
title: noteDef.title ?? "New note",
|
title: noteDef.title ?? "New note",
|
||||||
type: "text",
|
type: noteDef.type ?? "text",
|
||||||
mime: "text/html",
|
mime: "text/html",
|
||||||
isProtected: false,
|
isProtected: false,
|
||||||
blobId: ""
|
blobId: ""
|
||||||
|
|||||||
@@ -12,8 +12,8 @@
|
|||||||
"i18next-http-backend": "3.0.2",
|
"i18next-http-backend": "3.0.2",
|
||||||
"preact": "10.27.2",
|
"preact": "10.27.2",
|
||||||
"preact-iso": "2.11.0",
|
"preact-iso": "2.11.0",
|
||||||
"preact-render-to-string": "6.6.2",
|
"preact-render-to-string": "6.6.3",
|
||||||
"react-i18next": "16.1.0"
|
"react-i18next": "16.2.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@preact/preset-vite": "2.10.2",
|
"@preact/preset-vite": "2.10.2",
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
"eslint-config-preact": "2.0.0",
|
"eslint-config-preact": "2.0.0",
|
||||||
"typescript": "5.9.3",
|
"typescript": "5.9.3",
|
||||||
"user-agent-data-types": "0.4.2",
|
"user-agent-data-types": "0.4.2",
|
||||||
"vite": "7.1.10"
|
"vite": "7.1.11"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"extends": "preact"
|
"extends": "preact"
|
||||||
|
|||||||
@@ -7,7 +7,8 @@
|
|||||||
},
|
},
|
||||||
"download_helper_server_hosted": {
|
"download_helper_server_hosted": {
|
||||||
"title": "استضافة مدفوعة",
|
"title": "استضافة مدفوعة",
|
||||||
"download_triliumcc": "بدلا من ذلك، راجع trillum. cc"
|
"download_triliumcc": "بدلا من ذلك، راجع trillum. cc",
|
||||||
|
"download_pikapod": "اعدلد على PikaPods"
|
||||||
},
|
},
|
||||||
"get-started": {
|
"get-started": {
|
||||||
"architecture": "المعمارية:",
|
"architecture": "المعمارية:",
|
||||||
@@ -22,7 +23,8 @@
|
|||||||
"organization_benefits": {
|
"organization_benefits": {
|
||||||
"title": "تنظيم",
|
"title": "تنظيم",
|
||||||
"note_structure_title": "هيكيلية الملاحظة",
|
"note_structure_title": "هيكيلية الملاحظة",
|
||||||
"hoisting_title": "مساحات العمل والتركيز على الملاحظة"
|
"hoisting_title": "مساحات العمل والتركيز على الملاحظة",
|
||||||
|
"attributes_title": "العلاقات وجداول الملاحظة"
|
||||||
},
|
},
|
||||||
"productivity_benefits": {
|
"productivity_benefits": {
|
||||||
"sync_title": "المزامنة",
|
"sync_title": "المزامنة",
|
||||||
@@ -30,7 +32,8 @@
|
|||||||
"protected_notes_title": "الملاحظات المحمية",
|
"protected_notes_title": "الملاحظات المحمية",
|
||||||
"search_title": "البحث القوي",
|
"search_title": "البحث القوي",
|
||||||
"web_clipper_title": "اداة قص الويب",
|
"web_clipper_title": "اداة قص الويب",
|
||||||
"title": "الانتاجية والسلامة"
|
"title": "الانتاجية والسلامة",
|
||||||
|
"jump_to_title": "الاوامر والبحث السريع"
|
||||||
},
|
},
|
||||||
"note_types": {
|
"note_types": {
|
||||||
"canvas_title": "مساحة العمل",
|
"canvas_title": "مساحة العمل",
|
||||||
@@ -66,14 +69,16 @@
|
|||||||
"paypal": "PayPal",
|
"paypal": "PayPal",
|
||||||
"title": "ادعمنا",
|
"title": "ادعمنا",
|
||||||
"financial_donations_title": "التبرعات المالية",
|
"financial_donations_title": "التبرعات المالية",
|
||||||
"github_sponsors": "الرعاة على GitHub"
|
"github_sponsors": "الرعاة على GitHub",
|
||||||
|
"buy_me_a_coffee": "Buy Me A Coffee"
|
||||||
},
|
},
|
||||||
"download_helper_desktop_windows": {
|
"download_helper_desktop_windows": {
|
||||||
"download_scoop": "Scoop",
|
"download_scoop": "Scoop",
|
||||||
"download_exe": "تحميل ملف التثبيت (exe.)",
|
"download_exe": "تحميل ملف التثبيت (exe.)",
|
||||||
"title_x64": "ويندوز 64 بت",
|
"title_x64": "ويندوز 64 بت",
|
||||||
"download_zip": "النسخة المحمولة بصيغة zip",
|
"download_zip": "النسخة المحمولة بصيغة zip",
|
||||||
"title_arm64": "نظام ويندوز عاى ARM"
|
"title_arm64": "نظام ويندوز عاى ARM",
|
||||||
|
"quick_start": "للتثبيت باستخدام Winget:"
|
||||||
},
|
},
|
||||||
"download_helper_desktop_linux": {
|
"download_helper_desktop_linux": {
|
||||||
"download_deb": ".deb",
|
"download_deb": ".deb",
|
||||||
@@ -112,6 +117,11 @@
|
|||||||
"download_dmg": "تحميل ملف التثبيت (dmg.)",
|
"download_dmg": "تحميل ملف التثبيت (dmg.)",
|
||||||
"download_homebrew_cask": "Homebrew Cask",
|
"download_homebrew_cask": "Homebrew Cask",
|
||||||
"download_zip": "النسخة المحمولة بصيغة zip",
|
"download_zip": "النسخة المحمولة بصيغة zip",
|
||||||
"title_x64": "نظام macOS لاصدار intel"
|
"title_x64": "نظام macOS لاصدار intel",
|
||||||
|
"title_arm64": "نظام macOS لمعالجة اجهزة Apple Silicon",
|
||||||
|
"quick_start": "للتثبيت بواسطة Homebrew:"
|
||||||
|
},
|
||||||
|
"contribute": {
|
||||||
|
"title": "طرق اخرى للمساهمة"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1,8 @@
|
|||||||
{}
|
{
|
||||||
|
"get-started": {
|
||||||
|
"title": "Loslegen",
|
||||||
|
"desktop_title": "Die Desktop-App herunterladen (v{{version}})",
|
||||||
|
"architecture": "Architektur:",
|
||||||
|
"older_releases": "Ältere Releases anzeigen"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1 +1,49 @@
|
|||||||
{}
|
{
|
||||||
|
"get-started": {
|
||||||
|
"title": "Ξεκινήστε",
|
||||||
|
"desktop_title": "Κατεβάστε την εφαρμογή desktop (v{{version}})",
|
||||||
|
"architecture": "Αρχιτεκτονική:",
|
||||||
|
"older_releases": "Δείτε παλαιότερες εκδόσεις",
|
||||||
|
"server_title": "Ρυθμίστε έναν server για πρόσβαση σε πολλαπλές συσκευές"
|
||||||
|
},
|
||||||
|
"hero_section": {
|
||||||
|
"title": "Οργανώστε τις σκέψεις σας. Δημιουργήστε την προσωπική σας βάση γνώσεων.",
|
||||||
|
"subtitle": "Το Trilium είναι μια λύση ανοικτού κώδικα για τη λήψη και την οργάνωση μιας προσωπικής βάσης γνώσεων. Χρησιμοποιήστε το σε τοπικό επίπεδο στο desktop σας, ή συγχρονίστε το με τον δικό σας server σας για να κρατήσετε τις σημειώσεις σας όπου πηγαίνετε.",
|
||||||
|
"get_started": "Ξεκινήστε",
|
||||||
|
"screenshot_alt": "Στιγμιότυπο οθόνης της desktop εφαρμογής Trilium Notes",
|
||||||
|
"github": "GitHub",
|
||||||
|
"dockerhub": "Docker Hub"
|
||||||
|
},
|
||||||
|
"organization_benefits": {
|
||||||
|
"title": "Οργανισμός",
|
||||||
|
"note_structure_title": "Δομή σημειώσεων",
|
||||||
|
"note_structure_description": "Οι σημειώσεις μπορούν να ταξινομηθούν ιεραρχικά. Δεν χρειάζονται φάκελοι, καθώς κάθε σημείωση μπορεί να περιέχει δευτερεύουσες σημειώσεις. Μια μεμονωμένη σημείωση μπορεί να προστεθεί σε πολλά σημεία της ιεραρχίας.",
|
||||||
|
"attributes_title": "Ετικέτες σημειώσεων και σχέσεις",
|
||||||
|
"attributes_description": "Χρησιμοποιήστε σχέσεις μεταξύ σημειώσεων ή προσθέστε ετικέτες για εύκολη κατηγοριοποίηση. Χρησιμοποιήστε προωθημένες ιδιότητες για να εισάγετε δομημένες πληροφορίες που μπορούν να χρησιμοποιηθούν σε πίνακες, συμβούλια.",
|
||||||
|
"hoisting_description": "Διαχωρίστε εύκολα τις προσωπικές και τις εργασιακές σας σημειώσεις ομαδοποιώντας τις σε έναν χώρο εργασίας, ο οποίος εστιάζει το δέντρο σημειώσεών σας ώστε να εμφανίζει μόνο ένα συγκεκριμένο σύνολο σημειώσεων.",
|
||||||
|
"hoisting_title": "Χώροι εργασίας και ανύψωση"
|
||||||
|
},
|
||||||
|
"productivity_benefits": {
|
||||||
|
"title": "Παραγωγικότητα και ασφάλεια",
|
||||||
|
"revisions_title": "Aναθεωρήσεις σημειώσεων",
|
||||||
|
"revisions_content": "Οι σημειώσεις αποθηκεύονται περιοδικά στο παρασκήνιο και οι αναθεωρήσεις μπορούν να χρησιμοποιηθούν για έλεγχο ή για αναίρεση τυχαίων αλλαγών. Οι αναθεωρήσεις μπορούν επίσης να δημιουργηθούν κατ' απαίτηση.",
|
||||||
|
"sync_title": "Συγχρονισμός",
|
||||||
|
"sync_content": "Χρησιμοποιήστε μια δικής σας εγκατάσταση ή μια εγκατάσταση cloud για να συγχρονίσετε εύκολα τις σημειώσεις σας σε πολλές συσκευές και να αποκτήσετε πρόσβαση σε αυτές από το κινητό σας τηλέφωνο χρησιμοποιώντας ένα PWA.",
|
||||||
|
"protected_notes_title": "Προστατευμένες σημειώσεις",
|
||||||
|
"protected_notes_content": "Προστατέψτε ευαίσθητες προσωπικές πληροφορίες κρυπτογραφώντας τις σημειώσεις και κλειδώνοντάς τις πίσω από μια περίοδο λειτουργίας που προστατεύεται με κωδικό πρόσβασης.",
|
||||||
|
"jump_to_title": "Γρήγορη αναζήτηση και εντολές",
|
||||||
|
"jump_to_content": "Μεταβείτε γρήγορα σε σημειώσεις ή εντολές σε όλη την ιεραρχία αναζητώντας τον τίτλο τους, με ασαφή αντιστοίχιση για να ληφθούν υπόψη τυπογραφικά λάθη ή μικρές διαφορές.",
|
||||||
|
"search_title": "Ισχυρή αναζήτηση",
|
||||||
|
"search_content": "Εναλλακτικά, αναζητήστε κείμενο μέσα σε σημειώσεις και περιορίστε την αναζήτηση φιλτράροντας με βάση την ανώτερη σημείωση ή κατά βάθος.",
|
||||||
|
"web_clipper_title": "Εργαλείο αποκομμάτων web",
|
||||||
|
"web_clipper_content": "Πάρτε ιστοσελίδες (ή στιγμιότυπα οθόνης) και τοποθετήστε τις απευθείας στο Trilium χρησιμοποιώντας το εργαλείο αποκομμάτων web του προγράμματος περιήγησης."
|
||||||
|
},
|
||||||
|
"note_types": {
|
||||||
|
"text_title": "Σημειώσεις κειμένου",
|
||||||
|
"text_description": "Οι σημειώσεις επεξεργάζονται χρησιμοποιώντας έναν οπτικό επεξεργαστή (WYSIWYG), με υποστήριξη για πίνακες, εικόνες, μαθηματικές εκφράσεις, μπλοκ κώδικα με επισήμανση σύνταξης. Μορφοποιήστε γρήγορα το κείμενο χρησιμοποιώντας σύνταξη παρόμοια με το Markdown ή χρησιμοποιώντας εντολές με κάθετο.",
|
||||||
|
"code_title": "Σημειώσεις κώδικα",
|
||||||
|
"code_description": "Μεγάλα δείγματα πηγαίου κώδικα ή scripts χρησιμοποιούν έναν ειδικό επεξεργαστή, με επισήμανση σύνταξης για πολλές γλώσσες προγραμματισμού και με διάφορα χρωματικά θέματα.",
|
||||||
|
"file_title": "Σημειώσεις αρχείων",
|
||||||
|
"file_description": "Ενσωματώστε αρχεία πολυμέσων όπως PDF, εικόνες, βίντεο με προεπισκόπηση εντός εφαρμογής."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1 +1,192 @@
|
|||||||
{}
|
{
|
||||||
|
"get-started": {
|
||||||
|
"title": "Commencer",
|
||||||
|
"desktop_title": "Télécharger l'application de bureau (v{{version}})",
|
||||||
|
"architecture": "Architecture :",
|
||||||
|
"older_releases": "Voir les versions plus anciennes",
|
||||||
|
"server_title": "Configurer un serveur pour accéder à plusieurs appareils"
|
||||||
|
},
|
||||||
|
"hero_section": {
|
||||||
|
"github": "GitHub",
|
||||||
|
"get_started": "Commencer",
|
||||||
|
"title": "Organisez vos pensées. Construisez votre base de connaissances personnelles.",
|
||||||
|
"subtitle": "Trilium est une solution open source pour la prise de notes et l'organisation de votre base de connaissances personnelle. Utilisez-la localement sur votre ordinateur ou synchronisez-la avec votre serveur auto-hébergé pour conserver vos notes où que vous soyez.",
|
||||||
|
"dockerhub": "Docker Hub",
|
||||||
|
"screenshot_alt": "Capture d'écran de l'application de bureau Trilium Notes"
|
||||||
|
},
|
||||||
|
"organization_benefits": {
|
||||||
|
"title": "Organisation",
|
||||||
|
"note_structure_title": "Structure des notes",
|
||||||
|
"note_structure_description": "Les notes peuvent être organisées hiérarchiquement. Il n'est pas nécessaire de créer des dossiers, car chaque note peut contenir des sous-notes. Une même note peut être ajoutée à plusieurs endroits de la hiérarchie.",
|
||||||
|
"attributes_title": "Noter les étiquettes et les relations",
|
||||||
|
"attributes_description": "Utilisez des relations entre les notes ou ajoutez des étiquettes pour faciliter la catégorisation. Utilisez les attributs promus pour saisir des informations structurées utilisables dans des tableaux et des tableaux de bord.",
|
||||||
|
"hoisting_title": "Espaces de travail et focalisation",
|
||||||
|
"hoisting_description": "Séparez facilement vos notes personnelles et professionnelles en les regroupant sous un espace de travail, ce qui concentre votre arborescence de notes pour afficher uniquement l'ensemble spécifique de celles-ci."
|
||||||
|
},
|
||||||
|
"productivity_benefits": {
|
||||||
|
"title": "Productivité et sécurité",
|
||||||
|
"revisions_title": "Révisions de note",
|
||||||
|
"revisions_content": "Les notes sont sauvegardées périodiquement en arrière-plan, et les révisions peuvent être utilisées pour consulter l’historique ou annuler des modifications accidentelles. Il est également possible de créer des révisions à la demande.",
|
||||||
|
"sync_title": "Synchronisation",
|
||||||
|
"sync_content": "Utilisez une instance auto-hébergée ou cloud pour synchroniser facilement vos notes sur plusieurs appareils, et pour y accéder à partir de votre téléphone mobile en utilisant un PWA.",
|
||||||
|
"protected_notes_title": "Notes protégées",
|
||||||
|
"protected_notes_content": "Protégez les informations personnelles sensibles en chiffrant les notes et en les verrouillant dans une session protégée par mot de passe.",
|
||||||
|
"jump_to_title": "Recherche rapide et commandes",
|
||||||
|
"jump_to_content": "Accédez rapidement à des notes ou commandes de l’interface dans toute la hiérarchie en recherchant leur titre, avec une correspondance approximative pour gérer les fautes de frappe ou légères variations.",
|
||||||
|
"search_title": "Recherche puissante",
|
||||||
|
"search_content": "Ou recherchez du texte à l’intérieur des notes et affinez les résultats en filtrant par note parente ou par profondeur.",
|
||||||
|
"web_clipper_title": "Web clipper",
|
||||||
|
"web_clipper_content": "Récupérez des pages Web (ou des captures d'écran) et placez-les directement dans Trilium à l'aide de l'extension de navigateur \"Web Clipper\"."
|
||||||
|
},
|
||||||
|
"note_types": {
|
||||||
|
"text_title": "Notes de texte",
|
||||||
|
"text_description": "Les notes sont éditées à l'aide d'un éditeur visuel (WYSIWYG) prenant en charge les tableaux, les images, les expressions mathématiques et les blocs de code avec coloration syntaxique. Formatez rapidement le texte grâce à une syntaxe de type Markdown ou à des commandes slash.",
|
||||||
|
"code_title": "Notes de code",
|
||||||
|
"code_description": "De grands échantillons de code source ou de scripts utilisent un éditeur dédié, avec une coloration syntaxique pour de nombreux langages de programmation et avec différents thèmes de couleurs.",
|
||||||
|
"file_title": "Notes de fichier",
|
||||||
|
"file_description": "Intégrez des fichiers multimédias tels que des PDF, des images, des vidéos avec un aperçu intégré à l'application.",
|
||||||
|
"canvas_title": "Canvas",
|
||||||
|
"canvas_description": "Agencez formes, images et textes sur une surface infinie grâce à la même technologie qu'excalidraw.com. Idéal pour les diagrammes, les croquis et la planification visuelle.",
|
||||||
|
"mermaid_title": "Diagrammes Mermaid",
|
||||||
|
"mermaid_description": "Créez des diagrammes tels que des organigrammes, des diagrammes de classes et de séquences, des diagrammes de Gantt et bien d'autres, en utilisant la syntaxe Mermaid.",
|
||||||
|
"mindmap_title": "Carte mentale",
|
||||||
|
"mindmap_description": "Organisez vos pensées visuellement ou faites une séance de brainstorming.",
|
||||||
|
"others_list": "et autres : <0>carte de notes</0>, <1>carte de relations</1>, <2>recherches enregistrées</2>, <3>note de rendu</3> et <4>vues Web</4>."
|
||||||
|
},
|
||||||
|
"faq": {
|
||||||
|
"database_question": "Où sont les données stockées?",
|
||||||
|
"database_answer": "Toutes vos notes seront stockées dans une base de données SQLite, dans un dossier d'application. Trilium utilise une base de données plutôt que des fichiers texte pour des raisons de performances, et certaines fonctionnalités seraient beaucoup plus complexes à implémenter, comme les clones (même note à plusieurs endroits de l'arborescence). Pour trouver le dossier d'application, accédez simplement à la fenêtre « À propos ».",
|
||||||
|
"mobile_answer": "Il n'existe actuellement aucune application mobile officielle. Cependant, si vous disposez d'une instance serveur, vous pouvez y accéder via un navigateur web et même l'installer en tant que PWA. Pour Android, il existe une application non officielle appelée \"TriliumDroid\", qui fonctionne même hors ligne (comme un client de bureau).",
|
||||||
|
"mobile_question": "Y a-t-il une application mobile ?",
|
||||||
|
"title": "Foire aux questions",
|
||||||
|
"server_question": "Ai-je besoin d'un serveur pour utiliser Trilium ?",
|
||||||
|
"server_answer": "Non, le serveur permet l'accès via un navigateur web et gère la synchronisation si vous possédez plusieurs appareils. Pour commencer, il suffit de télécharger l'application de bureau et de l'utiliser.",
|
||||||
|
"scaling_question": "Dans quelle mesure l'application s'adapte-t-elle à une grande quantité de notes ?",
|
||||||
|
"scaling_answer": "Selon l'utilisation, l'application devrait pouvoir gérer au moins 100 000 notes sans problème. Notez que la synchronisation peut parfois échouer lors du téléchargement de nombreux fichiers volumineux (1 Go par fichier), car Trilium est davantage conçu comme une base de connaissances que comme un espace de stockage de fichiers (comme NextCloud, par exemple).",
|
||||||
|
"network_share_question": "Puis-je partager ma base de données sur un lecteur réseau ?",
|
||||||
|
"network_share_answer": "Non, il est généralement déconseillé de partager une base de données SQLite sur un lecteur réseau. Bien que cela puisse parfois fonctionner, il existe un risque de corruption de la base de données en raison de verrous de fichiers imparfaits sur le réseau.",
|
||||||
|
"security_question": "Comment mes données sont-elles protégées?",
|
||||||
|
"security_answer": "Par défaut, les notes ne sont pas chiffrées et peuvent être consultées directement depuis la base de données. Une fois chiffrée, une note l'est avec le protocole AES-128-CBC."
|
||||||
|
},
|
||||||
|
"final_cta": {
|
||||||
|
"title": "Prêt à commencer avec Trilium Notes ?",
|
||||||
|
"description": "Créez votre base de connaissances personnelle avec des fonctionnalités puissantes et une totale confidentialité.",
|
||||||
|
"get_started": "Commencer"
|
||||||
|
},
|
||||||
|
"components": {
|
||||||
|
"link_learn_more": "En savoir plus...",
|
||||||
|
"list_with_screenshot_alt": "Capture d'écran de la fonctionnalité sélectionnée"
|
||||||
|
},
|
||||||
|
"support_us": {
|
||||||
|
"financial_donations_title": "Dons financiers",
|
||||||
|
"financial_donations_description": "Trilium est développé et maintenu grâce à <Link>des centaines d'heures de travail</Link>. Votre soutien permet de maintenir son open-source, d'améliorer ses fonctionnalités et de couvrir des coûts tels que l'hébergement.",
|
||||||
|
"financial_donations_cta": "Envisagez de soutenir le développeur principal (<Link>eliandoran</Link>) de l'application via :",
|
||||||
|
"github_sponsors": "Sponsors GitHub",
|
||||||
|
"paypal": "PayPal",
|
||||||
|
"buy_me_a_coffee": "Offrez-moi un café",
|
||||||
|
"title": "Soutenez-nous"
|
||||||
|
},
|
||||||
|
"contribute": {
|
||||||
|
"title": "Autres façons de contribuer",
|
||||||
|
"way_translate": "Traduisez l'application dans votre langue maternelle via <Link>Weblate</Link>.",
|
||||||
|
"way_community": "Interagissez avec la communauté sur <Discussions>GitHub Discussions</Discussions> ou sur <Matrix>Matrix</Matrix>.",
|
||||||
|
"way_reports": "Signalez les bugs via <Link>GitHub issues</Link>.",
|
||||||
|
"way_document": "Améliorez la documentation en nous informant des lacunes dans celle-ci ou en contribuant à des guides, des FAQ ou des tutoriels.",
|
||||||
|
"way_market": "Passez le mot : partagez Trilium Notes avec vos amis, sur des blogs et sur les réseaux sociaux."
|
||||||
|
},
|
||||||
|
"404": {
|
||||||
|
"title": "404 : introuvable",
|
||||||
|
"description": "La page que vous cherchiez est introuvable. Elle a peut-être été supprimée ou l'URL est incorrecte."
|
||||||
|
},
|
||||||
|
"download_helper_desktop_windows": {
|
||||||
|
"title_x64": "Windows 64-bit",
|
||||||
|
"title_arm64": "Windows sur ARM",
|
||||||
|
"description_x64": "Compatible avec les appareils Intel ou AMD exécutant Windows 10 et 11.",
|
||||||
|
"description_arm64": "Compatible avec les appareils ARM (par exemple avec Qualcomm Snapdragon).",
|
||||||
|
"quick_start": "Pour installer via Winget :",
|
||||||
|
"download_exe": "télécharger l'installeur (.exe)",
|
||||||
|
"download_zip": "Portable (.zip)",
|
||||||
|
"download_scoop": "Scoop"
|
||||||
|
},
|
||||||
|
"download_helper_desktop_linux": {
|
||||||
|
"title_x64": "Linux 64-bit",
|
||||||
|
"title_arm64": "Linux sur ARM",
|
||||||
|
"description_x64": "Pour la plupart des distributions Linux, compatible avec l'architecture x86_64.",
|
||||||
|
"description_arm64": "Pour les distributions Linux basées sur ARM, compatible avec l'architecture aarch64.",
|
||||||
|
"quick_start": "Sélectionnez un format de package approprié, en fonction de votre distribution :",
|
||||||
|
"download_deb": ".deb",
|
||||||
|
"download_rpm": ".rpm",
|
||||||
|
"download_flatpak": ".flatpak",
|
||||||
|
"download_zip": "Portable (.zip)",
|
||||||
|
"download_nixpkgs": "nixpkgs",
|
||||||
|
"download_aur": "AUR"
|
||||||
|
},
|
||||||
|
"download_helper_desktop_macos": {
|
||||||
|
"title_x64": "macOS pour Intel",
|
||||||
|
"title_arm64": "macOS pour Apple Silicon",
|
||||||
|
"description_x64": "Pour les Mac basés sur Intel exécutant macOS Big Sur ou une version ultérieure.",
|
||||||
|
"description_arm64": "Pour les Mac Apple Silicon tels que ceux équipés de puces M1 et M2.",
|
||||||
|
"quick_start": "Pour installer via Homebrew :",
|
||||||
|
"download_dmg": "Télécharger le programme d'installation (.dmg)",
|
||||||
|
"download_homebrew_cask": "Homebrew Cask",
|
||||||
|
"download_zip": "Portable (.zip)"
|
||||||
|
},
|
||||||
|
"download_helper_server_docker": {
|
||||||
|
"title": "Auto-hébergé avec Docker",
|
||||||
|
"description": "Déployez facilement sur Windows, Linux ou macOS à l'aide d'un conteneur Docker.",
|
||||||
|
"download_dockerhub": "Docker Hub",
|
||||||
|
"download_ghcr": "ghcr.io"
|
||||||
|
},
|
||||||
|
"download_helper_server_linux": {
|
||||||
|
"title": "Auto-hébergé sur Linux",
|
||||||
|
"description": "Déployez Trilium Notes sur votre propre serveur ou VPS, compatible avec la plupart des distributions.",
|
||||||
|
"download_tar_x64": "x64 (.tar.xz)",
|
||||||
|
"download_tar_arm64": "ARM (.tar.xz)",
|
||||||
|
"download_nixos": "Module NixOS"
|
||||||
|
},
|
||||||
|
"download_helper_server_hosted": {
|
||||||
|
"title": "Hébergement payant",
|
||||||
|
"description": "Notes Trilium hébergées sur PikaPods, un service payant pour un accès et une gestion simplifiés. Non affilié directement à l'équipe Trilium.",
|
||||||
|
"download_pikapod": "Installé sur PikaPods",
|
||||||
|
"download_triliumcc": "Voir également trilium.cc"
|
||||||
|
},
|
||||||
|
"extensibility_benefits": {
|
||||||
|
"title": "Partage et extensibilité",
|
||||||
|
"import_export_title": "Import/export",
|
||||||
|
"import_export_description": "Interagissez facilement avec d'autres applications utilisant les formats Markdown, ENEX, OML.",
|
||||||
|
"share_title": "Partager des notes sur le Web",
|
||||||
|
"share_description": "Si vous disposez d'un serveur, vous pouvez l'utiliser pour partager un sous-ensemble de vos notes avec d'autres personnes.",
|
||||||
|
"scripting_title": "Scripts avancés",
|
||||||
|
"scripting_description": "Créez vos propres intégrations dans Trilium avec des widgets personnalisés ou une logique côté serveur.",
|
||||||
|
"api_title": "REST API",
|
||||||
|
"api_description": "Interagissez avec Trilium par programmation à l'aide de son API REST intégrée."
|
||||||
|
},
|
||||||
|
"collections": {
|
||||||
|
"calendar_title": "Calendrier",
|
||||||
|
"calendar_description": "Organisez vos événements personnels ou professionnels grâce à un calendrier compatible avec les événements d'une journée ou de plusieurs jours. Visualisez vos événements en un coup d'œil grâce aux vues hebdomadaire, mensuelle et annuelle. Ajoutez ou déplacez facilement des événements.",
|
||||||
|
"table_title": "Tableau",
|
||||||
|
"table_description": "Affichez et modifiez les informations relatives aux notes dans une structure tabulaire, avec différents types de colonnes (texte, nombre, cases à cocher, date et heure, liens, couleurs) et la prise en charge des relations. Vous pouvez également afficher les notes sous forme d'arborescence à l'intérieur du tableau.",
|
||||||
|
"board_title": "Tableau de bord",
|
||||||
|
"board_description": "Organisez vos tâches ou l'état de vos projets dans un tableau Kanban avec un moyen simple de créer de nouveaux éléments et colonnes et de modifier simplement leur état en les faisant glisser sur le tableau.",
|
||||||
|
"geomap_title": "Géocarte",
|
||||||
|
"geomap_description": "Planifiez vos vacances ou marquez vos points d'intérêt directement sur une carte géographique grâce à des marqueurs personnalisables. Affichez les traces GPX enregistrées pour suivre vos itinéraires."
|
||||||
|
},
|
||||||
|
"download_now": {
|
||||||
|
"text": "Télécharger maintenant. ",
|
||||||
|
"platform_big": "v{{version}} pour {{platform}}",
|
||||||
|
"platform_small": "pour {{platform}}",
|
||||||
|
"linux_big": "v{{version}} pour Linux",
|
||||||
|
"linux_small": "pour Linux",
|
||||||
|
"more_platforms": "Plus de plateformes et de configuration de serveur"
|
||||||
|
},
|
||||||
|
"footer": {
|
||||||
|
"copyright_and_the": " et le ",
|
||||||
|
"copyright_community": "communauté"
|
||||||
|
},
|
||||||
|
"social_buttons": {
|
||||||
|
"github": "GitHub",
|
||||||
|
"github_discussions": "Discussions GitHub",
|
||||||
|
"matrix": "Matrix",
|
||||||
|
"reddit": "Reddit"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1 +1,44 @@
|
|||||||
{}
|
{
|
||||||
|
"get-started": {
|
||||||
|
"title": "Kezdés",
|
||||||
|
"desktop_title": "Töltsd le az asztali alkalmazást (v{{version}})",
|
||||||
|
"architecture": "Szerkezet:",
|
||||||
|
"older_releases": "Régebbi kiadások megtekintése",
|
||||||
|
"server_title": "Szerver beállítása több eszközről történő hozzáféréshez"
|
||||||
|
},
|
||||||
|
"hero_section": {
|
||||||
|
"title": "Rendszerezd a gondolataidat. Építsd fel a személyes tudásbázisodat.",
|
||||||
|
"subtitle": "A Trilium egy nyílt forráskódú megoldás jegyzeteléshez és személyes tudásbázis rendszerezéséhez. Használd helyben az asztali gépeden, vagy szinkronizáld a saját szervereddel, hogy jegyzeteid mindenhol elérhetőek legyenek.",
|
||||||
|
"get_started": "Kezdés",
|
||||||
|
"github": "GitHub",
|
||||||
|
"dockerhub": "Docker Hub",
|
||||||
|
"screenshot_alt": "A Trilium Notes asztali alkalmazás képernyőképe"
|
||||||
|
},
|
||||||
|
"organization_benefits": {
|
||||||
|
"title": "Szervezet",
|
||||||
|
"note_structure_title": "Jegyzet szerkezet",
|
||||||
|
"note_structure_description": "A jegyzetek hierarchikusan rendezhetők. Nincs szükség mappákra, mivel minden jegyzet tartalmazhat aljegyzeteket. Egyetlen jegyzet több helyre is hozzáadható a hierarchiában.",
|
||||||
|
"attributes_title": "Jegyzetcímkék és kapcsolatok",
|
||||||
|
"attributes_description": "Használjon kapcsolatokat a jegyzetek között, vagy adjon hozzá címkéket az egyszerű kategorizálás érdekében. Használjon kiemelt attribútumokat strukturált információk beviteléhez, amelyek táblázatokban és táblákon használhatók.",
|
||||||
|
"hoisting_title": "Munkaterületek és kiemelés",
|
||||||
|
"hoisting_description": "Könnyedén különítse el a személyes és munkahelyi jegyzeteit úgy, hogy csoportosítja őket egy munkaterület alatt, amely a jegyzetfát csak egy adott jegyzetkészlet megjelenítésére összpontosítja."
|
||||||
|
},
|
||||||
|
"productivity_benefits": {
|
||||||
|
"title": "Termelékenység és biztonság",
|
||||||
|
"revisions_title": "Megjegyzés felülvizsgálatai",
|
||||||
|
"revisions_content": "A jegyzetek rendszeresen tárolódnak a háttérben, és a revíziók felhasználhatók felülvizsgálatra vagy véletlen változások visszavonására. A revíziók igény szerint is létrehozhatók.",
|
||||||
|
"sync_title": "Szinkronizálás",
|
||||||
|
"sync_content": "Használjon saját maga által üzemeltetett vagy felhő alapu példányt, hogy könnyen szinkronizálja a jegyzeteket több eszközön keresztül, és hozzáférjen a mobiltelefonjáról egy PWA segítségével.",
|
||||||
|
"protected_notes_title": "Védett jegyzetek",
|
||||||
|
"protected_notes_content": "Védje az érzékeny személyes adatokat a jegyzetek titkosításával és a jelszóval védett munkamenet mögötti zárolással.",
|
||||||
|
"jump_to_title": "Gyors keresés és parancsok",
|
||||||
|
"jump_to_content": "Ugorj gyorsan a jegyzetekhez vagy a felhasználói felület parancsaihoz a hierarchia területén, keresve a címüket, a fuzzy illesztéssel, hogy megmagyarázza az elírásokat vagy az enyhe különbségeket.",
|
||||||
|
"search_title": "Erőteljes keresés",
|
||||||
|
"search_content": "Vagy keressen szöveget a jegyzetekben, és szűkítse le a keresést a szülői jegyzet szűrésével vagy mélységével."
|
||||||
|
},
|
||||||
|
"note_types": {
|
||||||
|
"file_description": "Beágyazott multimédiás fájlokat, például PDF-eket, képeket, videókat, alkalmazáson belüli előnézettel.",
|
||||||
|
"canvas_title": "Vászon",
|
||||||
|
"canvas_description": "Rendezzen formákat, képeket és szöveget egy végtelen vászonra, ugyanazzal a technológiával mint ami excalidraw.com mögött van. Ideális diagramokhoz, vázlatokhoz és vizuális tervezéshez."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -5,5 +5,30 @@
|
|||||||
"architecture": "Architectuur:",
|
"architecture": "Architectuur:",
|
||||||
"older_releases": "Bekijk oudere versies",
|
"older_releases": "Bekijk oudere versies",
|
||||||
"server_title": "Richt een server in voor toegang vanaf meerdere apparaten"
|
"server_title": "Richt een server in voor toegang vanaf meerdere apparaten"
|
||||||
|
},
|
||||||
|
"hero_section": {
|
||||||
|
"title": "Organiseer je gedachten. Bouw je persoonlijke kennisbank.",
|
||||||
|
"subtitle": "Trilium is een open-source oplossing voor notities en het organiseren van een persoonlijke kennisbank. Gebruik het lokaal op je desktop, of synchroniseer het met je zelfgehoste server om je notities overal bij de hand te hebben.",
|
||||||
|
"get_started": "Aan de slag",
|
||||||
|
"github": "GitHub",
|
||||||
|
"dockerhub": "Docker Hub",
|
||||||
|
"screenshot_alt": "Schermafbeelding van de Trilium Notes-desktopapplicatie"
|
||||||
|
},
|
||||||
|
"organization_benefits": {
|
||||||
|
"title": "Organisatie",
|
||||||
|
"note_structure_title": "Notitie structuur",
|
||||||
|
"note_structure_description": "Notities kunnen hiërarchisch worden geordend. Mappen zijn niet nodig, aangezien elke notitie subnotities kan bevatten. Een enkele notitie kan bovendien op meerdere plaatsen in de hiërarchie worden toegevoegd.",
|
||||||
|
"attributes_title": "Notitielabels en relaties",
|
||||||
|
"attributes_description": "Gebruik relaties tussen notities of voeg labels toe voor eenvoudige categorisatie. Gebruik gepromoveerde attributen om gestructureerde informatie in te voeren die kan worden gebruikt in tabellen en borden.",
|
||||||
|
"hoisting_title": "Werkruimtes en focus (hoisting)",
|
||||||
|
"hoisting_description": "Scheid eenvoudig je persoonlijke en werknotities door ze te groeperen onder een werkruimte, waarmee je de notitieboom kunt focussen op een specifieke set notities."
|
||||||
|
},
|
||||||
|
"productivity_benefits": {
|
||||||
|
"title": "Productiviteit en veiligheid",
|
||||||
|
"revisions_title": "Notitie revisies",
|
||||||
|
"revisions_content": "Notities worden periodiek op de achtergrond opgeslagen, en versies kunnen worden gebruikt om wijzigingen te bekijken of om per ongeluk gemaakte aanpassingen ongedaan te maken. Revisies kunnen ook handmatig worden aangemaakt.",
|
||||||
|
"sync_title": "Synchronisatie",
|
||||||
|
"sync_content": "Gebruik een zelfgehoste of cloudinstantie om je notities eenvoudig te synchroniseren tussen meerdere apparaten, en om er via een PWA toegang toe te krijgen op je mobiele telefoon.",
|
||||||
|
"protected_notes_title": "Beveiligde notities"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1,50 @@
|
|||||||
{}
|
{
|
||||||
|
"get-started": {
|
||||||
|
"title": "Почати",
|
||||||
|
"desktop_title": "Завантажити програму для ПК (v{{version}})",
|
||||||
|
"architecture": "Архітектура:",
|
||||||
|
"older_releases": "Дивитися старіші випуски",
|
||||||
|
"server_title": "Налаштуйте сервер для доступу на кількох пристроях"
|
||||||
|
},
|
||||||
|
"hero_section": {
|
||||||
|
"title": "Упорядкуйте свої думки. Створіть свою особисту базу знань.",
|
||||||
|
"subtitle": "Trilium — це рішення з відкритим кодом для ведення нотаток та організації особистої бази знань. Використовуйте його локально на своєму робочому столі або синхронізуйте зі своїм власним сервером, щоб мати свої нотатки під рукою, де б ви не були.",
|
||||||
|
"get_started": "Почати",
|
||||||
|
"github": "GitHub",
|
||||||
|
"dockerhub": "Docker Hub",
|
||||||
|
"screenshot_alt": "Знімок екрана програми Trilium Notes для ПК"
|
||||||
|
},
|
||||||
|
"organization_benefits": {
|
||||||
|
"title": "Організація",
|
||||||
|
"note_structure_title": "Структура нотатки",
|
||||||
|
"note_structure_description": "Нотатки можна впорядковувати ієрархічно. Немає потреби в папках, оскільки кожна нотатка може містити піднотатки. Одну нотатку можна додати в кілька місць в ієрархії.",
|
||||||
|
"attributes_title": "Мітки та зв'язки нотаток",
|
||||||
|
"attributes_description": "Використовуйте зв'язки між нотатками або додавайте мітки для легкої категоризації. Використовуйте підвищені атрибути для введення структурованої інформації, яку можна використовувати в таблицях, на дошках.",
|
||||||
|
"hoisting_title": "Робочі області та хостинг",
|
||||||
|
"hoisting_description": "Легко розділяйте особисті нотатки та робочі, групуючи їх у робочій області, що фокусує ваше дерево нотаток на відображенні лише певного набору нотаток."
|
||||||
|
},
|
||||||
|
"productivity_benefits": {
|
||||||
|
"title": "Продуктивність та безпека",
|
||||||
|
"revisions_title": "Ревізії нотаток",
|
||||||
|
"revisions_content": "Нотатки періодично зберігаються у фоновому режимі, а ревізії можна використовувати для перегляду або скасування випадкових змін. Ревізії також можна створювати на вимогу.",
|
||||||
|
"sync_title": "Синхронізація",
|
||||||
|
"sync_content": "Використовуйте власний або хмарний екземпляр, щоб легко синхронізувати нотатки на кількох пристроях та отримувати до них доступ з мобільного телефону за допомогою PWA.",
|
||||||
|
"protected_notes_title": "Захищені нотатки",
|
||||||
|
"protected_notes_content": "Захистіть конфіденційну особисту інформацію, зашифрувавши нотатки та заблокувавши їх за сеансом, захищеним паролем.",
|
||||||
|
"jump_to_title": "Швидкий пошук і команди",
|
||||||
|
"jump_to_content": "Швидко переходьте до нотаток або команд інтерфейсу користувача в ієрархії, шукаючи їх за назвою, з нечітким зіставленням для врахування друкарських помилок або незначних відмінностей.",
|
||||||
|
"search_title": "Потужний пошук",
|
||||||
|
"search_content": "Або шукайте текст усередині нотаток та звузьте пошук, відфільтрувавши за батьківською нотаткою чи за глибиною.",
|
||||||
|
"web_clipper_title": "Web-кліпер",
|
||||||
|
"web_clipper_content": "Зберіть веб-сторінки (або скріншоти) та розмістіть їх безпосередньо в Trilium за допомогою розширення браузера Web Clipper."
|
||||||
|
},
|
||||||
|
"note_types": {
|
||||||
|
"text_title": "Текстові нотатки",
|
||||||
|
"text_description": "Нотатки редагуються за допомогою візуального (WYSIWYG) редактора з підтримкою таблиць, зображень, математичних виразів, блоків коду з підсвічуванням синтаксису. Швидко форматуйте текст, використовуючи синтаксис, подібний до Markdown, або використовуючи команди зі слеш-рисками.",
|
||||||
|
"code_title": "Нотатки з кодом",
|
||||||
|
"code_description": "Великі зразки вихідного коду або скриптів використовують спеціальний редактор із підсвічуванням синтаксису для багатьох мов програмування та різними колірними темами.",
|
||||||
|
"file_title": "Файлові нотатки",
|
||||||
|
"file_description": "Вбудовуйте мультимедійні файли, такі як PDF-файли, зображення, відео, з попереднім переглядом у програмі.",
|
||||||
|
"canvas_title": "Полотно"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -13,5 +13,12 @@
|
|||||||
"github": "Github",
|
"github": "Github",
|
||||||
"dockerhub": "Kho Docker",
|
"dockerhub": "Kho Docker",
|
||||||
"screenshot_alt": "Ảnh chụp màn hình ứng dụng Trilium Notes (desktop)"
|
"screenshot_alt": "Ảnh chụp màn hình ứng dụng Trilium Notes (desktop)"
|
||||||
|
},
|
||||||
|
"organization_benefits": {
|
||||||
|
"title": "Tổ chức",
|
||||||
|
"note_structure_title": "Cấu trúc ghi chú",
|
||||||
|
"note_structure_description": "Ghi chú có thể được sắp xếp theo thứ bậc. Không cần thư mục, vì mỗi ghi chú có thể chứa các ghi chú phụ. Một ghi chú có thể được thêm vào nhiều vị trí trong hệ thống phân cấp.",
|
||||||
|
"attributes_title": "Các nhãn ghi chú và các mối quan hệ",
|
||||||
|
"attributes_description": "Sử dụng mối quan hệ giữa các ghi chú hoặc thêm nhãn để phân loại dễ dàng. Sử dụng các thuộc tính được khuyến khích để nhập thông tin có cấu trúc có thể được sử dụng trong bảng, bảng biểu."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
8
docs/README-ar.md
vendored
8
docs/README-ar.md
vendored
@@ -33,7 +33,7 @@ quick overview:
|
|||||||
|
|
||||||
<a href="https://triliumnext.github.io/Docs/Wiki/screenshot-tour"><img src="./docs/app.png" alt="Trilium Screenshot" width="1000"></a>
|
<a href="https://triliumnext.github.io/Docs/Wiki/screenshot-tour"><img src="./docs/app.png" alt="Trilium Screenshot" width="1000"></a>
|
||||||
|
|
||||||
## ⏬ Download
|
## ⬇️ تنزيل
|
||||||
- [Latest release](https://github.com/TriliumNext/Trilium/releases/latest) –
|
- [Latest release](https://github.com/TriliumNext/Trilium/releases/latest) –
|
||||||
stable version, recommended for most users.
|
stable version, recommended for most users.
|
||||||
- [Nightly build](https://github.com/TriliumNext/Trilium/releases/tag/nightly) –
|
- [Nightly build](https://github.com/TriliumNext/Trilium/releases/tag/nightly) –
|
||||||
@@ -61,8 +61,8 @@ quick overview:
|
|||||||
Docker](./docs/User%20Guide/User%20Guide/Installation%20&%20Setup/Server%20Installation/1.%20Installing%20the%20server/Using%20Docker.md)
|
Docker](./docs/User%20Guide/User%20Guide/Installation%20&%20Setup/Server%20Installation/1.%20Installing%20the%20server/Using%20Docker.md)
|
||||||
- [ترقية تريليوم
|
- [ترقية تريليوم
|
||||||
للملاحظات](./docs/User%20Guide/User%20Guide/Installation%20%26%20Setup/Upgrading%20TriliumNext.md)
|
للملاحظات](./docs/User%20Guide/User%20Guide/Installation%20%26%20Setup/Upgrading%20TriliumNext.md)
|
||||||
- [Basic Concepts and
|
- [مفاهيم ومميزات
|
||||||
Features](./docs/User%20Guide/User%20Guide/Basic%20Concepts%20and%20Features/Notes.md)
|
اساسية](./docs/User%20Guide/User%20Guide/Basic%20Concepts%20and%20Features/Notes.md)
|
||||||
- [Patterns of Personal Knowledge
|
- [Patterns of Personal Knowledge
|
||||||
Base](https://triliumnext.github.io/Docs/Wiki/patterns-of-personal-knowledge)
|
Base](https://triliumnext.github.io/Docs/Wiki/patterns-of-personal-knowledge)
|
||||||
|
|
||||||
@@ -110,7 +110,7 @@ quick overview:
|
|||||||
location pins and GPX tracks
|
location pins and GPX tracks
|
||||||
* [Scripting](https://triliumnext.github.io/Docs/Wiki/scripts) - see [Advanced
|
* [Scripting](https://triliumnext.github.io/Docs/Wiki/scripts) - see [Advanced
|
||||||
showcases](https://triliumnext.github.io/Docs/Wiki/advanced-showcases)
|
showcases](https://triliumnext.github.io/Docs/Wiki/advanced-showcases)
|
||||||
* [REST API](https://triliumnext.github.io/Docs/Wiki/etapi) for automation
|
* [واجهة REST API](https://triliumnext.github.io/Docs/Wiki/etapi) للأتمتة
|
||||||
* Scales well in both usability and performance upwards of 100 000 notes
|
* Scales well in both usability and performance upwards of 100 000 notes
|
||||||
* Touch optimized [mobile
|
* Touch optimized [mobile
|
||||||
frontend](https://triliumnext.github.io/Docs/Wiki/mobile-frontend) for
|
frontend](https://triliumnext.github.io/Docs/Wiki/mobile-frontend) for
|
||||||
|
|||||||
5
docs/README-el.md
vendored
5
docs/README-el.md
vendored
@@ -25,8 +25,9 @@ status](https://hosted.weblate.org/widget/trilium/svg-badge.svg)](https://hosted
|
|||||||
| [Japanese](./docs/README-ja.md) | [Italian](./docs/README-it.md) |
|
| [Japanese](./docs/README-ja.md) | [Italian](./docs/README-it.md) |
|
||||||
[Spanish](./docs/README-es.md)
|
[Spanish](./docs/README-es.md)
|
||||||
|
|
||||||
Trilium Notes is a free and open-source, cross-platform hierarchical note taking
|
Το Trilium Notes είναι μια δωρεάν και ανοιχτού κώδικα, ιεραρχική εφαρμογή
|
||||||
application with focus on building large personal knowledge bases.
|
σημειώσεων πολλαπλών πλατφορμών με έμφαση στη δημιουργία μεγάλων προσωπικών
|
||||||
|
βάσεων γνώσεων.
|
||||||
|
|
||||||
See [screenshots](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) for
|
See [screenshots](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) for
|
||||||
quick overview:
|
quick overview:
|
||||||
|
|||||||
448
docs/README-fr.md
vendored
448
docs/README-fr.md
vendored
@@ -20,221 +20,236 @@ releases)](https://img.shields.io/github/downloads/triliumnext/trilium/total)\
|
|||||||
[](https://hosted.weblate.org/engage/trilium/)
|
status](https://hosted.weblate.org/widget/trilium/svg-badge.svg)](https://hosted.weblate.org/engage/trilium/)
|
||||||
|
|
||||||
[English](./README.md) | [Chinese (Simplified)](./docs/README-ZH_CN.md) |
|
[Anglais](./README.md) | [Chinois (simplifié)](./docs/README-ZH_CN.md) |
|
||||||
[Chinese (Traditional)](./docs/README-ZH_TW.md) | [Russian](./docs/README-ru.md)
|
[Chinois (Traditionnel)](./docs/README-ZH_TW.md) | [Russe](./docs/README-ru.md)
|
||||||
| [Japanese](./docs/README-ja.md) | [Italian](./docs/README-it.md) |
|
| [Japonais](./docs/README-ja.md) | [Italien](./docs/README-it.md) |
|
||||||
[Spanish](./docs/README-es.md)
|
[Espagnol](./docs/README-es.md)
|
||||||
|
|
||||||
Trilium Notes is a free and open-source, cross-platform hierarchical note taking
|
Trilium Notes est une application gratuite, open-source et multiplateforme de
|
||||||
application with focus on building large personal knowledge bases.
|
prise de notes hiérarchique, conçue pour créer et gérer de vastes bases de
|
||||||
|
connaissances personnelles.
|
||||||
|
|
||||||
See [screenshots](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) for
|
Voir [les captures d'écran]
|
||||||
quick overview:
|
(https://triliumnext.github.io/Docs/Wiki/screenshot-tour) pour un aperçu rapide
|
||||||
|
:
|
||||||
|
|
||||||
<a href="https://triliumnext.github.io/Docs/Wiki/screenshot-tour"><img src="./docs/app.png" alt="Trilium Screenshot" width="1000"></a>
|
<a href="https://triliumnext.github.io/Docs/Wiki/screenshot-tour"><img src="./docs/app.png" alt="Trilium Screenshot" width="1000"></a>
|
||||||
|
|
||||||
## ⏬ Download
|
## ⏬ Télécharger
|
||||||
- [Latest release](https://github.com/TriliumNext/Trilium/releases/latest) –
|
- [Dernière version](https://github.com/TriliumNext/Trilium/releases/latest) –
|
||||||
stable version, recommended for most users.
|
version stable, recommandée pour la plupart des utilisateurs.
|
||||||
- [Nightly build](https://github.com/TriliumNext/Trilium/releases/tag/nightly) –
|
- [Nightly build](https://github.com/TriliumNext/Trilium/releases/tag/nightly) –
|
||||||
unstable development version, updated daily with the latest features and
|
version de développement instable, mise à jour quotidiennement avec les
|
||||||
fixes.
|
dernières fonctionnalités et corrections.
|
||||||
|
|
||||||
## 📚 Documentation
|
## 📚 Documentation
|
||||||
|
|
||||||
**Visit our comprehensive documentation at
|
**Visitez notre documentation complète sur
|
||||||
[docs.triliumnotes.org](https://docs.triliumnotes.org/)**
|
[docs.triliumnotes.org](https://docs.triliumnotes.org/)**
|
||||||
|
|
||||||
Our documentation is available in multiple formats:
|
Notre documentation est disponible sous plusieurs formats :
|
||||||
- **Online Documentation**: Browse the full documentation at
|
- **Documentation en ligne**: Parcourez la documentation complète sur
|
||||||
[docs.triliumnotes.org](https://docs.triliumnotes.org/)
|
[docs.triliumnotes.org](https://docs.triliumnotes.org/)
|
||||||
- **In-App Help**: Press `F1` within Trilium to access the same documentation
|
- **Aide intégrée**: Appuyez sur `F1` dans Trilium pour accéder à la même
|
||||||
directly in the application
|
documentation directement dans l'application
|
||||||
- **GitHub**: Navigate through the [User
|
- **GitHub**: Naviguer dans le [Guide utilisateur]
|
||||||
Guide](./docs/User%20Guide/User%20Guide/) in this repository
|
(./docs/User%20Guide/User%20Guide/) dans ce dépôt
|
||||||
|
|
||||||
### Quick Links
|
### Liens rapides
|
||||||
- [Getting Started Guide](https://docs.triliumnotes.org/)
|
- [Guide de démarrage](https://docs.triliumnotes.org/)
|
||||||
- [Installation
|
- [Instructions
|
||||||
Instructions](./docs/User%20Guide/User%20Guide/Installation%20&%20Setup/Server%20Installation.md)
|
d'installation](./docs/User%20Guide/User%20Guide/Installation%20&%20Setup/Server%20Installation.md)
|
||||||
- [Docker
|
- [Configuration
|
||||||
Setup](./docs/User%20Guide/User%20Guide/Installation%20&%20Setup/Server%20Installation/1.%20Installing%20the%20server/Using%20Docker.md)
|
Docker](./docs/User%20Guide/User%20Guide/Installation%20&%20Setup/Server%20Installation/1.%20Installing%20the%20server/Using%20Docker.md)
|
||||||
- [Upgrading
|
- [Mise à jour de TriliumNext]
|
||||||
TriliumNext](./docs/User%20Guide/User%20Guide/Installation%20%26%20Setup/Upgrading%20TriliumNext.md)
|
(./docs/User%20Guide/User%20Guide/Installation%20%26%20Setup/Upgrading%20TriliumNext.md)
|
||||||
- [Basic Concepts and
|
- [Concepts et fonctionnalités de
|
||||||
Features](./docs/User%20Guide/User%20Guide/Basic%20Concepts%20and%20Features/Notes.md)
|
base](./docs/User%20Guide/User%20Guide/Basic%20Concepts%20and%20Features/Notes.md)
|
||||||
- [Patterns of Personal Knowledge
|
- [Modèles de base de connaissances
|
||||||
Base](https://triliumnext.github.io/Docs/Wiki/patterns-of-personal-knowledge)
|
personnelles](https://triliumnext.github.io/Docs/Wiki/patterns-of-personal-knowledge)
|
||||||
|
|
||||||
## 🎁 Features
|
## 🎁 Fonctionnalités
|
||||||
|
|
||||||
* Notes can be arranged into arbitrarily deep tree. Single note can be placed
|
* Les notes peuvent être organisées selon une arborescence de profondeur
|
||||||
into multiple places in the tree (see
|
arbitraire. Une même note peut être placée à plusieurs endroits de
|
||||||
[cloning](https://triliumnext.github.io/Docs/Wiki/cloning-notes))
|
l'arborescence (voir
|
||||||
* Rich WYSIWYG note editor including e.g. tables, images and
|
[clonage](https://triliumnext.github.io/Docs/Wiki/cloning-notes))
|
||||||
[math](https://triliumnext.github.io/Docs/Wiki/text-notes) with markdown
|
* Éditeur de notes WYSIWYG enrichi comprenant par exemple des tableaux, des
|
||||||
[autoformat](https://triliumnext.github.io/Docs/Wiki/text-notes#autoformat)
|
images et [des formules
|
||||||
* Support for editing [notes with source
|
mathématiques](https://triliumnext.github.io/Docs/Wiki/text-notes) avec
|
||||||
code](https://triliumnext.github.io/Docs/Wiki/code-notes), including syntax
|
[formatage automatique en
|
||||||
highlighting
|
Markdown](https://triliumnext.github.io/Docs/Wiki/text-notes#autoformat)
|
||||||
* Fast and easy [navigation between
|
* Prise en charge de l'édition [de notes avec code
|
||||||
notes](https://triliumnext.github.io/Docs/Wiki/note-navigation), full text
|
source](https://triliumnext.github.io/Docs/Wiki/code-notes), incluant la
|
||||||
search and [note
|
coloration syntaxique
|
||||||
hoisting](https://triliumnext.github.io/Docs/Wiki/note-hoisting)
|
* Navigation rapide et facile entre les
|
||||||
* Seamless [note
|
notes(https://triliumnext.github.io/Docs/Wiki/note-navigation), recherche en
|
||||||
versioning](https://triliumnext.github.io/Docs/Wiki/note-revisions)
|
texte intégral et [focalisation de
|
||||||
* Note [attributes](https://triliumnext.github.io/Docs/Wiki/attributes) can be
|
notes](https://triliumnext.github.io/Docs/Wiki/note-hoisting)
|
||||||
used for note organization, querying and advanced
|
* Gestion transparente des [versions de
|
||||||
[scripting](https://triliumnext.github.io/Docs/Wiki/scripts)
|
notes](https://triliumnext.github.io/Docs/Wiki/note-revisions)
|
||||||
* UI available in English, German, Spanish, French, Romanian, and Chinese
|
* Les [attributs] de note(https://triliumnext.github.io/Docs/Wiki/attributes)
|
||||||
(simplified and traditional)
|
peuvent être utilisés pour l'organisation, l'interrogation et les [scripts]
|
||||||
* Direct [OpenID and TOTP
|
avancés(https://triliumnext.github.io/Docs/Wiki/scripts)
|
||||||
integration](./docs/User%20Guide/User%20Guide/Installation%20%26%20Setup/Server%20Installation/Multi-Factor%20Authentication.md)
|
* Interface utilisateur disponible en anglais, allemand, espagnol, français,
|
||||||
for more secure login
|
roumain et chinois (simplifié et traditionnel)
|
||||||
* [Synchronization](https://triliumnext.github.io/Docs/Wiki/synchronization)
|
* [Intégration directe d'OpenID et
|
||||||
with self-hosted sync server
|
TOTP](./docs/User%20Guide/User%20Guide/Installation%20%26%20Setup/Server%20Installation/Multi-Factor%20Authentication.md)
|
||||||
* there's a [3rd party service for hosting synchronisation
|
pour une connexion plus sécurisée
|
||||||
server](https://trilium.cc/paid-hosting)
|
* [Synchronisation](https://triliumnext.github.io/Docs/Wiki/synchronization)
|
||||||
* [Sharing](https://triliumnext.github.io/Docs/Wiki/sharing) (publishing) notes
|
avec un serveur de synchronisation auto-hébergé
|
||||||
to public internet
|
* il existe un [service tiers pour l'hébergement du serveur de
|
||||||
* Strong [note
|
synchronisation](https://trilium.cc/paid-hosting)
|
||||||
encryption](https://triliumnext.github.io/Docs/Wiki/protected-notes) with
|
* [Partage](https://triliumnext.github.io/Docs/Wiki/sharing) (publication) de
|
||||||
per-note granularity
|
notes sur Internet
|
||||||
* Sketching diagrams, based on [Excalidraw](https://excalidraw.com/) (note type
|
* [Cryptage de note](https://triliumnext.github.io/Docs/Wiki/protected-notes)
|
||||||
"canvas")
|
fort avec granularité par note
|
||||||
* [Relation maps](https://triliumnext.github.io/Docs/Wiki/relation-map) and
|
* Diagrammes d'esquisse, basés sur [Excalidraw](https://excalidraw.com/) (type
|
||||||
[link maps](https://triliumnext.github.io/Docs/Wiki/link-map) for visualizing
|
de note "canvas"))
|
||||||
notes and their relations
|
* [Cartes de relations](https://triliumnext.github.io/Docs/Wiki/relation-map) et
|
||||||
* Mind maps, based on [Mind Elixir](https://docs.mind-elixir.com/)
|
[cartes de liens](https://triliumnext.github.io/Docs/Wiki/link-map) pour
|
||||||
* [Geo maps](./docs/User%20Guide/User%20Guide/Note%20Types/Geo%20Map.md) with
|
visualiser les notes et leurs relations
|
||||||
location pins and GPX tracks
|
* Cartes mentales, basées sur [Mind Elixir] (https://docs.mind-elixir.com/)
|
||||||
* [Scripting](https://triliumnext.github.io/Docs/Wiki/scripts) - see [Advanced
|
* [Cartes
|
||||||
showcases](https://triliumnext.github.io/Docs/Wiki/advanced-showcases)
|
géographiques](./docs/User%20Guide/User%20Guide/Note%20Types/Geo%20Map.md)
|
||||||
* [REST API](https://triliumnext.github.io/Docs/Wiki/etapi) for automation
|
avec repères de localisation et pistes GPX
|
||||||
* Scales well in both usability and performance upwards of 100 000 notes
|
* [Scripting](https://triliumnext.github.io/Docs/Wiki/scripts) - voir [Vitrines
|
||||||
* Touch optimized [mobile
|
avancées](https://triliumnext.github.io/Docs/Wiki/advanced-showcases)
|
||||||
frontend](https://triliumnext.github.io/Docs/Wiki/mobile-frontend) for
|
* [API REST](https://triliumnext.github.io/Docs/Wiki/etapi) pour
|
||||||
smartphones and tablets
|
l'automatisation
|
||||||
* Built-in [dark theme](https://triliumnext.github.io/Docs/Wiki/themes), support
|
* Optimisé en termes d’ergonomie et de performances, même au-delà de 100 000
|
||||||
for user themes
|
notes
|
||||||
* [Evernote](https://triliumnext.github.io/Docs/Wiki/evernote-import) and
|
* [Interface mobile](https://triliumnext.github.io/Docs/Wiki/mobile-frontend)
|
||||||
[Markdown import & export](https://triliumnext.github.io/Docs/Wiki/markdown)
|
optimisée pour le tactile sur smartphones et tablettes
|
||||||
* [Web Clipper](https://triliumnext.github.io/Docs/Wiki/web-clipper) for easy
|
* [Thème sombre](https://triliumnext.github.io/Docs/Wiki/themes) intégré, prise
|
||||||
saving of web content
|
en charge des thèmes utilisateur
|
||||||
* Customizable UI (sidebar buttons, user-defined widgets, ...)
|
* [Evernote](https://triliumnext.github.io/Docs/Wiki/evernote-import) et
|
||||||
* [Metrics](./docs/User%20Guide/User%20Guide/Advanced%20Usage/Metrics.md), along
|
[Importation et exportation
|
||||||
with a [Grafana
|
Markdown](https://triliumnext.github.io/Docs/Wiki/markdown)
|
||||||
Dashboard](./docs/User%20Guide/User%20Guide/Advanced%20Usage/Metrics/grafana-dashboard.json)
|
* [Web Clipper](https://triliumnext.github.io/Docs/Wiki/web-clipper) pour une
|
||||||
|
sauvegarde facile du contenu web
|
||||||
|
* Interface utilisateur personnalisable (boutons de la barre latérale, widgets
|
||||||
|
définis par l'utilisateur, ...)
|
||||||
|
* [Métriques](./docs/User%20Guide/User%20Guide/Advanced%20Usage/Metrics.md),
|
||||||
|
ainsi que [Tableau de bord
|
||||||
|
Grafana](./docs/User%20Guide/User%20Guide/Advanced%20Usage/Metrics/grafana-dashboard.json)
|
||||||
|
|
||||||
✨ Check out the following third-party resources/communities for more TriliumNext
|
✨ Consultez les ressources/communautés tierces suivantes pour plus de
|
||||||
related goodies:
|
fonctionnalités liées à TriliumNext :
|
||||||
|
|
||||||
- [awesome-trilium](https://github.com/Nriver/awesome-trilium) for 3rd party
|
- [awesome-trilium](https://github.com/Nriver/awesome-trilium) pour des thèmes,
|
||||||
themes, scripts, plugins and more.
|
scripts, plugins et plus encore tiers.
|
||||||
- [TriliumRocks!](https://trilium.rocks/) for tutorials, guides, and much more.
|
- [TriliumRocks!](https://trilium.rocks/) pour des tutoriels, des guides et bien
|
||||||
|
plus encore.
|
||||||
|
|
||||||
## ❓Why TriliumNext?
|
## ❓Pourquoi TriliumNext ?
|
||||||
|
|
||||||
The original Trilium developer ([Zadam](https://github.com/zadam)) has
|
Le développeur original de Trilium ([Zadam](https://github.com/zadam)) a
|
||||||
graciously given the Trilium repository to the community project which resides
|
gracieusement donné le référentiel Trilium au projet communautaire hébergé sur
|
||||||
at https://github.com/TriliumNext
|
https://github.com/TriliumNext
|
||||||
|
|
||||||
### ⬆️Migrating from Zadam/Trilium?
|
### ⬆️Migration depuis Zadam/Trilium ?
|
||||||
|
|
||||||
There are no special migration steps to migrate from a zadam/Trilium instance to
|
Il n'y a aucune étape de migration spécifique pour migrer d'une instance
|
||||||
a TriliumNext/Trilium instance. Simply [install
|
zadam/Trilium vers une instance TriliumNext/Trilium. Installez simplement
|
||||||
TriliumNext/Trilium](#-installation) as usual and it will use your existing
|
TriliumNext/Trilium comme d'habitude et votre base de données existante sera
|
||||||
database.
|
utilisée.
|
||||||
|
|
||||||
Versions up to and including
|
Les versions jusqu'à
|
||||||
[v0.90.4](https://github.com/TriliumNext/Trilium/releases/tag/v0.90.4) are
|
[v0.90.4](https://github.com/TriliumNext/Trilium/releases/tag/v0.90.4) incluses
|
||||||
compatible with the latest zadam/trilium version of
|
sont compatibles avec la dernière version de zadam/trilium
|
||||||
[v0.63.7](https://github.com/zadam/trilium/releases/tag/v0.63.7). Any later
|
[v0.63.7](https://github.com/zadam/trilium/releases/tag/v0.63.7). Les versions
|
||||||
versions of TriliumNext/Trilium have their sync versions incremented which
|
ultérieures de TriliumNext/Trilium voient leurs versions synchronisées
|
||||||
prevents direct migration.
|
incrémentées, ce qui empêche toute migration directe.
|
||||||
|
|
||||||
## 💬 Discuss with us
|
## 💬 Discutez avec nous
|
||||||
|
|
||||||
Feel free to join our official conversations. We would love to hear what
|
N'hésitez pas à participer à nos discussions officielles. Nous serions ravis de
|
||||||
features, suggestions, or issues you may have!
|
connaître vos idées, suggestions ou problèmes !
|
||||||
|
|
||||||
- [Matrix](https://matrix.to/#/#triliumnext:matrix.org) (For synchronous
|
- [Matrix](https://matrix.to/#/#triliumnext:matrix.org) (Pour les discussions
|
||||||
discussions.)
|
synchrones.)
|
||||||
- The `General` Matrix room is also bridged to
|
- L'espace Matrix `Général` est également reliée à
|
||||||
[XMPP](xmpp:discuss@trilium.thisgreat.party?join)
|
[XMPP](xmpp:discuss@trilium.thisgreat.party?join)
|
||||||
- [Github Discussions](https://github.com/TriliumNext/Trilium/discussions) (For
|
- [Discussions Github](https://github.com/TriliumNext/Trilium/discussions) (Pour
|
||||||
asynchronous discussions.)
|
les discussions asynchrones.)
|
||||||
- [Github Issues](https://github.com/TriliumNext/Trilium/issues) (For bug
|
- [Problèmes Github](https://github.com/TriliumNext/Trilium/issues) (Pour les
|
||||||
reports and feature requests.)
|
rapports de bogues et les demandes de fonctionnalités.)
|
||||||
|
|
||||||
## 🏗 Installation
|
## 🏗 Installation
|
||||||
|
|
||||||
### Windows / MacOS
|
### Windows / MacOS
|
||||||
|
|
||||||
Download the binary release for your platform from the [latest release
|
Téléchargez la version binaire pour votre plateforme à partir de la [dernière
|
||||||
page](https://github.com/TriliumNext/Trilium/releases/latest), unzip the package
|
page de version](https://github.com/TriliumNext/Trilium/releases/latest),
|
||||||
and run the `trilium` executable.
|
décompressez le package et exécutez l'exécutable `trilium`.
|
||||||
|
|
||||||
### Linux
|
### Linux
|
||||||
|
|
||||||
If your distribution is listed in the table below, use your distribution's
|
Si votre distribution est répertoriée dans le tableau ci-dessous, utilisez le
|
||||||
package.
|
package de votre distribution.
|
||||||
|
|
||||||
[](https://repology.org/project/triliumnext/versions)
|
Packaging](https://repology.org/badge/vertical-allrepos/triliumnext.svg)](https://repology.org/project/triliumnext/versions)
|
||||||
|
|
||||||
You may also download the binary release for your platform from the [latest
|
Vous pouvez également télécharger la version binaire pour votre plateforme à
|
||||||
release page](https://github.com/TriliumNext/Trilium/releases/latest), unzip the
|
partir de la [dernière page de
|
||||||
package and run the `trilium` executable.
|
version](https://github.com/TriliumNext/Trilium/releases/latest), décompresser
|
||||||
|
le package et lancer l'exécutable `trilium`.
|
||||||
|
|
||||||
TriliumNext is also provided as a Flatpak, but not yet published on FlatHub.
|
TriliumNext est également fourni sous forme de Flatpak, mais pas encore publié
|
||||||
|
sur FlatHub.
|
||||||
|
|
||||||
### Browser (any OS)
|
### Navigateur (tout système d'exploitation)
|
||||||
|
|
||||||
If you use a server installation (see below), you can directly access the web
|
Si vous utilisez une installation serveur (voir ci-dessous), vous pouvez accéder
|
||||||
interface (which is almost identical to the desktop app).
|
directement à l'interface Web (qui est presque identique à l'application de
|
||||||
|
bureau).
|
||||||
|
|
||||||
Currently only the latest versions of Chrome & Firefox are supported (and
|
Actuellement, seules les dernières versions de Chrome & Firefox sont supportées
|
||||||
tested).
|
(et testées).
|
||||||
|
|
||||||
### Mobile
|
### Mobile
|
||||||
|
|
||||||
To use TriliumNext on a mobile device, you can use a mobile web browser to
|
Pour utiliser TriliumNext sur un appareil mobile, vous pouvez utiliser un
|
||||||
access the mobile interface of a server installation (see below).
|
navigateur Web afin d' accéder à l'interface d'une installation serveur (voir
|
||||||
|
ci-dessous).
|
||||||
|
|
||||||
See issue https://github.com/TriliumNext/Trilium/issues/4962 for more
|
Pour plus d’informations sur le support de l’application mobile, consultez le
|
||||||
information on mobile app support.
|
ticket https://github.com/TriliumNext/Trilium/issues/4962.
|
||||||
|
|
||||||
If you prefer a native Android app, you can use
|
Si vous préférez une application Android native, vous pouvez utiliser
|
||||||
[TriliumDroid](https://apt.izzysoft.de/fdroid/index/apk/eu.fliegendewurst.triliumdroid).
|
[TriliumDroid](https://apt.izzysoft.de/fdroid/index/apk/eu.fliegendewurst.triliumdroid).
|
||||||
Report bugs and missing features at [their
|
Signalez les bugs et les fonctionnalités manquantes sur [leur
|
||||||
repository](https://github.com/FliegendeWurst/TriliumDroid). Note: It is best to
|
dépôt](https://github.com/FliegendeWurst/TriliumDroid). Remarque : Il est
|
||||||
disable automatic updates on your server installation (see below) when using
|
préférable de désactiver les mises à jour automatiques sur votre serveur (voir
|
||||||
TriliumDroid since the sync version must match between Trilium and TriliumDroid.
|
ci-dessous) lorsque vous utilisez TriliumDroid, car les versions doivent rester
|
||||||
|
synchronisées entre Trilium et TriliumDroid.
|
||||||
|
|
||||||
### Server
|
### Serveur
|
||||||
|
|
||||||
To install TriliumNext on your own server (including via Docker from
|
Pour installer TriliumNext sur votre propre serveur (y compris via Docker depuis
|
||||||
[Dockerhub](https://hub.docker.com/r/triliumnext/trilium)) follow [the server
|
[Dockerhub](https://hub.docker.com/r/triliumnext/trilium)), suivez [les
|
||||||
installation docs](https://triliumnext.github.io/Docs/Wiki/server-installation).
|
documents d'installation du
|
||||||
|
serveur](https://triliumnext.github.io/Docs/Wiki/server-installation).
|
||||||
|
|
||||||
|
|
||||||
## 💻 Contribute
|
## 💻 Contribuer
|
||||||
|
|
||||||
### Translations
|
### Traductions
|
||||||
|
|
||||||
If you are a native speaker, help us translate Trilium by heading over to our
|
Si vous êtes un locuteur natif, aidez-nous à traduire Trilium en vous rendant
|
||||||
[Weblate page](https://hosted.weblate.org/engage/trilium/).
|
sur notre [page Weblate](https://hosted.weblate.org/engage/trilium/).
|
||||||
|
|
||||||
Here's the language coverage we have so far:
|
Voici la couverture linguistique dont nous disposons jusqu'à présent :
|
||||||
|
|
||||||
[](https://hosted.weblate.org/engage/trilium/)
|
traduction](https://hosted.weblate.org/widget/trilium/multi-auto.svg)](https://hosted.weblate.org/engage/trilium/)
|
||||||
|
|
||||||
### Code
|
### Code
|
||||||
|
|
||||||
Download the repository, install dependencies using `pnpm` and then run the
|
Téléchargez le référentiel, installez les dépendances à l'aide de `pnpm` puis
|
||||||
server (available at http://localhost:8080):
|
exécutez le serveur (disponible sur http://localhost:8080) :
|
||||||
```shell
|
```shell
|
||||||
git clone https://github.com/TriliumNext/Trilium.git
|
git clone https://github.com/TriliumNext/Trilium.git
|
||||||
cd Trilium
|
cd Trilium
|
||||||
@@ -244,8 +259,8 @@ pnpm run server:start
|
|||||||
|
|
||||||
### Documentation
|
### Documentation
|
||||||
|
|
||||||
Download the repository, install dependencies using `pnpm` and then run the
|
Téléchargez le référentiel, installez les dépendances à l'aide de `pnpm`, puis
|
||||||
environment required to edit the documentation:
|
exécutez l'environnement requis pour modifier la documentation :
|
||||||
```shell
|
```shell
|
||||||
git clone https://github.com/TriliumNext/Trilium.git
|
git clone https://github.com/TriliumNext/Trilium.git
|
||||||
cd Trilium
|
cd Trilium
|
||||||
@@ -253,9 +268,9 @@ pnpm install
|
|||||||
pnpm edit-docs:edit-docs
|
pnpm edit-docs:edit-docs
|
||||||
```
|
```
|
||||||
|
|
||||||
### Building the Executable
|
### Générer l'exécutable
|
||||||
Download the repository, install dependencies using `pnpm` and then build the
|
Téléchargez le référentiel, installez les dépendances à l'aide de `pnpm`, puis
|
||||||
desktop app for Windows:
|
créez l'application de bureau pour Windows :
|
||||||
```shell
|
```shell
|
||||||
git clone https://github.com/TriliumNext/Trilium.git
|
git clone https://github.com/TriliumNext/Trilium.git
|
||||||
cd Trilium
|
cd Trilium
|
||||||
@@ -263,70 +278,75 @@ pnpm install
|
|||||||
pnpm run --filter desktop electron-forge:make --arch=x64 --platform=win32
|
pnpm run --filter desktop electron-forge:make --arch=x64 --platform=win32
|
||||||
```
|
```
|
||||||
|
|
||||||
For more details, see the [development
|
Pour plus de détails, consultez la [documentation de
|
||||||
docs](https://github.com/TriliumNext/Trilium/tree/main/docs/Developer%20Guide/Developer%20Guide).
|
développement](https://github.com/TriliumNext/Trilium/tree/main/docs/Developer%20Guide/Developer%20Guide).
|
||||||
|
|
||||||
### Developer Documentation
|
### Documentation du développeur
|
||||||
|
|
||||||
Please view the [documentation
|
Veuillez consulter le [guide de
|
||||||
guide](https://github.com/TriliumNext/Trilium/blob/main/docs/Developer%20Guide/Developer%20Guide/Environment%20Setup.md)
|
documentation](https://github.com/TriliumNext/Trilium/blob/main/docs/Developer%20Guide/Developer%20Guide/Environment%20Setup.md)
|
||||||
for details. If you have more questions, feel free to reach out via the links
|
pour plus de détails. Pour toute question, n'hésitez pas à nous contacter via
|
||||||
described in the "Discuss with us" section above.
|
les liens décrits dans la section "Discuter avec nous" ci-dessus.
|
||||||
|
|
||||||
## 👏 Shoutouts
|
## 👏 Dédicaces
|
||||||
|
|
||||||
* [zadam](https://github.com/zadam) for the original concept and implementation
|
* [zadam](https://github.com/zadam) pour le concept original et la mise en œuvre
|
||||||
of the application.
|
de l'application.
|
||||||
* [Sarah Hussein](https://github.com/Sarah-Hussein) for designing the
|
* [Sarah Hussein](https://github.com/Sarah-Hussein) pour la conception de
|
||||||
application icon.
|
l'icône de l'application.
|
||||||
* [nriver](https://github.com/nriver) for his work on internationalization.
|
* [nriver](https://github.com/nriver) pour son travail sur
|
||||||
* [Thomas Frei](https://github.com/thfrei) for his original work on the Canvas.
|
l’internationalisation.
|
||||||
* [antoniotejada](https://github.com/nriver) for the original syntax highlight
|
* [Thomas Frei](https://github.com/thfrei) pour son travail original sur le
|
||||||
widget.
|
Canvas.
|
||||||
* [Dosu](https://dosu.dev/) for providing us with the automated responses to
|
* [antoniotejada](https://github.com/nriver) pour le widget de coloration
|
||||||
GitHub issues and discussions.
|
syntaxique original.
|
||||||
* [Tabler Icons](https://tabler.io/icons) for the system tray icons.
|
* [Dosu](https://dosu.dev/) pour nous avoir fourni des réponses automatisées aux
|
||||||
|
problèmes et aux discussions sur GitHub.
|
||||||
|
* [Tabler Icons](https://tabler.io/icons) pour les icônes de la barre d'état
|
||||||
|
système.
|
||||||
|
|
||||||
Trilium would not be possible without the technologies behind it:
|
Trilium ne serait pas possible sans les technologies qui le sous-tendent :
|
||||||
|
|
||||||
* [CKEditor 5](https://github.com/ckeditor/ckeditor5) - the visual editor behind
|
* [CKEditor 5](https://github.com/ckeditor/ckeditor5) - est l’éditeur visuel
|
||||||
text notes. We are grateful for being offered a set of the premium features.
|
utilisé pour les notes textuelles. Nous remercions l’équipe pour la mise à
|
||||||
* [CodeMirror](https://github.com/codemirror/CodeMirror) - code editor with
|
disposition d’un ensemble de fonctionnalités premium.
|
||||||
support for huge amount of languages.
|
* [CodeMirror](https://github.com/codemirror/CodeMirror) - éditeur de code
|
||||||
* [Excalidraw](https://github.com/excalidraw/excalidraw) - the infinite
|
prenant en charge un grand nombre de langages.
|
||||||
whiteboard used in Canvas notes.
|
* [Excalidraw](https://github.com/excalidraw/excalidraw) - le tableau blanc
|
||||||
* [Mind Elixir](https://github.com/SSShooter/mind-elixir-core) - providing the
|
infini utilisé dans les notes Canvas.
|
||||||
mind map functionality.
|
* [Mind Elixir](https://github.com/SSShooter/mind-elixir-core) - fournit la
|
||||||
* [Leaflet](https://github.com/Leaflet/Leaflet) - for rendering geographical
|
fonctionnalité de carte mentale.
|
||||||
maps.
|
* [Leaflet](https://github.com/Leaflet/Leaflet) - pour le rendu des cartes
|
||||||
* [Tabulator](https://github.com/olifolkerd/tabulator) - for the interactive
|
géographiques.
|
||||||
table used in collections.
|
* [Tabulator](https://github.com/olifolkerd/tabulator) - pour le tableau
|
||||||
* [FancyTree](https://github.com/mar10/fancytree) - feature-rich tree library
|
interactif utilisé dans les collections.
|
||||||
without real competition.
|
* [FancyTree](https://github.com/mar10/fancytree) - bibliothèque d'arborescence
|
||||||
* [jsPlumb](https://github.com/jsplumb/jsplumb) - visual connectivity library.
|
riche en fonctionnalités sans réelle concurrence.
|
||||||
Used in [relation
|
* [jsPlumb](https://github.com/jsplumb/jsplumb) - Bibliothèque de connectivité
|
||||||
maps](https://triliumnext.github.io/Docs/Wiki/relation-map.html) and [link
|
visuelle. Utilisée dans les [cartes de
|
||||||
maps](https://triliumnext.github.io/Docs/Wiki/note-map.html#link-map)
|
relations](https://triliumnext.github.io/Docs/Wiki/relation-map.html) et les
|
||||||
|
[cartes de
|
||||||
|
liens](https://triliumnext.github.io/Docs/Wiki/note-map.html#link-map)
|
||||||
|
|
||||||
## 🤝 Support
|
## 🤝 Support
|
||||||
|
|
||||||
Trilium is built and maintained with [hundreds of hours of
|
Trilium est développé et maintenu grâce à [des centaines d'heures de
|
||||||
work](https://github.com/TriliumNext/Trilium/graphs/commit-activity). Your
|
travail](https://github.com/TriliumNext/Trilium/graphs/commit-activity). Votre
|
||||||
support keeps it open-source, improves features, and covers costs such as
|
soutien permet son maintien en open-source, d'améliorer ses fonctionnalités et
|
||||||
hosting.
|
de couvrir des coûts tels que l'hébergement.
|
||||||
|
|
||||||
Consider supporting the main developer
|
Envisagez de soutenir le développeur principal
|
||||||
([eliandoran](https://github.com/eliandoran)) of the application via:
|
([eliandoran](https://github.com/eliandoran)) de l'application via :
|
||||||
|
|
||||||
- [GitHub Sponsors](https://github.com/sponsors/eliandoran)
|
- [Sponsors GitHub](https://github.com/sponsors/eliandoran)
|
||||||
- [PayPal](https://paypal.me/eliandoran)
|
- [PayPal](https://paypal.me/eliandoran)
|
||||||
- [Buy Me a Coffee](https://buymeacoffee.com/eliandoran)
|
- [Offrez-moi un café](https://buymeacoffee.com/eliandoran)
|
||||||
|
|
||||||
## 🔑 License
|
## 🔑 License
|
||||||
|
|
||||||
Copyright 2017-2025 zadam, Elian Doran, and other contributors
|
Copyright 2017-2025 zadam, Elian Doran et autres contributeurs
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it under
|
Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le
|
||||||
the terms of the GNU Affero General Public License as published by the Free
|
modifier selon les termes de la licence publique générale GNU Affero telle que
|
||||||
Software Foundation, either version 3 of the License, or (at your option) any
|
publiée par la Free Software Foundation, soit la version 3 de la licence, soit
|
||||||
later version.
|
(à votre choix) toute version ultérieure.
|
||||||
|
|||||||
135
docs/README-hu.md
vendored
135
docs/README-hu.md
vendored
@@ -9,85 +9,85 @@
|
|||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
|
|
||||||
# Trilium Notes
|
# Trilium Jegyzetek
|
||||||
|
|
||||||

|

|
||||||
\
|
\
|
||||||

|

|
||||||
\
|
kiadás)](https://img.shields.io/github/downloads/triliumnext/trilium/total)\
|
||||||
[](https://app.relative-ci.com/projects/Di5q7dz9daNDZ9UXi0Bp)
|
[](https://app.relative-ci.com/projects/Di5q7dz9daNDZ9UXi0Bp)
|
||||||
[](https://hosted.weblate.org/engage/trilium/)
|
állapota](https://hosted.weblate.org/widget/trilium/svg-badge.svg)](https://hosted.weblate.org/engage/trilium/)
|
||||||
|
|
||||||
[English](./README.md) | [Chinese (Simplified)](./docs/README-ZH_CN.md) |
|
[angol](./README.md) | [egyszerűsített kínai](./docs/README-ZH_CN.md) |
|
||||||
[Chinese (Traditional)](./docs/README-ZH_TW.md) | [Russian](./docs/README-ru.md)
|
[hagyományos kínai](./docs/README-ZH_TW.md) | [orosz](./docs/README-ru.md) |
|
||||||
| [Japanese](./docs/README-ja.md) | [Italian](./docs/README-it.md) |
|
[japán](./docs/README-ja.md) | [olasz](./docs/README-it.md) |
|
||||||
[Spanish](./docs/README-es.md)
|
[spanyol](./docs/README-es.md)
|
||||||
|
|
||||||
Trilium Notes is a free and open-source, cross-platform hierarchical note taking
|
A Trilium Notes egy ingyenes és nyílt forráskódú, platformfüggetlen hierarchikus
|
||||||
application with focus on building large personal knowledge bases.
|
jegyzetelő alkalmazás, amely nagy személyes tudásbázisok építésére összpontosít.
|
||||||
|
|
||||||
See [screenshots](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) for
|
A gyors áttekintésért lásd a
|
||||||
quick overview:
|
[képernyőképeket](https://triliumnext.github.io/Docs/Wiki/screenshot-tour):
|
||||||
|
|
||||||
<a href="https://triliumnext.github.io/Docs/Wiki/screenshot-tour"><img src="./docs/app.png" alt="Trilium Screenshot" width="1000"></a>
|
<a href="https://triliumnext.github.io/Docs/Wiki/screenshot-tour"><img src="./docs/app.png" alt="Trilium Screenshot" width="1000"></a>
|
||||||
|
|
||||||
## ⏬ Download
|
## ⏬ Letöltés
|
||||||
- [Latest release](https://github.com/TriliumNext/Trilium/releases/latest) –
|
- [Legújabb kiadás](https://github.com/TriliumNext/Trilium/releases/latest) –
|
||||||
stable version, recommended for most users.
|
stabil verzió, a legtöbb felhasználó számára ajánlott.
|
||||||
- [Nightly build](https://github.com/TriliumNext/Trilium/releases/tag/nightly) –
|
- [Nightly build](https://github.com/TriliumNext/Trilium/releases/tag/nightly) –
|
||||||
unstable development version, updated daily with the latest features and
|
instabil fejlesztői verzió, naponta frissül a legújabb funkciókkal és
|
||||||
fixes.
|
javításokkal.
|
||||||
|
|
||||||
## 📚 Documentation
|
## 📚 Dokumentáció
|
||||||
|
|
||||||
**Visit our comprehensive documentation at
|
**Tekintse meg átfogó dokumentációnkat a [docs.triliumnotes.org]
|
||||||
[docs.triliumnotes.org](https://docs.triliumnotes.org/)**
|
címen(https://docs.triliumnotes.org/)**
|
||||||
|
|
||||||
Our documentation is available in multiple formats:
|
Dokumentációink többféle formátumban is elérhetők:
|
||||||
- **Online Documentation**: Browse the full documentation at
|
- **Online dokumentáció**: Böngéssze a teljes dokumentációt a
|
||||||
[docs.triliumnotes.org](https://docs.triliumnotes.org/)
|
[docs.triliumnotes.org](https://docs.triliumnotes.org/) címen.
|
||||||
- **In-App Help**: Press `F1` within Trilium to access the same documentation
|
- **Alkalmazáson belüli súgó**: Nyomja meg az `F1` billentyűt a Triliumon belül,
|
||||||
directly in the application
|
hogy ugyanazt a dokumentációt közvetlenül az alkalmazásban is elérje.
|
||||||
- **GitHub**: Navigate through the [User
|
- **GitHub**: Navigálj a [Felhasználói
|
||||||
Guide](./docs/User%20Guide/User%20Guide/) in this repository
|
útmutatóban](./docs/User%20Guide/User%20Guide/) ebben a repository-ban
|
||||||
|
|
||||||
### Quick Links
|
### Gyorslinkek
|
||||||
- [Getting Started Guide](https://docs.triliumnotes.org/)
|
- [Kezdő lépések útmutatója](https://docs.triliumnotes.org/)
|
||||||
- [Installation
|
- [Telepítési
|
||||||
Instructions](./docs/User%20Guide/User%20Guide/Installation%20&%20Setup/Server%20Installation.md)
|
utasítások](./docs/User%20Guide/User%20Guide/Installation%20&%20Setup/Server%20Installation.md)
|
||||||
- [Docker
|
- [Docker
|
||||||
Setup](./docs/User%20Guide/User%20Guide/Installation%20&%20Setup/Server%20Installation/1.%20Installing%20the%20server/Using%20Docker.md)
|
beállítás](./docs/User%20Guide/User%20Guide/Installation%20&%20Setup/Server%20Installation/1.%20Installing%20the%20server/Using%20Docker.md)
|
||||||
- [Upgrading
|
- [TriliumNext
|
||||||
TriliumNext](./docs/User%20Guide/User%20Guide/Installation%20%26%20Setup/Upgrading%20TriliumNext.md)
|
Frissítése](./docs/User%20Guide/User%20Guide/Installation%20%26%20Setup/Upgrading%20TriliumNext.md)
|
||||||
- [Basic Concepts and
|
- [Alapfogalmak és
|
||||||
Features](./docs/User%20Guide/User%20Guide/Basic%20Concepts%20and%20Features/Notes.md)
|
jellemzők](./docs/User%20Guide/User%20Guide/Basic%20Concepts%20and%20Features/Notes.md)
|
||||||
- [Patterns of Personal Knowledge
|
- [A személyes tudásbázis
|
||||||
Base](https://triliumnext.github.io/Docs/Wiki/patterns-of-personal-knowledge)
|
mintái](https://triliumnext.github.io/Docs/Wiki/patterns-of-personal-knowledge)
|
||||||
|
|
||||||
## 🎁 Features
|
## 🎁 Jellemzők
|
||||||
|
|
||||||
* Notes can be arranged into arbitrarily deep tree. Single note can be placed
|
* A jegyzetek önkényesen mély fába rendezhetők. Egyetlen jegyzetet lehet
|
||||||
into multiple places in the tree (see
|
elhelyezni a többi fába (lásd
|
||||||
[cloning](https://triliumnext.github.io/Docs/Wiki/cloning-notes))
|
[klónozás](https://triliumnext.github.io/Docs/Wiki/cloning-notes))
|
||||||
* Rich WYSIWYG note editor including e.g. tables, images and
|
* Gazdag WYSIWYG jegyzetszerkesztő, beleértve például az asztalokat, képeket és
|
||||||
[math](https://triliumnext.github.io/Docs/Wiki/text-notes) with markdown
|
[math](https://triliumnext.github.io/Docs/Wiki/text-notes) markdownt
|
||||||
[autoformat](https://triliumnext.github.io/Docs/Wiki/text-notes#autoformat)
|
[autoformat](https://triliumnext.github.io/Docs/Wiki/text-notes#autoformat)
|
||||||
* Support for editing [notes with source
|
* Szerkesztés támogatása [jegyzetek
|
||||||
code](https://triliumnext.github.io/Docs/Wiki/code-notes), including syntax
|
forráskóddal](https://triliumnext.github.io/Docs/Wiki/code-notes), beleértve a
|
||||||
highlighting
|
szintaxis kiemelését
|
||||||
* Fast and easy [navigation between
|
* Gyors és egyszerű [navigáció a jegyzetek
|
||||||
notes](https://triliumnext.github.io/Docs/Wiki/note-navigation), full text
|
között](https://triliumnext.github.io/Docs/Wiki/note-navigation), teljes
|
||||||
search and [note
|
szöveges keresés és
|
||||||
hoisting](https://triliumnext.github.io/Docs/Wiki/note-hoisting)
|
[megjegyzés](https://triliumnext.github.io/Docs/Wiki/note-hoisting)
|
||||||
* Seamless [note
|
* Zökkenőmentes
|
||||||
versioning](https://triliumnext.github.io/Docs/Wiki/note-revisions)
|
[jegyzetváltozat](https://triliumnext.github.io/Docs/Wiki/note-revisions)
|
||||||
* Note [attributes](https://triliumnext.github.io/Docs/Wiki/attributes) can be
|
* Megjegyzés [attribútumok](https://triliumnext.github.io/Docs/Wiki/attributes)
|
||||||
used for note organization, querying and advanced
|
használható jegyzetszervezéshez, lekérdezéshez és speciális
|
||||||
[scripting](https://triliumnext.github.io/Docs/Wiki/scripts)
|
[szkriptelés](https://triliumnext.github.io/Docs/Wiki/scripts)
|
||||||
* UI available in English, German, Spanish, French, Romanian, and Chinese
|
* UI elérhető angol, német, spanyol, francia, román és kínai (egyszerűsített és
|
||||||
(simplified and traditional)
|
hagyományos)
|
||||||
* Direct [OpenID and TOTP
|
* Direct [OpenID and TOTP
|
||||||
integration](./docs/User%20Guide/User%20Guide/Installation%20%26%20Setup/Server%20Installation/Multi-Factor%20Authentication.md)
|
integration](./docs/User%20Guide/User%20Guide/Installation%20%26%20Setup/Server%20Installation/Multi-Factor%20Authentication.md)
|
||||||
for more secure login
|
for more secure login
|
||||||
@@ -105,11 +105,12 @@ Our documentation is available in multiple formats:
|
|||||||
* [Relation maps](https://triliumnext.github.io/Docs/Wiki/relation-map) and
|
* [Relation maps](https://triliumnext.github.io/Docs/Wiki/relation-map) and
|
||||||
[link maps](https://triliumnext.github.io/Docs/Wiki/link-map) for visualizing
|
[link maps](https://triliumnext.github.io/Docs/Wiki/link-map) for visualizing
|
||||||
notes and their relations
|
notes and their relations
|
||||||
* Mind maps, based on [Mind Elixir](https://docs.mind-elixir.com/)
|
* Elmetérképek, [Mind Elixir](https://docs.mind-elixir.com/) alapján
|
||||||
* [Geo maps](./docs/User%20Guide/User%20Guide/Note%20Types/Geo%20Map.md) with
|
* [Geo térképek](./docs/User%20Guide/User%20Guide/Note%20Types/Geo%20Map.md)
|
||||||
location pins and GPX tracks
|
helymeghatározó tűkkel és GPX nyomokkal
|
||||||
* [Scripting](https://triliumnext.github.io/Docs/Wiki/scripts) - see [Advanced
|
* [Szkriptelés](https://triliumnext.github.io/Docs/Wiki/scripts) - lásd:
|
||||||
showcases](https://triliumnext.github.io/Docs/Wiki/advanced-showcases)
|
[Speciális
|
||||||
|
bemutatók](https://triliumnext.github.io/Docs/Wiki/advanced-showcases)
|
||||||
* [REST API](https://triliumnext.github.io/Docs/Wiki/etapi) for automation
|
* [REST API](https://triliumnext.github.io/Docs/Wiki/etapi) for automation
|
||||||
* Scales well in both usability and performance upwards of 100 000 notes
|
* Scales well in both usability and performance upwards of 100 000 notes
|
||||||
* Touch optimized [mobile
|
* Touch optimized [mobile
|
||||||
|
|||||||
8
docs/README-it.md
vendored
8
docs/README-it.md
vendored
@@ -34,12 +34,12 @@ una panoramica veloce:
|
|||||||
|
|
||||||
<a href="https://triliumnext.github.io/Docs/Wiki/screenshot-tour"><img src="./docs/app.png" alt="Trilium Screenshot" width="1000"></a>
|
<a href="https://triliumnext.github.io/Docs/Wiki/screenshot-tour"><img src="./docs/app.png" alt="Trilium Screenshot" width="1000"></a>
|
||||||
|
|
||||||
## ⏬ Download
|
## ⏬ Scarica
|
||||||
- [Latest release](https://github.com/TriliumNext/Trilium/releases/latest) –
|
- [Latest release](https://github.com/TriliumNext/Trilium/releases/latest) –
|
||||||
stable version, recommended for most users.
|
versione stabile, consigliata per la maggior parte degli utenti.
|
||||||
- [Nightly build](https://github.com/TriliumNext/Trilium/releases/tag/nightly) –
|
- [Nightly build](https://github.com/TriliumNext/Trilium/releases/tag/nightly) –
|
||||||
unstable development version, updated daily with the latest features and
|
versione di sviluppo instabile, aggiornata quotidianamente con le ultime
|
||||||
fixes.
|
funzionalità e correzioni.
|
||||||
|
|
||||||
## 📚 Documentazione
|
## 📚 Documentazione
|
||||||
|
|
||||||
|
|||||||
8
docs/README-nl.md
vendored
8
docs/README-nl.md
vendored
@@ -20,10 +20,10 @@ releases)](https://img.shields.io/github/downloads/triliumnext/trilium/total)\
|
|||||||
[](https://hosted.weblate.org/engage/trilium/)
|
status](https://hosted.weblate.org/widget/trilium/svg-badge.svg)](https://hosted.weblate.org/engage/trilium/)
|
||||||
|
|
||||||
[English](./README.md) | [Chinese (Simplified)](./docs/README-ZH_CN.md) |
|
[Engels](./README.md) [Chinees (Versimpeld)](./docs/README-ZH_CN.md) [Chinees
|
||||||
[Chinese (Traditional)](./docs/README-ZH_TW.md) | [Russian](./docs/README-ru.md)
|
(Traditioneel)](./docs/README-ZH_TW.md) [Russisch](./docs/README-ru.md)
|
||||||
| [Japanese](./docs/README-ja.md) | [Italian](./docs/README-it.md) |
|
[Japans](./docs/README-ja.md) [Italiaans](./docs/README-it.md)
|
||||||
[Spanish](./docs/README-es.md)
|
[Spaans](./docs/README-es.md)
|
||||||
|
|
||||||
Trillium Notes is een gratis en open-source, platformonafhankelijke,
|
Trillium Notes is een gratis en open-source, platformonafhankelijke,
|
||||||
hiërarchische notitie-applicatie die zich richt op het opbouwen van grote
|
hiërarchische notitie-applicatie die zich richt op het opbouwen van grote
|
||||||
|
|||||||
149
docs/README-uk.md
vendored
149
docs/README-uk.md
vendored
@@ -11,103 +11,104 @@
|
|||||||
|
|
||||||
# Trilium Notes
|
# Trilium Notes
|
||||||
|
|
||||||

|

|
||||||
\
|
\
|
||||||

|

|
||||||
\
|
релізи)](https://img.shields.io/github/downloads/triliumnext/trilium/total)\
|
||||||
[](https://app.relative-ci.com/projects/Di5q7dz9daNDZ9UXi0Bp)
|
[](https://app.relative-ci.com/projects/Di5q7dz9daNDZ9UXi0Bp)
|
||||||
[](https://hosted.weblate.org/engage/trilium/)
|
перекладу](https://hosted.weblate.org/widget/trilium/svg-badge.svg)](https://hosted.weblate.org/engage/trilium/)
|
||||||
|
|
||||||
[English](./README.md) | [Chinese (Simplified)](./docs/README-ZH_CN.md) |
|
[English](./README.md) | [Chinese (Simplified)](./docs/README-ZH_CN.md) |
|
||||||
[Chinese (Traditional)](./docs/README-ZH_TW.md) | [Russian](./docs/README-ru.md)
|
[Chinese (Traditional)](./docs/README-ZH_TW.md) | [Russian](./docs/README-ru.md)
|
||||||
| [Japanese](./docs/README-ja.md) | [Italian](./docs/README-it.md) |
|
| [Japanese](./docs/README-ja.md) | [Italian](./docs/README-it.md) |
|
||||||
[Spanish](./docs/README-es.md)
|
[Spanish](./docs/README-es.md)
|
||||||
|
|
||||||
Trilium Notes is a free and open-source, cross-platform hierarchical note taking
|
Trilium Notes — це безкоштовний кросплатформний ієрархічний додаток для ведення
|
||||||
application with focus on building large personal knowledge bases.
|
нотаток з відкритим кодом, орієнтований на створення великих персональних баз
|
||||||
|
знань.
|
||||||
|
|
||||||
See [screenshots](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) for
|
Див. [скріншоти](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) для
|
||||||
quick overview:
|
швидкого перегляду:
|
||||||
|
|
||||||
<a href="https://triliumnext.github.io/Docs/Wiki/screenshot-tour"><img src="./docs/app.png" alt="Trilium Screenshot" width="1000"></a>
|
<a href="https://triliumnext.github.io/Docs/Wiki/screenshot-tour"><img src="./docs/app.png" alt="Trilium Screenshot" width="1000"></a>
|
||||||
|
|
||||||
## ⏬ Download
|
## ⏬ Завантажити
|
||||||
- [Latest release](https://github.com/TriliumNext/Trilium/releases/latest) –
|
- [Latest release](https://github.com/TriliumNext/Trilium/releases/latest) –
|
||||||
stable version, recommended for most users.
|
стабільна версія, рекомендована для більшості користувачів.
|
||||||
- [Nightly build](https://github.com/TriliumNext/Trilium/releases/tag/nightly) –
|
- [Nightly build](https://github.com/TriliumNext/Trilium/releases/tag/nightly) –
|
||||||
unstable development version, updated daily with the latest features and
|
нестабільна версія для розробників, щодня оновлюється найновішими функціями та
|
||||||
fixes.
|
виправленнями.
|
||||||
|
|
||||||
## 📚 Documentation
|
## 📚 Документація
|
||||||
|
|
||||||
**Visit our comprehensive documentation at
|
**Відвідайте нашу вичерпну документацію за адресою
|
||||||
[docs.triliumnotes.org](https://docs.triliumnotes.org/)**
|
[docs.triliumnotes.org](https://docs.triliumnotes.org/)**
|
||||||
|
|
||||||
Our documentation is available in multiple formats:
|
Наша документація доступна в кількох форматах:
|
||||||
- **Online Documentation**: Browse the full documentation at
|
- **Онлайн-документація**: Перегляньте повну документацію на сайті
|
||||||
[docs.triliumnotes.org](https://docs.triliumnotes.org/)
|
[docs.triliumnotes.org](https://docs.triliumnotes.org/)
|
||||||
- **In-App Help**: Press `F1` within Trilium to access the same documentation
|
- **Довідка в додатку**: Натисніть `F1` у Trilium, щоб отримати доступ до тієї ж
|
||||||
directly in the application
|
документації безпосередньо в додатку
|
||||||
- **GitHub**: Navigate through the [User
|
- **GitHub**: Перегляд [Посібника
|
||||||
Guide](./docs/User%20Guide/User%20Guide/) in this repository
|
користувача](./docs/User%20Guide/User%20Guide/) у цьому репозиторії
|
||||||
|
|
||||||
### Quick Links
|
### Швидкі посилання
|
||||||
- [Getting Started Guide](https://docs.triliumnotes.org/)
|
- [Посібник із початку роботи](https://docs.triliumnotes.org/)
|
||||||
- [Installation
|
- [Інструкції з
|
||||||
Instructions](./docs/User%20Guide/User%20Guide/Installation%20&%20Setup/Server%20Installation.md)
|
встановлення](./docs/User%20Guide/User%20Guide/Installation%20&%20Setup/Server%20Installation.md)
|
||||||
- [Docker
|
- [Налаштування
|
||||||
Setup](./docs/User%20Guide/User%20Guide/Installation%20&%20Setup/Server%20Installation/1.%20Installing%20the%20server/Using%20Docker.md)
|
Docker](./docs/User%20Guide/User%20Guide/Installation%20&%20Setup/Server%20Installation/1.%20Installing%20the%20server/Using%20Docker.md)
|
||||||
- [Upgrading
|
- [Оновлення
|
||||||
TriliumNext](./docs/User%20Guide/User%20Guide/Installation%20%26%20Setup/Upgrading%20TriliumNext.md)
|
TriliumNext](./docs/User%20Guide/User%20Guide/Installation%20%26%20Setup/Upgrading%20TriliumNext.md)
|
||||||
- [Basic Concepts and
|
- [Основні поняття та
|
||||||
Features](./docs/User%20Guide/User%20Guide/Basic%20Concepts%20and%20Features/Notes.md)
|
функції](./docs/User%20Guide/User%20Guide/Basic%20Concepts%20and%20Features/Notes.md)
|
||||||
- [Patterns of Personal Knowledge
|
- [Шаблони особистої бази
|
||||||
Base](https://triliumnext.github.io/Docs/Wiki/patterns-of-personal-knowledge)
|
знань](https://triliumnext.github.io/Docs/Wiki/patterns-of-personal-knowledge)
|
||||||
|
|
||||||
## 🎁 Features
|
## 🎁 Можливості
|
||||||
|
|
||||||
* Notes can be arranged into arbitrarily deep tree. Single note can be placed
|
* Нотатки можна розташувати в дерево довільної глибини. Одну нотатку можна
|
||||||
into multiple places in the tree (see
|
розмістити в кількох місцях дерева (див.
|
||||||
[cloning](https://triliumnext.github.io/Docs/Wiki/cloning-notes))
|
[клонування](https://triliumnext.github.io/Docs/Wiki/cloning-notes))
|
||||||
* Rich WYSIWYG note editor including e.g. tables, images and
|
* Багатий WYSIWYG-редактор нотаток, включаючи, наприклад, таблиці, зображення та
|
||||||
[math](https://triliumnext.github.io/Docs/Wiki/text-notes) with markdown
|
[математику](https://triliumnext.github.io/Docs/Wiki/text-notes) з markdown
|
||||||
[autoformat](https://triliumnext.github.io/Docs/Wiki/text-notes#autoformat)
|
[автоформат](https://triliumnext.github.io/Docs/Wiki/text-notes#autoformat)
|
||||||
* Support for editing [notes with source
|
* Підтримка редагування [нотатки з вихідним
|
||||||
code](https://triliumnext.github.io/Docs/Wiki/code-notes), including syntax
|
кодом](https://triliumnext.github.io/Docs/Wiki/code-notes), включаючи
|
||||||
highlighting
|
підсвічування синтаксису
|
||||||
* Fast and easy [navigation between
|
* Швидка та проста [навігація між
|
||||||
notes](https://triliumnext.github.io/Docs/Wiki/note-navigation), full text
|
нотатками](https://triliumnext.github.io/Docs/Wiki/note-navigation),
|
||||||
search and [note
|
повнотекстовий пошук та [хостінг
|
||||||
hoisting](https://triliumnext.github.io/Docs/Wiki/note-hoisting)
|
нотаток](https://triliumnext.github.io/Docs/Wiki/note-hoisting)
|
||||||
* Seamless [note
|
* Безшовне [керування версіями
|
||||||
versioning](https://triliumnext.github.io/Docs/Wiki/note-revisions)
|
нотаток](https://triliumnext.github.io/Docs/Wiki/note-revisions)
|
||||||
* Note [attributes](https://triliumnext.github.io/Docs/Wiki/attributes) can be
|
* [Атрибути](https://triliumnext.github.io/Docs/Wiki/attributes) нотатки можна
|
||||||
used for note organization, querying and advanced
|
використовувати для організації нотаток, запитів та розширеного
|
||||||
[scripting](https://triliumnext.github.io/Docs/Wiki/scripts)
|
[сриптінгу](https://triliumnext.github.io/Docs/Wiki/scripts)
|
||||||
* UI available in English, German, Spanish, French, Romanian, and Chinese
|
* Інтерфейс користувача доступний англійською, німецькою, іспанською,
|
||||||
(simplified and traditional)
|
французькою, румунською та китайською (спрощеною та традиційною) мовами
|
||||||
* Direct [OpenID and TOTP
|
* Пряма [OpenID та TOTP
|
||||||
integration](./docs/User%20Guide/User%20Guide/Installation%20%26%20Setup/Server%20Installation/Multi-Factor%20Authentication.md)
|
інтеграція](./docs/User%20Guide/User%20Guide/Installation%20%26%20Setup/Server%20Installation/Multi-Factor%20Authentication.md)
|
||||||
for more secure login
|
для безпечнішого входу
|
||||||
* [Synchronization](https://triliumnext.github.io/Docs/Wiki/synchronization)
|
* [Синхронізація](https://triliumnext.github.io/Docs/Wiki/synchronization) із
|
||||||
with self-hosted sync server
|
власним сервером синхронізації
|
||||||
* there's a [3rd party service for hosting synchronisation
|
* існує [сторонній сервіс для розміщення сервера
|
||||||
server](https://trilium.cc/paid-hosting)
|
синхронізації](https://trilium.cc/paid-hosting)
|
||||||
* [Sharing](https://triliumnext.github.io/Docs/Wiki/sharing) (publishing) notes
|
* [Спільне використання](https://triliumnext.github.io/Docs/Wiki/sharing)
|
||||||
to public internet
|
(публікація) нотаток у загальнодоступному інтернеті
|
||||||
* Strong [note
|
* Надійне [шифрування
|
||||||
encryption](https://triliumnext.github.io/Docs/Wiki/protected-notes) with
|
нотаток](https://triliumnext.github.io/Docs/Wiki/protected-notes) з
|
||||||
per-note granularity
|
деталізацією для кожної нотатки
|
||||||
* Sketching diagrams, based on [Excalidraw](https://excalidraw.com/) (note type
|
* Створення ескізних схем на основі [Excalidraw](https://excalidraw.com/) (тип
|
||||||
"canvas")
|
нотатки "полотно")
|
||||||
* [Relation maps](https://triliumnext.github.io/Docs/Wiki/relation-map) and
|
* [Карти зв'язків](https://triliumnext.github.io/Docs/Wiki/relation-map) та
|
||||||
[link maps](https://triliumnext.github.io/Docs/Wiki/link-map) for visualizing
|
[карти посилань](https://triliumnext.github.io/Docs/Wiki/link-map) для
|
||||||
notes and their relations
|
візуалізації нотаток та їх зв'язків
|
||||||
* Mind maps, based on [Mind Elixir](https://docs.mind-elixir.com/)
|
* Інтелект-карти, засновані на [Mind Elixir](https://docs.mind-elixir.com/)
|
||||||
* [Geo maps](./docs/User%20Guide/User%20Guide/Note%20Types/Geo%20Map.md) with
|
* [Геокарти](./docs/User%20Guide/User%20Guide/Note%20Types/Geo%20Map.md) з
|
||||||
location pins and GPX tracks
|
географічними позначками та GPX-треками
|
||||||
* [Scripting](https://triliumnext.github.io/Docs/Wiki/scripts) - see [Advanced
|
* [Scripting](https://triliumnext.github.io/Docs/Wiki/scripts) - see [Advanced
|
||||||
showcases](https://triliumnext.github.io/Docs/Wiki/advanced-showcases)
|
showcases](https://triliumnext.github.io/Docs/Wiki/advanced-showcases)
|
||||||
* [REST API](https://triliumnext.github.io/Docs/Wiki/etapi) for automation
|
* [REST API](https://triliumnext.github.io/Docs/Wiki/etapi) for automation
|
||||||
|
|||||||
14
docs/README-vi.md
vendored
14
docs/README-vi.md
vendored
@@ -33,12 +33,14 @@ Xem [ảnh chụp màn hình](https://triliumnext.github.io/Docs/Wiki/screenshot
|
|||||||
|
|
||||||
<a href="https://triliumnext.github.io/Docs/Wiki/screenshot-tour"><img src="./docs/app.png" alt="Trilium Screenshot" width="1000"></a>
|
<a href="https://triliumnext.github.io/Docs/Wiki/screenshot-tour"><img src="./docs/app.png" alt="Trilium Screenshot" width="1000"></a>
|
||||||
|
|
||||||
## ⏬ Download
|
## ⏬ Tải xuống
|
||||||
- [Latest release](https://github.com/TriliumNext/Trilium/releases/latest) –
|
- [Bản phát hành mới
|
||||||
stable version, recommended for most users.
|
nhất](https://github.com/TriliumNext/Trilium/releases/latest) – phiên bản ổn
|
||||||
- [Nightly build](https://github.com/TriliumNext/Trilium/releases/tag/nightly) –
|
định, được khuyên dùng cho hầu hết người dùng.
|
||||||
unstable development version, updated daily with the latest features and
|
- [Bản dựng
|
||||||
fixes.
|
nightly](https://github.com/TriliumNext/Trilium/releases/tag/nightly) – phiên
|
||||||
|
bản phát triển kém ổn định, được cập nhật hàng ngày với các tính năng mới nhất
|
||||||
|
và sửa lỗi.
|
||||||
|
|
||||||
## 📚 Tài Liệu
|
## 📚 Tài Liệu
|
||||||
|
|
||||||
|
|||||||
110
docs/Release Notes/!!!meta.json
vendored
110
docs/Release Notes/!!!meta.json
vendored
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"formatVersion": 2,
|
"formatVersion": 2,
|
||||||
"appVersion": "0.99.1",
|
"appVersion": "0.99.2",
|
||||||
"files": [
|
"files": [
|
||||||
{
|
{
|
||||||
"isClone": false,
|
"isClone": false,
|
||||||
@@ -61,6 +61,32 @@
|
|||||||
"attachments": [],
|
"attachments": [],
|
||||||
"dirFileName": "Release Notes",
|
"dirFileName": "Release Notes",
|
||||||
"children": [
|
"children": [
|
||||||
|
{
|
||||||
|
"isClone": false,
|
||||||
|
"noteId": "yuroLztFfpu5",
|
||||||
|
"notePath": [
|
||||||
|
"hD3V4hiu2VW4",
|
||||||
|
"yuroLztFfpu5"
|
||||||
|
],
|
||||||
|
"title": "v0.99.3",
|
||||||
|
"notePosition": 10,
|
||||||
|
"prefix": null,
|
||||||
|
"isExpanded": false,
|
||||||
|
"type": "text",
|
||||||
|
"mime": "text/html",
|
||||||
|
"attributes": [
|
||||||
|
{
|
||||||
|
"type": "relation",
|
||||||
|
"name": "template",
|
||||||
|
"value": "wyurrlcDl416",
|
||||||
|
"isInheritable": false,
|
||||||
|
"position": 60
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"format": "markdown",
|
||||||
|
"dataFileName": "v0.99.3.md",
|
||||||
|
"attachments": []
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"isClone": false,
|
"isClone": false,
|
||||||
"noteId": "z207sehwMJ6C",
|
"noteId": "z207sehwMJ6C",
|
||||||
@@ -69,7 +95,7 @@
|
|||||||
"z207sehwMJ6C"
|
"z207sehwMJ6C"
|
||||||
],
|
],
|
||||||
"title": "v0.99.2",
|
"title": "v0.99.2",
|
||||||
"notePosition": 10,
|
"notePosition": 20,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -95,7 +121,7 @@
|
|||||||
"WGQsXq2jNyTi"
|
"WGQsXq2jNyTi"
|
||||||
],
|
],
|
||||||
"title": "v0.99.1",
|
"title": "v0.99.1",
|
||||||
"notePosition": 20,
|
"notePosition": 30,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -121,7 +147,7 @@
|
|||||||
"cyw2Yue9vXf3"
|
"cyw2Yue9vXf3"
|
||||||
],
|
],
|
||||||
"title": "v0.99.0",
|
"title": "v0.99.0",
|
||||||
"notePosition": 30,
|
"notePosition": 40,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -147,7 +173,7 @@
|
|||||||
"QOJwjruOUr4k"
|
"QOJwjruOUr4k"
|
||||||
],
|
],
|
||||||
"title": "v0.98.1",
|
"title": "v0.98.1",
|
||||||
"notePosition": 40,
|
"notePosition": 50,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -173,7 +199,7 @@
|
|||||||
"PLUoryywi0BC"
|
"PLUoryywi0BC"
|
||||||
],
|
],
|
||||||
"title": "v0.98.0",
|
"title": "v0.98.0",
|
||||||
"notePosition": 50,
|
"notePosition": 60,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -199,7 +225,7 @@
|
|||||||
"lvOuiWsLDv8F"
|
"lvOuiWsLDv8F"
|
||||||
],
|
],
|
||||||
"title": "v0.97.2",
|
"title": "v0.97.2",
|
||||||
"notePosition": 60,
|
"notePosition": 70,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -225,7 +251,7 @@
|
|||||||
"OtFZ6Nd9vM3n"
|
"OtFZ6Nd9vM3n"
|
||||||
],
|
],
|
||||||
"title": "v0.97.1",
|
"title": "v0.97.1",
|
||||||
"notePosition": 70,
|
"notePosition": 80,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -251,7 +277,7 @@
|
|||||||
"SJZ5PwfzHSQ1"
|
"SJZ5PwfzHSQ1"
|
||||||
],
|
],
|
||||||
"title": "v0.97.0",
|
"title": "v0.97.0",
|
||||||
"notePosition": 80,
|
"notePosition": 90,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -277,7 +303,7 @@
|
|||||||
"mYXFde3LuNR7"
|
"mYXFde3LuNR7"
|
||||||
],
|
],
|
||||||
"title": "v0.96.0",
|
"title": "v0.96.0",
|
||||||
"notePosition": 90,
|
"notePosition": 100,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -303,7 +329,7 @@
|
|||||||
"jthwbL0FdaeU"
|
"jthwbL0FdaeU"
|
||||||
],
|
],
|
||||||
"title": "v0.95.0",
|
"title": "v0.95.0",
|
||||||
"notePosition": 100,
|
"notePosition": 110,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -329,7 +355,7 @@
|
|||||||
"7HGYsJbLuhnv"
|
"7HGYsJbLuhnv"
|
||||||
],
|
],
|
||||||
"title": "v0.94.1",
|
"title": "v0.94.1",
|
||||||
"notePosition": 110,
|
"notePosition": 120,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -355,7 +381,7 @@
|
|||||||
"Neq53ujRGBqv"
|
"Neq53ujRGBqv"
|
||||||
],
|
],
|
||||||
"title": "v0.94.0",
|
"title": "v0.94.0",
|
||||||
"notePosition": 120,
|
"notePosition": 130,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -381,7 +407,7 @@
|
|||||||
"VN3xnce1vLkX"
|
"VN3xnce1vLkX"
|
||||||
],
|
],
|
||||||
"title": "v0.93.0",
|
"title": "v0.93.0",
|
||||||
"notePosition": 130,
|
"notePosition": 140,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -399,7 +425,7 @@
|
|||||||
"WRaBfQqPr6qo"
|
"WRaBfQqPr6qo"
|
||||||
],
|
],
|
||||||
"title": "v0.92.7",
|
"title": "v0.92.7",
|
||||||
"notePosition": 140,
|
"notePosition": 150,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -425,7 +451,7 @@
|
|||||||
"a2rwfKNmUFU1"
|
"a2rwfKNmUFU1"
|
||||||
],
|
],
|
||||||
"title": "v0.92.6",
|
"title": "v0.92.6",
|
||||||
"notePosition": 150,
|
"notePosition": 160,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -443,7 +469,7 @@
|
|||||||
"fEJ8qErr0BKL"
|
"fEJ8qErr0BKL"
|
||||||
],
|
],
|
||||||
"title": "v0.92.5-beta",
|
"title": "v0.92.5-beta",
|
||||||
"notePosition": 160,
|
"notePosition": 170,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -461,7 +487,7 @@
|
|||||||
"kkkZQQGSXjwy"
|
"kkkZQQGSXjwy"
|
||||||
],
|
],
|
||||||
"title": "v0.92.4",
|
"title": "v0.92.4",
|
||||||
"notePosition": 170,
|
"notePosition": 180,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -479,7 +505,7 @@
|
|||||||
"vAroNixiezaH"
|
"vAroNixiezaH"
|
||||||
],
|
],
|
||||||
"title": "v0.92.3-beta",
|
"title": "v0.92.3-beta",
|
||||||
"notePosition": 180,
|
"notePosition": 190,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -497,7 +523,7 @@
|
|||||||
"mHEq1wxAKNZd"
|
"mHEq1wxAKNZd"
|
||||||
],
|
],
|
||||||
"title": "v0.92.2-beta",
|
"title": "v0.92.2-beta",
|
||||||
"notePosition": 190,
|
"notePosition": 200,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -515,7 +541,7 @@
|
|||||||
"IykjoAmBpc61"
|
"IykjoAmBpc61"
|
||||||
],
|
],
|
||||||
"title": "v0.92.1-beta",
|
"title": "v0.92.1-beta",
|
||||||
"notePosition": 200,
|
"notePosition": 210,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -533,7 +559,7 @@
|
|||||||
"dq2AJ9vSBX4Y"
|
"dq2AJ9vSBX4Y"
|
||||||
],
|
],
|
||||||
"title": "v0.92.0-beta",
|
"title": "v0.92.0-beta",
|
||||||
"notePosition": 210,
|
"notePosition": 220,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -551,7 +577,7 @@
|
|||||||
"3a8aMe4jz4yM"
|
"3a8aMe4jz4yM"
|
||||||
],
|
],
|
||||||
"title": "v0.91.6",
|
"title": "v0.91.6",
|
||||||
"notePosition": 220,
|
"notePosition": 230,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -569,7 +595,7 @@
|
|||||||
"8djQjkiDGESe"
|
"8djQjkiDGESe"
|
||||||
],
|
],
|
||||||
"title": "v0.91.5",
|
"title": "v0.91.5",
|
||||||
"notePosition": 230,
|
"notePosition": 240,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -587,7 +613,7 @@
|
|||||||
"OylxVoVJqNmr"
|
"OylxVoVJqNmr"
|
||||||
],
|
],
|
||||||
"title": "v0.91.4-beta",
|
"title": "v0.91.4-beta",
|
||||||
"notePosition": 240,
|
"notePosition": 250,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -605,7 +631,7 @@
|
|||||||
"tANGQDvnyhrj"
|
"tANGQDvnyhrj"
|
||||||
],
|
],
|
||||||
"title": "v0.91.3-beta",
|
"title": "v0.91.3-beta",
|
||||||
"notePosition": 250,
|
"notePosition": 260,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -623,7 +649,7 @@
|
|||||||
"hMoBfwSoj1SC"
|
"hMoBfwSoj1SC"
|
||||||
],
|
],
|
||||||
"title": "v0.91.2-beta",
|
"title": "v0.91.2-beta",
|
||||||
"notePosition": 260,
|
"notePosition": 270,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -641,7 +667,7 @@
|
|||||||
"a2XMSKROCl9z"
|
"a2XMSKROCl9z"
|
||||||
],
|
],
|
||||||
"title": "v0.91.1-beta",
|
"title": "v0.91.1-beta",
|
||||||
"notePosition": 270,
|
"notePosition": 280,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -659,7 +685,7 @@
|
|||||||
"yqXFvWbLkuMD"
|
"yqXFvWbLkuMD"
|
||||||
],
|
],
|
||||||
"title": "v0.90.12",
|
"title": "v0.90.12",
|
||||||
"notePosition": 280,
|
"notePosition": 290,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -677,7 +703,7 @@
|
|||||||
"veS7pg311yJP"
|
"veS7pg311yJP"
|
||||||
],
|
],
|
||||||
"title": "v0.90.11-beta",
|
"title": "v0.90.11-beta",
|
||||||
"notePosition": 290,
|
"notePosition": 300,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -695,7 +721,7 @@
|
|||||||
"sq5W9TQxRqMq"
|
"sq5W9TQxRqMq"
|
||||||
],
|
],
|
||||||
"title": "v0.90.10-beta",
|
"title": "v0.90.10-beta",
|
||||||
"notePosition": 300,
|
"notePosition": 310,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -713,7 +739,7 @@
|
|||||||
"yFEGVCUM9tPx"
|
"yFEGVCUM9tPx"
|
||||||
],
|
],
|
||||||
"title": "v0.90.9-beta",
|
"title": "v0.90.9-beta",
|
||||||
"notePosition": 310,
|
"notePosition": 320,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -731,7 +757,7 @@
|
|||||||
"o4wAGqOQuJtV"
|
"o4wAGqOQuJtV"
|
||||||
],
|
],
|
||||||
"title": "v0.90.8",
|
"title": "v0.90.8",
|
||||||
"notePosition": 320,
|
"notePosition": 330,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -764,7 +790,7 @@
|
|||||||
"i4A5g9iOg9I0"
|
"i4A5g9iOg9I0"
|
||||||
],
|
],
|
||||||
"title": "v0.90.7-beta",
|
"title": "v0.90.7-beta",
|
||||||
"notePosition": 330,
|
"notePosition": 340,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -782,7 +808,7 @@
|
|||||||
"ThNf2GaKgXUs"
|
"ThNf2GaKgXUs"
|
||||||
],
|
],
|
||||||
"title": "v0.90.6-beta",
|
"title": "v0.90.6-beta",
|
||||||
"notePosition": 340,
|
"notePosition": 350,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -800,7 +826,7 @@
|
|||||||
"G4PAi554kQUr"
|
"G4PAi554kQUr"
|
||||||
],
|
],
|
||||||
"title": "v0.90.5-beta",
|
"title": "v0.90.5-beta",
|
||||||
"notePosition": 350,
|
"notePosition": 360,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -827,7 +853,7 @@
|
|||||||
"zATRobGRCmBn"
|
"zATRobGRCmBn"
|
||||||
],
|
],
|
||||||
"title": "v0.90.4",
|
"title": "v0.90.4",
|
||||||
"notePosition": 360,
|
"notePosition": 370,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -845,7 +871,7 @@
|
|||||||
"sCDLf8IKn3Iz"
|
"sCDLf8IKn3Iz"
|
||||||
],
|
],
|
||||||
"title": "v0.90.3",
|
"title": "v0.90.3",
|
||||||
"notePosition": 370,
|
"notePosition": 380,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -863,7 +889,7 @@
|
|||||||
"VqqyBu4AuTjC"
|
"VqqyBu4AuTjC"
|
||||||
],
|
],
|
||||||
"title": "v0.90.2-beta",
|
"title": "v0.90.2-beta",
|
||||||
"notePosition": 380,
|
"notePosition": 390,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -881,7 +907,7 @@
|
|||||||
"RX3Nl7wInLsA"
|
"RX3Nl7wInLsA"
|
||||||
],
|
],
|
||||||
"title": "v0.90.1-beta",
|
"title": "v0.90.1-beta",
|
||||||
"notePosition": 390,
|
"notePosition": 400,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -899,7 +925,7 @@
|
|||||||
"GyueACukPWjk"
|
"GyueACukPWjk"
|
||||||
],
|
],
|
||||||
"title": "v0.90.0-beta",
|
"title": "v0.90.0-beta",
|
||||||
"notePosition": 400,
|
"notePosition": 410,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -917,7 +943,7 @@
|
|||||||
"wyurrlcDl416"
|
"wyurrlcDl416"
|
||||||
],
|
],
|
||||||
"title": "Release Template",
|
"title": "Release Template",
|
||||||
"notePosition": 410,
|
"notePosition": 420,
|
||||||
"prefix": null,
|
"prefix": null,
|
||||||
"isExpanded": false,
|
"isExpanded": false,
|
||||||
"type": "text",
|
"type": "text",
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
# Release Template
|
# Release Template
|
||||||
|
> [!NOTE]
|
||||||
|
> If you are interested in an [official mobile application](https://oss.issuehunt.io/r/TriliumNext/Trilium/issues/7447) ([#7447](https://github.com/TriliumNext/Trilium/issues/7447)) or [multi-user support](https://oss.issuehunt.io/r/TriliumNext/Trilium/issues/4956) ([#4956](https://github.com/TriliumNext/Trilium/issues/4956)), consider offering financial support via IssueHunt (see links).
|
||||||
|
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> If you enjoyed this release, consider showing a token of appreciation by:
|
> If you enjoyed this release, consider showing a token of appreciation by:
|
||||||
>
|
>
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user