Compare commits

..
Author SHA1 Message Date
Laurent Cozic 02a0c9b1e6 Tools: Fixed dist script on Windows 2020-12-09 22:33:17 +00:00
Laurent Cozic 1a09f5e1dc tweaks 2020-12-09 19:01:23 +00:00
Laurent Cozic 91cd60a002 add media player support 2020-12-09 17:57:49 +00:00
Laurent Cozic f436967779 Chore: Fixed dev dependencies 2020-12-09 16:15:13 +00:00
Laurent Cozic f37224fc42 Desktop: Added doc about Rich Text editor and added way to dismiss warning banner 2020-12-09 15:58:15 +00:00
Laurent Cozic a737a21185 Tools: Fixed another race condition in test units 2020-12-09 15:06:22 +00:00
Laurent Cozic 234c05a966 Desktop: Rich Text: Do not converts to markdown links URLs that would be linkified 2020-12-09 14:58:38 +00:00
Roman Musin 92b4795410 All: Fixed #4025: Fixed issue when searching for text that contains diacritic (#4152) 2020-12-09 13:02:54 +00:00
Laurent Cozic 3e21e9a334 Tests: Increased 'slow threshold' to 20 seconds, because we use Jest for integration testing too 2020-12-09 12:57:25 +00:00
Laurent Cozic dc3e9178ef Desktop: Fixed issue with attachment paths being invalid when user has spaces in home directory path. Also fixed race condition in test units that could make them randomly fail. 2020-12-09 12:53:47 +00:00
Laurent Cozic 46ed1304f2 Desktop: Improved warning banner colors 2020-12-08 23:44:54 +00:00
Laurent Cozic 01cf0de974 Desktop: Fixed title input field width on small windows 2020-12-08 23:27:11 +00:00
Laurent Cozic abf5d16da9 Doc: Fixed master key encryption method link 2020-12-08 22:02:17 +00:00
Laurent Cozic f21199a7f3 Chore: Convert test-utils to TypeScript 2020-12-08 20:01:33 +00:00
Laurent Cozic cdf2873883 Plugins: Commands would not show up in keymap editor when no shortcut was associated with them
Ref: https://discourse.joplinapp.org/t/plugin-note-tabs/12752/39
2020-12-08 19:45:08 +00:00
Laurent Cozic 0390928fea Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-12-08 19:04:03 +00:00
Laurent Cozic efb3546675 Plugins: Add support for workspace.onSyncStart event 2020-12-08 19:03:22 +00:00
Ji-Hyeon Gim 169841dcc4 All: Translation: Update ko.po (#4200)
It updates fuzzy translations for Korean.

Signed-off-by: Ji-Hyeon Gim <potatogim@potatogim.net>
2020-12-07 11:49:22 -05:00
Helmut K. C. Tessarek b780261153 Chore: moving the keycode map to a separate file (#4192)
/ref https://github.com/laurent22/joplin/pull/4022#issuecomment-726263640
2020-12-06 15:01:30 +00:00
Zhang YANG c906354510 All: Translation: Update zh_CN (#4195) 2020-12-05 20:44:02 -05:00
Helmut K. C. Tessarek 6487fde09d update: en_US.po 2020-12-05 19:33:58 -05:00
Helmut K. C. Tessarek 50f046ffc4 Update translations 2020-12-05 16:36:47 -05:00
Helmut K. C. Tessarek ded14ff8db move fi_FI.po to the correct path 2020-12-05 16:34:37 -05:00
Laurent Cozic 64bbd93f54 Tools: Skip electronRebuild in postinstall to make boostrap faster, but add it to dist script 2020-12-05 12:40:14 +00:00
Laurent Cozic 9a30b69610 Doc: Added comment about stapling macOS app 2020-12-05 12:18:31 +00:00
Laurent Cozic 046433a947 Tools: Fixed issue with gettext not knowing how to parse regex that includes backtick 2020-12-05 11:54:58 +00:00
Laurent Cozic 42232fac84 Desktop release v1.5.4 2020-12-05 11:06:54 +00:00
Laurent Cozic 245976f659 Chore: trying to fix notarization 2020-12-05 11:06:20 +00:00
Laurent Cozic 8d90cc234f Clipper: Fixes #4105: Handle certain types of code block 2020-12-02 15:43:44 +00:00
Manuel Tassi 5183767e43 Update it_IT.po (#4169) 2020-12-02 10:47:42 +00:00
Alexander Fischer ceb625dbeb updated german translations (#4168) 2020-12-02 10:47:11 +00:00
mrkaato 7677d9cd7d Add Finnish translation (#4156) 2020-12-02 10:44:36 +00:00
Caleb John 92fe5e2362 Desktop: Fixes #4036: Focus editor after pressing toolbar buttons (#4037) 2020-12-02 10:36:00 +00:00
198 changed files with 100065 additions and 84916 deletions

No files matched your search

+26
View File
@@ -10,6 +10,8 @@ highlight.pack.js
Modules/TinyMCE/IconPack/postinstall.js
Modules/TinyMCE/JoplinLists/
Modules/TinyMCE/langs/
packages/turndown/
packages/turndown-plugin-gfm/
node_modules/
packages/lib/lib/lib.js
packages/lib/locales/index.js
@@ -68,6 +70,9 @@ packages/app-cli/app/services/plugins/PluginRunner.js.map
packages/app-cli/tests/EnexToMd.d.ts
packages/app-cli/tests/EnexToMd.js
packages/app-cli/tests/EnexToMd.js.map
packages/app-cli/tests/HtmlToMd.d.ts
packages/app-cli/tests/HtmlToMd.js
packages/app-cli/tests/HtmlToMd.js.map
packages/app-cli/tests/InMemoryCache.d.ts
packages/app-cli/tests/InMemoryCache.js
packages/app-cli/tests/InMemoryCache.js.map
@@ -104,6 +109,9 @@ packages/app-cli/tests/models_Note.js.map
packages/app-cli/tests/models_Setting.d.ts
packages/app-cli/tests/models_Setting.js
packages/app-cli/tests/models_Setting.js.map
packages/app-cli/tests/services/plugins/api/JoplinViewMenuItem.d.ts
packages/app-cli/tests/services/plugins/api/JoplinViewMenuItem.js
packages/app-cli/tests/services/plugins/api/JoplinViewMenuItem.js.map
packages/app-cli/tests/services/plugins/api/JoplinWorkspace.d.ts
packages/app-cli/tests/services/plugins/api/JoplinWorkspace.js
packages/app-cli/tests/services/plugins/api/JoplinWorkspace.js.map
@@ -263,6 +271,9 @@ packages/app-cli/tests/synchronizer_MigrationHandler.js.map
packages/app-cli/tests/test-utils-synchronizer.d.ts
packages/app-cli/tests/test-utils-synchronizer.js
packages/app-cli/tests/test-utils-synchronizer.js.map
packages/app-cli/tests/test-utils.d.ts
packages/app-cli/tests/test-utils.js
packages/app-cli/tests/test-utils.js.map
packages/app-desktop/ElectronAppWrapper.d.ts
packages/app-desktop/ElectronAppWrapper.js
packages/app-desktop/ElectronAppWrapper.js.map
@@ -902,6 +913,9 @@ packages/lib/errorUtils.js.map
packages/lib/eventManager.d.ts
packages/lib/eventManager.js
packages/lib/eventManager.js.map
packages/lib/fs-driver-base.d.ts
packages/lib/fs-driver-base.js
packages/lib/fs-driver-base.js.map
packages/lib/fs-driver-node.d.ts
packages/lib/fs-driver-node.js
packages/lib/fs-driver-node.js.map
@@ -959,6 +973,12 @@ packages/lib/services/ExternalEditWatcher.js.map
packages/lib/services/KeymapService.d.ts
packages/lib/services/KeymapService.js
packages/lib/services/KeymapService.js.map
packages/lib/services/KeymapService_keycodeToElectronMap.d.ts
packages/lib/services/KeymapService_keycodeToElectronMap.js
packages/lib/services/KeymapService_keycodeToElectronMap.js.map
packages/lib/services/KeymapService_keysRegExp.d.ts
packages/lib/services/KeymapService_keysRegExp.js
packages/lib/services/KeymapService_keysRegExp.js.map
packages/lib/services/KvStore.d.ts
packages/lib/services/KvStore.js
packages/lib/services/KvStore.js.map
@@ -1310,6 +1330,9 @@ packages/renderer/MdToHtml/linkReplacement.js.map
packages/renderer/MdToHtml/linkReplacement.test.d.ts
packages/renderer/MdToHtml/linkReplacement.test.js
packages/renderer/MdToHtml/linkReplacement.test.js.map
packages/renderer/MdToHtml/renderMedia.d.ts
packages/renderer/MdToHtml/renderMedia.js
packages/renderer/MdToHtml/renderMedia.js.map
packages/renderer/MdToHtml/rules/checkbox.d.ts
packages/renderer/MdToHtml/rules/checkbox.js
packages/renderer/MdToHtml/rules/checkbox.js.map
@@ -1334,6 +1357,9 @@ packages/renderer/MdToHtml/rules/image.js.map
packages/renderer/MdToHtml/rules/katex.d.ts
packages/renderer/MdToHtml/rules/katex.js
packages/renderer/MdToHtml/rules/katex.js.map
packages/renderer/MdToHtml/rules/link_close.d.ts
packages/renderer/MdToHtml/rules/link_close.js
packages/renderer/MdToHtml/rules/link_close.js.map
packages/renderer/MdToHtml/rules/link_open.d.ts
packages/renderer/MdToHtml/rules/link_open.js
packages/renderer/MdToHtml/rules/link_open.js.map
+25 -1
View File
@@ -59,6 +59,9 @@ packages/app-cli/app/services/plugins/PluginRunner.js.map
packages/app-cli/tests/EnexToMd.d.ts
packages/app-cli/tests/EnexToMd.js
packages/app-cli/tests/EnexToMd.js.map
packages/app-cli/tests/HtmlToMd.d.ts
packages/app-cli/tests/HtmlToMd.js
packages/app-cli/tests/HtmlToMd.js.map
packages/app-cli/tests/InMemoryCache.d.ts
packages/app-cli/tests/InMemoryCache.js
packages/app-cli/tests/InMemoryCache.js.map
@@ -95,6 +98,9 @@ packages/app-cli/tests/models_Note.js.map
packages/app-cli/tests/models_Setting.d.ts
packages/app-cli/tests/models_Setting.js
packages/app-cli/tests/models_Setting.js.map
packages/app-cli/tests/services/plugins/api/JoplinViewMenuItem.d.ts
packages/app-cli/tests/services/plugins/api/JoplinViewMenuItem.js
packages/app-cli/tests/services/plugins/api/JoplinViewMenuItem.js.map
packages/app-cli/tests/services/plugins/api/JoplinWorkspace.d.ts
packages/app-cli/tests/services/plugins/api/JoplinWorkspace.js
packages/app-cli/tests/services/plugins/api/JoplinWorkspace.js.map
@@ -254,6 +260,9 @@ packages/app-cli/tests/synchronizer_MigrationHandler.js.map
packages/app-cli/tests/test-utils-synchronizer.d.ts
packages/app-cli/tests/test-utils-synchronizer.js
packages/app-cli/tests/test-utils-synchronizer.js.map
packages/app-cli/tests/test-utils.d.ts
packages/app-cli/tests/test-utils.js
packages/app-cli/tests/test-utils.js.map
packages/app-desktop/ElectronAppWrapper.d.ts
packages/app-desktop/ElectronAppWrapper.js
packages/app-desktop/ElectronAppWrapper.js.map
@@ -893,6 +902,9 @@ packages/lib/errorUtils.js.map
packages/lib/eventManager.d.ts
packages/lib/eventManager.js
packages/lib/eventManager.js.map
packages/lib/fs-driver-base.d.ts
packages/lib/fs-driver-base.js
packages/lib/fs-driver-base.js.map
packages/lib/fs-driver-node.d.ts
packages/lib/fs-driver-node.js
packages/lib/fs-driver-node.js.map
@@ -950,6 +962,12 @@ packages/lib/services/ExternalEditWatcher.js.map
packages/lib/services/KeymapService.d.ts
packages/lib/services/KeymapService.js
packages/lib/services/KeymapService.js.map
packages/lib/services/KeymapService_keycodeToElectronMap.d.ts
packages/lib/services/KeymapService_keycodeToElectronMap.js
packages/lib/services/KeymapService_keycodeToElectronMap.js.map
packages/lib/services/KeymapService_keysRegExp.d.ts
packages/lib/services/KeymapService_keysRegExp.js
packages/lib/services/KeymapService_keysRegExp.js.map
packages/lib/services/KvStore.d.ts
packages/lib/services/KvStore.js
packages/lib/services/KvStore.js.map
@@ -1301,6 +1319,9 @@ packages/renderer/MdToHtml/linkReplacement.js.map
packages/renderer/MdToHtml/linkReplacement.test.d.ts
packages/renderer/MdToHtml/linkReplacement.test.js
packages/renderer/MdToHtml/linkReplacement.test.js.map
packages/renderer/MdToHtml/renderMedia.d.ts
packages/renderer/MdToHtml/renderMedia.js
packages/renderer/MdToHtml/renderMedia.js.map
packages/renderer/MdToHtml/rules/checkbox.d.ts
packages/renderer/MdToHtml/rules/checkbox.js
packages/renderer/MdToHtml/rules/checkbox.js.map
@@ -1325,6 +1346,9 @@ packages/renderer/MdToHtml/rules/image.js.map
packages/renderer/MdToHtml/rules/katex.d.ts
packages/renderer/MdToHtml/rules/katex.js
packages/renderer/MdToHtml/rules/katex.js.map
packages/renderer/MdToHtml/rules/link_close.d.ts
packages/renderer/MdToHtml/rules/link_close.js
packages/renderer/MdToHtml/rules/link_close.js.map
packages/renderer/MdToHtml/rules/link_open.d.ts
packages/renderer/MdToHtml/rules/link_open.js
packages/renderer/MdToHtml/rules/link_open.js.map
@@ -1349,4 +1373,4 @@ packages/renderer/pathUtils.js.map
packages/renderer/utils.d.ts
packages/renderer/utils.js
packages/renderer/utils.js.map
# AUTO-GENERATED - EXCLUDED TYPESCRIPT BUILD
# AUTO-GENERATED - EXCLUDED TYPESCRIPT BUILD
+40 -38
View File
@@ -84,6 +84,7 @@ The Web Clipper is a browser extension that allows you to save web pages and scr
- [How to enable end-to-end encryption](https://github.com/laurent22/joplin/blob/dev/readme/e2ee.md)
- [What is a conflict?](https://github.com/laurent22/joplin/blob/dev/readme/conflict.md)
- [How to enable debug mode](https://github.com/laurent22/joplin/blob/dev/readme/debugging.md)
- [About the Rich Text editor limitations](https://github.com/laurent22/joplin/blob/dev/readme/rich_text_editor.md)
- [FAQ](https://github.com/laurent22/joplin/blob/dev/readme/faq.md)
- Joplin API - Get Started
@@ -435,44 +436,45 @@ Current translations:
<!-- LOCALE-TABLE-AUTO-GENERATED -->
&nbsp; | Language | Po File | Last translator | Percent done
---|---|---|---|---
![](https://joplinapp.org/images/flags/country-4x3/arableague.png) | Arabic | [ar](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/ar.po) | [أحمد باشا إبراهيم](mailto:fi_ahmed_bacha@esi.dz) | 78%
![](https://joplinapp.org/images/flags/es/basque_country.png) | Basque | [eu](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/eu.po) | juan.abasolo@ehu.eus | 33%
![](https://joplinapp.org/images/flags/country-4x3/ba.png) | Bosnian | [bs_BA](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/bs_BA.po) | [Derviš T.](mailto:dervis.t@pm.me) | 82%
![](https://joplinapp.org/images/flags/country-4x3/bg.png) | Bulgarian | [bg_BG](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/bg_BG.po) | | 65%
![](https://joplinapp.org/images/flags/es/catalonia.png) | Catalan | [ca](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/ca.po) | jmontane, 2019 | 95%
![](https://joplinapp.org/images/flags/country-4x3/hr.png) | Croatian | [hr_HR](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/hr_HR.po) | [Hrvoje Mandić](mailto:trbuhom@net.hr) | 27%
![](https://joplinapp.org/images/flags/country-4x3/cz.png) | Czech | [cs_CZ](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/cs_CZ.po) | [Lukas Helebrandt](mailto:lukas@aiya.cz) | 98%
![](https://joplinapp.org/images/flags/country-4x3/dk.png) | Dansk | [da_DK](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/da_DK.po) | [Morten Juhl-Johansen Zölde-Fejér](mailto:mjjzf@syntaktisk.) | 72%
![](https://joplinapp.org/images/flags/country-4x3/de.png) | Deutsch | [de_DE](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/de_DE.po) | [Ettore Atalan](mailto:atalanttore@users.noreply.github.com) | 97%
![](https://joplinapp.org/images/flags/country-4x3/ee.png) | Eesti Keel | [et_EE](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/et_EE.po) | | 65%
![](https://joplinapp.org/images/flags/country-4x3/gb.png) | English (UK) | [en_GB](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/en_GB.po) | | 100%
![](https://joplinapp.org/images/flags/country-4x3/us.png) | English (US) | [en_US](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/en_US.po) | | 100%
![](https://joplinapp.org/images/flags/country-4x3/es.png) | Español | [es_ES](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/es_ES.po) | [Mario Campo](mailto:mario.campo@gmail.com) | 98%
![](https://joplinapp.org/images/flags/esperanto.png) | Esperanto | [eo](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/eo.po) | Marton Paulo | 37%
![](https://joplinapp.org/images/flags/country-4x3/fr.png) | Français | [fr_FR](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/fr_FR.po) | Laurent Cozic | 98%
![](https://joplinapp.org/images/flags/es/galicia.png) | Galician | [gl_ES](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/gl_ES.po) | [Marcos Lans](mailto:marcoslansgarza@gmail.com) | 42%
![](https://joplinapp.org/images/flags/country-4x3/id.png) | Indonesian | [id_ID](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/id_ID.po) | [Fathy AR](mailto:16875937+fathyar@users.noreply.github.com) | 92%
![](https://joplinapp.org/images/flags/country-4x3/it.png) | Italiano | [it_IT](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/it_IT.po) | [Alessandro Bernardello](mailto:mailfilledwithspam@gmail.com) | 98%
![](https://joplinapp.org/images/flags/country-4x3/nl.png) | Nederlands | [nl_NL](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/nl_NL.po) | [MetBril](mailto:metbril@users.noreply.github.com) | 94%
![](https://joplinapp.org/images/flags/country-4x3/be.png) | Nederlands | [nl_BE](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/nl_BE.po) | | 33%
![](https://joplinapp.org/images/flags/country-4x3/no.png) | Norwegian | [nb_NO](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/nb_NO.po) | [Mats Estensen](mailto:code@mxe.no) | 87%
![](https://joplinapp.org/images/flags/country-4x3/ir.png) | Persian | [fa](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/fa.po) | [Kourosh Firoozbakht](mailto:kourox@protonmail.com) | 82%
![](https://joplinapp.org/images/flags/country-4x3/pl.png) | Polski | [pl_PL](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/pl_PL.po) | | 97%
![](https://joplinapp.org/images/flags/country-4x3/pt.png) | Português | [pt_PT](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/pt_PT.po) | [João Duarte](mailto:jduar@protonmail.com) | 98%
![](https://joplinapp.org/images/flags/country-4x3/br.png) | Português (Brasil) | [pt_BR](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/pt_BR.po) | [Renato Nunes Bastos](mailto:rnbastos@gmail.com) | 96%
![](https://joplinapp.org/images/flags/country-4x3/ro.png) | Română | [ro](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/ro.po) | [Cristi Duluta](mailto:cristi.duluta@gmail.com) | 77%
![](https://joplinapp.org/images/flags/country-4x3/si.png) | Slovenian | [sl_SI](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/sl_SI.po) | | 41%
![](https://joplinapp.org/images/flags/country-4x3/se.png) | Svenska | [sv](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/sv.po) | [Jonatan Nyberg](mailto:jonatan@autistici.org) | 70%
![](https://joplinapp.org/images/flags/country-4x3/th.png) | Thai | [th_TH](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/th_TH.po) | | 52%
![](https://joplinapp.org/images/flags/country-4x3/vi.png) | Tiếng Việt | [vi](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/vi.po) | | 84%
![](https://joplinapp.org/images/flags/country-4x3/tr.png) | Türkçe | [tr_TR](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/tr_TR.po) | [Arda Kılıçdağı](mailto:arda@kilicdagi.com) | 97%
![](https://joplinapp.org/images/flags/country-4x3/gr.png) | Ελληνικά | [el_GR](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/el_GR.po) | [Harris Arvanitis](mailto:xaris@tuta.io) | 95%
![](https://joplinapp.org/images/flags/country-4x3/ru.png) | Русский | [ru_RU](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/ru_RU.po) | [Sergey Segeda](mailto:thesermanarm@gmail.com) | 94%
![](https://joplinapp.org/images/flags/country-4x3/rs.png) | српски језик | [sr_RS](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/sr_RS.po) | | 70%
![](https://joplinapp.org/images/flags/country-4x3/cn.png) | 中文 (简体) | [zh_CN](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/zh_CN.po) | [WhiredPlanck](mailto:fungdaat31@outlook.com) | 95%
![](https://joplinapp.org/images/flags/country-4x3/tw.png) | 中文 (繁體) | [zh_TW](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/zh_TW.po) | [Yaoze Ye](mailto:yaozeye@yahoo.co.jp) | 94%
![](https://joplinapp.org/images/flags/country-4x3/jp.png) | 日本語 | [ja_JP](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/ja_JP.po) | [genneko](mailto:genneko217@gmail.com) | 99%
![](https://joplinapp.org/images/flags/country-4x3/kr.png) | 한국어 | [ko](https://github.com/laurent22/joplin/blob/dev/packages/app-cli/locales/ko.po) | [Ji-Hyeon Gim](mailto:potatogim@potatogim.net) | 99%
![](https://joplinapp.org/images/flags/country-4x3/arableague.png) | Arabic | [ar](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ar.po) | [أحمد باشا إبراهيم](mailto:fi_ahmed_bacha@esi.dz) | 77%
![](https://joplinapp.org/images/flags/es/basque_country.png) | Basque | [eu](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/eu.po) | juan.abasolo@ehu.eus | 33%
![](https://joplinapp.org/images/flags/country-4x3/ba.png) | Bosnian (Bosna i Hercegovina) | [bs_BA](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/bs_BA.po) | [Derviš T.](mailto:dervis.t@pm.me) | 79%
![](https://joplinapp.org/images/flags/country-4x3/bg.png) | Bulgarian (България) | [bg_BG](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/bg_BG.po) | | 64%
![](https://joplinapp.org/images/flags/es/catalonia.png) | Catalan | [ca](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ca.po) | jmontane, 2019 | 92%
![](https://joplinapp.org/images/flags/country-4x3/hr.png) | Croatian (Hrvatska) | [hr_HR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/hr_HR.po) | [Hrvoje Mandić](mailto:trbuhom@net.hr) | 26%
![](https://joplinapp.org/images/flags/country-4x3/cz.png) | Czech (Česká republika) | [cs_CZ](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/cs_CZ.po) | [Lukas Helebrandt](mailto:lukas@aiya.cz) | 96%
![](https://joplinapp.org/images/flags/country-4x3/dk.png) | Dansk (Danmark) | [da_DK](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/da_DK.po) | Mustafa Al-Dailemi (dailemi@hotmail.com)Language-Team: | 79%
![](https://joplinapp.org/images/flags/country-4x3/de.png) | Deutsch (Deutschland) | [de_DE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/de_DE.po) | [Ettore Atalan](mailto:atalanttore@users.noreply.github.com) | 96%
![](https://joplinapp.org/images/flags/country-4x3/ee.png) | Eesti Keel (Eesti) | [et_EE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/et_EE.po) | | 63%
![](https://joplinapp.org/images/flags/country-4x3/gb.png) | English (United Kingdom) | [en_GB](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/en_GB.po) | | 100%
![](https://joplinapp.org/images/flags/country-4x3/us.png) | English (United States of America) | [en_US](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/en_US.po) | | 100%
![](https://joplinapp.org/images/flags/country-4x3/es.png) | Español (España) | [es_ES](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/es_ES.po) | [Mario Campo](mailto:mario.campo@gmail.com) | 96%
![](https://joplinapp.org/images/flags/esperanto.png) | Esperanto | [eo](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/eo.po) | Marton Paulo | 36%
![](https://joplinapp.org/images/flags/country-4x3/fi.png) | Finnish (Suomi) | [fi_FI](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fi_FI.po) | | 97%
![](https://joplinapp.org/images/flags/country-4x3/fr.png) | Français (France) | [fr_FR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fr_FR.po) | Laurent Cozic | 96%
![](https://joplinapp.org/images/flags/es/galicia.png) | Galician (España) | [gl_ES](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/gl_ES.po) | [Marcos Lans](mailto:marcoslansgarza@gmail.com) | 42%
![](https://joplinapp.org/images/flags/country-4x3/id.png) | Indonesian (Indonesia) | [id_ID](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/id_ID.po) | [Fathy AR](mailto:16875937+fathyar@users.noreply.github.com) | 88%
![](https://joplinapp.org/images/flags/country-4x3/it.png) | Italiano (Italia) | [it_IT](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/it_IT.po) | [Alessandro Bernardello](mailto:mailfilledwithspam@gmail.com) | 97%
![](https://joplinapp.org/images/flags/country-4x3/be.png) | Nederlands (België, Belgique, Belgien) | [nl_BE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nl_BE.po) | | 33%
![](https://joplinapp.org/images/flags/country-4x3/nl.png) | Nederlands (Nederland) | [nl_NL](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nl_NL.po) | [MetBril](mailto:metbril@users.noreply.github.com) | 96%
![](https://joplinapp.org/images/flags/country-4x3/no.png) | Norwegian (Norge, Noreg) | [nb_NO](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nb_NO.po) | [Mats Estensen](mailto:code@mxe.no) | 85%
![](https://joplinapp.org/images/flags/country-4x3/ir.png) | Persian | [fa](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fa.po) | [Kourosh Firoozbakht](mailto:kourox@protonmail.com) | 79%
![](https://joplinapp.org/images/flags/country-4x3/pl.png) | Polski (Polska) | [pl_PL](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pl_PL.po) | | 95%
![](https://joplinapp.org/images/flags/country-4x3/br.png) | Português (Brasil) | [pt_BR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pt_BR.po) | [Renato Nunes Bastos](mailto:rnbastos@gmail.com) | 93%
![](https://joplinapp.org/images/flags/country-4x3/pt.png) | Português (Portugal) | [pt_PT](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pt_PT.po) | [João Duarte](mailto:jduar@protonmail.com) | 95%
![](https://joplinapp.org/images/flags/country-4x3/ro.png) | Română | [ro](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ro.po) | [Cristi Duluta](mailto:cristi.duluta@gmail.com) | 74%
![](https://joplinapp.org/images/flags/country-4x3/si.png) | Slovenian (Slovenija) | [sl_SI](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sl_SI.po) | | 41%
![](https://joplinapp.org/images/flags/country-4x3/se.png) | Svenska | [sv](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sv.po) | [Jonatan Nyberg](mailto:jonatan@autistici.org) | 68%
![](https://joplinapp.org/images/flags/country-4x3/th.png) | Thai (ประเทศไทย) | [th_TH](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/th_TH.po) | | 50%
![](https://joplinapp.org/images/flags/country-4x3/vi.png) | Tiếng Việt | [vi](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/vi.po) | | 82%
![](https://joplinapp.org/images/flags/country-4x3/tr.png) | Türkçe (Türkiye) | [tr_TR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/tr_TR.po) | [Arda Kılıçdağı](mailto:arda@kilicdagi.com) | 94%
![](https://joplinapp.org/images/flags/country-4x3/gr.png) | Ελληνικά (Ελλάδα) | [el_GR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/el_GR.po) | [Harris Arvanitis](mailto:xaris@tuta.io) | 92%
![](https://joplinapp.org/images/flags/country-4x3/ru.png) | Русский (Россия) | [ru_RU](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ru_RU.po) | [Sergey Segeda](mailto:thesermanarm@gmail.com) | 92%
![](https://joplinapp.org/images/flags/country-4x3/rs.png) | српски језик (Србија) | [sr_RS](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sr_RS.po) | | 69%
![](https://joplinapp.org/images/flags/country-4x3/cn.png) | 中文 (简体) | [zh_CN](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/zh_CN.po) | [WhiredPlanck](mailto:fungdaat31@outlook.com) | 97%
![](https://joplinapp.org/images/flags/country-4x3/tw.png) | 中文 (繁體) | [zh_TW](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/zh_TW.po) | [Yaoze Ye](mailto:yaozeye@yahoo.co.jp) | 91%
![](https://joplinapp.org/images/flags/country-4x3/jp.png) | 日本語 (日本) | [ja_JP](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ja_JP.po) | [genneko](mailto:genneko217@gmail.com) | 97%
![](https://joplinapp.org/images/flags/country-4x3/kr.png) | 한국어 | [ko](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ko.po) | [Ji-Hyeon Gim](mailto:potatogim@potatogim.net) | 97%
<!-- LOCALE-TABLE-AUTO-GENERATED -->
# Contributors
+1
View File
@@ -17,6 +17,7 @@
"buildDoc": "./packages/tools/build-all.sh",
"buildPluginDoc": "typedoc --name 'Joplin Plugin API Documentation' --mode file -theme './Assets/PluginDocTheme/' --readme './Assets/PluginDocTheme/index.md' --excludeNotExported --excludeExternals --excludePrivate --excludeProtected --out docs/api/references/plugin_api packages/lib/services/plugins/api/",
"buildTranslations": "npm run tsc && node packages/tools/build-translation.js",
"buildTranslationsNoTsc": "node packages/tools/build-translation.js",
"buildWebsite": "npm run buildApiDoc && node ./packages/tools/build-website.js && npm run buildPluginDoc",
"clean": "lerna clean -y && lerna run clean",
"generateDatabaseTypes": "node packages/tools/generate-database-types",
+1
View File
@@ -54,4 +54,5 @@ module.exports = {
testEnvironment: 'node',
setupFilesAfterEnv: [`${__dirname}/jest.setup.js`],
slowTestThreshold: 20,
};
+1 -1
View File
@@ -1,2 +1,2 @@
data/
test data/
export/
@@ -1,24 +1,15 @@
/* eslint-disable no-unused-vars */
import shim from '@joplin/lib/shim';
const os = require('os');
const time = require('@joplin/lib/time').default;
const { filename } = require('@joplin/lib/path-utils');
const { fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('./test-utils.js');
const Folder = require('@joplin/lib/models/Folder.js');
const Note = require('@joplin/lib/models/Note.js');
const BaseModel = require('@joplin/lib/BaseModel').default;
const shim = require('@joplin/lib/shim').default;
const HtmlToMd = require('@joplin/lib/HtmlToMd');
const { enexXmlToMd } = require('@joplin/lib/import-enex-md-gen.js');
describe('HtmlToMd', function() {
beforeEach(async (done) => {
await setupDatabaseAndSynchronizer(1);
await switchClient(1);
done();
});
// beforeEach(async (done) => {
// await setupDatabaseAndSynchronizer(1);
// await switchClient(1);
// done();
// });
it('should convert from Html to Markdown', (async () => {
const basePath = `${__dirname}/html_to_md`;
@@ -32,11 +23,11 @@ describe('HtmlToMd', function() {
const htmlPath = `${basePath}/${htmlFilename}`;
const mdPath = `${basePath}/${filename(htmlFilename)}.md`;
// if (htmlFilename !== 'joplin_source_2.html') continue;
// if (htmlFilename !== 'anchor_same_title_and_url.html') continue;
// if (htmlFilename.indexOf('image_preserve_size') !== 0) continue;
const htmlToMdOptions = {};
const htmlToMdOptions: any = {};
if (htmlFilename === 'anchor_local.html') {
// Normally the list of anchor names in the document are retrieved from the HTML code
@@ -61,16 +52,29 @@ describe('HtmlToMd', function() {
}
if (actualMd !== expectedMd) {
console.info('');
console.info(`Error converting file: ${htmlFilename}`);
console.info('--------------------------------- Got:');
console.info(actualMd);
console.info('--------------------------------- Raw:');
console.info(actualMd.split('\n'));
console.info('--------------------------------- Expected:');
console.info(expectedMd.split('\n'));
console.info('--------------------------------------------');
console.info('');
const result = [];
result.push('');
result.push(`Error converting file: ${htmlFilename}`);
result.push('--------------------------------- Got:');
result.push(actualMd.split('\n').map((l: string) => `"${l}"`).join('\n'));
result.push('--------------------------------- Expected:');
result.push(expectedMd.split('\n').map((l: string) => `"${l}"`).join('\n'));
result.push('--------------------------------------------');
result.push('');
console.info(result.join('\n'));
// console.info('');
// console.info(`Error converting file: ${htmlFilename}`);
// console.info('--------------------------------- Got:');
// console.info(actualMd);
// console.info('--------------------------------- Raw:');
// console.info(actualMd.split('\n'));
// console.info('--------------------------------- Expected:');
// console.info(expectedMd.split('\n'));
// console.info('--------------------------------------------');
// console.info('');
expect(false).toBe(true);
// return;
@@ -0,0 +1,8 @@
<ul>
<li><a href="https://example.com"/>https://example.com</a></li>
<li><a href="http://example.com"/>http://example.com</a></li>
<li><a href="file:///mnt/c/test.txt"/>file:///mnt/c/test.txt</a></li>
<li><a href="https://example.com" title="with title"/>https://example.com</a></li>
<li><a href="example.com"/>example.com</a></li>
<li><a href="test@example.com"/>test@example.com</a></li>
</ul>
@@ -0,0 +1,6 @@
- https://example.com
- http://example.com
- file:///mnt/c/test.txt
- [https://example.com](https://example.com "with title")
- [example.com](example.com)
- [test@example.com](test@example.com)
@@ -0,0 +1 @@
<pre style="font-family: monospace;"><span>├── myproj_app<br>│ ├── api.py<br>│ └── Dockerfile</span></pre>
@@ -0,0 +1,5 @@
```
├── myproj_app
│ ├── api.py
│ └── Dockerfile
```
+6 -3
View File
@@ -1,6 +1,7 @@
import Setting from '@joplin/lib/models/Setting';
import BaseModel from '@joplin/lib/BaseModel';
import shim from '@joplin/lib/shim';
import markdownUtils from '@joplin/lib/markdownUtils';
const { sortedIds, createNTestNotes, setupDatabaseAndSynchronizer, switchClient, checkThrowAsync } = require('./test-utils.js');
const Folder = require('@joplin/lib/models/Folder.js');
const Note = require('@joplin/lib/models/Note.js');
@@ -217,6 +218,8 @@ describe('models_Note', function() {
const t1 = r1.updated_time;
const t2 = r2.updated_time;
const resourceDirE = markdownUtils.escapeLinkUrl(resourceDir);
const testCases = [
[
false,
@@ -241,17 +244,17 @@ describe('models_Note', function() {
[
true,
`![](:/${r1.id})`,
`![](file://${resourceDir}/${r1.id}.jpg?t=${t1})`,
`![](file://${resourceDirE}/${r1.id}.jpg?t=${t1})`,
],
[
true,
`![](:/${r1.id}) ![](:/${r1.id}) ![](:/${r2.id})`,
`![](file://${resourceDir}/${r1.id}.jpg?t=${t1}) ![](file://${resourceDir}/${r1.id}.jpg?t=${t1}) ![](file://${resourceDir}/${r2.id}.jpg?t=${t2})`,
`![](file://${resourceDirE}/${r1.id}.jpg?t=${t1}) ![](file://${resourceDirE}/${r1.id}.jpg?t=${t1}) ![](file://${resourceDirE}/${r2.id}.jpg?t=${t2})`,
],
[
true,
`![](:/${r3.id})`,
`![](file://${resourceDir}/${r3.id}.pdf)`,
`![](file://${resourceDirE}/${r3.id}.pdf)`,
],
];
@@ -0,0 +1,57 @@
import KeymapService from '@joplin/lib/services/KeymapService';
import PluginService from '@joplin/lib/services/plugins/PluginService';
const { newPluginService, newPluginScript, setupDatabaseAndSynchronizer, switchClient, afterEachCleanUp } = require('../../../test-utils');
describe('JoplinViewMenuItem', () => {
beforeEach(async (done) => {
await setupDatabaseAndSynchronizer(1);
await switchClient(1);
done();
});
afterEach(async () => {
await afterEachCleanUp();
});
test('should register commands with the keymap service', async () => {
const service = new newPluginService() as PluginService;
KeymapService.instance().initialize();
const pluginScript = newPluginScript(`
joplin.plugins.register({
onStart: async function() {
await joplin.commands.register({
name: 'testCommand1',
label: 'My Test Command 1',
iconName: 'fas fa-music',
execute: async () => {},
});
await joplin.views.menuItems.create('myMenuItem1', 'testCommand1', 'tools', { accelerator: 'CmdOrCtrl+Alt+Shift+B' });
await joplin.commands.register({
name: 'testCommand2',
label: 'My Test Command 2',
iconName: 'fas fa-music',
execute: async () => {},
});
await joplin.views.menuItems.create('myMenuItem2', 'testCommand2', 'tools');
},
});
`);
const plugin = await service.loadPluginFromJsBundle('', pluginScript);
await service.runPlugin(plugin);
const commandNames = KeymapService.instance().getCommandNames();
expect(commandNames.includes('testCommand1')).toBe(true);
expect(commandNames.includes('testCommand2')).toBe(true);
await service.destroy();
});
});
@@ -257,8 +257,8 @@ describe('services_EncryptionService', function() {
await service.loadMasterKey_(masterKey, '123456', true);
const sourcePath = `${__dirname}/../tests/support/photo.jpg`;
const encryptedPath = `${__dirname}/data/photo.crypted`;
const decryptedPath = `${__dirname}/data/photo.jpg`;
const encryptedPath = `${Setting.value('tempDir')}/photo.crypted`;
const decryptedPath = `${Setting.value('tempDir')}/photo.jpg`;
await service.encryptFile(sourcePath, encryptedPath);
await service.decryptFile(encryptedPath, decryptedPath);
@@ -2,8 +2,7 @@ import InteropService from '@joplin/lib/services/interop/InteropService';
import { CustomExportContext, CustomImportContext, Module, ModuleType } from '@joplin/lib/services/interop/types';
import shim from '@joplin/lib/shim';
const { fileContentEqual, setupDatabaseAndSynchronizer, switchClient, checkThrowAsync } = require('./test-utils.js');
const { fileContentEqual, setupDatabaseAndSynchronizer, switchClient, checkThrowAsync, exportDir } = require('./test-utils.js');
const Folder = require('@joplin/lib/models/Folder.js');
const Note = require('@joplin/lib/models/Note.js');
const Tag = require('@joplin/lib/models/Tag.js');
@@ -11,10 +10,6 @@ const Resource = require('@joplin/lib/models/Resource.js');
const fs = require('fs-extra');
const ArrayUtils = require('@joplin/lib/ArrayUtils');
function exportDir() {
return `${__dirname}/export`;
}
async function recreateExportDir() {
const dir = exportDir();
await fs.remove(dir);
@@ -2,7 +2,7 @@
const fs = require('fs-extra');
const { setupDatabaseAndSynchronizer, switchClient } = require('./test-utils.js');
const { setupDatabaseAndSynchronizer, switchClient, exportDir } = require('./test-utils.js');
const InteropService_Exporter_Md = require('@joplin/lib/services/interop/InteropService_Exporter_Md').default;
const BaseModel = require('@joplin/lib/BaseModel').default;
const Folder = require('@joplin/lib/models/Folder.js');
@@ -10,29 +10,27 @@ const Resource = require('@joplin/lib/models/Resource.js');
const Note = require('@joplin/lib/models/Note.js');
const shim = require('@joplin/lib/shim').default;
const exportDir = `${__dirname}/export`;
describe('services_InteropService_Exporter_Md', function() {
beforeEach(async (done) => {
await setupDatabaseAndSynchronizer(1);
await switchClient(1);
await fs.remove(exportDir);
await fs.mkdirp(exportDir);
await fs.remove(exportDir());
await fs.mkdirp(exportDir());
done();
});
it('should create resources directory', (async () => {
const service = new InteropService_Exporter_Md();
await service.init(exportDir);
await service.init(exportDir());
expect(await shim.fsDriver().exists(`${exportDir}/_resources/`)).toBe(true);
expect(await shim.fsDriver().exists(`${exportDir()}/_resources/`)).toBe(true);
}));
it('should create note paths and add them to context', (async () => {
const exporter = new InteropService_Exporter_Md();
await exporter.init(exportDir);
await exporter.init(exportDir());
const itemsToExport = [];
const queueExportItem = (itemType, itemOrId) => {
@@ -74,7 +72,7 @@ describe('services_InteropService_Exporter_Md', function() {
it('should handle duplicate note names', (async () => {
const exporter = new InteropService_Exporter_Md();
await exporter.init(exportDir);
await exporter.init(exportDir());
const itemsToExport = [];
const queueExportItem = (itemType, itemOrId) => {
@@ -101,7 +99,7 @@ describe('services_InteropService_Exporter_Md', function() {
it('should not override existing files', (async () => {
const exporter = new InteropService_Exporter_Md();
await exporter.init(exportDir);
await exporter.init(exportDir());
const itemsToExport = [];
const queueExportItem = (itemType, itemOrId) => {
@@ -118,7 +116,7 @@ describe('services_InteropService_Exporter_Md', function() {
await exporter.processItem(Folder.modelType(), folder1);
// Create a file with the path of note1 before processing note1
await shim.fsDriver().writeFile(`${exportDir}/folder1/note1.md`, 'Note content', 'utf-8');
await shim.fsDriver().writeFile(`${exportDir()}/folder1/note1.md`, 'Note content', 'utf-8');
await exporter.prepareForProcessingItemType(BaseModel.TYPE_NOTE, itemsToExport);
@@ -128,7 +126,7 @@ describe('services_InteropService_Exporter_Md', function() {
it('should save resource files in _resource directory', (async () => {
const exporter = new InteropService_Exporter_Md();
await exporter.init(exportDir);
await exporter.init(exportDir());
const itemsToExport = [];
const queueExportItem = (itemType, itemOrId) => {
@@ -159,13 +157,13 @@ describe('services_InteropService_Exporter_Md', function() {
await exporter.processResource(resource1, Resource.fullPath(resource1));
await exporter.processResource(resource2, Resource.fullPath(resource2));
expect(await shim.fsDriver().exists(`${exportDir}/_resources/${Resource.filename(resource1)}`)).toBe(true, 'Resource file should be copied to _resources directory.');
expect(await shim.fsDriver().exists(`${exportDir}/_resources/${Resource.filename(resource2)}`)).toBe(true, 'Resource file should be copied to _resources directory.');
expect(await shim.fsDriver().exists(`${exportDir()}/_resources/${Resource.filename(resource1)}`)).toBe(true, 'Resource file should be copied to _resources directory.');
expect(await shim.fsDriver().exists(`${exportDir()}/_resources/${Resource.filename(resource2)}`)).toBe(true, 'Resource file should be copied to _resources directory.');
}));
it('should create folders in fs', (async () => {
const exporter = new InteropService_Exporter_Md();
await exporter.init(exportDir);
await exporter.init(exportDir());
const itemsToExport = [];
const queueExportItem = (itemType, itemOrId) => {
@@ -189,14 +187,14 @@ describe('services_InteropService_Exporter_Md', function() {
await exporter.prepareForProcessingItemType(BaseModel.TYPE_NOTE, itemsToExport);
await exporter.processItem(Note.modelType(), note2);
expect(await shim.fsDriver().exists(`${exportDir}/folder1`)).toBe(true, 'Folder should be created in filesystem.');
expect(await shim.fsDriver().exists(`${exportDir}/folder1/folder2`)).toBe(true, 'Folder should be created in filesystem.');
expect(await shim.fsDriver().exists(`${exportDir}/folder1/folder3`)).toBe(true, 'Folder should be created in filesystem.');
expect(await shim.fsDriver().exists(`${exportDir()}/folder1`)).toBe(true, 'Folder should be created in filesystem.');
expect(await shim.fsDriver().exists(`${exportDir()}/folder1/folder2`)).toBe(true, 'Folder should be created in filesystem.');
expect(await shim.fsDriver().exists(`${exportDir()}/folder1/folder3`)).toBe(true, 'Folder should be created in filesystem.');
}));
it('should save notes in fs', (async () => {
const exporter = new InteropService_Exporter_Md();
await exporter.init(exportDir);
await exporter.init(exportDir());
const itemsToExport = [];
const queueExportItem = (itemType, itemOrId) => {
@@ -226,14 +224,14 @@ describe('services_InteropService_Exporter_Md', function() {
await exporter.processItem(Note.modelType(), note2);
await exporter.processItem(Note.modelType(), note3);
expect(await shim.fsDriver().exists(`${exportDir}/${exporter.context().notePaths[note1.id]}`)).toBe(true, 'File should be saved in filesystem.');
expect(await shim.fsDriver().exists(`${exportDir}/${exporter.context().notePaths[note2.id]}`)).toBe(true, 'File should be saved in filesystem.');
expect(await shim.fsDriver().exists(`${exportDir}/${exporter.context().notePaths[note3.id]}`)).toBe(true, 'File should be saved in filesystem.');
expect(await shim.fsDriver().exists(`${exportDir()}/${exporter.context().notePaths[note1.id]}`)).toBe(true, 'File should be saved in filesystem.');
expect(await shim.fsDriver().exists(`${exportDir()}/${exporter.context().notePaths[note2.id]}`)).toBe(true, 'File should be saved in filesystem.');
expect(await shim.fsDriver().exists(`${exportDir()}/${exporter.context().notePaths[note3.id]}`)).toBe(true, 'File should be saved in filesystem.');
}));
it('should replace resource ids with relative paths', (async () => {
const exporter = new InteropService_Exporter_Md();
await exporter.init(exportDir);
await exporter.init(exportDir());
const itemsToExport = [];
const queueExportItem = (itemType, itemOrId) => {
@@ -269,8 +267,8 @@ describe('services_InteropService_Exporter_Md', function() {
await exporter.processItem(Note.modelType(), note1);
await exporter.processItem(Note.modelType(), note2);
const note1_body = await shim.fsDriver().readFile(`${exportDir}/${exporter.context().notePaths[note1.id]}`);
const note2_body = await shim.fsDriver().readFile(`${exportDir}/${exporter.context().notePaths[note2.id]}`);
const note1_body = await shim.fsDriver().readFile(`${exportDir()}/${exporter.context().notePaths[note1.id]}`);
const note2_body = await shim.fsDriver().readFile(`${exportDir()}/${exporter.context().notePaths[note2.id]}`);
expect(note1_body).toContain('](../_resources/resource1.jpg)', 'Resource id should be replaced with a relative path.');
expect(note2_body).toContain('](../../_resources/resource2.jpg)', 'Resource id should be replaced with a relative path.');
@@ -278,7 +276,7 @@ describe('services_InteropService_Exporter_Md', function() {
it('should replace note ids with relative paths', (async () => {
const exporter = new InteropService_Exporter_Md();
await exporter.init(exportDir);
await exporter.init(exportDir());
const itemsToExport = [];
const queueExportItem = (itemType, itemOrId) => {
@@ -318,9 +316,9 @@ describe('services_InteropService_Exporter_Md', function() {
await exporter.processItem(Note.modelType(), note2);
await exporter.processItem(Note.modelType(), note3);
const note1_body = await shim.fsDriver().readFile(`${exportDir}/${exporter.context().notePaths[note1.id]}`);
const note2_body = await shim.fsDriver().readFile(`${exportDir}/${exporter.context().notePaths[note2.id]}`);
const note3_body = await shim.fsDriver().readFile(`${exportDir}/${exporter.context().notePaths[note3.id]}`);
const note1_body = await shim.fsDriver().readFile(`${exportDir()}/${exporter.context().notePaths[note1.id]}`);
const note2_body = await shim.fsDriver().readFile(`${exportDir()}/${exporter.context().notePaths[note2.id]}`);
const note3_body = await shim.fsDriver().readFile(`${exportDir()}/${exporter.context().notePaths[note3.id]}`);
expect(note1_body).toContain('](../folder3/note3.md)', 'Note id should be replaced with a relative path.');
expect(note2_body).toContain('](../../folder3/note3.md)', 'Resource id should be replaced with a relative path.');
@@ -330,7 +328,7 @@ describe('services_InteropService_Exporter_Md', function() {
it('should url encode relative note links', (async () => {
const exporter = new InteropService_Exporter_Md();
await exporter.init(exportDir);
await exporter.init(exportDir());
const itemsToExport = [];
const queueExportItem = (itemType, itemOrId) => {
@@ -351,7 +349,7 @@ describe('services_InteropService_Exporter_Md', function() {
await exporter.processItem(Note.modelType(), note1);
await exporter.processItem(Note.modelType(), note2);
const note2_body = await shim.fsDriver().readFile(`${exportDir}/${exporter.context().notePaths[note2.id]}`);
const note2_body = await shim.fsDriver().readFile(`${exportDir()}/${exporter.context().notePaths[note2.id]}`);
expect(note2_body).toContain('[link](../folder%20with%20space1/note1%20name%20with%20space.md)', 'Whitespace in URL should be encoded');
}));
});
@@ -511,4 +511,17 @@ describe('services_SearchEngine', function() {
expect((await engine.search('"- [ ]"', { searchType: SearchEngine.SEARCH_TYPE_BASIC })).length).toBe(1);
expect((await engine.search('"[ ]"', { searchType: SearchEngine.SEARCH_TYPE_BASIC })).length).toBe(2);
}));
it('should not mistake cyrillic "l" for latin "n"', (async () => {
const n1 = await Note.save({ title: 'latin n', body: 'n' });
const n2 = await Note.save({ title: 'cyrillic l', body: 'л' });
await engine.syncTables();
expect((await engine.search('n')).length).toBe(1);
expect((await engine.search('n'))[0].id).toBe(n1.id);
expect((await engine.search('л')).length).toBe(1);
expect((await engine.search('л'))[0].id).toBe(n2.id);
}));
});
@@ -7,8 +7,13 @@ joplin.plugins.register({
console.info('Alarm was triggered for note: ', note);
});
joplin.workspace.onSyncComplete(async () => {
joplin.workspace.onSyncStart(async (event:any) => {
console.info('Sync has started...');
});
joplin.workspace.onSyncComplete(async (event:any) => {
console.info('Sync has completed');
console.info('With errors:', event.withErrors);
});
},
});
@@ -1,86 +0,0 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.localNotesFoldersSameAsRemote = exports.remoteResources = exports.remoteNotesFoldersResources = exports.remoteNotesAndFolders = exports.allNotesFolders = void 0;
const BaseModel_1 = require("@joplin/lib/BaseModel");
const { fileApi } = require('./test-utils.js');
const Folder = require('@joplin/lib/models/Folder.js');
const Note = require('@joplin/lib/models/Note.js');
const BaseItem = require('@joplin/lib/models/BaseItem.js');
function allNotesFolders() {
return __awaiter(this, void 0, void 0, function* () {
const folders = yield Folder.all();
const notes = yield Note.all();
return folders.concat(notes);
});
}
exports.allNotesFolders = allNotesFolders;
function remoteItemsByTypes(types) {
return __awaiter(this, void 0, void 0, function* () {
const list = yield fileApi().list('', { includeDirs: false, syncItemsOnly: true });
if (list.has_more)
throw new Error('Not implemented!!!');
const files = list.items;
const output = [];
for (const file of files) {
const remoteContent = yield fileApi().get(file.path);
const content = yield BaseItem.unserialize(remoteContent);
if (types.indexOf(content.type_) < 0)
continue;
output.push(content);
}
return output;
});
}
function remoteNotesAndFolders() {
return __awaiter(this, void 0, void 0, function* () {
return remoteItemsByTypes([BaseModel_1.default.TYPE_NOTE, BaseModel_1.default.TYPE_FOLDER]);
});
}
exports.remoteNotesAndFolders = remoteNotesAndFolders;
function remoteNotesFoldersResources() {
return __awaiter(this, void 0, void 0, function* () {
return remoteItemsByTypes([BaseModel_1.default.TYPE_NOTE, BaseModel_1.default.TYPE_FOLDER, BaseModel_1.default.TYPE_RESOURCE]);
});
}
exports.remoteNotesFoldersResources = remoteNotesFoldersResources;
function remoteResources() {
return __awaiter(this, void 0, void 0, function* () {
return remoteItemsByTypes([BaseModel_1.default.TYPE_RESOURCE]);
});
}
exports.remoteResources = remoteResources;
function localNotesFoldersSameAsRemote(locals, expect) {
return __awaiter(this, void 0, void 0, function* () {
let error = null;
try {
const nf = yield remoteNotesAndFolders();
expect(locals.length).toBe(nf.length);
for (let i = 0; i < locals.length; i++) {
const dbItem = locals[i];
const path = BaseItem.systemPath(dbItem);
const remote = yield fileApi().stat(path);
expect(!!remote).toBe(true);
if (!remote)
continue;
let remoteContent = yield fileApi().get(path);
remoteContent = dbItem.type_ == BaseModel_1.default.TYPE_NOTE ? yield Note.unserialize(remoteContent) : yield Folder.unserialize(remoteContent);
expect(remoteContent.title).toBe(dbItem.title);
}
}
catch (e) {
error = e;
}
expect(error).toBe(null);
});
}
exports.localNotesFoldersSameAsRemote = localNotesFoldersSameAsRemote;
//# sourceMappingURL=test-utils-synchronizer.js.map
@@ -1,10 +1,24 @@
/* eslint-disable require-atomic-updates */
import BaseApplication from '@joplin/lib/BaseApplication';
import BaseModel from '@joplin/lib/BaseModel';
import Logger, { TargetType, LoggerWrapper } from '@joplin/lib/Logger';
import Setting from '@joplin/lib/models/Setting';
import BaseService from '@joplin/lib/services/BaseService';
import FsDriverNode from '@joplin/lib/fs-driver-node';
import time from '@joplin/lib/time';
import shim from '@joplin/lib/shim';
import uuid from '@joplin/lib/uuid';
import ResourceService from '@joplin/lib/services/ResourceService';
import KeymapService from '@joplin/lib/services/KeymapService';
import KvStore from '@joplin/lib/services/KvStore';
import KeychainServiceDriver from '@joplin/lib/services/keychain/KeychainServiceDriver.node';
import KeychainServiceDriverDummy from '@joplin/lib/services/keychain/KeychainServiceDriver.dummy';
import PluginRunner from '../app/services/plugins/PluginRunner';
import PluginService from '@joplin/lib/services/plugins/PluginService';
const fs = require('fs-extra');
const { JoplinDatabase } = require('@joplin/lib/joplin-database.js');
const { DatabaseDriverNode } = require('@joplin/lib/database-driver-node.js');
const BaseApplication = require('@joplin/lib/BaseApplication').default;
const BaseModel = require('@joplin/lib/BaseModel').default;
const Folder = require('@joplin/lib/models/Folder.js');
const Note = require('@joplin/lib/models/Note.js');
const ItemChange = require('@joplin/lib/models/ItemChange.js');
@@ -12,8 +26,6 @@ const Resource = require('@joplin/lib/models/Resource.js');
const Tag = require('@joplin/lib/models/Tag.js');
const NoteTag = require('@joplin/lib/models/NoteTag.js');
const Revision = require('@joplin/lib/models/Revision.js');
const Logger = require('@joplin/lib/Logger').default;
const Setting = require('@joplin/lib/models/Setting').default;
const MasterKey = require('@joplin/lib/models/MasterKey');
const BaseItem = require('@joplin/lib/models/BaseItem.js');
const { FileApi } = require('@joplin/lib/file-api.js');
@@ -23,12 +35,7 @@ const { FileApiDriverWebDav } = require('@joplin/lib/file-api-driver-webdav.js')
const { FileApiDriverDropbox } = require('@joplin/lib/file-api-driver-dropbox.js');
const { FileApiDriverOneDrive } = require('@joplin/lib/file-api-driver-onedrive.js');
const { FileApiDriverAmazonS3 } = require('@joplin/lib/file-api-driver-amazon-s3.js');
const BaseService = require('@joplin/lib/services/BaseService').default;
const FsDriverNode = require('@joplin/lib/fs-driver-node').default;
const time = require('@joplin/lib/time').default;
const { shimInit } = require('@joplin/lib/shim-init-node.js');
const shim = require('@joplin/lib/shim').default;
const uuid = require('@joplin/lib/uuid').default;
const SyncTargetRegistry = require('@joplin/lib/SyncTargetRegistry.js');
const SyncTargetMemory = require('@joplin/lib/SyncTargetMemory.js');
const SyncTargetFilesystem = require('@joplin/lib/SyncTargetFilesystem.js');
@@ -38,20 +45,14 @@ const SyncTargetDropbox = require('@joplin/lib/SyncTargetDropbox.js');
const SyncTargetAmazonS3 = require('@joplin/lib/SyncTargetAmazonS3.js');
const EncryptionService = require('@joplin/lib/services/EncryptionService.js');
const DecryptionWorker = require('@joplin/lib/services/DecryptionWorker.js');
const ResourceService = require('@joplin/lib/services/ResourceService').default;
const RevisionService = require('@joplin/lib/services/RevisionService.js');
const ResourceFetcher = require('@joplin/lib/services/ResourceFetcher.js');
const KvStore = require('@joplin/lib/services/KvStore').default;
const WebDavApi = require('@joplin/lib/WebDavApi');
const DropboxApi = require('@joplin/lib/DropboxApi');
const { OneDriveApi } = require('@joplin/lib/onedrive-api');
const { loadKeychainServiceAndSettings } = require('@joplin/lib/services/SettingUtils');
const KeychainServiceDriver = require('@joplin/lib/services/keychain/KeychainServiceDriver.node').default;
const KeychainServiceDriverDummy = require('@joplin/lib/services/keychain/KeychainServiceDriver.dummy').default;
const md5 = require('md5');
const S3 = require('aws-sdk/clients/s3');
const PluginRunner = require('../app/services/plugins/PluginRunner').default;
const PluginService = require('@joplin/lib/services/plugins/PluginService').default;
const { Dirnames } = require('@joplin/lib/services/synchronizer/utils/types');
const sharp = require('sharp');
@@ -62,16 +63,16 @@ const sharp = require('sharp');
// Jest, to make debugging easier, but it's not clear how to get this info).
const suiteName_ = uuid.createNano();
const databases_ = [];
let synchronizers_ = [];
const synchronizerContexts_ = {};
const fileApis_ = {};
const encryptionServices_ = [];
const revisionServices_ = [];
const decryptionWorkers_ = [];
const resourceServices_ = [];
const resourceFetchers_ = [];
const kvStores_ = [];
const databases_: any[] = [];
let synchronizers_: any[] = [];
const synchronizerContexts_: any = {};
const fileApis_: any = {};
const encryptionServices_: any[] = [];
const revisionServices_: any[] = [];
const decryptionWorkers_: any[] = [];
const resourceServices_: any[] = [];
const resourceFetchers_: any[] = [];
const kvStores_: KvStore[] = [];
let currentClient_ = 1;
// The line `process.on('unhandledRejection'...` in all the test files is going to
@@ -99,7 +100,11 @@ FileApiDriverLocal.fsDriver_ = fsDriver;
const logDir = `${__dirname}/../tests/logs`;
const baseTempDir = `${__dirname}/../tests/tmp/${suiteName_}`;
const dataDir = `${__dirname}/data/${suiteName_}`;
// We add a space in the data directory path as that will help uncover
// various space-in-path issues.
const dataDir = `${__dirname}/test data/${suiteName_}`;
fs.mkdirpSync(logDir, 0o755);
fs.mkdirpSync(baseTempDir, 0o755);
fs.mkdirpSync(dataDir);
@@ -112,7 +117,7 @@ SyncTargetRegistry.addClass(SyncTargetDropbox);
SyncTargetRegistry.addClass(SyncTargetAmazonS3);
let syncTargetName_ = '';
let syncTargetId_ = null;
let syncTargetId_: number = null;
let sleepTime = 0;
let isNetworkSyncTarget_ = false;
@@ -120,7 +125,7 @@ function syncTargetName() {
return syncTargetName_;
}
function setSyncTargetName(name) {
function setSyncTargetName(name: string) {
if (name === syncTargetName_) return syncTargetName_;
const previousName = syncTargetName_;
syncTargetName_ = name;
@@ -141,20 +146,19 @@ setSyncTargetName('memory');
const syncDir = `${__dirname}/../tests/sync/${suiteName_}`;
// TODO: Should probably update this for Jest?
// let defaultJasmineTimeout = 90 * 1000;
// if (isNetworkSyncTarget_) defaultJasmineTimeout = 60 * 1000 * 10;
// if (typeof jasmine !== 'undefined') jasmine.DEFAULT_TIMEOUT_INTERVAL = defaultJasmineTimeout;
// 90 seconds now that the tests are running in parallel and have been
// split into smaller suites might not be necessary but for now leave it
// anyway.
let defaultJestTimeout = 90 * 1000;
if (isNetworkSyncTarget_) defaultJestTimeout = 60 * 1000 * 10;
jest.setTimeout(defaultJestTimeout);
const dbLogger = new Logger();
dbLogger.addTarget('console');
// dbLogger.addTarget('file', { path: `${logDir}/log.txt` });
dbLogger.addTarget(TargetType.Console);
dbLogger.setLevel(Logger.LEVEL_WARN);
const logger = new Logger();
logger.addTarget('console');
// logger.addTarget('file', { path: `${logDir}/log.txt` });
logger.addTarget(TargetType.Console);
logger.setLevel(Logger.LEVEL_WARN); // Set to DEBUG to display sync process in console
Logger.initializeGlobalLogger(logger);
@@ -184,16 +188,16 @@ function isNetworkSyncTarget() {
return isNetworkSyncTarget_;
}
function sleep(n) {
return new Promise((resolve, reject) => {
function sleep(n: number) {
return new Promise((resolve) => {
shim.setTimeout(() => {
resolve();
}, Math.round(n * 1000));
});
}
function msleep(ms) {
return new Promise((resolve, reject) => {
function msleep(ms: number) {
return new Promise((resolve) => {
shim.setTimeout(() => {
resolve();
}, ms);
@@ -206,9 +210,10 @@ function currentClientId() {
async function afterEachCleanUp() {
await ItemChange.waitForAllSaved();
KeymapService.destroyInstance();
}
async function switchClient(id, options = null) {
async function switchClient(id: number, options: any = null) {
options = Object.assign({}, { keychainEnabled: false }, options);
if (!databases_[id]) throw new Error(`Call setupDatabaseAndSynchronizer(${id}) first!!`);
@@ -233,7 +238,7 @@ async function switchClient(id, options = null) {
Setting.setValue('sync.wipeOutFailSafe', false); // To keep things simple, always disable fail-safe unless explicitely set in the test itself
}
async function clearDatabase(id = null) {
async function clearDatabase(id: number = null) {
if (id === null) id = currentClient_;
if (!databases_[id]) return;
@@ -264,13 +269,19 @@ async function clearDatabase(id = null) {
await databases_[id].transactionExecBatch(queries);
}
async function setupDatabase(id = null, options = null) {
async function setupDatabase(id: number = null, options: any = null) {
options = Object.assign({}, { keychainEnabled: false }, options);
if (id === null) id = currentClient_;
Setting.cancelScheduleSave();
Setting.cache_ = null;
// Note that this was changed from `Setting.cache_ = []` to `await
// Setting.reset()` during the TypeScript conversion. Normally this is
// more correct but something to keep in mind anyway in case there are
// some strange async issue related to settings when the tests are
// running.
await Setting.reset();
if (databases_[id]) {
BaseModel.setDb(databases_[id]);
@@ -295,22 +306,27 @@ async function setupDatabase(id = null, options = null) {
await loadKeychainServiceAndSettings(options.keychainEnabled ? KeychainServiceDriver : KeychainServiceDriverDummy);
}
function resourceDirName(id = null) {
function exportDir(id: number = null) {
if (id === null) id = currentClient_;
return `${dataDir}/export`;
}
function resourceDirName(id: number = null) {
if (id === null) id = currentClient_;
return `resources-${id}`;
}
function resourceDir(id = null) {
function resourceDir(id: number = null) {
if (id === null) id = currentClient_;
return `${dataDir}/${resourceDirName(id)}`;
}
function pluginDir(id = null) {
function pluginDir(id: number = null) {
if (id === null) id = currentClient_;
return `${dataDir}/plugins-${id}`;
}
async function setupDatabaseAndSynchronizer(id, options = null) {
async function setupDatabaseAndSynchronizer(id: number, options: any = null) {
if (id === null) id = currentClient_;
BaseService.logger_ = logger;
@@ -347,12 +363,12 @@ async function setupDatabaseAndSynchronizer(id, options = null) {
await fileApi().clearRoot();
}
function db(id = null) {
function db(id: number = null) {
if (id === null) id = currentClient_;
return databases_[id];
}
function synchronizer(id = null) {
function synchronizer(id: number = null) {
if (id === null) id = currentClient_;
return synchronizers_[id];
}
@@ -360,7 +376,7 @@ function synchronizer(id = null) {
// This is like calling synchronizer.start() but it handles the
// complexity of passing around the sync context depending on
// the client.
async function synchronizerStart(id = null, extraOptions = null) {
async function synchronizerStart(id: number = null, extraOptions: any = null) {
if (id === null) id = currentClient_;
const context = synchronizerContexts_[id];
const options = Object.assign({}, extraOptions);
@@ -370,41 +386,41 @@ async function synchronizerStart(id = null, extraOptions = null) {
return newContext;
}
function encryptionService(id = null) {
function encryptionService(id: number = null) {
if (id === null) id = currentClient_;
return encryptionServices_[id];
}
function kvStore(id = null) {
function kvStore(id: number = null) {
if (id === null) id = currentClient_;
const o = kvStores_[id];
o.setDb(db(id));
return o;
}
function revisionService(id = null) {
function revisionService(id: number = null) {
if (id === null) id = currentClient_;
return revisionServices_[id];
}
function decryptionWorker(id = null) {
function decryptionWorker(id: number = null) {
if (id === null) id = currentClient_;
const o = decryptionWorkers_[id];
o.setKvStore(kvStore(id));
return o;
}
function resourceService(id = null) {
function resourceService(id: number = null) {
if (id === null) id = currentClient_;
return resourceServices_[id];
}
function resourceFetcher(id = null) {
function resourceFetcher(id: number = null) {
if (id === null) id = currentClient_;
return resourceFetchers_[id];
}
async function loadEncryptionMasterKey(id = null, useExisting = false) {
async function loadEncryptionMasterKey(id: number = null, useExisting = false) {
const service = encryptionService(id);
let masterKey = null;
@@ -487,7 +503,7 @@ function fileApi() {
return fileApis_[syncTargetId_];
}
function objectsEqual(o1, o2) {
function objectsEqual(o1: any, o2: any) {
if (Object.getOwnPropertyNames(o1).length !== Object.getOwnPropertyNames(o2).length) return false;
for (const n in o1) {
if (!o1.hasOwnProperty(n)) continue;
@@ -496,7 +512,7 @@ function objectsEqual(o1, o2) {
return true;
}
async function checkThrowAsync(asyncFn) {
async function checkThrowAsync(asyncFn: Function) {
let hasThrown = false;
try {
await asyncFn();
@@ -506,7 +522,7 @@ async function checkThrowAsync(asyncFn) {
return hasThrown;
}
async function expectThrow(asyncFn, errorCode = undefined) {
async function expectThrow(asyncFn: Function, errorCode: any = undefined) {
let hasThrown = false;
let thrownError = null;
try {
@@ -517,7 +533,7 @@ async function expectThrow(asyncFn, errorCode = undefined) {
}
if (!hasThrown) {
expect('not throw').toBe('throw', 'Expected function to throw an error but did not');
expect('not throw').toBe('throw');
} else if (thrownError.code !== errorCode) {
console.error(thrownError);
expect(`error code: ${thrownError.code}`).toBe(`error code: ${errorCode}`);
@@ -526,7 +542,7 @@ async function expectThrow(asyncFn, errorCode = undefined) {
}
}
async function expectNotThrow(asyncFn) {
async function expectNotThrow(asyncFn: Function) {
let thrownError = null;
try {
await asyncFn();
@@ -536,13 +552,13 @@ async function expectNotThrow(asyncFn) {
if (thrownError) {
console.error(thrownError);
expect(thrownError.message).toBe('', 'Expected function not to throw an error but it did');
expect(thrownError.message).toBe('');
} else {
expect(true).toBe(true);
}
}
function checkThrow(fn) {
function checkThrow(fn: Function) {
let hasThrown = false;
try {
fn();
@@ -552,7 +568,7 @@ function checkThrow(fn) {
return hasThrown;
}
function fileContentEqual(path1, path2) {
function fileContentEqual(path1: string, path2: string) {
const fs = require('fs-extra');
const content1 = fs.readFileSync(path1, 'base64');
const content2 = fs.readFileSync(path2, 'base64');
@@ -591,19 +607,19 @@ async function allSyncTargetItemsEncrypted() {
return totalCount === encryptedCount;
}
function id(a) {
function id(a: any) {
return a.id;
}
function ids(a) {
function ids(a: any[]) {
return a.map(n => n.id);
}
function sortedIds(a) {
function sortedIds(a: any[]) {
return ids(a).sort();
}
function at(a, indexes) {
function at(a: any[], indexes: any[]) {
const out = [];
for (let i = 0; i < indexes.length; i++) {
out.push(a[indexes[i]]);
@@ -611,7 +627,7 @@ function at(a, indexes) {
return out;
}
async function createNTestFolders(n) {
async function createNTestFolders(n: number) {
const folders = [];
for (let i = 0; i < n; i++) {
const folder = await Folder.save({ title: 'folder' });
@@ -621,7 +637,7 @@ async function createNTestFolders(n) {
return folders;
}
async function createNTestNotes(n, folder, tagIds = null, title = 'note') {
async function createNTestNotes(n: number, folder: any, tagIds: string[] = null, title: string = 'note') {
const notes = [];
for (let i = 0; i < n; i++) {
const title_ = n > 1 ? `${title}${i}` : title;
@@ -638,7 +654,7 @@ async function createNTestNotes(n, folder, tagIds = null, title = 'note') {
return notes;
}
async function createNTestTags(n) {
async function createNTestTags(n: number) {
const tags = [];
for (let i = 0; i < n; i++) {
const tag = await Tag.save({ title: 'tag' });
@@ -648,7 +664,7 @@ async function createNTestTags(n) {
return tags;
}
function tempFilePath(ext) {
function tempFilePath(ext: string) {
return `${Setting.value('tempDir')}/${md5(Date.now() + Math.random())}.${ext}`;
}
@@ -675,7 +691,7 @@ function newPluginService(appVersion = '1.4') {
return service;
}
function newPluginScript(script) {
function newPluginScript(script: string) {
return `
/* joplin-manifest:
{
@@ -705,6 +721,11 @@ function newPluginScript(script) {
// Application for feature integration testing
class TestApp extends BaseApplication {
private hasGui_: boolean;
private middlewareCalls_: any[];
private logger_: LoggerWrapper;
constructor(hasGui = true) {
super();
this.hasGui_ = hasGui;
@@ -716,7 +737,7 @@ class TestApp extends BaseApplication {
return this.hasGui_;
}
async start(argv) {
async start(argv: any[]) {
this.logger_.info('Test app starting...');
if (!argv.includes('--profile')) {
@@ -737,7 +758,7 @@ class TestApp extends BaseApplication {
this.logger_.info('Test app started...');
}
async generalMiddleware(store, next, action) {
async generalMiddleware(store: any, next: any, action: any) {
this.middlewareCalls_.push(true);
try {
await super.generalMiddleware(store, next, action);
@@ -771,4 +792,4 @@ class TestApp extends BaseApplication {
}
}
module.exports = { newPluginService, newPluginScript, synchronizerStart, afterEachCleanUp, syncTargetName, setSyncTargetName, syncDir, createTempDir, isNetworkSyncTarget, kvStore, expectThrow, logger, expectNotThrow, resourceService, resourceFetcher, tempFilePath, allSyncTargetItemsEncrypted, msleep, setupDatabase, revisionService, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync, checkThrow, encryptionService, loadEncryptionMasterKey, fileContentEqual, decryptionWorker, currentClientId, id, ids, sortedIds, at, createNTestNotes, createNTestFolders, createNTestTags, TestApp };
module.exports = { exportDir, newPluginService, newPluginScript, synchronizerStart, afterEachCleanUp, syncTargetName, setSyncTargetName, syncDir, createTempDir, isNetworkSyncTarget, kvStore, expectThrow, logger, expectNotThrow, resourceService, resourceFetcher, tempFilePath, allSyncTargetItemsEncrypted, msleep, setupDatabase, revisionService, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync, checkThrow, encryptionService, loadEncryptionMasterKey, fileContentEqual, decryptionWorker, currentClientId, id, ids, sortedIds, at, createNTestNotes, createNTestFolders, createNTestTags, TestApp };
@@ -85,7 +85,6 @@ function CodeMirror(props: NoteBodyEditorProps, ref: any) {
}
editorRef.current.setSelections(newSelections);
}
editorRef.current.focus();
}, []);
const addListItem = useCallback((string1, defaultText = '') => {
@@ -97,7 +96,6 @@ function CodeMirror(props: NoteBodyEditorProps, ref: any) {
} else {
wrapSelectionWithStrings(string1, '', defaultText);
}
editorRef.current.focus();
}
}, [wrapSelectionWithStrings]);
@@ -141,7 +139,7 @@ function CodeMirror(props: NoteBodyEditorProps, ref: any) {
} else {
reg.logger().warn('CodeMirror: unsupported drop item: ', cmd);
}
} else if (cmd.name === 'focus') {
} else if (cmd.name === 'editor.focus') {
editorRef.current.focus();
} else {
commandProcessed = false;
@@ -170,6 +168,7 @@ function CodeMirror(props: NoteBodyEditorProps, ref: any) {
textItalic: () => wrapSelectionWithStrings('*', '*', _('emphasised text')),
textLink: async () => {
const url = await dialogs.prompt(_('Insert Hyperlink'));
editorRef.current.focus();
if (url) wrapSelectionWithStrings('[', `](${url})`);
},
textCode: () => {
@@ -247,7 +247,7 @@ const TinyMCE = (props: NoteBodyEditorProps, ref: any) => {
if (cmd.name === 'insertText') {
const result = await markupToHtml.current(MarkupToHtml.MARKUP_LANGUAGE_MARKDOWN, cmd.value, { bodyOnly: true });
editor.insertContent(result.html);
} else if (cmd.name === 'focus') {
} else if (cmd.name === 'editor.focus') {
editor.focus();
} else if (cmd.name === 'dropItems') {
if (cmd.value.type === 'notes') {
@@ -283,10 +283,6 @@ function NoteEditor(props: NoteEditorProps) {
const onMessage = useMessageHandler(scrollWhenReady, setScrollWhenReady, editorRef, setLocalSearchResultCount, props.dispatch, formNote);
const introductionPostLinkClick = useCallback(() => {
bridge().openExternal('https://www.patreon.com/posts/34246624');
}, []);
const externalEditWatcher_noteChange = useCallback((event) => {
if (event.id === formNote.id) {
const newFormNote = {
@@ -414,9 +410,19 @@ function NoteEditor(props: NoteEditorProps) {
throw new Error(`Invalid editor: ${props.bodyEditor}`);
}
const wysiwygBanner = props.bodyEditor !== 'TinyMCE' ? null : (
<div style={{ ...styles.warningBanner }}>
This is an experimental Rich Text editor for evaluation only. Please do not use with important notes as you may lose some data! See the <a style={styles.urlColor} onClick={introductionPostLinkClick} href="#">introduction post</a> for more information. To switch to the Markdown Editor please press the "Toggle editors" in the top right-hand corner.
const onRichTextReadMoreLinkClick = useCallback(() => {
bridge().openExternal('https://joplinapp.org/rich_text_editor');
}, []);
const onRichTextDismissLinkClick = useCallback(() => {
Setting.setValue('richTextBannerDismissed', true);
}, []);
const wysiwygBanner = props.bodyEditor !== 'TinyMCE' || props.richTextBannerDismissed ? null : (
<div style={styles.warningBanner}>
{_('This Rich Text editor has a number of limitations and it is recommended to be aware of them before using it.')}
&nbsp;&nbsp;<a onClick={onRichTextReadMoreLinkClick} style={styles.warningBannerLink} href="#">[ {_('Read more about it')} ]</a>
&nbsp;&nbsp;<a onClick={onRichTextDismissLinkClick} style={styles.warningBannerLink} href="#">[ {_('Dismiss')} ]</a>
</div>
);
@@ -567,6 +573,7 @@ const mapStateToProps = (state: AppState) => {
editorNoteStatuses: state.editorNoteStatuses,
syncStarted: state.syncStarted,
themeId: state.settings.theme,
richTextBannerDismissed: state.settings.richTextBannerDismissed,
watchedNoteFiles: state.watchedNoteFiles,
notesParentType: state.notesParentType,
selectedNoteTags: state.selectedNoteTags,
@@ -57,6 +57,7 @@ function styles_(props: Props) {
fontSize: Math.round(theme.textStyle.fontSize * 1.5),
backgroundColor: theme.backgroundColor,
border: 'none',
width: '100%',
},
titleDate: {
@@ -92,6 +92,9 @@ const declarations: CommandDeclaration[] = [
{
name: 'editor.setText',
},
{
name: 'editor.focus',
},
];
export default declarations;
@@ -10,7 +10,7 @@ export const declaration: CommandDeclaration = {
export const runtime = (comp: any): CommandRuntime => {
return {
execute: async () => {
comp.editorRef.current.execCommand({ name: 'focus' });
comp.editorRef.current.execCommand({ name: 'editor.focus' });
},
enabledCondition: 'oneNoteSelected',
};
@@ -33,9 +33,16 @@ export default function styles(props: NoteEditorProps) {
fontFamily: theme.fontFamily,
padding: 10,
fontSize: theme.fontSize,
lineHeight: '1.6em',
marginTop: 5,
marginBottom: 5,
},
warningBannerLink: {
color: theme.color,
fontFamily: theme.fontFamily,
fontSize: theme.fontSize,
fontWeight: 'bold',
},
tinyMCE: {
width: '100%',
height: '100%',
@@ -55,7 +62,7 @@ export default function styles(props: NoteEditorProps) {
padding: 10,
marginLeft: 5,
marginBottom: 10,
color: theme.colorWarn,
backgroundColor: theme.warningBackgroundColor,
},
resourceWatchBannerLine: {
@@ -34,6 +34,7 @@ export interface NoteEditorProps {
plugins: PluginStates;
toolbarButtonInfos: ToolbarButtonInfo[];
setTagsToolbarButtonInfo: ToolbarButtonInfo;
richTextBannerDismissed: boolean;
}
export interface NoteBodyEditorProps {
@@ -161,7 +161,7 @@ export default function useFormNote(dependencies: HookDependencies) {
if (Setting.value(focusSettingName) === 'title') {
if (titleInputRef.current) titleInputRef.current.focus();
} else {
if (editorRef.current) editorRef.current.execCommand({ name: 'focus' });
if (editorRef.current) editorRef.current.execCommand({ name: 'editor.focus' });
}
});
}
@@ -1,6 +1,6 @@
import { LayoutItem, LayoutItemDirection } from './types';
import validateLayout from './validateLayout';
import { canMove, ItemSide, MoveDirection, moveHorizontal, moveItemNear, moveVertical } from './movements';
import { canMove, MoveDirection, moveHorizontal, moveVertical } from './movements';
import findItemByKey from './findItemByKey';
describe('movements', () => {
@@ -225,37 +225,4 @@ describe('movements', () => {
expect(layout.children[1].width).toBe(undefined);
});
test('should move an item near another one', () => {
let layout: LayoutItem = validateLayout({
key: 'root',
width: 200,
height: 100,
direction: LayoutItemDirection.Row,
children: [
{
key: 'col1',
resizableRight: true,
direction: LayoutItemDirection.Column,
children: [
{ key: 'item1' },
{ key: 'item2' },
],
},
{
key: 'col2',
},
],
});
// If parent is a ROW and putting item on top of sibling - first move to
// the left, then move right so that item goes inside new container
layout = moveItemNear(layout, 'item1', 'col2', ItemSide.Top);
console.info(layout);
// expect(layout.children[0].width).toBe(20);
// expect(layout.children[1].width).toBe(undefined);
});
});
@@ -3,8 +3,6 @@ import { LayoutItem, LayoutItemDirection, tempContainerPrefix } from './types';
import produce from 'immer';
import uuid from '@joplin/lib/uuid';
import validateLayout from './validateLayout';
import findItemByKey from './findItemByKey';
import removeItem from './removeItem';
export enum MoveDirection {
Up = 'up',
@@ -13,13 +11,6 @@ export enum MoveDirection {
Right = 'right',
}
export enum ItemSide {
Top = 'top',
Bottom = 'bottom',
Left = 'left',
Right = 'right',
}
enum MovementDirection {
Horizontal = 1,
Vertical = 2,
@@ -197,42 +188,3 @@ export function move(layout: LayoutItem, key: string, direction: MoveDirection):
if (direction === MoveDirection.Right) return moveHorizontal(layout, key, +1);
throw new Error('Unreachable');
}
export function moveItemNear(layout:LayoutItem, itemKey:string, nearItemKey:string, side: ItemSide): LayoutItem {
const itemToInsert = findItemByKey(layout, itemKey);
const layoutWithoutItem = removeItem(layout, itemKey);
let moveDirection:MoveDirection = null;
const sideToDirectionMap = {
[ItemSide.Top]: MoveDirection.Up,
[ItemSide.Bottom]: MoveDirection.Down,
[ItemSide.Left]: MoveDirection.Left,
[ItemSide.Right]: MoveDirection.Right,
};
const layoutWithInsertedItem = produce(layoutWithoutItem, (draft: any) => {
iterateItems(draft, (itemIndex: number, item: LayoutItem, parent: LayoutItem) => {
if (item.key !== nearItemKey) return true;
parent.children.splice(itemIndex, 0, itemToInsert);
if (
parent.direction === LayoutItemDirection.Column && side === ItemSide.Top ||
parent.direction === LayoutItemDirection.Row && side === ItemSide.Left
) {
// Nothing to do - already in position
} else {
moveDirection = sideToDirectionMap[side];
}
return false;
});
});
console.info(JSON.stringify(layoutWithInsertedItem, null, 4));
console.info('MOVE', moveDirection);
const updatedLayout = moveDirection ? move(layoutWithInsertedItem, itemKey, moveDirection) : layoutWithInsertedItem;
return validateLayout(updatedLayout);
}
+12 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@joplin/app-desktop",
"version": "1.5.3",
"version": "1.5.4",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -2119,6 +2119,7 @@
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz",
"integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==",
"dev": true,
"requires": {
"@types/react": "*",
"hoist-non-react-statics": "^3.3.0"
@@ -2128,6 +2129,7 @@
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
"integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
"dev": true,
"requires": {
"react-is": "^16.7.0"
}
@@ -2204,12 +2206,14 @@
"@types/prop-types": {
"version": "15.7.3",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz",
"integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw=="
"integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==",
"dev": true
},
"@types/react": {
"version": "16.9.55",
"resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.55.tgz",
"integrity": "sha512-6KLe6lkILeRwyyy7yG9rULKJ0sXplUsl98MGoCfpteXf9sPWFWWMknDcsvubcpaTdBuxtsLF6HDUwdApZL/xIg==",
"dev": true,
"requires": {
"@types/prop-types": "*",
"csstype": "^3.0.2"
@@ -2218,7 +2222,8 @@
"csstype": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.4.tgz",
"integrity": "sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA=="
"integrity": "sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA==",
"dev": true
}
}
},
@@ -2226,6 +2231,7 @@
"version": "0.63.34",
"resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.63.34.tgz",
"integrity": "sha512-6syTIfUt+DY4mJBoO0Y5i4jsDg0I7v31XIPRgsJZAlHeMY9p9GehtGd4VpQKB/NgzLiGzx9ahJPE8w+0lt/WxA==",
"dev": true,
"requires": {
"@types/react": "*"
}
@@ -2306,6 +2312,7 @@
"version": "5.1.4",
"resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.4.tgz",
"integrity": "sha512-78f5Zuy0v/LTQNOYfpH+CINHpchzMMmAt9amY2YNtSgsk1TmlKm8L2Wijss/mtTrsUAVTm2CdGB8VOM65vA8xg==",
"dev": true,
"requires": {
"@types/hoist-non-react-statics": "*",
"@types/react": "*",
@@ -2316,7 +2323,8 @@
"csstype": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.4.tgz",
"integrity": "sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA=="
"integrity": "sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA==",
"dev": true
}
}
},
+5 -4
View File
@@ -1,13 +1,14 @@
{
"name": "@joplin/app-desktop",
"version": "1.5.3",
"version": "1.5.4",
"description": "Joplin for Desktop",
"main": "main.js",
"private": true,
"scripts": {
"dist": "node_modules/.bin/electron-builder",
"dist": "npm run electronRebuild && npx electron-builder",
"build": "gulp build",
"postinstall": "npm run build && gulp electronRebuild",
"postinstall": "npm run build",
"electronRebuild": "gulp electronRebuild",
"tsc": "node node_modules/typescript/bin/tsc --project tsconfig.json",
"watch": "node node_modules/typescript/bin/tsc --watch --project tsconfig.json",
"start": "gulp build && electron . --env dev --log-level debug --no-welcome --open-dev-tools",
@@ -98,6 +99,7 @@
"@types/node": "^14.14.6",
"@types/react": "16.9.55",
"@types/react-redux": "^7.1.9",
"@types/styled-components": "^5.1.4",
"ajv": "^6.5.0",
"app-builder-bin": "^1.9.11",
"babel-cli": "^6.26.0",
@@ -122,7 +124,6 @@
"@fortawesome/fontawesome-free": "^5.13.0",
"@joplin/lib": "^1.0.9",
"@joplin/renderer": "^1.0.17",
"@types/styled-components": "^5.1.4",
"async-mutex": "^0.1.3",
"codemirror": "^5.56.0",
"color": "^3.1.2",
@@ -2,6 +2,24 @@ const fs = require('fs');
const path = require('path');
const electron_notarize = require('electron-notarize');
function execCommand(command) {
const exec = require('child_process').exec;
return new Promise((resolve, reject) => {
exec(command, (error, stdout, stderr) => {
if (error) {
if (error.signal == 'SIGTERM') {
resolve('Process was killed');
} else {
reject(new Error([stdout.trim(), stderr.trim()].join('\n')));
}
} else {
resolve([stdout.trim(), stderr.trim()].join('\n'));
}
});
});
}
module.exports = async function(params) {
if (process.platform !== 'darwin') return;
@@ -48,5 +66,16 @@ module.exports = async function(params) {
ascProvider: process.env.APPLE_ASC_PROVIDER,
});
// It appears that electron-notarize doesn't staple the app, but without
// this we were still getting the malware warning when launching the app.
// Stapling the app means attaching the notarization ticket to it, so that
// if the user is offline, macOS can still check if the app was notarized.
// So it seems to be more or less optional, but at least in our case it
// wasn't.
console.log('Staple notarization ticket to the app...');
const staplerCmd = `xcrun stapler staple "${appPath}"`;
console.log(`> ${staplerCmd}`);
console.log(await execCommand(staplerCmd));
console.log(`Done notarizing ${appId}`);
};
@@ -14,6 +14,7 @@ import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
import net.cozic.joplin.share.SharePackage;
import android.webkit.WebView;
public class MainApplication extends Application implements ReactApplication {
@@ -68,6 +69,15 @@ public class MainApplication extends Application implements ReactApplication {
SoLoader.init(this, /* native exopackage */ false);
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
// To allow debugging the webview using the Chrome developer tools.
// Open chrome://inspect/#devices to view the device and connect to it
// IMPORTANT: USB debugging must be enabled on the device for it to work.
// https://github.com/react-native-webview/react-native-webview/blob/master/docs/Debugging.md
if (BuildConfig.DEBUG) {
WebView.setWebContentsDebuggingEnabled(true);
}
}
/**
@@ -15,14 +15,6 @@ interface UseSourceResult {
injectedJs: string[];
}
let markupToHtml_: any = null;
function markupToHtml() {
if (markupToHtml_) return markupToHtml_;
markupToHtml_ = markupLanguageUtils.newMarkupToHtml();
return markupToHtml_;
}
function usePrevious(value: any, initialValue: any = null): any {
const ref = useRef(initialValue);
useEffect(() => {
@@ -45,6 +37,10 @@ export default function useSource(noteBody: string, noteMarkupLanguage: number,
};
}, [themeId, paddingBottom]);
const markupToHtml = useMemo(() => {
return markupLanguageUtils.newMarkupToHtml();
}, [isFirstRender]);
// To address https://github.com/laurent22/joplin/issues/433
//
// If a checkbox in a note is ticked, the body changes, which normally
@@ -58,7 +54,7 @@ export default function useSource(noteBody: string, noteMarkupLanguage: number,
//
// IMPORTANT: KEEP noteBody AS THE FIRST dependency in the array as the
// below logic rely on this.
const effectDependencies = [noteBody, resourceLoadedTime, noteMarkupLanguage, themeId, rendererTheme, highlightedKeywords, noteResources, noteHash, isFirstRender];
const effectDependencies = [noteBody, resourceLoadedTime, noteMarkupLanguage, themeId, rendererTheme, highlightedKeywords, noteResources, noteHash, isFirstRender, markupToHtml];
const previousDeps = usePrevious(effectDependencies, []);
const changedDeps = effectDependencies.reduce((accum: any, dependency: any, index: any) => {
if (dependency !== previousDeps[index]) {
@@ -94,9 +90,9 @@ export default function useSource(noteBody: string, noteMarkupLanguage: number,
// it doesn't contain info about the resource download state. Because of that, if we were to use the markupToHtml() cache
// it wouldn't re-render at all. We don't need this cache in any way because this hook is only triggered when we know
// something has changed.
markupToHtml().clearCache(noteMarkupLanguage);
markupToHtml.clearCache(noteMarkupLanguage);
const result = await markupToHtml().render(
const result = await markupToHtml.render(
noteMarkupLanguage,
bodyToRender,
rendererTheme,
+1 -1
View File
@@ -1,5 +1,5 @@
const RNFS = require('react-native-fs');
const FsDriverBase = require('@joplin/lib/fs-driver-base');
const FsDriverBase = require('@joplin/lib/fs-driver-base').default;
const RNFetchBlob = require('rn-fetch-blob').default;
class FsDriverRN extends FsDriverBase {
+3 -2
View File
@@ -1,9 +1,9 @@
const TurndownService = require('joplin-turndown');
const TurndownService = require('@joplin/turndown');
const turndownPluginGfm = require('@joplin/turndown-plugin-gfm').gfm;
const markdownUtils = require('./markdownUtils').default;
class HtmlToMd {
parse(html, options = {}) {
const turndownPluginGfm = require('joplin-turndown-plugin-gfm').gfm;
const turndown = new TurndownService({
headingStyle: 'atx',
anchorNames: options.anchorNames ? options.anchorNames.map(n => n.trim().toLowerCase()) : [],
@@ -12,6 +12,7 @@ class HtmlToMd {
bulletListMarker: '-',
emDelimiter: '*',
strongDelimiter: '**',
br: '',
});
turndown.use(turndownPluginGfm);
turndown.remove('script');
+11 -3
View File
@@ -121,6 +121,10 @@ export default class Synchronizer {
}
}
private static reportHasErrors(report: any): boolean {
return !!report && !!report.errors && !!report.errors.length;
}
static reportToLines(report: any) {
const lines = [];
if (report.createLocal) lines.push(_('Created local items: %d.', report.createLocal));
@@ -132,7 +136,7 @@ export default class Synchronizer {
if (report.fetchingTotal && report.fetchingProcessed) lines.push(_('Fetched items: %d/%d.', report.fetchingProcessed, report.fetchingTotal));
if (report.cancelling && !report.completedTime) lines.push(_('Cancelling...'));
if (report.completedTime) lines.push(_('Completed: %s', time.formatMsToLocal(report.completedTime)));
if (report.errors && report.errors.length) lines.push(_('Last error: %s', report.errors[report.errors.length - 1].toString().substr(0, 500)));
if (this.reportHasErrors(report)) lines.push(_('Last error: %s', report.errors[report.errors.length - 1].toString().substr(0, 500)));
return lines;
}
@@ -193,7 +197,7 @@ export default class Synchronizer {
this.logger().info(`Total notes: ${noteCount}`);
this.logger().info(`Total resources: ${resourceCount}`);
if (report.errors && report.errors.length) {
if (Synchronizer.reportHasErrors(report)) {
this.logger().warn('There was some errors:');
for (let i = 0; i < report.errors.length; i++) {
const e = report.errors[i];
@@ -315,6 +319,7 @@ export default class Synchronizer {
const outputContext = Object.assign({}, lastContext);
this.dispatch({ type: 'SYNC_STARTED' });
eventManager.emit('syncStart');
this.logSyncOperation('starting', null, null, `Starting synchronisation to target ${syncTargetId}... [${synchronizationId}]`);
@@ -899,11 +904,14 @@ export default class Synchronizer {
await this.logSyncSummary(this.progressReport_);
eventManager.emit('syncComplete', {
withErrors: Synchronizer.reportHasErrors(this.progressReport_),
});
this.onProgress_ = function() {};
this.progressReport_ = {};
this.dispatch({ type: 'SYNC_COMPLETED', isFullSync: this.isFullSync(syncSteps) });
eventManager.emit('syncComplete');
this.state_ = 'idle';
@@ -1,15 +1,48 @@
const { filename, fileExtension } = require('./path-utils');
const time = require('./time').default;
const Setting = require('./models/Setting').default;
import time from './time';
import Setting from './models/Setting';
import { filename, fileExtension } from './path-utils';
const md5 = require('md5');
class FsDriverBase {
async isDirectory(path) {
export interface Stat {
birthtime: number;
mtime: number;
isDirectory(): boolean;
path: string;
size: number;
}
export interface ReadDirStatsOptions {
recursive: boolean;
}
export default class FsDriverBase {
public async stat(_path: string): Promise<Stat> {
throw new Error('Not implemented');
}
public async readDirStats(_path: string, _options: ReadDirStatsOptions = null): Promise<Stat[]> {
throw new Error('Not implemented');
}
public async exists(_path: string): Promise<boolean> {
throw new Error('Not implemented');
}
public async remove(_path: string): Promise<void> {
throw new Error('Not implemented');
}
public async isDirectory(path: string) {
const stat = await this.stat(path);
return !stat ? false : stat.isDirectory();
}
async readDirStatsHandleRecursion_(basePath, stat, output, options) {
public async writeFile(_path: string, _content: string, _encoding: string = 'base64'): Promise<void> {
throw new Error('Not implemented');
}
protected async readDirStatsHandleRecursion_(basePath: string, stat: Stat, output: Stat[], options: ReadDirStatsOptions): Promise<Stat[]> {
if (options.recursive && stat.isDirectory()) {
const subPath = `${basePath}/${stat.path}`;
const subStats = await this.readDirStats(subPath, options);
@@ -23,7 +56,7 @@ class FsDriverBase {
return output;
}
async findUniqueFilename(name, reservedNames = null) {
public async findUniqueFilename(name: string, reservedNames: string[] = null): Promise<string> {
if (reservedNames === null) {
reservedNames = [];
}
@@ -47,7 +80,7 @@ class FsDriverBase {
}
}
async removeAllThatStartWith(dirPath, filenameStart) {
public async removeAllThatStartWith(dirPath: string, filenameStart: string) {
if (!filenameStart || !dirPath) throw new Error('dirPath and filenameStart cannot be empty');
const stats = await this.readDirStats(dirPath);
@@ -59,7 +92,7 @@ class FsDriverBase {
}
}
async waitTillExists(path, timeout = 10000) {
public async waitTillExists(path: string, timeout: number = 10000) {
const startTime = Date.now();
while (true) {
@@ -72,7 +105,7 @@ class FsDriverBase {
// TODO: move out of here and make it part of joplin-renderer
// or assign to option using .bind(fsDriver())
async cacheCssToFile(cssStrings) {
public async cacheCssToFile(cssStrings: string[]) {
const cssString = Array.isArray(cssStrings) ? cssStrings.join('\n') : cssStrings;
const cssFilePath = `${Setting.value('tempDir')}/${md5(escape(cssString))}.css`;
if (!(await this.exists(cssFilePath))) {
@@ -84,6 +117,5 @@ class FsDriverBase {
mime: 'text/css',
};
}
}
module.exports = FsDriverBase;
}
+3 -3
View File
@@ -1,8 +1,8 @@
import { resolve as nodeResolve } from 'path';
import FsDriverBase, { Stat } from './fs-driver-base';
import time from './time';
const fs = require('fs-extra');
const time = require('./time').default;
const FsDriverBase = require('./fs-driver-base');
export default class FsDriverNode extends FsDriverBase {
@@ -125,7 +125,7 @@ export default class FsDriverNode extends FsDriverBase {
throw this.fsErrorToJsError_(error);
}
let output = [];
let output: Stat[] = [];
for (let i = 0; i < items.length; i++) {
const item = items[i];
const stat = await this.stat(`${path}/${item}`);
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"ينشئ نسخة من الملاحظات المطابقة لـ <note> (ملاحظة) في [notebook] (دفتر ملاحظات). إذا لم يحدد دفتر ملاحظات فستنسخ الملاحظة في دفتر الملاحظات الحالي.","Cannot find \"%s\".":"لا يمكن العثور على \"%s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"يعرض الملاحظات في الدفتر الحالي. استخدم `ls /` لعرض قائمة دفاتر الملاحظات.","Displays only the first top <num> notes.":"يعرض أول أعلى <رقم> ملاحظات فقط.","Sorts the item by <field> (eg. title, updated_time, created_time).":"يرتب العناصر حسب <حقل> (على سبيل المثال، العنوان ، تاريخ التحديث ، تاريخ الإنشاء).","Reverses the sorting order.":"يعكس طريقة الترتيب.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"يعرض العناصر من النوع/الأنواع المحددة فقط. يمكن أن يكون `n` للملاحظات ، أو `t` لقوائم المهام أو `nt` للملاحظات و قوائم المهام (مثلاً ، `-tt` ستعرض قوائم المهام فقط ، بينما ستعرض `-ttd` الملاحظات و قوائم المهام.","Either \"text\" or \"json\"":"إما \"text\" أو \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"استخدام نسق القائمة الطويلة. النسق هو ID (معرِّف) ، NOTE_COUNT (عدد الملاحظات (لدفتر الملاحظات)) ، DATE (التاريخ) ، TODO_CHECKED (تم عنصر المهمة (لقوائم المهام)) ، TITLE (العنوان)","Please select a notebook first.":"يرجى اختيار دفتر ملاحظات أولاً.","Imports data into Joplin.":"استيراد البيانات إلى Joplin.","Source format: %s":"تنسيق المصدر: %s","Do not ask for confirmation.":"لا تطلب التأكيد.","Found: %d.":"تم العثور عليها: %d.","Created: %d.":"تم إنشاؤها: %d.","Updated: %d.":"تم تحديثها: %d.","Skipped: %d.":"تم تجاوزها: %d.","Resources: %d.":"الموارد: %d.","Tagged: %d.":"تم وسمها: %d.","Importing notes...":"استيراد الملاحظات جارٍ...","The notes have been imported: %s":"جرى استيراد الملاحظات: %s","Enum":"تعداد","Type: %s.":"النوع: %s.","Possible values: %s.":"القيم الممكنة : %s.","Default: %s":"التلقائية: %s","Possible keys/values:":"المفاتيح/القيم الممكنة:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"ابدأ، أوقف أو تحقق من خادم API. لتحديد أي منفذ يجب تشغيله، قم بتعيين متغير تكوين api.port. الأوامر هي (%s).","Server is already running on port %d":"الخادم قيد التشغيل بالفعل على المنفذ %d","Server is running on port %d":"الخادم قيد التشغيل على المنفذ %d","Server is not running.":"الخادم لا يعمل.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"يدير ترتيبات (E2EE). الأوامر هي `enable`، `disable`، `decrypt`، `status`، `target-status`.","Enter master password:":"أدخل كلمة المرور الرئيسة:","Operation cancelled":"ألغيت العملية","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"بدء فك التشفير جارٍ... يرجى الانتظار حيث قد تستغرق العملية عدة دقائق بحسب كمية البيانات المطلوب فك تشفيرها.","Completed decryption.":"اكتمل فك التشفير.","Confirm password:":"تأكيد كلمة المرور:","Passwords do not match!":"كلمات المرور غير متطابقة!","Enabled":"مفعََّل","Disabled":"معطَّل","Encryption is: %s":"التشفير هو: %s","Creates a new notebook.":"ينشئ دفتر ملاحظات جديد.","Moves the notes matching <note> to [notebook].":"ينقل الملاحظات المطابقة لـ <note> إلى [notebook].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"يستخرج قيمة إعداد أو يضبطها. إذا لم يجر التزويد بـ [value] (قيمة) فLine truncated
{"OK":"موافق","Cancel":"إلغاء","Goto Anything...":"اذهب إلى أي شيء...","Exporting to \"%s\" as \"%s\" format. Please wait...":"التصدير إلى \"%s\" بتنسيق \"%s\". فضلاً انتظر...","Current version is up-to-date.":"النسخة الحالية محدَّثة.","%s (pre-release)":"%s (ما قبل الإصدار)","An update is available, do you want to download it now?":"يتوفر تحديث ، هل تريد تنزيله الآن؟","Your version: %s":"النسخة لديك: %s","New version: %s":"النسخة الجديدة: %s","Full Release Notes":"ملاحظات الإصدار الكامل","Search...":"بحث...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"تمت استعادة الملاحظة \"%s\" بنجاح إلى دفتر الملاحظات \"%s\".","This note has no history":"هذه المذكرة ليس لها تاريخ","Unsupported link or message: %s":"رابط أو رسالة غير مدعومان: %s","Restore":"استعادة","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"انقر \"%s\" لاستعادة الملاحظة. سيتم نسخه في دفتر الملاحظات المسمى \"%s\". لن يتم استبدال أو تعديل الإصدار الحالي من الملاحظة.","Back":"عودة","Remove":"إزالة","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"حذف دفتر الملاحظات \"%s\" ؟\n\nسيتم حذف كل الملاحظات و دفاتر الملاحظات الفرعية ضمن هذا الدفتر أيضاً.","Delete":"حذف","Remove tag \"%s\" from all notes?":"إزالة الوسم \"%s\" من كل الملاحظات؟","Remove this search from the sidebar?":"حذف هذا البحث من الشريط الجانبي؟","Export":"تصدير","All notes":"جميع الملاحظات","Synchronise":"زامِن","Notebooks":"دفاتر ملاحظات","Tags":"وسوم","Decrypting items: %d/%d":"فك تشفير العناصر: %d/%d","Fetching resources: %d/%d":"جلب الموارد: %d/%d","Sidebar":"الشريط الجانبي","Focus":"تركيز","Please select where the sync status should be exported to":"فضلاً اختر أين سيتم تصدير حالة المزامنة","Retry":"إعادة المحاولة","strong text":"نص مشدَّد","Insert Hyperlink":"إدراج ارتباط تشعبي","List item":"عنصر قائمة","Layout":"تخطيط","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"ليس لهذه الملاحظة أي محتوى. اضغط على \"%s\" لتبديل المحرّر وتحرير الملاحظة.","Cut":"قص","Copy":"نسخ","Paste":"لصق","Edit":"تحرير","Attach file":"إرفاق ملف","Insert Date Time":"إدراج التاريخ والوقت","Open...":"فتح...","Save as...":"حفظ باسم...","Copy path to clipboard":"نسخ المسار إلى الحافظة","Copy Link Address":"نسخ عنوان الرابط","to-do":"قائمة مهام","note":"ملاحظة","Creating new %s...":"إنشاء %s جديد ...","In: %s":"في: %s","Select all":"اختيار الكل","Bold":"غامق","Italic":"مائل","Hyperlink":"ارتباط تشعبي","Code":"رمز","Numbered List":"قائمة مرقّمة","Bulleted List":"قائمة تعداد نقطي","Checkbox":"خانة اختيار","Heading":"ترويسة","Horizontal Rule":"خط تسطير أفقي","Note title":"عنوان الملاحظة","Search in current note":"البحث في الملاحظة الحاليّة","Note body":"متن الملاحظة","ID":"المعرّف","Created":"الإنشاء","Updated":"التحديث","Location":"المكان","URL":"عنوان URL","Note History":"تاريخ الملاحظة","Markup":"ترميز","Previous versions of this note":"الإصدارات السابقة من هذه الملاحظة","Note properties":"خصائص الملاحظة","Disabled":"معطَّل","Import":"استيراد","Quit":"إغلاق","Website and documentation":"موقع الويب و التوثيق","Close Window":"إغلاق النافذة","Options":"خيارات","Save":"حفظ","Some items cannot be synchronised.":"لا يمكن مزامنة بعض العناصر.","View them now":"عرضها الآن","Some items cannot be decrypted.":"لا يمكن فك تشفير بعض العناصر.","One or more master keys need a password.":"مفتاح رئيسي واحد أو أكثر يحتاج إلى كلمة مرور.","Set the password":"ضبط كلمة المرور","Rename":"إعادة تسمية","Rename notebook:":"إعادة تسمية دفتر الملاحظات:","New to-do":"قائمة جديدة للمهام","Toggle note list":"تبديل قائمة الملاحظات","Toggle sidebar":"تبديل الشريط الجانبي","Set alarm":"ضبLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Дуплицира бележките съответстващи на <бележка> в [тетрадка]. Ако тетрадка не е зададена, бележките ще бъдат дуплицирани в настоящата тетрадка.","Cannot find \"%s\".":"Не успях да намеря \"%s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Показва бележките в настоящата тетрадка. Използвайте `ls /` за да покажете списъка от тетрадки.","Displays only the first top <num> notes.":"Показва първите <брой> бележки.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Сортира обектите по <поле>. Напр. title (заглавие), updated_time (последна промяна), created_time (създадена).","Reverses the sorting order.":"Обръща реда на сортиране.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Показва само обекти от даден тип или типове. Може да е `n` за бележки, `t` за задачи, или `nt` за бележки и задачи (напр. `-tt` би показало само задачи, а `-ttd` би показало бележки и задачи.","Either \"text\" or \"json\"":"Или \"text\" или \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Използване на дългия формат на списъци. Форматът е ID, NOTE_COUNT (брой бележки, за тетрадки), DATE (дата), TODO_CHECKED (брой завършени, за задачи), TITLE (заглавие)","Please select a notebook first.":"Моля първо изберете тетрадка.","Imports data into Joplin.":"Импортира данни в Joplin.","Source format: %s":"Формат на източника: %s","Do not ask for confirmation.":"Не питай за потвърждение.","Found: %d.":"Намерени: %d.","Created: %d.":"Създадени: %d.","Updated: %d.":"Обновени: %d.","Skipped: %d.":"Пропуснати: %d.","Resources: %d.":"Ресурси: %d.","Tagged: %d.":"Тагнати: %d.","Importing notes...":"Импортирам на бележки...","The notes have been imported: %s":"Бележките бяха импортирани: %s","Enum":"Изброим","Type: %s.":"Тип: %s.","Possible values: %s.":"Възможни стойности: %s.","Default: %s":"Стойност по подразбиране: %s","Possible keys/values:":"Възможни ключове/стойности:","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Управлява E2EE конфигурацията. Командите са `enable`, `disable`, `decrypt`, `status`, `decrypt-file` и `target-status`.","Enter master password:":"Въведете главната парола:","Operation cancelled":"Действието бе отменено","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Започвам да декриптирам... Моля изчакайте, защото това може да отнеме няколко минути, в зависимост от колко има за декриптиране.","Completed decryption.":"Завърших декриптирането.","Enabled":"Включено","Disabled":"Изключено","Encryption is: %s":"Криптирането е: %s","Creates a new notebook.":"Създава нова тетрадка.","Moves the notes matching <note> to [notebook].":"Премества бележките съответстващи на <бележка> в [тетрадка].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Показва или променя конфигурационна стойност. Ако [стойност] не е дадена, ще покаже стойността на [име]. Ако нито [име] нито [стойност] са дадени, изрежда цялата настояща конфигурация.","Also displays unset and hidden config variables.":"Показва също и конфигурации, които нямат стойност, или са скрити.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [noteboLine truncated
{"OK":"Добре","Cancel":"Отмени","Goto Anything...":"Отиди на нещо...","Exporting to \"%s\" as \"%s\" format. Please wait...":"Експортирам към \"%s\" във формат \"%s\". Моля изчакайте...","Current version is up-to-date.":"Настоящата версия е най-новата.","%s (pre-release)":"%s (експериментална)","An update is available, do you want to download it now?":"Има обновление, искате ли да го свалите сега?","Your version: %s":"Вашата версия: %s","New version: %s":"Нова версия: %s","Search...":"Търсене...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"Бележка \"%s\" бе успешно създадена и сложена в тетрадка \"%s\".","This note has no history":"Тази бележка няма история","Unsupported link or message: %s":"Неподдържан линк или съобщение: %s","Restore":"Възстанови","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Натиснете \"%s\" за да възстановите бележката. Тя ще бъде копирана в тетрадка с име \"%s\". Настоящата версия на бележката няма да бъде подменена или променена.","Back":"Назад","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Да изтрия ли тетрадка \"%s\"?\n\nВсички бележки и под-тетрадки също ще бъдат изтрити.","Delete":"Изтрий","Remove tag \"%s\" from all notes?":"Да премахна ли таг \"%s\" от всички бележки?","Remove this search from the sidebar?":"Да премахна ли това търсене от страничния панел?","Export":"Експортиране","Synchronise":"Синхронизация","Notebooks":"Тетрадки","Tags":"Тагове","Decrypting items: %d/%d":"Декриптиране на обекти: %d/%d","Fetching resources: %d/%d":"Взимане на ресурси: %d/%d","Sidebar":"Страничен панел","Focus":"Фокусирай","Please select where the sync status should be exported to":"Моля изберете къде да бъде експортиран статуса на синхронизацията","Retry":"Нов опит","strong text":"силно наблегнат текст","Insert Hyperlink":"Вкарай линк","List item":"Елемент на списък","Layout":"Разположеня","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Тази бележка няма съдържание. Натиснете \"%s\" за да покажете редакторя и да редактирате бележката.","Cut":"Изрежи","Copy":"Копирай","Paste":"Постави","Edit":"Редактиране","Attach file":"Прикачи файл","Insert Date Time":"Постави датата и часа","Open...":"Отвори...","Save as...":"Запазаи като...","Copy path to clipboard":"Копирай пътя в клипборда","Copy Link Address":"Копирай адреса на линка","to-do":"задача","note":"бележка","Creating new %s...":"Създаване на нова %s...","In: %s":"В: %s","Select all":"Избери всичко","Bold":"Удебелен","Italic":"Курсив","Hyperlink":"Линк","Code":"Код","Numbered List":"Номериран списък","Bulleted List":"Неномериран списък","Checkbox":"Поле за отметка","Heading":"Заглавие","Horizontal Rule":"Хоризонтална черта","Note title":"Заглавие на бележката","Search in current note":"Търсене в настоящата бележка","Note body":"Съдържание на бележката","ID":"Идентификатор","Created":"Създаден","Updated":"Обновен","Location":"Местоположение","URL":"Уеб адрес (URL)","Note History":"История на бележката","Previous versions of this note":"Предишни версии на бележката","Note properties":"Атрибути на бележката","Disabled":"Изключено","Import":"Импортиране","Quit":"Изход","Website and documentation":"Уебсайт и документация","Close Window":"Затвори прозорец","Options":"Конфигурация","Save":"Запази","Some items cannot be synchronised.":"Някои обекти не можаха да бъдат синхронизирани.","View them now":"Покажи ги сега","One or more master keys need a password.":"Поне едиLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Kreira duplikat bilješke <note> u [notebook]. Ako bilježnica nije navedena, duplikat će biti pohranjen u trenutno otvorenu bilježnicu.","Cannot find \"%s\".":"Ne mogu pronaći \"%s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Prikazuje bilješke u trenutnoj bilježnici. Koristite komandu `ls /` da prikažete popis bilježnica.","Displays only the first top <num> notes.":"Prikazuje samo prvih <num> bilješki.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Sortira stavke prema <field> (npr. title, updated_time, created_time).","Reverses the sorting order.":"Inverzni redoslijed sortiranja.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Prikazuje samo stavke određenog tipa. To može biti `n` za bilješke, `t` za zadatke, ili `nt` za bilješke i zadatke (npr. `-tt` prikazuje samo zadatke, dok `-ttd` prikazuje i bilješke i zadatke.)","Either \"text\" or \"json\"":"Ili \"text\" ili \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Koristi dugi format. Format je ID, NOTE_COUNT (za bilježnice), DATE, TODO_CHECKED (za zadatke), TITLE","Please select a notebook first.":"Prvo odaberite bilježnicu.","Imports data into Joplin.":"Unosi podatke u Joplin","Source format: %s":"Izvorni format: %s","Do not ask for confirmation.":"Ne pitaj za potvrdu.","Found: %d.":"Pronađeno: %d.","Created: %d.":"Kreirano: %d.","Updated: %d.":"Ažurirano: %d.","Skipped: %d.":"Preskočeno: %d.","Resources: %d.":"Resursi: %d.","Tagged: %d.":"Označeno: %d.","Importing notes...":"Unosim bilješke...","The notes have been imported: %s":"Bilješke su unesene: %s","Enum":"Enum","Type: %s.":"Vrsta: %s.","Possible values: %s.":"Moguće vrijednosti: %s.","Default: %s":"Prekonfigurisano: %s","Possible keys/values:":"Moguće stavke/vrijednosti:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"Pokreni, zaustavi ili provjeri API server. Da precizirate koji port treba koristiti, podesite api.port konfiguracijsku varijablu. Komande su (%s).","Server is already running on port %d":"Server je već pokrenut preko porta %d","Server is running on port %d":"Server je u funkciji preko porta %d","Server is not running.":"Server nije pokrenut.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Upravlja konfiguracijom šifriranja s kraja na kraj (E2EE). Komande glase: `enable` (uključi), `disable` (isključi), `decrypt` (dešifruj), `status` (stanje), `decrypt-file` (dešifruj datoteku) i `target-status` (stanje odredišta).","Enter master password:":"Unesite glavnu lozinku:","Operation cancelled":"Radnja je prekinuta","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Počinjem sa dešifrovanjem... Molim Vas da pričekate, jer proces može trajati nekoliko minuta, zavisno od količine podataka koje treba dešifrovati.","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"Preskočene stavke: %d (koristite --retry-failed-items da ih ponovo pokušate dešifrovati)","Completed decryption.":"Dešifrovanje završeno.","Enabled":"Uključeno","Disabled":"Isključeno","Encryption is: %s":"Šifriranje je: %s","Creates a new notebook.":"Kreira novu bilježnicu.","Moves the notes matching <note> to [notebook].":"Premješta bilješke <note> u [notebook].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Prima ili podešava konfiguracijske vrijednosti. Ako [value] nije navedena, tada će biti prikazana vrijednost [name]. Ako ni [name] ni [value] nisu precizirane, prikazat će se trenutna konfiguracija.","Also displays unset and hidden config variables.":"Prikazuje i nepodešene i skrivene konfiguracijske varijable.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Prelazi u [notebook] – sve dalje radnje vršit će se u ovoj bilježnici.","Synchronises with remote storage.":"Sinhronizuje sa vanjskim medijem za pohranu podataka.","Sync to provided target (defaults to sync.target config value)":"Sinhronizuj sa datim odredištem (prekonfigurisano sync.target config value)","Authentication was not completed (did not receive an authentication token).":"Ovjera nije završena (nije primljena potvrda /token/).","To allow Joplin to synchronise with Dropbox, please follow the steps below:":"Slijedite ove korake Line truncated
{"OK":"Uredu","Cancel":"Otkaži","Goto Anything...":"Pronađite bilo šta...","Current version is up-to-date.":"Trenutna je verzija ažurirana.","%s (pre-release)":"%s (verzija pred objavljivanje)","An update is available, do you want to download it now?":"Nova je verzija dostupna. Želite li je preuzeti?","Your version: %s":"Vaša verzija: %s","New version: %s":"Nova verzija: %s","Search...":"Pretraživanje...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"Bilješka \"%s\" uspješno je rekonstruisana i pohranjena u bilježnicu \"%s\".","This note has no history":"Bilješka nema ranijih verzija","Unsupported link or message: %s":"Nepodržana veza ili poruka: %s","Restore":"Rekonstruiši","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Pritisnite na \"%s\" da rekonstruišete bilješku. Rezultat će biti kopiran u bilježnicu \"%s\". Trenutna verzija bilješke ostat će netaknuta.","Back":"Nazad","Remove":"Ukloni","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Izbrisati bilježnicu \"%s\"?\n\nSve bilješke i bilježnice unutar ove bilježnice također će biti izbrisane.","Delete":"Izbriši","Remove tag \"%s\" from all notes?":"Ukloniti oznaku \"%s\" iz svih bilješki?","Remove this search from the sidebar?":"Ukloniti ovu pretragu iz pomoćnog menija?","Export":"Iznesi","All notes":"Sve bilješke","Synchronise":"Sinhronizuj","Notebooks":"Bilježnice","Tags":"Oznake","Decrypting items: %d/%d":"Dešifrujem stavke: %d/%d","Fetching resources: %d/%d":"Preuzimam resurse: %d/%d","Sidebar":"Bočni meni","Focus":"Fokus","Please select where the sync status should be exported to":"Navedite gdje će biti pohranjen status sinhronizacije","Retry":"Ponovi","strong text":"podebljani tekst","Insert Hyperlink":"Unesi poveznicu","List item":"Stavka nabrajanja","Layout":"Prikaz","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Bilješka je prazna. Pritisnite na \"%s\" da otvorite program za rad s tekstom i uredite bilješku.","Cut":"Izreži","Copy":"Kopiraj","Paste":"Zalijepi","Edit":"Uredi","Attach file":"Priloži datoteku","Code Block":"Kōd (izdvojen)","Inline Code":"Kōd (unutar teksta)","Insert Date Time":"Unesi datum i vrijeme","Drop notes or files here":"Ispustite bilješke ili datoteke ovdje","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"Pričekajte dok svi prilozi ne budu preuzeti i dešifrovani. Također možete otvoriti %s da uredite bilješku.","There was an error downloading this attachment:":"Došlo je do greške prilikom preuzimanja priloga:","Open...":"Otvori...","Save as...":"Pohrani kao...","Reveal file in folder":"Pokaži datoteku u direktoriju","Copy path to clipboard":"Kopiraj putanju u spremnik","Copy Link Address":"Kopiraj adresu veze","to-do":"zadatak","note":"bilješka","Creating new %s...":"Kreiram: %s...","In: %s":"U: %s","Select all":"Označi sve","Bold":"Masna slova","Italic":"Kurziv","Hyperlink":"Poveznica","Code":"Kōd","Numbered List":"Numerisano nabrajanje","Bulleted List":"Nabrajanje","Checkbox":"Polje za kvačicu","Heading":"Naslov","Horizontal Rule":"Vodoravna linija","Search in current note":"Potraži u trenutnoj bilješci","ID":"ID","Created":"Kreirano","Updated":"Ažurirano","Location":"Lokacija","URL":"URL","Note History":"Historija bilješke","Markup":"Markup","Previous versions of this note":"Ranije verzije ove bilješke","Note properties":"Svojstva bilješke","Disabled":"Isključeno","Import":"Unesi","Quit":"Zatvori","Actual Size":"Početne dimenzije","Website and documentation":"Internet stranica i dokumentacija","Close Window":"Zatvori prozor","Options":"Opcije","Save":"Pohrani","Some items cannot be synchronised.":"Neke stavke nije moguće sinhronizovati.","View them now":"Pregledajte ih sada","One or more master keys need a password.":"Jedan ili više glavnih ključeva zahtijevaju lozinku.","Set the password":"Zadajte lozinku","Statistics...":"Statistika...","Rename":"Preimenuj","Rename notebook:":"Preimenujte bilježnicu:","New to-do":"Novi zadatak","Toggle sidebar":"Bočni meni","Set alarm":"Podesi zvučnu napomenu","Set alarm:":"Podesite zvučnu napomenu:","PDF File":"PDF datoteka","New note":"Nova bilješka","Toggle editor layout":"Prikaži uređivač","Rename tag:":"Preimenujte oznaku:","New notebook":"Nova bilježnica","Notebook title:":"Naziv bilježnice:","Template file:":"Šablon:","Add or remove tags:":"Dodajte ili uklonite oznake:","Print":"Štampaj","To allow Joplin to synchronise with Dropbox, please follow the steps below:":"Slijedite ove korake da dopustite Joplinu sinhronizovanje sa Dropboxom:","Step 1: Open this URL in your browser to authorise the application:":"Korak 1: otvorite ovu adresu u Vašem internet pregledniku i ovjerite aplikaciju:","Step 2: Enter the code provided by DrLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica les notes que coincideixen amb <note> a [blocdenotes]. Si no indiqueu cap bloc de notes es dupliquen en el bloc de notes actual.","Cannot find \"%s\".":"No es pot trobar «%s».","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Mostra les notes en el bloc de notes actual. Useu «ls /» per a mostrar la llista de blocs de notes.","Displays only the first top <num> notes.":"Només mostra les <num> primeres notes.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Ordena l'element per <field> (p. ex. títol, actualització o creació).","Reverses the sorting order.":"Inverteix el criteri d'ordenació.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Només mostra els elements dels tipus específics. Pot ser «n» per a les notes, «t» per les tasques pendents, o «nt» per a notes i tasques pendents (p. ex. «-tt» mostrarà només les tasques pendents, mentre que «-ttd» mostrarà notes i tasques pendents).","Either \"text\" or \"json\"":"«text» o «json»","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usa el format de llista llarga. El format és ID, NRE_NOTES (per a blocs de notes), DATA, TASQUES_MARCADES (per a llistats de tasques pendents), TÍTOL","Please select a notebook first.":"Cal que primer seleccioneu un bloc de notes.","Imports data into Joplin.":"Importa les dades al Joplin.","Source format: %s":"Format d'origen: %s","Do not ask for confirmation.":"No demanis confirmació.","Output format: %s":"Format destí: %s","Found: %d.":"Trobades: %d.","Created: %d.":"Creades: %d.","Updated: %d.":"Actualitzades: %d.","Skipped: %d.":"Omeses: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Etiquetats: %d.","Importing notes...":"S'estan important notes...","The notes have been imported: %s":"Notes s'han importat: %s","Enum":"Enumeració","Type: %s.":"Tipus: %s.","Possible values: %s.":"Valors possibles: %s.","Default: %s":"Per defecte: %s","Possible keys/values:":"Valors/claus possibles:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"Arrenca, atura o verifica el servidor API. Per especificar a quin port ha de córrer, estableix la variable api.port. Les ordres són (%s).","Server is already running on port %d":"El servidor ja està corrent en el port %d","Server is running on port %d":"El servidor està corrent en el port %d","Server is not running.":"El servidor no està corrent.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Gestiona la configuració E2EE. Les ordres són «enable», «disable», «decrypt», «status» i «target-status».","Enter master password:":"Introduïu una contrasenya mestra:","Operation cancelled":"L'operació s'ha cancel·lat","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"S'està iniciant el desxifratge... Espereu perquè això pot durar alguns minuts, depenent de quanta informació calgui desxifrar.","Decrypted items: %d":"Elements desxifrats: %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"Elements omesos: %d (utilitza --retry-failed-items per tornar a intentar desxifrar-los)","Completed decryption.":"El desxifratge ha finalitzat.","Confirm password:":"Confirmeu la contrasenya:","Passwords do not match!":"Les contrasenyes no coincideixen!","Enabled":"Activat","Disabled":"Desactivat","Encryption is: %s":"El xifratge és: %s","Creates a new notebook.":"Crea un bloc de notes nou.","Moves the notes matching <note> to [notebook].":"Mou les notes que coincideixen amb <note> a [notebook].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obté o estableix un valor de configuració. Si no s'indica [valor], mostrarà el valor de [nom]. Si no s'indica ni [nom] ni [valor], es mostrarà un llistat amb la configuració actual.","Also displays unset and hidden config variables.":"També mostra variables de configuració ocultes o sense definir.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Canvia a [notebook] - totes les operacions posteriors s'aplicaran en aquest bloc de notes.","Synchronises with remote storage.":"Sincronitza amb un emmagatzemament remot.","Sync to provided target (defaults to sync.target config value)":"Sincronitza a la destinació indicada (de forma predeterminada al valor de configLine truncated
{"OK":"D'acord","Cancel":"Cancel·la","Goto Anything...":"Anar a qualsevol cosa...","Exporting to \"%s\" as \"%s\" format. Please wait...":"S'està exportant a «%s» com a format «%s». Espereu...","Could not export notes: %s":"No s'han pogut exportar les notes: %s","Current version is up-to-date.":"La versió actual està actualitzada.","%s (pre-release)":"%s (pre-llençament)","An update is available, do you want to download it now?":"Hi ha disponible una actualització. Voleu descarregar-la ara?","Your version: %s":"La vostra versió: %s","New version: %s":"Nova versió: %s","Full Release Notes":"Notes completes de la versió","Search...":"Cerca...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"La nota «%s» s'ha restaurat amb èxit en el bloc de notes «%s».","This note has no history":"Aquesta nota no té historial","Unsupported link or message: %s":"Missatge o enllaç no suportat: %s","Restore":"Restaurar","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Cliqueu «%s» per restaurar la nota. Aquesta serà copiada al el notebook anomenat «%s». La versió actual de la nota no serà substituïda o modificada.","Back":"Enrere","Remove":"Elimina","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Voleu suprimir el bloc de notes \"%s\"? \n\nTambé se suprimiran totes les notes i els sub-blocs d'aquest bloc de notes.","Delete":"Suprimeix","Remove tag \"%s\" from all notes?":"Voleu suprimir l'etiqueta \"%s\" de totes les notes?","Remove this search from the sidebar?":"Voleu suprimir aquesta cerca de la barra lateral?","Export":"Exporta","All notes":"Totes les notes","Synchronise":"Sincronitza","Notebooks":"Blocs de notes","Tags":"Etiquetes","Decrypting items: %d/%d":"S'estan desxifrant els elements: %d/%d","Fetching resources: %d/%d":"Obtenint recursos: %d/%d","Sidebar":"Barra lateral","Focus":"Focus","Please select where the sync status should be exported to":"Seleccioneu on s'hauria d'exportar l'estat de la sincronització","Retry All":"Torna a provar-los tots","Retry":"Torna a provar","strong text":"text destacat","emphasised text":"text ressaltat","Insert Hyperlink":"Introdueix un enllaç","List item":"Element de llista","Layout":"Disposició","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Aquesta nota no té contingut. Feu clic a «%s» per a anar a l'editor i modificar-la.","Cut":"Retalla","Copy":"Copia","Paste":"Enganxa","Checkbox list":"Llista de caselles de verificació","Edit":"Edita","Attach file":"Adjunta un fitxer","Code Block":"Bloc de codi","Inline Code":"Codi en línia","Insert Date Time":"Insereix la data i hora","Drop notes or files here":"Arrossega les notes o fitxers aquí","Code View":"Vista de codi","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"Espereu que tots els adjunts hagin estat descarregats i desxifrats. També podeu canviar a %s per editar la nota.","There was an error downloading this attachment:":"Hi ha hagut un error al descarregar aquest adjunt:","This attachment is not downloaded or not decrypted yet":"Aquest adjunt no ha estat descarregat o desxifrat encara","Open...":"Obre...","Save as...":"Anomena i desa...","Reveal file in folder":"Mostra el fitxer a la carpeta","Copy path to clipboard":"Copia el camí al porta-retalls","Copy Link Address":"Copia l'adreça de l'enllaç","to-do":"tasques pendents","note":"nota","Creating new %s...":"S'està creant una %s...","In: %s":"A: %s","Select all":"Seleccioneu tot","Bold":"Negreta","Italic":"Cursiva","Hyperlink":"Enllaç","Code":"Codi","Numbered List":"Llista numerada","Bulleted List":"Llista de pics","Checkbox":"Casella de verificació","Heading":"Capçalera","Horizontal Rule":"Línia horitzontal","Note title":"Títol de la nota","Search in current note":"Cerca en la nota actual","Note body":"Cos de la nota","ID":"ID","Created":"Creació","Updated":"Actualització","Completed":"Finalitzat","Location":"Ubicació","URL":"URL","Note History":"Historial de la nota","Markup":"Marcatge","Previous versions of this note":"Versions prèvies d'aquesta nota","Note properties":"Propietats de la nota","Disabled":"Desactivat","Import":"Importació","Quit":"Surt","Insert template":"Insereix plantilla","Actual Size":"Mida real","Website and documentation":"Lloc web i documentació","Close Window":"Tanca la finestra","Options":"Opcions","Save":"Desa","Some items cannot be synchronised.":"Alguns elements no s'han pogut sincronitzar.","View them now":"Mostra'ls ara","Some items cannot be decrypted.":"Alguns elements no s'han pogut desxifrar.","One or more master keys need a password.":"Una o més claus mestres necessiten una contrasenya.","Set the password":"Establiu la contrasenya","One of your master keys use an obsolete encryption method.":"Una de les vostres clLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplikuje poznámky vyhovující <note> do [notebook]. Pokud není notebook (zápisník) specifikován, je poznámka duplikována v tom současném.","Cannot find \"%s\".":"Výraz \"%s\" nebyl nalezen.","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Zobrazí poznámky v používaném zápisníku. Pro seznam zápisníků zadejte `ls /`.","Displays only the first top <num> notes.":"Zobrazí jen prvních <num> poznámek.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Řadit položky podle <pole> (např. title, updated_time, created_time).","Reverses the sorting order.":"Řadit opačně.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Zobrazit pouze položky vybraného typu. Možnosti jsou `n` pro poznámky, `t` pro úkoly, a `nt` pro poznámky a úkoly (tedy `-tt` zobrazí pouze úkoly, zatímco `-ttd` zobrazí poznámky a úkoly).","Either \"text\" or \"json\"":"Buď \"text\" nebo \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Použít formát dlouhého seznamu. Formát je ID, NOTE_COUNT (u zápisníků), DATE, TODO_CHECKED (pro úkoly), TITLE","Please select a notebook first.":"Nejprve prosím vyberte zápisník.","Imports data into Joplin.":"Importuje data do Joplinu.","Source format: %s":"Zdrojový formát: %s","Do not ask for confirmation.":"Neptat se na potvrzení.","Output format: %s":"Výstupní formát: %s","Found: %d.":"Nalezeno: %d.","Created: %d.":"Vytvořeno: %d.","Updated: %d.":"Upraveno: %d.","Skipped: %d.":"Přeskočeno: %d.","Resources: %d.":"Zdroje: %d.","Tagged: %d.":"Otagováno: %d.","Importing notes...":"Importuji poznámky...","The notes have been imported: %s":"Poznámky importovány: %s","Enum":"Enum","Type: %s.":"Typ: %s.","Possible values: %s.":"Možné hodnoty: %s.","Default: %s":"Default: %s","Possible keys/values:":"Možné klíče/hodnoty:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"Spustit, zastavit či zkontrolovat API server. Pro specifikování portu pro server nastavte api.port proměnnou v config. Příkazy jsou (%s).","Server is already running on port %d":"Server je již spuštěný na portu %d","Server is running on port %d":"Server je spuštěný na portu %d","Server is not running.":"Server není spuštěný.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Nastavuje šifrování. Příkazy jsou `enable` (zapnout), `disable` (vypnout), `decrypt` (dešifrovat), `status` (stav) a `target-status` (stav v cíli synchronizace).","Enter master password:":"Zadejte master heslo:","Operation cancelled":"Operace zrušena","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Dešifruji... Chvíli strpení, podle množství dat k dešifrování to může zabrat i několik minut.","Decrypted items: %d":"Dešifrované položky: %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"Přeskočené položky: %d (použijte --retry-failed-items pro nový pokus o dešifrování)","Completed decryption.":"Dešifrování dokončeno.","Confirm password:":"Potvrďte heslo:","Passwords do not match!":"Hesla se neshodují!","Enabled":"Zapnuto","Disabled":"Vypnuto","Encryption is: %s":"Šifrování je: %s","Creates a new notebook.":"Vytvoří nový zápisník.","Moves the notes matching <note> to [notebook].":"Přesune poznámky vyhovující <poznámka> do [zápisník].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Získá nebo nastaví konfigurační hodnotu. Pokud není [hodnota] specifikována, zobrazí hodnotu položky [jméno]. Pokud není specifikována [hodnota] ani [jméno], je zobrazena současná konfigurace.","Also displays unset and hidden config variables.":"Zobrazí i nenastavené a schované konfigurační proměnné.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Přepne do zápisníku [notebook]. Všechny další operace budou prováděny na tomto zápisníku.","Synchronises with remote storage.":"Synchronizuje se vzdáleným úložištěm.","Sync to provided target (defaults to sync.target config value)":"Synchronizovat se specifikovanou destinací (defaultně hodnota sync.target)","Upgrade the sync target to the latest version.":"Upgradovat cíl synchronizace na nejnovější verzi.","Authentication Line truncated
{"OK":"OK","Cancel":"Zrušit","The app is now going to close. Please relaunch it to complete the process.":"Aplikace se nyní vypne. Pro dokončení procesu ji znovu spusťte.","Goto Anything...":"Přejít kamkoliv...","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportuji do \"%s\" jako formát \"%s\". Chvíli strpení...","Could not export notes: %s":"Nelze exportovat poznámky: %s","Current version is up-to-date.":"Současná verze je aktuální.","%s (pre-release)":"%s (pre-release)","An update is available, do you want to download it now?":"Je k dispozici update, chcete jej stáhnout?","Your version: %s":"Vaše verze: %s","New version: %s":"Nová verze: %s","Full Release Notes":"Úplné poznámky k verzi","Search...":"Hledat...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"Poznámka \"%s\" byla úspěšně obnovena v zápisníku \"%s\".","This note has no history":"Tato poznámka nemá historii","Unsupported link or message: %s":"Nepodporovaný link či zpráva: %s","Restore":"Obnovit","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Klikněte na \"%s\" pro obnovení poznámky. Poznámka bude zkopírována do zápisníku s názvem \"%s\". Současná verze poznámky nebude nahrazena či změněna.","Back":"Zpět","Remove":"Odstranit","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Smazat zápisník \"%s\"?\n\nBudou smazány i všechny poznámky a pod-zápisníky v tomto zápisníku.","Delete":"Odstranit","Remove tag \"%s\" from all notes?":"Odebrat tag \"%s\" ze všech poznámek?","Remove this search from the sidebar?":"Smazat tento hledaný výraz z panelu?","Export":"Export","All notes":"Všechny poznámky","Synchronise":"Synchronizovat","Notebooks":"Zápisníky","Tags":"Tagy","Decrypting items: %d/%d":"Rozšifrované položky: %d/%d","Fetching resources: %d/%d":"Stahování zdrojů: %d/%d","Sidebar":"Postranní lišta","Focus":"Přejít na","Please select where the sync status should be exported to":"Prosím vyberte, kam má být stav synchronizace exportován","Retry All":"Opakovat vše","Retry":"Znovu","strong text":"tučný text","emphasised text":"zvýrazněný text","Insert Hyperlink":"Vložit odkaz","List item":"Seznam položek","Layout":"Rozvržení","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Tato poznámka je prázdný. Klikněte na \"%s\" pro otevření editoru.","Cut":"Vyjmout","Copy":"Kopírovat","Paste":"Vložit","Checkbox list":"Zaškrtávací pole","Edit":"Upravit","Attach file":"Přiložit soubor","Code Block":"Blok kódu","Inline Code":"Vložený kód","Insert Date Time":"Vložit datum a čas","Drop notes or files here":"Sem přetáhněte poznámky nebo soubory","Code View":"Zobrazit kód","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"Počkejte prosím na stažení a dešifrování všech příloh. Můžete také přepnout na %s a poznámku upravit.","There was an error downloading this attachment:":"Při stahování této přílohy došlo k chybě:","This attachment is not downloaded or not decrypted yet":"Tato příloha ještě není stažena nebo dešifrována","Open...":"Otevřít...","Save as...":"Uložit jako...","Reveal file in folder":"Ukázat soubor ve složce","Copy path to clipboard":"Kopírovat cestu do schránky","Copy Link Address":"Kopírovat adresu odkazu","to-do":"úkol","note":"poznámka","Creating new %s...":"Vytvářím %s...","The following attachments are being watched for changes:":"Následující přílohy jsou sledovány, zda došlo k jejich změně:","The attachments will no longer be watched when you switch to a different note.":"Když přepnete na jinou poznámku, přílohy již nebudou sledovány.","In: %s":"V: %s","Select all":"Vybrat vše","Bold":"Tučně","Italic":"Kurzíva","Hyperlink":"Odkaz","Code":"Kód","Numbered List":"Číslovanáý seznam","Bulleted List":"Seznam s odrážkami","Checkbox":"Zaškrtávací pole","Heading":"Nadpis","Horizontal Rule":"Horizontální čára","Note title":"Název zápisníku","Search in current note":"Hledat v aktuální poznámce","Note body":"Tělo poznámky","ID":"ID","Created":"Vytvořeno","Updated":"Upraveno","Completed":"Dokončeno","Location":"Lokace","URL":"URL","Note History":"Historie poznámky","Markup":"Markup","Previous versions of this note":"Předchozí verze poznámky","Note properties":"Nastavení poznámek","Error: %s":"Chyba: %s","Disabled":"Vypnuto","Import":"Import","Command":"Příkaz","Keyboard Shortcut":"Klávesová zkratka","Quit":"Ukončit","Insert template":"Vložit šablonu","Actual Size":"Skutečná velikost","Website and documentation":"Web a dokumentace","Hide Joplin":"Skrýt Joplin","Close Window":"Zavřít akno","Preferences":"Nastavení","Options":"Nastavení","Press the shortcut":"StisLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Kopierer alle noter der matcher <note> til [notebook]. Hvis notesbog ikke er udfyldt, kopieres til aktuel notesbog.","Cannot find \"%s\".":"Kan ikke finde \"%s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Viser noterne i den aktuelle notesbog. Brug `ls /` for at vise en liste med notesbøger.","Displays only the first top <num> notes.":"Viser kun de første <num> noter.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Sorterer emner ud fra <field> (fx titel, opdateret_tid, oprettelses_tid).","Reverses the sorting order.":"Modsat sortering.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Vis kun emner af specifik(ke) type(r). Kan være `n` for noter. `t` for opgaver eller `nt` for noter og opgaver (tilsvarende `-tt` vil kun vise opgaver, mens `-ttd` vil vise noter og opgaver).","Either \"text\" or \"json\"":"Enten \"text\" eller \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Brug langt liste format. Formatet er ID,NOTE_TÆLLER (for notesbøger), DATO, MARKEREDE_OPGAVER (for opgaver), TITEL","Please select a notebook first.":"Vælg først en notesbog.","Imports data into Joplin.":"Importerer data til Joplin.","Source format: %s":"Kildeformat: %s","Do not ask for confirmation.":"Spørg ikke om bekræftelse.","Found: %d.":"Fundet: %d.","Created: %d.":"Oprettet: %d.","Updated: %d.":"Opdateret %d.","Skipped: %d.":"Droppet %d.","Resources: %d.":"Ressourcer: %d.","Tagged: %d.":"Markeret: %d.","Importing notes...":"Importerer noter...","The notes have been imported: %s":"Noterne er importeret: %s","Enum":"Enum","Type: %s.":"Tast: %s.","Possible values: %s.":"Mulige værdier: %s.","Default: %s":"Standard: %s","Possible keys/values:":"Mulige nøgler/værdier:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"Start, stop eller tjek API serveren. Sæt api.port variablen for at vælge hvilken port den skal køre på. Kommandoerne er (%s).","Server is already running on port %d":"Serveren kører allerede på port %d","Server is running on port %d":"Serveren kører på port %d","Server is not running.":"Serveren kører ikke.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Håndterer E2EE konfiguration. Kommandoer er `enable`(aktiver), `disable`(sluk), `decrypt`(dekrypter), `status`, `decrypt-file`(dekrypter fil) og `target-status` (modtager-status).","Enter master password:":"Indtast Hoved kodeord:","Operation cancelled":"Udførelse annulleret","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Dekryptering startet... Vent venligst da kan tage adskillige minutter afhængig af mængden der skal dekrypteres.","Completed decryption.":"Dekryptering færdig.","Confirm password:":"Bekræft kodeord:","Passwords do not match!":"Kodeord stemmer ikke overens!","Enabled":"Aktiveret","Disabled":"Deaktiveret","Encryption is: %s":"Kryptering er: %s","Creates a new notebook.":"Opretter en ny notesbog.","Moves the notes matching <note> to [notebook].":"Flytter alle noter der matcher <note> til [notebook].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Henter eller tilføjer konfigurations værdi. Hvis [value] er tilføjet, vises værdien af [name]. Hvis hverken [name] eller [value] er tilføjet, vises aktuel konfiguration.","Also displays unset and hidden config variables.":"Viser også tomme eller skjulte konfigurations variabler.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Skifter til [notebook] - alle fremtidige handlinger sker i denne notesbog.","Synchronises with remote storage.":"Synkroniserer med fjern-lager.","Sync to provided target (defaults to sync.target config value)":"Synk til valgt mål (standard er sync.target config.value)","Authentication was not completed (did not receive an authentication token).":"Godkendelse blev ikke fuldført (modtog ikke godkendelses token).","To allow Joplin to synchronise with Dropbox, please follow the steps below:":"For at Joplin kan synkronisere med Dropbox, skal man igennem nedenstående trin:","Step 1: Open this URL in your browser to authorise the application:":"Trin 1: Åben denne URL i din browser for at autorisere applikationen:","Step 2: Enter the code provided by Dropbox:":"Trin 2: Indtast koden, som er oplyst af Dropbox:",Line truncated
{"OK":"OK","Cancel":"Fortryd","Exporting to \"%s\" as \"%s\" format. Please wait...":"Eksporterer til \"%s\" som \"%s\"-format. Vent venligst...","Current version is up-to-date.":"Aktuel version er nyeste.","%s (pre-release)":"%s (pre-release)","An update is available, do you want to download it now?":"Opdatering er til rådighed, vil du hente den nu?","Your version: %s":"Din version: %s","New version: %s":"Ny version: %s","Full Release Notes":"Fulde udgivelses noter","Search...":"Søg...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"Noten \"%s\" er blevet gendannet til notesbogen \"%s\".","This note has no history":"Denne note har ingen historie","Unsupported link or message: %s":"Ugyldigt- eller ulovligt link eller besked: %s","Restore":"Gendan","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Tryk på \"%s\" for at gendanne noten. Den vil blive kopieret til notesbogen \"%s\". Den nuværende version af noten vil ikke blive erstattet eller ændret.","Back":"Tilbage","Remove":"Fjern","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Slet notesbogen \"%s\"?\n\nAlle noter og undernotesbøger i notesbogen bliver også slettet.","Delete":"Slet","Remove tag \"%s\" from all notes?":"Slet markeringen \"%s\" fra alle noter?","Remove this search from the sidebar?":"Slet denne søgning fra sidebjælke?","Export":"Eksporter","All notes":"Alle noter","Synchronise":"Synkroniser","Notebooks":"Notesbøger","Tags":"Mærker","Decrypting items: %d/%d":"Dekrypterede emner: %d/%d","Fetching resources: %d/%d":"Henter ressourcer: %d/%d","Sidebar":"Sidebar","Focus":"Fokuser","Please select where the sync status should be exported to":"Vælg hvor sync status skal eksporteres til","Retry":"Prøv igen","Insert Hyperlink":"Indsæt hyperlink","List item":"Listepunkt","Layout":"Layout","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Denne note er tom. Klik på \"%s\" for at starte editor og rette noten.","Cut":"Klip","Copy":"Kopier","Paste":"Indsæt","Edit":"Ret","Attach file":"Vedhæft fil","Code Block":"Kode blok","Insert Date Time":"Indsæt dato og tid","Open...":"Åben...","Save as...":"Gem som...","Copy path to clipboard":"Kopier sti til udklipsholderen","Copy Link Address":"Kopier link","to-do":"opgave","note":"note","Creating new %s...":"Opretter ny %s...","The following attachments are being watched for changes:":"Følgende vedhæftninger bliver overvåget for ændringer:","In: %s":"I: %s","Select all":"Vælg alt","Bold":"Fremhævet","Italic":"Kursiv","Hyperlink":"Hyperlink","Code":"Kode","Numbered List":"Nummeret liste","Bulleted List":"Punktliste","Checkbox":"Afkrydsningsfelt","Heading":"Overskrift","Horizontal Rule":"Vandret linje","Search in current note":"Søg i denne note","ID":"ID","Created":"Oprettet","Updated":"Opdateret","Completed":"Fuldført","Location":"Placering","URL":"URL","Note History":"Notehistore","Markup":"Markup","Previous versions of this note":"Tidligere udgaver af denne note","Note properties":"Note egenskaber","Disabled":"Deaktiveret","Import":"Importer","Keyboard Shortcut":"Tastaturgenvej","Quit":"Afslut","Actual Size":"Aktuelle størelse","Website and documentation":"Joplins hjemmeside og dokumentation","Close Window":"Luk vindue","Options":"Muligheder","Press the shortcut":"Klik genvejen","Save":"Gem","Restart and upgrade":"Genstart og upgrader","Some items cannot be synchronised.":"Nogle emner kan ikke synkroniseres.","View them now":"Vis dem nu","Some items cannot be decrypted.":"Nogle emner kan ikke krypteres.","One or more master keys need a password.":"En eller flere hovednøgler mangler et kodeord.","Set the password":"Indstil kodeord","The default encryption method has been changed, you should re-encrypt your data.":"Standard krypterings metoden er blevet ændret, du skal genkryptere dine data.","Statistics...":"Statistikker...","Rename":"Omdøb","Rename notebook:":"Omdøb notesbog:","New to-do":"Ny opgave","Toggle sidebar":"Slå sidebar til eller fra","Set alarm":"Indstil alarm","Set alarm:":"Indstil alarm:","PDF File":"PDF fil","New note":"Ny note","Move to notebook":"Flyt til notesbog","Move to notebook:":"Flyt til notesbog:","Toggle editor layout":"Skift editor layout","Rename tag:":"Omdøb mærke:","New notebook":"Ny notesbog","Notebook title:":"Notesbogs titel:","Share note...":"Del note...","Template file:":"Skabelonfil:","Add or remove tags:":"Tilføj eller slet mærker:","Print":"Udskriv","To allow Joplin to synchronise with Dropbox, please follow the steps below:":"For at Joplin kan synkronisere med Dropbox, skal man igennem nedenstående trin:","Step 1: Open this URL in your browser to authorise the application:":"Trin 1: Åben denne URL i din browser for at autorisere applikationen:","Step 2: Enter the code provided by Dropbox:":"Trin 2: Indtast koden, som er oplyLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Dupliziert die Notizen, die mit <note> übereinstimmen, nach [notebook]. Wenn kein Notizbuch angegeben ist, wird die Notiz im aktuellen Notizbuch dupliziert.","Cannot find \"%s\".":"Kann „%s“ nicht finden.","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Zeigt die Notizen im aktuellen Notizbuch an. Benutze `ls /`, um die Liste der Notizbücher anzuzeigen.","Displays only the first top <num> notes.":"Zeigt nur die ersten oberen <num> Notizen an.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Sortiert das Element nach <field> (z. B. Titel, Bearbeitungszeitpunkt, Erstellungszeitpunkt)","Reverses the sorting order.":"Kehrt die Sortierreihenfolge um.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Zeigt nur die Elemente eines bestimmten Typs oder bestimmter Typen an. Kann `n` für Notizen sein, `t` für Aufgaben, oder `nt` für Notizen und Aufgaben (z. B. zeigt `-tt` nur Aufgaben an, während `-ttd` Notizen und Aufgaben anzeigt).","Either \"text\" or \"json\"":"Entweder „text“ oder „json“","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Verwende ausführliches Listenformat. Das Format ist ID, NOTIZEN_ANZAHL (für Notizbuch), DATUM, AUFGABE_BEARBEITET (für Aufgaben), TITEL","Please select a notebook first.":"Bitte wähle erst ein Notizbuch aus.","Imports data into Joplin.":"Importiert Daten in Joplin.","Source format: %s":"Quellformat: %s","Do not ask for confirmation.":"Nicht nach einer Bestätigung fragen.","Output format: %s":"Ausgabeformat: %s","Found: %d.":"Gefunden: %d.","Created: %d.":"Erstellt: %d.","Updated: %d.":"Aktualisiert: %d.","Skipped: %d.":"Übersprungen: %d.","Resources: %d.":"Anhänge: %d.","Tagged: %d.":"Verschlagwortet: %d.","Importing notes...":"Notizen werden importiert ...","The notes have been imported: %s":"Die Notizen wurden importiert: %s","Enum":"Aufzählung","Type: %s.":"Typ: %s.","Possible values: %s.":"Mögliche Werte: %s.","Default: %s":"Standard: %s","Possible keys/values:":"Mögliche Schlüssel/Werte:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"Starte, stoppe oder überprüfe den API-Server. Um anzugeben, auf welchem Port er laufen soll, setze die Konfigurationsvariable api.port. Die Befehle lauten (%s).","Server is already running on port %d":"Server läuft bereits auf Port %d","Server is running on port %d":"Server läuft auf Port %d","Server is not running.":"Server läuft nicht.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Verwaltet die E2EE-Konfiguration. Die Befehle lauten `enable`, `disable`, `decrypt`, `status`, `decrypt-file` und `target-status`.","Enter master password:":"Master-Passwort eingeben:","Operation cancelled":"Vorgang abgebrochen","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Entschlüsselung wird gestartet ... Bitte warten, da dies je nach Umfang der zu entschlüsselnden Daten mehrere Minuten dauern kann.","Decrypted items: %d":"Entschlüsselte Objekte: %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"Übersprungene Objekte: %d (benutze --retry-failed-items um erneut eine Entschlüsselung zu versuchen)","Completed decryption.":"Entschlüsselung abgeschlossen.","Confirm password:":"Passwort bestätigen:","Passwords do not match!":"Passwörter sind nicht identisch!","Enabled":"Aktiviert","Disabled":"Deaktiviert","Encryption is: %s":"Verschlüsselung ist: %s","Creates a new notebook.":"Erstellt ein neues Notizbuch.","Moves the notes matching <note> to [notebook].":"Verschiebt die Notizen, die mit <note> übereinstimmen, zu [notebook]","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Holt oder legt einen Konfigurationswert fest. Wenn [value] nicht angegeben ist, wird der Wert von [name] angezeigt. Wenn weder [name] noch [value] angegeben sind, wird die aktuelle Konfiguration aufgelistet.","Also displays unset and hidden config variables.":"Zeigt auch nicht gesetzte und versteckte Konfigurationsvariablen an.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Wechselt zu [notebook] - alle weiteren Aktionen werden in diesem Notizbuch ausgeführt.","Synchronises with remote storage.":"Synchronisiert mit Remotespeicher.","Sync to provided target (defaults to sync.target config vLine truncated
{"OK":"OK","Cancel":"Abbrechen","The app is now going to close. Please relaunch it to complete the process.":"Die App wird nun geschlossen. Bitte starte sie erneut, um den Vorgang abzuschließen.","Type a note title or part of its content to jump to it. Or type # followed by a tag name, or @ followed by a notebook name. Or type : to search for commands.":"Gib den Titel einer Notiz oder einen Teil seines Inhalts ein, um dorthin zu springen. Oder gib # gefolgt von einem Schlagwort oder @ gefolgt vom Namen eines Notizbuchs ein. Oder gib : für eine Suche nach Kommandos ein.","Goto Anything...":"Gehe zu ...","Exporting to \"%s\" as \"%s\" format. Please wait...":"Es wird nach „%s“ im Format „%s“ exportiert. Bitte warten ...","Could not export notes: %s":"Konnte Notizen nicht exportieren: %s","Current version is up-to-date.":"Die aktuelle Version ist auf dem neuesten Stand.","%s (pre-release)":"%s (Vorabversion)","An update is available, do you want to download it now?":"Es ist eine Aktualisierung verfügbar. Soll sie jetzt heruntergeladen werden?","Your version: %s":"Deine Version: %s","New version: %s":"Neue Version: %s","Full Release Notes":"Alle Versionshinweise","Search...":"Suchen ...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"Die Notiz „%s“ wurde erfolgreich im Notizbuch „%s“ wiederhergestellt.","This note has no history":"Diese Notiz hat keinen Verlauf","Unsupported link or message: %s":"Nicht unterstützter Link oder Nachricht: %s","Restore":"Wiederherstellen","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Klicke „%s“, um die Notiz wiederherzustellen. Sie wird in das Notizbuch namens „%s“ kopiert. Die aktuelle Version der Notiz wird nicht ersetzt oder verändert.","Back":"Zurück","Remove":"Entfernen","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Notizbuch „%s“ löschen?\n\nAlle Notizen und Unter-Notizbücher in diesem Notizbuch werden ebenfalls gelöscht.","Delete":"Löschen","Remove tag \"%s\" from all notes?":"Schlagwort „%s“ von allen Notizen entfernen?","Remove this search from the sidebar?":"Diese Suche von der Seitenleiste entfernen?","Export":"Exportieren","All notes":"Alle Notizen","Synchronise":"Synchronisieren","Notebooks":"Notizbücher","Tags":"Schlagwörter","Decrypting items: %d/%d":"Entschlüsselte Objekte: %d/%d","Fetching resources: %d/%d":"Anhänge abrufen: %d/%d","Sidebar":"Seitenleiste","Focus":"Fokus","Please select where the sync status should be exported to":"Bitte wähle aus, wohin der Synchronisations-Status exportiert werden soll","Retry All":"Erneut alle versuchen","Retry":"Erneut versuchen","strong text":"fetter Text","emphasised text":"hervorgehobener Text","Insert Hyperlink":"Weblink einfügen","List item":"Listeneintrag","Layout":"Layout","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Diese Notiz hat keinen Inhalt. Klicke auf „%s“, um den Editor zu aktivieren und die Notiz zu bearbeiten.","Cut":"Ausschneiden","Copy":"Kopieren","Paste":"Einfügen","Checkbox list":"Liste mit Kontrollkästchen","Edit":"Bearbeiten","Attach file":"Datei anhängen","Code Block":"Code-Block","Inline Code":"Code im Fließtext","Insert Date Time":"Datum / Uhrzeit einfügen","Drop notes or files here":"Notizen oder Dateien hierher ziehen","Code View":"Code-Ansicht","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"Bitte warte, bis alle Anhänge heruntergeladen und entschlüsselt sind. Du kannst auch auf/zu %s wechseln, um die Notiz zu bearbeiten.","There was an error downloading this attachment:":"Es gab einen Fehler beim Herunterladen dieses Anhangs:","This attachment is not downloaded or not decrypted yet":"Dieser Anhang wurde noch nicht heruntergeladen oder entschlüsselt","Open...":"Öffnen ...","Save as...":"Speichern unter ...","Reveal file in folder":"Datei im Ordner anzeigen","Copy path to clipboard":"Pfad in Zwischenablage kopieren","Copy Link Address":"Link-Adresse kopieren","to-do":"Aufgabe","note":"Notiz","Creating new %s...":"Neue(s) %s wird erstellt ...","The following attachments are being watched for changes:":"Die folgenden Anhänge werden auf Änderungen überwacht:","The attachments will no longer be watched when you switch to a different note.":"Die Anhänge werden nicht mehr überwacht, wenn Sie zu einer anderen Notiz wechseln.","In: %s":"In: %s","Select all":"Alles auswählen","Bold":"Fett","Italic":"Kursiv","Hyperlink":"Hyperlink","Code":"Code","Numbered List":"Nummerierte Liste","Bulleted List":"Aufzählung","Checkbox":"Kontrollkästchen","Heading":"Überschrift","Horizontal Rule":"Horizontale Linie","Note title":"Notiz-Titel","Search in current note":"Aktuelle Notiz durchsuchen","Note body":"Notiz-Text","ID":"ID","Created":"Erstellt","Updated":"AktualisiLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Αντιγράφει τις σημειώσεις που ταιριάζουν με τη <note> στο [σημειωματάριο]. Εάν δεν έχει οριστεί κανένα σημειωματάριο, η σημείωση αντιγράφεται στον τρέχον.","Cannot find \"%s\".":"Δεν είναι δυνατή η εύρεση του \"%s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Εμφανίζει τις σημειώσεις στο τρέχον σημειωματάριο. Χρησιμοποιήστε το `ls /` για να εμφανίσετε τη λίστα των σημειωματάριων.","Displays only the first top <num> notes.":"Εμφανίζει μόνο τις πρώτες <num> σημειώσεις.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Ταξινόμηση του στοιχείου με <field> (π.χ. τίτλος, ώρα_ενημέρωσης, ώρα_δημιουργίας).","Reverses the sorting order.":"Αντιστρέφει τη σειρά ταξινόμησης.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Εμφανίζει μόνο τα στοιχεία του συγκεκριμένου τύπου. Μπορεί να είναι `n` για σημειώσεις, `t` για to-dos ή `nt` για σημειώσεις και to-dos (π.χ. `-tt` θα εμφανίζει μόνο τα to-dos, ενώ το `-ttd` και σημειώσεις και to-dos.","Either \"text\" or \"json\"":"Είτε \"text\" ή \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Χρησιμοποιήστε τη μορφή μακράς λίστας. Η μορφή είναι ID, NOTE_COUNT (για σημειωματάριο), DATE, TODO_CHECKED (για to-dos), TITLE","Please select a notebook first.":"Παρακαλώ επιλέξτε πρώτα σημειωματάριο.","Imports data into Joplin.":"Εισάγει δεδομένα στο Joplin.","Source format: %s":"Μορφή προέλευσης: %s","Do not ask for confirmation.":"Χωρίς να ζητείται επιβεβαίωση.","Output format: %s":"Μορφή εξόδου: %s","Found: %d.":"Βρέθηκε: %d.","Created: %d.":"Δημιουργήθηκε: %d.","Updated: %d.":"Ενημερώθηκε: %d.","Skipped: %d.":"Παραλείφθηκε: %d.","Resources: %d.":"Πόροι: %d.","Tagged: %d.":"Με ετικέτα: %d.","Importing notes...":"Εισαγωγή σημειώσεων...","The notes have been imported: %s":"Οι σημειώσεις έχουν εισαχθεί: %s","Enum":"Enum","Type: %s.":"Τύπος: %s.","Possible values: %s.":"Πιθανές τιμές: %s.","Default: %s":"Προεπιλογή: %s","Possible keys/values:":"Πιθανά πλήκτρα / τιμές:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"Ξεκινήστε, σταματήστε ή ελέγξτε τον διακομιστή API. Για να καθορίσετε σε ποια θύρα θα πρέπει να εκτελεστεί, ορίστε τη μεταβλητή api.port. Οι εντολές είναι (%s).","Server is already running on port %d":"Ο διακομιστής εκτελείται ήδη στη θύρα %d","Server is running on port %d":"Ο διακομιστής εκτελείται στη θύρα %d","Server is not running.":"Ο διακομιστής δεν εκτελείται.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Διαχειρίζεται τις ρυθμίσεις του E2EE. Οι εντολές είναι `enable`, `disable`, `decrypt`, `status`, `decrypt-file` και `target-status`.","Enter master password:":"Πληκτρολογήστε τον κωδικό πρόσβασης:","Operation cancelled":"Η λειτουργία ακυρώθηκε","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Εκκίνηση αποκρυπτογράφησης... Παρακαλώ περιμένετε καθώς μπορεί να διαρκέσει αρκετά λεπτά ανάλογα με το μέγεθος αυτών που πρέπει να αποκρυπτογραφηθούν.","Decrypted items: %d":"Αποκρυπτογραφημένα στοιχεία: %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"Στοιχεία που έχουν παραλειφθεί: %d (χρήσιμοποίησε --retry-failed-items για εLine truncated
{"OK":"Εντάξει","Cancel":"Άκυρο","Goto Anything...":"Γρήγορη Μετακίνηση...","Exporting to \"%s\" as \"%s\" format. Please wait...":"Γίνεται εξαγωγή στο \"%s\" με μορφή \"%s\". Παρακαλώ περιμένετε...","Could not export notes: %s":"Δεν ήταν δυνατή η εξαγωγή σημειώσεων: %s","Current version is up-to-date.":"Η τρέχουσα έκδοση είναι ενημερωμένη.","%s (pre-release)":"%s (pre-release)","An update is available, do you want to download it now?":"Υπάρχει διαθέσιμη μια ενημέρωση, θέλετε να την κατεβάσετε τώρα;","Your version: %s":"Η έκδοσή σου: %s","New version: %s":"Νέα έκδοση: %s","Full Release Notes":"Πλήρεις σημειώσεις έκδοσης","Search...":"Αναζήτηση...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"Η σημείωση \"%s\" έχει επαναφερθεί με επιτυχία στο σημειωματάριο \"%s\".","This note has no history":"Αυτή η σημείωση δεν έχει ιστορικό","Unsupported link or message: %s":"Μη υποστηριζόμενος σύνδεσμος ή μήνυμα: %s","Restore":"Επαναφορά","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Κάντε κλικ στο \"%s\" για να επαναφέρετε τη σημείωση. Θα αντιγραφεί στο σημειωματάριο που ονομάζεται \"%s\". Η τρέχουσα έκδοση της σημείωσης δεν αντικαθίσταται ή τροποποιείται.","Back":"Πίσω","Remove":"Κατάργηση","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Διαγραφή σημειωματάριου \"%s\";\n\nΌλες οι σημειώσεις και τα υπο-σημειωματάρια που περιέχει θα διαγραφούν επίσης.","Delete":"Διαγραφή","Remove tag \"%s\" from all notes?":"Κατάργηση της ετικέτας \"%s\" από όλες τις σημειώσεις;","Remove this search from the sidebar?":"Κατάργηση αυτής της αναζήτησης από την πλευρική μπάρα;","Export":"Εξαγωγή","All notes":"Όλες οι σημειώσεις","Synchronise":"Συγχρονισμός","Notebooks":"Σημειωματάρια","Tags":"Ετικέτες","Decrypting items: %d/%d":"Αποκρυπτογράφηση αντικειμένων: %d/%d","Fetching resources: %d/%d":"Λήψη πόρων: %d/%d","Sidebar":"Πλευρική μπάρα","Focus":"Εστίαση σε","Please select where the sync status should be exported to":"Επιλέξτε την τοποθεσία στην οποία θα εξαχθεί η κατάσταση του συγχρονισμού","Retry All":"Δοκιμή ξανά για Όλα","Retry":"Δοκιμή ξανά","strong text":"έντονη γραφή","emphasised text":"κείμενο με έμφαση","Insert Hyperlink":"Εισαγωγή υπερσύνδεσης","List item":"Στοιχείο λίστας","Layout":"Διάταξη","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Αυτή η σημείωση δεν περιέχει περιεχόμενο. Κάντε κλικ στο \"%s\" για να επεξεργαστείτε τη σημείωση στον editor.","Cut":"Αποκοπή","Copy":"Αντιγραφή","Paste":"Επικόλληση","Checkbox list":"Λίστα πλαισίων ελέγχου","Edit":"Επεξεργασία","Attach file":"Επισύναψη αρχείου","Code Block":"Μπλοκ Κώδικα","Inline Code":"Ενσωματωμένος κώδικας","Insert Date Time":"Εισαγωγή Ημερομηνίας Ώρας","Drop notes or files here":"Απόθεση σημειώσεων ή αρχείων εδώ","Code View":"Προβολή κώδικα","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"Παρακαλώ περιμένετε να γίνει λήψη και αποκρυπτογράφηση όλων των συνημμένων. Μπορείτε επίσης να μεταβείτε στο %s για να επεξεργαστείτε τη σημείωση.","There was an error downloading this attachment:":"Παρουσιάστηκε σφάλμα κατά τη λήψη αυτού του συνημμένου:","This attachment is not downloaded or not decrypted yet":"Αυτό το συνημμένο δεν έχει ακόμη μεταφορτωθεί ή αποκρυπτογραφηθεί","Open...":"Άνοιγμα...","Save as...":"Αποθήκευση ως...","Reveal file in folder":"Αποκάλυψη αρχLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Synchronises with remote storage.":"Synchronizes with remote storage.","To allow Joplin to synchronise with Dropbox, please follow the steps below:":"To allow Joplin to synchronize with Dropbox, please follow the steps below:","Step 1: Open this URL in your browser to authorise the application:":"Step 1: Open this URL in your browser to authorize the application:","Not authentified with %s. Please provide any missing credentials.":"Not authenticated with %s. Please provide any missing credentials.","Synchronisation is already in progress.":"Synchronization is already in progress.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Lock file is already being held. If you know that no synchronization is taking place, you may delete the lock file at \"%s\" and resume the operation.","Synchronisation target: %s (%s)":"Synchronization target: %s (%s)","Cannot initialise synchroniser.":"Cannot initialize synchronizer.","Starting synchronisation...":"Starting synchronization...","For information on how to customise the shortcuts please visit %s":"For information on how to customize the shortcuts please visit %s","To maximise/minimise the console, press \"tc\".":"To maximize/minimize the console, press \"tc\".","Cancelling background synchronisation... Please wait.":"Cancelling background synchronization... Please wait.","Synchronise":"Synchronize","emphasised text":"emphasized text","Some items cannot be synchronised.":"Some items cannot be synchronized.","Some items cannot be decrypted.":"Some items cannot be synchronized.","Authorisation token:":"Authorization token:","This authorisation token is only needed to allow third-party applications to access Joplin.":"This authorization token is only needed to allow third-party applications to access Joplin.","Synchronisation Status":"Synchronization Status","In order to do so, your entire data set will have to be encrypted and synchronised, so it is best to run it overnight.\n\nTo start, please follow these instructions:\n\n1. Synchronise all your devices.\n2. Click \"%s\".\n3. Let it run to completion. While it runs, avoid changing any note on your other devices, to avoid conflicts.\n4. Once sync is done on this device, sync all your other devices and let it run to completion.\n\nImportant: you only need to run this ONCE on one device.":"In order to do so, your entire data set will have to be encrypted and synchronized, so it is best to run it overnight.\n\nTo start, please follow these instructions:\n\n1. Synchronize all your devices.\n2. Click \"%s\".\n3. Let it run to completion. While it runs, avoid changing any note on your other devices, to avoid conflicts.\n4. Once sync is done on this device, sync all your other devices and let it run to completion.\n\nImportant: you only need to run this ONCE on one device.","Check synchronisation configuration":"Check synchronization configuration","Search in all the notes":"Search in all notes","Synchronising...":"Synchronizing...","The application has been authorised - you may now close this browser tab.":"The application has been authorized - you may now close this browser tab.","The application has been successfully authorised.":"The application has been successfully authorized.","Solarised Light":"Solarized Light","Solarised Dark":"Solarized Dark","Synchronisation target":"Synchronization target","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"The target to synchonize to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).","Directory to synchronise with (absolute path)":"Directory to synchronize with (absolute path)","Attachment download behaviour":"Attachment download behavior","This will allow Joplin to run in the background. It is recommended to enable this setting so that your notes are constantly being synchronised, thus reducing the number of conflicts.":"This will allow Joplin to run in the background. It is recommended to enable this setting so that your notes are constantly being synchronized, thus reducing the number of conflicts.","Start application minimised in the tray icon":"Start application minimized in the tray icon","Synchronisation interval":"Synchronization interval","Comma-separated list of paths to directories to load the certificates from, or path to individual cert files. For example: /my/cert_dir, /other/custom.pem. Note that if you make changes to the TLS settings, you must save your changes before clicking on \"Check synchronisation configuration\".":"Comma-separated list of paths to directories to load the certificates from, or path to individual cert files. For example: /my/cert_dir, /other/custom.pem. Note that if you make changes to the TLS settings, you must save your changes before clicking on \"Check synchronization configuration\".","SyLine truncated
{"Synchronise":"Synchronize","emphasised text":"emphasized text","Some items cannot be synchronised.":"Some items cannot be synchronized.","Some items cannot be decrypted.":"Some items cannot be synchronized.","To allow Joplin to synchronise with Dropbox, please follow the steps below:":"To allow Joplin to synchronize with Dropbox, please follow the steps below:","Step 1: Open this URL in your browser to authorise the application:":"Step 1: Open this URL in your browser to authorize the application:","Authorisation token:":"Authorization token:","This authorisation token is only needed to allow third-party applications to access Joplin.":"This authorization token is only needed to allow third-party applications to access Joplin.","Synchronisation Status":"Synchronization Status","In order to do so, your entire data set will have to be encrypted and synchronised, so it is best to run it overnight.\n\nTo start, please follow these instructions:\n\n1. Synchronise all your devices.\n2. Click \"%s\".\n3. Let it run to completion. While it runs, avoid changing any note on your other devices, to avoid conflicts.\n4. Once sync is done on this device, sync all your other devices and let it run to completion.\n\nImportant: you only need to run this ONCE on one device.":"In order to do so, your entire data set will have to be encrypted and synchronized, so it is best to run it overnight.\n\nTo start, please follow these instructions:\n\n1. Synchronize all your devices.\n2. Click \"%s\".\n3. Let it run to completion. While it runs, avoid changing any note on your other devices, to avoid conflicts.\n4. Once sync is done on this device, sync all your other devices and let it run to completion.\n\nImportant: you only need to run this ONCE on one device.","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Disabling encryption means *all* your notes and attachments are going to be re-synchronized and sent unencrypted to the sync target. Do you wish to continue?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Enabling encryption means *all* your notes and attachments are going to be re-synchronized and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronization.","Check synchronisation configuration":"Check synchronization configuration","Search in all the notes":"Search in all notes","Synchronising...":"Synchronizing...","In order to use file system synchronisation your permission to write to external storage is required.":"In order to use file system synchronization your permission to write to external storage is required.","- Storage: to allow attaching files to notes and to enable filesystem synchronisation.":"- Storage: to allow attaching files to notes and to enable filesystem synchronization.","The application has been authorised - you may now close this browser tab.":"The application has been authorized - you may now close this browser tab.","The application has been successfully authorised.":"The application has been successfully authorized.","Solarised Light":"Solarized Light","Solarised Dark":"Solarized Dark","Synchronisation target":"Synchronization target","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"The target to synchonize to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).","Directory to synchronise with (absolute path)":"Directory to synchronize with (absolute path)","Attachment download behaviour":"Attachment download behavior","This will allow Joplin to run in the background. It is recommended to enable this setting so that your notes are constantly being synchronised, thus reducing the number of conflicts.":"This will allow Joplin to run in the background. It is recommended to enable this setting so that your notes are constantly being synchronized, thus reducing the number of conflicts.","Start application minimised in the tray icon":"Start application minimized in the tray icon","Synchronisation interval":"Synchronization interval","Comma-separated list of paths to directorLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Cannot find \"%s\".":"Ne eblas trovi \"%s\".","Either \"text\" or \"json\"":"Aŭ \"teksto\" aŭ \"json\"","Please select a notebook first.":"Bonvolu elekti noton unue.","Source format: %s":"Fonta aranĝo: %s","Do not ask for confirmation.":"Ne demandi pri konfirmo.","Found: %d.":"Trovita: %d.","Created: %d.":"Kreita: %d.","Updated: %d.":"Ĝisdatigita: %d.","Importing notes...":"Importante notojn...","The notes have been imported: %s":"La notoj estis importitaj: %s","Type: %s.":"Tipo: %s.","Possible values: %s.":"Eblaj valoroj: %s.","Default: %s":"Defaŭlto: %s","Possible keys/values:":"Eblaj valoroj/klavoj:","Enter master password:":"Entajpu ĉefan pasvorton:","Operation cancelled":"Operacio nuligita","Confirm password:":"Konfirmi pasvorton:","Passwords do not match!":"Pasvorto ne kongruas!","Enabled":"Ebligita","Disabled":"Malebligita","Creates a new notebook.":"Kreas novan notlibron.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Downloading resources...":"Elŝutante risurcojn...","Deletes the notebook without asking for confirmation.":"Forigi la notlibron sen peti konfirmon.","Creates a new to-do.":"Kreas novan taskon.","Notes can only be created within a notebook.":"Nur eblas krei notojn ene de notlibro.","Edit note.":"Redakti noton.","No active notebook.":"Ne estas aktiva notlibro.","Note does not exist: \"%s\". Create it?":"Noto ne ekzistas: \"%s\". Ĉu krei ĝin?","Delete note?":"Ĉu forigi noton?","%s %s (%s)":"%s %s (%s)","Creates a new note.":"Kreas novan noton.","Fatal error:":"Neriparebla eraro:","Search:":"Serĉi:","%s: %s":"%s: %s","Your choice: ":"Via elekto: ","Invalid answer: %s":"Malvalida respondo: %s","Y":"J","n":"n","The possible commands are:":"Eblaj komandoj estas:","Exits the application.":"Eliri la aplikaĵon.","No notebook selected.":"Neniu notlibro elektita.","N":"N","y":"j","Invalid command: \"%s\"":"Malvalida komando: \"%s\"","Marks a to-do as done.":"Marki taskon kiel farita.","Note is not a to-do: \"%s\"":"Noto ne estas tasko: \"%s\"","OK":"Bone","Cancel":"Nuligi","%s (pre-release)":"%s (antaŭeldono)","Your version: %s":"Via versio: %s","New version: %s":"Nova versio: %s","Search...":"Serĉi...","This note has no history":"Tiu noto ne havas historion","Restore":"Restaŭri","Back":"Reen","Remove":"Forigi","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Forigi notlibron \"%s\"?\n\nĈiuj notoj kaj subnotlibroj ene de tiu notlibro estos ankaŭ forigitaj.","Delete":"Forigi","Remove tag \"%s\" from all notes?":"Forigi etikedon \"%s\" el ĉiuj notoj?","Remove this search from the sidebar?":"Forigi tiun sercôn el la flankpanelo?","Export":"Eksporti","Synchronise":"Sinkronigi","All notes":"Ĉiuj notoj","Notebooks":"Notlibroj","Tags":"Etikedoj","Focus":"Fokusi","Retry":"Reprovi","Cut":"Eltondi","Copy":"Kopii","Paste":"Alglui","Layout":"Aspektigo","Edit":"Redakti","Attach file":"Aldoni dosieron","Open...":"Malfermi...","Save as...":"Konservi kiel...","to-do":"tasko","note":"noto","Creating new %s...":"Kreante novan %s...","In: %s":"En: %s","Select all":"Elekti ĉiujn","Bold":"Grasa","Italic":"Kursiva","Hyperlink":"Hiperligilo","Code":"Kodo","Checkbox":"Markobutono","ID":"Identigilo","Created":"Kreita","Updated":"Ĝisdatigita","Location":"Loko","URL":"URL","Note History":"Nota Historio","Markup":"Markado","Note properties":"Notaj atributoj","Import":"Importi","Quit":"Eliri","Website and documentation":"Retejo kaj dokumentado","Close Window":"Fermi Fenestron","Options":"Opcioj","Save":"Konservi","View them now":"Vidi ilin nun","Set the password":"Elekti pasvorton","Rename":"Renomi","Rename notebook:":"Renomi notlibron:","New to-do":"Nova tasko","PDF File":"PDF-dosiero","New note":"Nova noto","Rename tag:":"Renomi etikedon:","New notebook":"Nova notlibro","Notebook title:":"Notlibra titolo:","New sub-notebook":"Nova subnotlibro","Template file:":"Modela dosiero:","Add or remove tags:":"Aldoni aŭ forigi etikedojn:","Submit":"Submeti","Status: %s":"Stato: %s","Advanced options":"Altnivelaj opcioj","Copy token":"Kopii ĵetonon","OneDrive Login":"OneDrive-salutnomo","Dropbox Login":"Dropbox-salutnomo","&File":"&Dosiero","About Joplin":"Pri Joplin","Preferences...":"Preferoj...","Check for updates...":"Kontrolu ĝisdatigojn...","Templates":"Modeloj","Hide %s":"Kaŝi %s","&Edit":"&Redakti","&View":"&Monti","&Tools":"&Ilaro","&Help":"&Helpo","Joplin Forum":"Joplin-forumo","Get it now:":"Akiri ĝin nun:","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nova notlibro \"%s\" estos kreita kaj dosiero \"%s\" estos importita al ĝi","Sort notes by":"Ordigi notojn laŭ","No notes in here. Create one by clicking on \"New note\".":"Neniu noto ĉi tie. Por krei noton, alklaku \"Nova noto\".","Duplicate":"Duobligi","%s - Copy":"%s - Kopii","Switch between note and to-do type":"Ŝalti inter nota kaj taska tipo","Switch to note type":"Ŝalti al nota tipo","Switch to to-do type":"Ŝalti al taska tipo","Delete note \"%Line truncated
{"OK":"Bone","Cancel":"Nuligi","%s (pre-release)":"%s (antaŭeldono)","Your version: %s":"Via versio: %s","New version: %s":"Nova versio: %s","Search...":"Serĉi...","This note has no history":"Tiu noto ne havas historion","Restore":"Restaŭri","Back":"Reen","Remove":"Forigi","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Forigi notlibron \"%s\"?\n\nĈiuj notoj kaj subnotlibroj ene de tiu notlibro estos ankaŭ forigitaj.","Delete":"Forigi","Remove tag \"%s\" from all notes?":"Forigi etikedon \"%s\" el ĉiuj notoj?","Remove this search from the sidebar?":"Forigi tiun sercôn el la flankpanelo?","Export":"Eksporti","All notes":"Ĉiuj notoj","Synchronise":"Sinkronigi","Notebooks":"Notlibroj","Tags":"Etikedoj","Focus":"Fokusi","Retry":"Reprovi","Layout":"Aspektigo","Cut":"Eltondi","Copy":"Kopii","Paste":"Alglui","Edit":"Redakti","Attach file":"Aldoni dosieron","Open...":"Malfermi...","Save as...":"Konservi kiel...","to-do":"tasko","note":"noto","Creating new %s...":"Kreante novan %s...","In: %s":"En: %s","Select all":"Elekti ĉiujn","Bold":"Grasa","Italic":"Kursiva","Hyperlink":"Hiperligilo","Code":"Kodo","Checkbox":"Markobutono","ID":"Identigilo","Created":"Kreita","Updated":"Ĝisdatigita","Location":"Loko","URL":"URL","Note History":"Nota Historio","Markup":"Markado","Note properties":"Notaj atributoj","Disabled":"Malebligita","Import":"Importi","Quit":"Eliri","Website and documentation":"Retejo kaj dokumentado","Close Window":"Fermi Fenestron","Options":"Opcioj","Save":"Konservi","View them now":"Vidi ilin nun","Set the password":"Elekti pasvorton","Rename":"Renomi","Rename notebook:":"Renomi notlibron:","New to-do":"Nova tasko","PDF File":"PDF-dosiero","New note":"Nova noto","Rename tag:":"Renomi etikedon:","New notebook":"Nova notlibro","Notebook title:":"Notlibra titolo:","New sub-notebook":"Nova subnotlibro","Template file:":"Modela dosiero:","Add or remove tags:":"Aldoni aŭ forigi etikedojn:","Submit":"Submeti","Status: %s":"Stato: %s","Advanced options":"Altnivelaj opcioj","Copy token":"Kopii ĵetonon","&File":"&Dosiero","About Joplin":"Pri Joplin","Preferences...":"Preferoj...","Check for updates...":"Kontrolu ĝisdatigojn...","Templates":"Modeloj","Hide %s":"Kaŝi %s","&Edit":"&Redakti","&View":"&Monti","&Tools":"&Ilaro","&Help":"&Helpo","Joplin Forum":"Joplin-forumo","Get it now:":"Akiri ĝin nun:","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nova notlibro \"%s\" estos kreita kaj dosiero \"%s\" estos importita al ĝi","Found: %d.":"Trovita: %d.","Created: %d.":"Kreita: %d.","Updated: %d.":"Ĝisdatigita: %d.","The notes have been imported: %s":"La notoj estis importitaj: %s","Duplicate":"Duobligi","%s - Copy":"%s - Kopii","Switch between note and to-do type":"Ŝalti inter nota kaj taska tipo","Switch to note type":"Ŝalti al nota tipo","Switch to to-do type":"Ŝalti al taska tipo","Delete note \"%s\"?":"Forigi noton \"%s\"?","Delete these %d notes?":"Forigi tiujn %d notojn?","Master Keys":"Ĉefaj Klavoj","Active":"Aktiva","Source":"Fonto","Password":"Pasvorto","Password OK":"Pasvorto bone","Status":"Stato","Enabled":"Ebligita","OneDrive Login":"OneDrive-salutnomo","Dropbox Login":"Dropbox-salutnomo","Browse...":"Esplori...","Apply":"Apliki","Clear":"Klariĝi","Sort notes by":"Ordigi notojn laŭ","No notes in here. Create one by clicking on \"New note\".":"Neniu noto ĉi tie. Por krei noton, alklaku \"Nova noto\".","Search in all the notes":"Ŝerci en ĉiuj notoj","Untitled":"Sen titolo","Open %s":"Malfermi %s","Yes":"Jes","No":"Ne","Clear alarm":"Forigi alarmon","Save alarm":"Konservi alarmon","Share":"Konigi","Permission to use camera":"Permeso por uzi kameraon","Delete these notes?":"Forigi tiujn notojn?","Notebook: %s":"Notlibro: %s","New Notebook":"Nova notlibro","Configuration":"Agordoj","Create a notebook":"Krei notlibron","Edit notebook":"Redakti notlibron","Enter notebook title":"Entajpu notlibron titolon","Login with OneDrive":"Ensaluti per OneDrive","Refresh":"Aktualigi","New tags:":"Novaj etikedoj:","Type new tags or select from list":"Tajpu novan etikedon aŭ elektu el la listo","Login with Dropbox":"Ensaluti per Dropbox","Enter code here":"Entajpu kodon ĉi tie","Master Key %s":"Ĉefa Klavo %s","Created: %s":"Kreita: %s","Password:":"Pasvorto:","Password cannot be empty":"Pasvorto ne eblas esti malplena","Confirm password cannot be empty":"Konfimi pasvorton ne eblas esti malplena","Passwords do not match!":"Pasvorto ne kongruas!","Confirm password:":"Konfirmi pasvorton:","Enable":"Ebligi","Warning":"Averto","Tools":"Ilaro","Log":"Protokolo","More information":"Pli da informoj","Joplin website":"Joplin-retejo","This note has been modified:":"Tiu noto estis ŝanĝita:","Save changes":"Konservi la ŝanĝojn","Delete note?":"Ĉu forigi noton?","Unsupported image type: %s":"Nesubtenata bilda tipo: %s","Updated: %s":"Ĝisdatigita: %s","View on map":"Vidi en mapo","Go to source URL":"Iri al URL-fonto","AtLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica las notas que coincidan con <note> en la libreta. Si no se especifica una libreta la nota se duplica en la libreta actual.","Cannot find \"%s\".":"No se puede encontrar «%s».","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Muestra las notas en la libreta actual. Usa `ls /` para mostrar la lista de libretas.","Displays only the first top <num> notes.":"Muestra las primeras <num> notas.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Ordena los elementos por campo ( ej. title, updated_time, created_time).","Reverses the sorting order.":"Invierte el orden.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Muestra únicamente los elementos de los tipos especificados. Pueden ser `n` para notas, `t` para tareas, o `nt` para libretas y tareas (ej. `-tt` mostrará unicamente las tareas, mientras `-ttd` mostrará notas y tareas).","Either \"text\" or \"json\"":"Puede ser «text» o «json»","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usar formato largo de lista. El formato es ID, NOTE_COUNT ( para libretas), DATE,TODO_CHECKED ( para tareas), TITLE","Please select a notebook first.":"Por favor seleccione la libreta.","Imports data into Joplin.":"Importa los datos en Joplin.","Source format: %s":"Formato de origen: %s","Do not ask for confirmation.":"No requiere confirmación.","Output format: %s":"Formato de destino: %s","Found: %d.":"Encontrado: %d.","Created: %d.":"Creado: %d.","Updated: %d.":"Actualizado: %d.","Skipped: %d.":"Omitido: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Etiquetado: %d.","Importing notes...":"Importando notas...","The notes have been imported: %s":"Las notas han sido importadas: %s","Enum":"Enumeración","Type: %s.":"Tipo: %s.","Possible values: %s.":"Posibles valores: %s.","Default: %s":"Por defecto: %s","Possible keys/values:":"Claves/valores posbiles:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"Inicie, pare o compruebe el servidor API. Para especificar el puerto que debe ejecutarse use api.port como variable en la configuración. Los comandos son (%s).","Server is already running on port %d":"El servidor ya esta iniciado en el puerto %d","Server is running on port %d":"El servidor se está ejecutando en el puerto %d","Server is not running.":"El servidor no se está ejecutando.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Gestiona la configuración E2EE. Los comandos disponibles son: `enable`, `disable`, `decrypt`, `status`, `decrypt-file` y `target-status`.","Enter master password:":"Introduzca la contraseña maestra:","Operation cancelled":"Operación cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando descifrado... Por favor espere, puede tardar varios minutos dependiendo de cuanto haya que descifrar.","Decrypted items: %d":"Elementos descifrados: %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"Elementos omitidos: %d (use --retry-failed-items para intentar descifrarlos nuevamente)","Completed decryption.":"Descifrado completado.","Confirm password:":"Confirma la contraseña:","Passwords do not match!":"¡Las contraseñas no coinciden!","Enabled":"Habilitado","Disabled":"Deshabilitado","Encryption is: %s":"El cifrado es: %s","Creates a new notebook.":"Crea una nueva libreta.","Moves the notes matching <note> to [notebook].":"Mueve las notas que coincidan con <note> a la [libreta].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtener o configurar un valor. Si no se provee el [valor], se mostrará el valor de [nombre]. Si no se provee [nombre] ni [valor], se listará la configuración actual.","Also displays unset and hidden config variables.":"También muestra variables ocultas o no configuradas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Cambia una [libreta] - todas las demás operaciones se realizan en ésta libreta.","Synchronises with remote storage.":"Sincroniza con el almacenamiento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincroniza con el destino indicado (por defecto al valor de configuración sync.target)","Upgrade the sync target to the latest version.":"Actualiza el objetivo de sincronización a la última versión."Line truncated
{"OK":"OK","Cancel":"Cancelar","The app is now going to close. Please relaunch it to complete the process.":"La aplicación se va a cerrar. Por favor, vuelva a iniciarla para completar el proceso.","Goto Anything...":"Ir a...","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportando el formato de «%s» a «%s». Por favor espere...","Could not export notes: %s":"No se pudo exportar las notas: %s","Current version is up-to-date.":"La versión actual está actualizada.","%s (pre-release)":"%s (prelanzamiento)","An update is available, do you want to download it now?":"Hay disponible una actualización. ¿Quiere descargarla ahora?","Your version: %s":"Tu versión: %s","New version: %s":"Nueva versión: %s","Full Release Notes":"Notas completas de la versión","Search...":"Buscar...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"La nota «%s» se ha restaurado correctamente en la libreta «%s».","This note has no history":"Esta nota no dispone de historial","Unsupported link or message: %s":"Enlace o mensaje no soportado: %s","Restore":"Restaurar","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Pulse «%s» para restaurar la nota. Se copiará en la libreta «%s». La versión actual de la nota no se reemplazará ni se modificará.","Back":"Atrás","Remove":"Eliminar","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Borrar Libreta «%s»?\n\nTodas las notas y sublibretas de esta libreta serán borradas.","Delete":"Eliminar","Remove tag \"%s\" from all notes?":"Desea borrar las etiquetas pertenecientes a «%s» de todas las notas?","Remove this search from the sidebar?":"¿Desea eliminar esta búsqueda de la barra lateral?","Export":"Exportar","All notes":"Todas las notas","Synchronise":"Sincronizar","Notebooks":"Libretas","Tags":"Etiquetas","Decrypting items: %d/%d":"Descifrando elementos: %d/%d","Fetching resources: %d/%d":"Obteniendo recursos: %d/%d","Sidebar":"Barra lateral","Focus":"Foco","Please select where the sync status should be exported to":"Seleccione a dónde se debería exportar el estado de sincronización","Retry All":"Reintentar todos","Retry":"Reintento","strong text":"texto destacado","emphasised text":"texto resaltado","Insert Hyperlink":"Insertar hipervínculo","List item":"Listar elementos","Layout":"Diseño","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota no tiene contenido. Pulse en «%s» para cambiar al editor y editar la nota.","Cut":"Cortar","Copy":"Copiar","Paste":"Pegar","Checkbox list":"Casilla","Edit":"Editar","Attach file":"Adjuntar archivo","Code Block":"Bloque de Código","Inline Code":"Código Integrado","Insert Date Time":"Introduce fecha","Drop notes or files here":"Suelta notas o archivos aquí","Code View":"Código","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"Por favor espere a que todos los adjuntos hayan sido descargados y descifrados. Puede también cambiar a %s para editar la nota.","There was an error downloading this attachment:":"Ha habido un error descargando este adjunto:","This attachment is not downloaded or not decrypted yet":"Este adjunto no ha sido descargado o descifrado todavía","Open...":"Abrir...","Save as...":"Guardar como...","Reveal file in folder":"Mostrar archivo en directorio","Copy path to clipboard":"Copiar la ruta en el portapapeles","Copy Link Address":"Copiar enlace","to-do":"lista de tareas","note":"nota","Creating new %s...":"Creando nuevo %s...","The following attachments are being watched for changes:":"Los siguientes adjuntos están siendo vigilados para ver si hay cambios:","The attachments will no longer be watched when you switch to a different note.":"Los archivos adjuntos ya no se verán cuándo cambies a una nota diferente.","In: %s":"En: %s","Select all":"Seleccionar todo","Bold":"Negrita","Italic":"Cursiva","Hyperlink":"Hipervínculo","Code":"Código","Numbered List":"Lista numerada","Bulleted List":"Lista con viñetas","Checkbox":"Casilla","Heading":"Título","Horizontal Rule":"Regla horizontal","Note title":"Titulo de nota","Search in current note":"Buscar en nota actual","Note body":"Cuerpo de nota","ID":"ID","Created":"Creado","Updated":"Actualizado","Completed":"Completado","Location":"Localización","URL":"URL","Note History":"Historial\n de notas","Markup":"Aumento","Previous versions of this note":"Versiones anteriores de esta nota","Note properties":"Propiedades de nota","Error: %s":"Error: %s","Disabled":"Deshabilitado","Import":"Importar","Command":"Comando","Keyboard Shortcut":"Atajo de teclado","Quit":"Salir","Insert template":"Insertar plantilla","Actual Size":"Tamaño actual","Website and documentation":"Sitio web y documentación","Hide Joplin":"Ocultar Joplin","Close Window":"Cerrar Ventana","Preferences":"PreLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Kopeerib märkmed, mis vastavad märkusele <note> ja [notebook]. Kui ühtegi märkmikku pole täpsustatud, dubleeritakse see praeguses märkmikus.","Cannot find \"%s\".":"Ei leia \" %s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Kuvab märkmed praeguses märkmikus. Kasutage märkmike loendi kuvamiseks ' ls /'.","Displays only the first top <num> notes.":"Kuvab ainult esimesed <num> märkmed.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Sordib üksuse järgi <field> (nt pealkiri, uuendatud_aeg, loodud_aeg).","Reverses the sorting order.":"Pöörab sorteerimis järjestuse ümber.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Kuvab ainult konkreetset tüüpi tüübid. Võib olla `n` märkmete jaoks, `t` ülesannete jaoks või `nt` märkmete ja ülesannete jaoks (nt `-tt` kuvaks ainult ülesandeid, `-ttd` aga märkmeid ja ülesanded.","Either \"text\" or \"json\"":"Kas \"tekst\" või \"JSON\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Kasutage pikka nimekirja vormingut. ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE","Please select a notebook first.":"Palun valige esmalt märkmik.","Imports data into Joplin.":"Impordib andmed Joplini.","Source format: %s":"Allika Formaat: %s","Do not ask for confirmation.":"Ära küsi kinnitust.","Found: %d.":"Leitud: %d.","Created: %d.":"Loodud: %d.","Updated: %d.":"Värskendatud: %d.","Skipped: %d.":"Vahele jäetud: %d.","Resources: %d.":"Ressursid: %d.","Tagged: %d.":"Sildistatud: %d.","Importing notes...":"Märkmete importimine...","The notes have been imported: %s":"Märkmed on imporditud: %s","Type: %s.":"Tüüp: %s.","Possible values: %s.":"Võimalikud väärtused: %s.","Default: %s":"Default: %s","Possible keys/values:":"Võimalikud klahvid/väärtused:","Server is already running on port %d":"Server töötab juba pordis %d","Server is running on port %d":"Serveris töötab port %d","Server is not running.":"Server ei tööta.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Haldab E2EE konfigureerimist. Käsud on `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.","Enter master password:":"Sisestage põhiparool:","Operation cancelled":"Toiming tühistati","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Dekrüpteerimise käivitamine... Palun oodake. See võib võtta mitu minutit sõltuvalt sellest, kui palju on dekrüpteerida.","Completed decryption.":"Dekrüpteerimine on lõpetatud.","Confirm password:":"Kinnitage parool:","Passwords do not match!":"Paroolid ei kattu!","Enabled":"Lubatud","Disabled":"Keelatud","Encryption is: %s":"Krüpteerimine on: %s","Creates a new notebook.":"Loob uue märkmiku.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Saab või seab seadistusväärtuse. Kui väärtust [value] ei ole esitatud, näitab see [name] väärtust. Kui ei ole esitatud [name] ega [value], loetatakse praegune konfiguratsioon.","Also displays unset and hidden config variables.":"Kuvab ka seatud ja peidetud konfiguratsioonimuutujad.","%s = %s (%s)":"%s = %s ( %s)","%s = %s":"%s = %s","Synchronisation is already in progress.":"Sünkroniseerimine on juba teoksil.","Starting synchronisation...":"Sünkroonimise käivitamine...","Downloading resources...":"Ressursside allalaadimine...","Renames the given <item> (note or notebook) to <name>.":"Nimetab antud <item> (Märkus või märkmik) <name>.","Deletes the given notebook.":"Kustutab antud märkmiku.","Creates a new to-do.":"Loob uue tee.","Notes can only be created within a notebook.":"Märkmeid saab luua ainult märkmiku sees.","Displays the given note.":"Kuvab antud märkme.","Displays the complete information about note.":"Kuvatakse märkme kohta täielik teave.","Edit note.":"Redigeeri märkust.","No text editor is defined. Please set it using `config editor <editor-path>`":"Tekstiredaktorit pole määratletud. Seadistage see kasutades konfiguratsiooniredaktorit <editor-path>","No active notebook.":"Aktiivset märkmikku pole.","Note does not exist: \"%s\". Create it?":"Märget pole olemas: \"%s\". Kas luua?","To delete a tag, untag the associated notes.":"Sildi kustutamiseks eemaldage märkmed seotud silt.","Please select the note or notebook to be deleted first.":"Valige esmalt kustutatav märkus või märkmik.","Press Ctrl+D or type \"exit\" to exit the application":"RakendusestLine truncated
{"OK":"OK","Cancel":"Tühista","Current version is up-to-date.":"Praegune versioon on ajakohane.","%s (pre-release)":"%s (väljalaske-eelne)","An update is available, do you want to download it now?":"Saadaval on värskendus, kas soovite selle kohe alla laadida?","Your version: %s":"Teie versioon: %s","New version: %s":"Uus versioon: %s","Full Release Notes":"Täielikud väljalaskemärkmed","Search...":"Otsi...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"Märkus \"%s\" on märkmikku \"%s\" edukalt taastatud.","This note has no history":"Sellel märkel pole ajalugu","Unsupported link or message: %s":"Toetuseta link või sõnum: %s","Restore":"Taasta","Back":"Tagasi","Remove":"Eemalda","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Kas soovite märkmiku \"%s\"?\n\nKustutatakse ka kõik selle märkmiku märkmed ja alammärkmikud.","Delete":"Kustuta","Remove tag \"%s\" from all notes?":"Kas eemaldada silt \"%s\" kõigist märkmetest?","Remove this search from the sidebar?":"Kas soovite selle otsingu külgribalt eemaldada?","Export":"Eksport","All notes":"Kõik märkmed","Synchronise":"Sünkroniseeri","Notebooks":"Sülearvutid","Tags":"Sildid","Decrypting items: %d/%d":"Üksuste dekrüpteerimine: %d/%d","Fetching resources: %d/%d":"Ressursside toomine: %d/%d","Focus":"Fookus","Please select where the sync status should be exported to":"Palun valige, kus sünkroonimise olekut tuleks eksportida","Retry":"Uuesti","Insert Hyperlink":"Lisa hüperlink","Layout":"Paigutus","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Sellel märkel pole sisu. Klõpsake \" %s\" redaktori vahetamiseks ja märkme redigeerimiseks.","Cut":"Lõika","Copy":"Kopeeri","Paste":"Kleebi","Edit":"Muuda","Attach file":"Manusta fail","Insert Date Time":"Lisa kuupäev kellaaeg","There was an error downloading this attachment:":"Selle manuse allalaadimisel ilmnes tõrge:","This attachment is not downloaded or not decrypted yet":"Seda manust ei laadita alla või pole veel dekrüpteeritud","Open...":"Avatud...","Save as...":"Salvesta kui...","Copy path to clipboard":"Kopeeri tee lõikelauale","Copy Link Address":"Kopeeri lingi aadress","to-do":"ülesande nimekiri","note":"paberraha","Creating new %s...":"Uue %s loomine...","In: %s":"Asukoht: %s","Select all":"Vali kõik","Bold":"Paks","Italic":"Kald","Hyperlink":"Hüperlink","Code":"Kood","Numbered List":"Nummerdatud loend","Bulleted List":"Täpp-loend","Checkbox":"Märkekast","Heading":"Pealkiri","Search in current note":"Otsi praeguses märkuses","ID":"ID","Created":"Loodud","Updated":"Uuendatud","Completed":"Lõpetatud","Location":"Asukoht","URL":"URL","Note History":"Märkmete ajalugu","Previous versions of this note":"Selle märkme eelmised versioonid","Note properties":"Märkme atribuudid","Disabled":"Keelatud","Import":"Impordi","Quit":"Lõpeta","Website and documentation":"Veebileht ja dokumentatsioon","Close Window":"Sule aken","Options":"Valikud","Save":"Salvesta","Some items cannot be synchronised.":"Mõnda üksust ei saa sünkroonida.","View them now":"Vaata neid nüüd","One or more master keys need a password.":"Üks või mitu Põhivõtit vajavad parooli.","Set the password":"Parooli seadmine","Rename":"Nimeta ümber","Rename notebook:":"Märkmiku ümbernimetamine:","Toggle note list":"Lülita märkuseloend sisse/välja","Toggle sidebar":"Lülita külgriba sisse/välja","Set alarm":"Alarmi seadmine","Set alarm:":"Alarmi seadmine:","PDF File":"PDF-fail","New note":"Uus Märkus","Toggle editor layout":"Lülita redaktori paigutus sisse/välja","Rename tag:":"Nimeta silt ümber:","New notebook":"Uus märkmik","Notebook title:":"Märkmiku tiitel:","Share note...":"Jaga märkust...","New sub-notebook":"Uus alammärkmik","Template file:":"Mallifail:","Add or remove tags:":"Siltide lisamine või eemaldamine:","Submit":"Saada","Token has been copied to the clipboard!":"Token on kopeeritud lõikelauale!","The web clipper service is enabled and set to auto-start.":"Web Clipper service on lubatud ja seadke automaatselt käivituma.","Status: Started on port %d":"Olek: alustatud porti %d","Status: %s":"Staatus: %s","Disable Web Clipper Service":"Keela Web Clipper Service","The web clipper service is not enabled.":"Web clipper service pole lubatud.","Enable Web Clipper Service":"Luba Web Clipper Service","Joplin Web Clipper allows saving web pages and screenshots from your browser to Joplin.":"Joplin Web Clipper võimaldab salvestada veebilehti ja ekraanipilte brauserist Joplini.","In order to use the web clipper, you need to do the following:":"Selleks, et kasutada Web Clipper, peate tegema järgmist:","Step 1: Enable the clipper service":"1. samm: Lubage Clipper service","This service allows the browser extension to communicate with Joplin. When enabling it your firewall may ask you to give permission to Joplin to listen to a particular port.":"See teenus võimaldab brauseri laieLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"<oharra>rekin bat datozen oharrak [koaderno]ra kopiatzen ditu. Koadernorik ez bada zehazten, oharra oraingo koadernoan bikoiztuko da","Cannot find \"%s\".":"Ezin aurkitu \"%s\"","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Oraingo koadernoko oharrak erakusten ditu. Erabili `ls /` koadernoen zerrenda erakusteko.","Displays only the first top <num> notes.":"Erakusten ditu soilik gorengo <num> oharrak.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Itemak antolatzen ditu <field> arabera (esate baterako, izenburua, eguneratze_unea, sortze_unea).","Reverses the sorting order.":"Alderantziz antolatzen du.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Zehaztutako item motak baino ez du erakusten. Izan daiteke `n` oharretarako, `t` zereginetarako, edo `nt` ohar eta zereginetarako (esate batrako, `-tt` zereginak erakutsiko ditu soilik, `-ttd` berriz zereginak eta oharrak.","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Zerrenda luzearen formatua erabili. Formatua hau da, ID, NOTE_COUNT (libururako), DATE, TODO_CHECKED (zereginetarako), TITLE","Please select a notebook first.":"Aurretik aukeratu formatua, mesedez.","Do not ask for confirmation.":"Ez galdetu berresteko.","Found: %d.":"Aurkitua: %d","Created: %d.":"Sortuta: %d.","Updated: %d.":"Eguneratuta: %d.","Skipped: %d.":"Saltatuta: %d.","Resources: %d.":"Baliabideak: %d.","Tagged: %d.":"Etiketatuta: %d.","Importing notes...":"Oharrak inportatzen...","The notes have been imported: %s":"Oharrak inportatu dira: %s","Enum":"Zenbakitu","Type: %s.":"Idatz: %s.","Possible values: %s.":"Litezkeen balioak: %s.","Default: %s":"Lehenetsia: %s","Possible keys/values:":"Litezkeen balioak:","Enter master password:":"Sartu pasahitz nagusia:","Operation cancelled":" Eragiketa utzita","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Deszifratzearen hasiera... Mesedez itxaron, prozesua luzea izan daiteke, zenbat dagoen prozesatzeko.","Completed decryption.":"Deszifratuta.","Enabled":"Gaituta","Disabled":"Desgaituta","Encryption is: %s":"Zifratzea da: %s","Creates a new notebook.":"Koaderno berria sortzen du.","Moves the notes matching <note> to [notebook].":"Oharrak eramaten ditu <note> bilatuta [notebook]era.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Konfigurazio balioa hartu edo ezartzen du. Baldin eta [balioa] ez bada ematen, [izena]ren balioa erakutsiko du. Ez bada ematen [izena] ez [balioa], oraingo konfigurazioaren zerrenda erakutsiko da.","Also displays unset and hidden config variables.":"Ezkutuko edo zehaztu gabeko konfigurazio aldagaiak ere erakusten ditu.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Aldatu [koaderno]ra - hurrengo eragiketak koaderno horretan jazoko dira.","Synchronises with remote storage.":"Urruneko biltegiarekin sinkronizatzen du.","Authentication was not completed (did not receive an authentication token).":"Autentifikazioa ez da egin osorik (ez du token-ik hartu).","Not authentified with %s. Please provide any missing credentials.":"Ez da autentifikatu %s -rekin. Eman galdutako kredentzialak.","Synchronisation is already in progress.":"Sinkronizazio prozesua dagoeneko abian da.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Giltzatzeko fitxategia dagoeneko eutsita dagoeneko. Baldin eta badakizu ez dena sinkronizaziorik egiten ari, ken dezakezu giltzatzeko fitxategia \"%s\"-n eta berrekin eragiketari.","Synchronisation target: %s (%s)":"Sinkronizazio helburua: %s (%s)","Starting synchronisation...":"Sinkronizazioa hasten...","Renames the given <item> (note or notebook) to <name>.":"Ber izendatu emandako <item> (oharra edo koadernoa) <name> izen berriaz.","Deletes the given notebook.":"Ezabatu emandako koadernoak.","Deletes the notebook without asking for confirmation.":"Ezabatu koadernoak berrespenik gabe.","Creates a new to-do.":"Zeregin berria sortu.","Notes can only be created within a notebook.":"Oharrak soilik sor daitezke koaderno baten barruan.","Displays the given note.":"Oharra erakutsi","Displays the complete information about note.":"Erakutsi oharrari buruzko informazio guztia.","Edit note.":"Oharra editatu.","No text editor is defined. Please set it using `config editor <editor-path>`":"Testu editorerik ez dago definituta. Egin hau Line truncated
{"OK":"OK","Cancel":"Utzi","Unsupported link or message: %s":"Esteka edo mezu ez dago onartua: %s","Back":"Atzera","Delete":"Ezabatu","Remove this search from the sidebar?":"Kendu bilaketa hori ohar guztietatik?","Synchronise":"Sinkronizatu","Notebooks":"Koadernoak","Tags":"Etiketak","Layout":"Diseinua","Cut":"Moztu","Copy":"Kopiatu","Paste":"Itsatsi","Edit":"Editatu","Attach file":"Erantsi fitxategia","ID":"ID","Created":"Sortua","Updated":"Eguneratua","Disabled":"Desgaituta","Import":"Inportatu","Quit":"Irten","Website and documentation":"Web orria eta dokumentazioa (en)","Options":"Aukerak","Save":"Gorde","Some items cannot be synchronised.":"Zenbait item ezin dira sinkronizatu.","View them now":"Ikusi hori orain","Some items cannot be decrypted.":"Zenbait item ezin dira deszifratu.","Set the password":"Ezarri pasahitza","Rename":"Berrizendatu","Rename notebook:":"Berrizendatu koadernoa:","New to-do":"Zeregin berria","Set alarm":"Ezarri alarma","Set alarm:":"Ezarri alarma:","New note":"Ohar berria","New notebook":"Koaderno berria","Notebook title:":"Koadernoaren izenburua: ","Add or remove tags:":"Gehitu edo ezabatu etiketak:","Synchronisation Status":"Sinkronizazioaren egoera","About Joplin":"Joplin-i buruz","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"\"%s\" koaderno berria sortuko da eta \"%s\" Fitxategia inportatuko da bertara","Found: %d.":"Aurkitua: %d","Created: %d.":"Sortuta: %d.","Updated: %d.":"Eguneratuta: %d.","Skipped: %d.":"Saltatuta: %d.","Resources: %d.":"Baliabideak: %d.","Tagged: %d.":"Etiketatuta: %d.","The notes have been imported: %s":"Oharrak inportatu dira: %s","Switch between note and to-do type":"Aldatu oharra eta zeregin eren artean.","Authentication was not completed (did not receive an authentication token).":"Autentifikazioa ez da egin osorik (ez du token-ik hartu).","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Zifratua desgaitzeak esan nahi du zure ohar eta eranskin *guztiak* berriro deszifratuta sinkronizatuko eta bidaliko direla sinkronizazio helburura. Segitu nahi duzu?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Zifratua gaitzeak esan nahi du zure ohar eta eranskin *guztiak* zifratuta sinkronizatuko eta bidaliko direla sinkronizazio helburura. Ez galdu pasahitza, bera izango baita datuak deszifratzeko bide *bakarra*! Zifratua baimentzeko, mesedez, aurretik sartu zure pasahitza.","Disable encryption":"Zifratzea desgaitu","Enable encryption":"Zifratua gaitu","Master Keys":"Pasahitz nagusia","Active":"Aktibo","Source":"Iturburua","Password":"Pasahitza","Password OK":"Pasahitza ondo","Status":"Egoera","Encryption is:":"Zifratua da:","Enabled":"Gaituta","OneDrive Login":"Logeatu OneDriven","Clear":"Garbitu","No notes in here. Create one by clicking on \"New note\".":"Hemen ez dago oharrik. Sortu bat \"Ohar berria\" sakatuta.","There is currently no notebook. Create one by clicking on \"New notebook\".":"Momentuz ez dago koadernorik. Sortu bat \"Koaderno berria\" sakatuta.","Search in all the notes":"Bilatu ohar guztietan","Untitled":"Titulu gabekoa","Error opening note in editor: %s":"Errorea editorean oharra zabaltzean: %s","Delete these notes?":"Oharrok ezabatu?","Configuration":"Konfigurazioa","There are currently no notes. Create one by clicking on the (+) button.":"Ez dago oharrik. Sortu bat (+) botoian klik eginaz.","The notebook could not be saved: %s":"Koadernoa ezin gorde daiteke: %s","Edit notebook":"Editatu koadernoa","Login with OneDrive":"Login with OneDrive","Master Key %s":"Pasahitz Nagusia %s","Created: %s":"Sortuta: %s","Password:":"Pasahitza:","Password cannot be empty":"Pasahitza ezin utz daiteke hutsik","Enable":"Gaituta","Encryption Config":"Zifratze Ezarpenak","Encryption is: %s":"Zifratzea da: %s","Log":"Egunkaria","Export Debug Report":"Esportatu arazketa txostena","This note has been modified:":"Ohar hau mugitua izan da:","Save changes":"Gorde aldaketak","Discard changes":"Bertan behera utzi aldaketak","Delete note?":"Oharra ezabatu?","Unsupported image type: %s":"Irudi formatua ez onartua: %s","View on map":"Ikusi mapan","Attach photo":"Argazkia erantsi","Convert to note":"Oharra bihurtu","Convert to todo":"Zeregina bihurtu","Search":"Bilatu","The application has been authorised - you may now close this browser tab.":"Aplikazioak baimena hartu du - Orain fitxa hau zarratu dezakezu.","The application has been successfully authorised.":"Aplikazioak baimena hartu du.","Cannot access %s":"Ezin atzituta %s","Conflicts":"Gatazkak","Notebooks cannot be named \"%s\", which is a reserved title.":"Koadernoak ezin izendatu daitezke \"%s\", izen hori Joplinek gordeta daLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"یادداشت های مطابق با <note> را در [notebook] کپی می‌کند. اگر هیچ دفترچه‌ای مشخص نشده باشد یادداشت در دفترچه کنونی کپی می‌شود.","Cannot find \"%s\".":"«%s» یافت نشد.","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"یادداشت های موجود در دفترچه کنونی را نمایش می‌دهد. برای نمایش لیست دفترچه ها از `ls /` استفاده کنید.","Displays only the first top <num> notes.":"فقط <num> یادداشت اول را نمایش می‌دهد.","Sorts the item by <field> (eg. title, updated_time, created_time).":"مورد را بر‌ اساس <field> مرتب می‌کند (به عنوان مثال: عنوان، زمان به‌روزرسانی، زمان ایجاد).","Reverses the sorting order.":"معکوس کردن ترتیب مرتب‌سازی.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"تنها موارد نوع/انواع مشخص شده را نمایش می‌دهد. می‌تواند برای یادداشت‌ها `n`، برای فهرست کار‌ها `t` یا برای یادداشت‌ها و فهرست کار‌ها `nt` باشد. (به عنوان مثال: `-tt` تنها فهرست کار‌ها را نمایش خواهد داد در حالی که `-ttd` یادداشت‌ها و فهرست کار‌ها را نمایش خواهد داد.)","Either \"text\" or \"json\"":"یا «text» و یا «json»","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"استفاده از فرمت لیست طولانی. فرمت به صورت ID (شناسه)، NOTE_COUNT (تعداد یادداشت (برای دفترچه))، DATE (تاریخ)، TODO_CHECKED (فهرست کار بررسی شده (برای فهرست کار‌ها))، TITLE (عنوان) می‌باشد","Please select a notebook first.":"لطفا ابتدا یه دفترچه مشخص کنید.","Imports data into Joplin.":"داده را در Joplin وارد می‌کند.","Source format: %s":"فرمت مبدا: %s","Do not ask for confirmation.":"برای تایید سوال نکن.","Output format: %s":"فرمت خروجی: %s","Found: %d.":"پیدا شده: %d.","Created: %d.":"ایجاد شده: %d.","Updated: %d.":"به‌روز شده: %d.","Skipped: %d.":"رد شده: %d.","Resources: %d.":"منابع: %d.","Tagged: %d.":"برچسب گذاری شده: %d.","Importing notes...":"در حال وارد کردن یادداشت‌ها...","The notes have been imported: %s":"یادداشت‌ها وارد شدند: %s","Type: %s.":"نوع: %s.","Possible values: %s.":"مقادیر احتمالی: %s.","Default: %s":"پیشفرض: %s","Possible keys/values:":"کلید ها یا مقادیر ممکن:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"شروع، توقف یا بررسی سرور API. از متغیر تنظیمات api.port برای مشخص کردن پورتی که باید روی آن اجرا شود استفاده کنید. دستورات بصورت (%s) هستند.","Server is already running on port %d":"سرور در حال حاضر بر روی پورت %d در حال اجراست","Server is running on port %d":"سرور بر روی پورت %d در حال اجراست","Server is not running.":"سرور در حال اجرا نیست.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"تنظیمات E2EE را مدیریت می‌کند. دستورات شامل `enable`، `disable`، `decrypt`، `status`، `decrypt-file` و `target-status` هستند.","Enter master password:":"گذرواژه اصلی را وارد کنید:","Operation cancelled":"عملیات لغو شد","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"شروع رمزگشایی... این کار ممکن است چند دقیقه طول بکشد، لطفا صبر کنید.","Decrypted items: %d":"موارد رمزگشایی شده: %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"موارد رد شده: %d (از --retry-failed-items برای تلاش مجدد رمزگشایی آن‌ها استفاده کنید)","Completed decryption.":"رمزگشایی کامل شد.","Confirm password:":"تایید گذرواژه:","Passwords do not match!":"گذرواژه‌ها با یکدیگر مطابق نیستند!","Enabled":"فعال","Disabled":"غیر‌فعال","Encryption is: %s":"Line truncated
{"OK":"باشه","Cancel":"لغو","The app is now going to close. Please relaunch it to complete the process.":"برنامه اکنون در حال بسته شدن است. لطفاً برای تکمیل مراحل آن را مجدداً راه اندازی کنید.","Goto Anything...":"رفنت به هر چیزی...","Exporting to \"%s\" as \"%s\" format. Please wait...":"در حال استخراج به «%s» با فرمت «%s». لطفا صبر کنید...","Could not export notes: %s":"یادداشت‌ها استخراج نشدند: %s","Current version is up-to-date.":"ورژن فعلی به‌روز است.","An update is available, do you want to download it now?":"یک بروزرسانی موجود است، آیا میخواهید هم اکنون بارگیری‌اش کنید؟","Your version: %s":"ورژن شما: %s","New version: %s":"ورژن جدید: %s","Full Release Notes":"انتشار کامل یادداشت‌ها","Search...":"جستجو...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"یادداشت «%s» با موفقیت به دفترچه «%s» بازگردانده شد.","This note has no history":"این یادداشت هیچ تاریخچه ای ندارد","Unsupported link or message: %s":"پیوند یا پیام پشتیبانی نشده: %s","Restore":"بازگرداندن","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"برای بازیابی یادداشت بر روی «%s» کلیک کنید. یادداشت در دفترچه‌ای به نام «%s» کپی می‌شود. این نسخه از یادداشت جایگزین یا تغییر داده نمی‌شود.","Back":"بازگشت","Remove":"برداشتن","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"دفترچه «%s» حذف شود؟\n\nتمامی یادداشت‌ها و زیر-دفترچه‌های درون این دفترچه نیز حذف می‌شوند.","Delete":"حذف","Remove tag \"%s\" from all notes?":"حذف برچسب «%s» از همه‌ی یادداشت‌ها؟","Remove this search from the sidebar?":"این جستجو از نوار کناری حذف شود؟","Export":"استخراج","All notes":"همه یادداشت‌ها","Synchronise":"همگام سازی","Notebooks":"دفترچه ها","Tags":"برچسب‌ها","Decrypting items: %d/%d":"در حال رمزگشایی موارد: %d/%d","Fetching resources: %d/%d":"در حال دریافت منابع: %d/%d","Sidebar":"نوار کناری","Focus":"تمرکز","Please select where the sync status should be exported to":"لطفا محلی که وضعیت همگام‌سازی باید استخراج شود را مشخص کنید","Retry All":"تلاش مجدد همه","Retry":"تلاش مجدد","emphasised text":"متن تأکید شده","Insert Hyperlink":"درج پیوند برجسته","List item":"لیست مورد","Layout":"قالب","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"این یادداشت هیچ محتوایی ندارد. برای تغییر وضعیت ویرایشگر و ویرایش یادداشت ، روی \"%s\" کلیک کنید.","Cut":"بریدن","Copy":"کپی","Paste":"چسباندن","Checkbox list":"لیست چک‌باکس","Edit":"ویرایش","Attach file":"پیوست فایل","Code Block":"بلوک کد","Inline Code":"کد درون خطی","Insert Date Time":"درج تاریخ و ساعت","Drop notes or files here":"یادداشت‌ها یا فایل‌ها را اینجا رها کنید","Code View":"نمای کد","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"لطفا صبر کنید تا همه پیوست ها بارگیری و رمزگشایی شوند. شما همچنین می‌توانید به %s برای ویرایش یادداشت بروید.","There was an error downloading this attachment:":"یک خطا در بارگیری این پیوست بود:","This attachment is not downloaded or not decrypted yet":"این پیوست هنوز بارگیری یا رمزگشایی نشده","Open...":"باز کردن...","Save as...":"ذخیره به عنوان...","Reveal file in folder":"نمایش فایل در پوشه","Copy path to clipboard":"کپی کردن مسیر در کلیپ بورد","Copy Link Address":"کپی کردن آدرس پیوند","to-do":"فهرست کار","note":"یادداشت","Creating new %s...":"ایجاد یک %s جدید...","In: %s":"در: %s","Select all":"انتخاب همه","Bold":"پررنگ","Italic":"مورب","Hyperlink":"پیوند برجسته","Code":"کد","Numbered List":"لیست شماره گذاری شده","Bulleted List":"لیست گلوله ای بدون ترتیب","Checkbox":"چک‌باکس","Heading":"عنوان","Horizontal Rule":"خط افقی","NotLine truncated
+1
View File
@@ -0,0 +1 @@
{"OK":"OK","Cancel":"Peruuta","The app is now going to close. Please relaunch it to complete the process.":"Sovellus suljetaan nyt. Käynnistä se uudelleen prosessin loppuun saamiseksi.","Type a note title or part of its content to jump to it. Or type # followed by a tag name, or @ followed by a notebook name. Or type : to search for commands.":"Kirjoita muistiinpanon otsikko, jos haluat siirtyä siihen. Voit myös kirjoittaa # ja sen jälkeen tunnisteen nimen tai @ ja sen jälkeen muistikirjan nimen. Voit myös etsiä komentoja kirjoittamalla : .","Goto Anything...":"Siirry mihin tahansa...","Command palette":"Komentovalikoima","Exporting to \"%s\" as \"%s\" format. Please wait...":"Viedään tiedostoon \"%s\" muodossa \"%s\". Odota...","Could not export notes: %s":"Muistiinpanoja ei voitu viedä: %s","Current version is up-to-date.":"Nykyinen versio on ajan tasalla.","%s (pre-release)":"%s (ennakkojulkaisu)","An update is available, do you want to download it now?":"Päivitys on saatavilla. Haluatko ladata sen nyt?","Your version: %s":"Sinun versiosi: %s","New version: %s":"Uusi versio: %s","Download":"Lataa","Full Release Notes":"Täydelliset julkaisutiedot","Search...":"Etsi...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"Muistiinpano \"%s\" on palautettu muistikirjaan \"%s\".","This note has no history":"Tällä muistiinpanolla ei ole historiaa","Unsupported link or message: %s":"Linkkiä tai viestiä ei tueta: %s","Restore":"Palauttaa","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Napsauta \"%s\" palauttaaksesi muistiinpanon. Se kopioidaan muistikirjaan nimeltä \"%s\". Huomautuksen nykyistä versiota ei korvata tai muuteta.","Back":"Takaisin","Remove":"Poista","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Poista muistikirja \"%s\"?\n\nMyös kaikki tämän muistikirjan muistiinpanot ja alimuistikirjat poistetaan.","Delete":"Poista","Remove tag \"%s\" from all notes?":"Poistetaanko tunniste \"%s\" kaikista muistiinpanoista?","Remove this search from the sidebar?":"Poistetaanko tämä haku sivupalkista?","Export":"Vie","All notes":"Kaikki muistiinpanot","Synchronise":"Synkronoida","Notebooks":"Muistikirjat","Tags":"Tunnisteet","Decrypting items: %d/%d":"Kohteiden salauksen purkaminen: %d/%d","Fetching resources: %d/%d":"Haetaan resursseja: %d/%d","Sidebar":"Sivupalkki","Focus":"Keskittää","Please select where the sync status should be exported to":"Valitse, mihin synkronoinnin tila viedään","Retry All":"Yritä uudelleen kaikkia","Retry":"Yritä uudelleen","strong text":"vahva teksti","emphasised text":"korostettu teksti","Insert Hyperlink":"Lisää hyperlinkki","List item":"Luettelon kohde","Layout":"Ulkoasu","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Tällä muistiinpanolla ei ole sisältöä. Napsauta \"%s\" vaihtaaksesi editoria ja muokataksesi muistiinpanoa.","Cut":"Leikkaa","Copy":"Kopioi","Paste":"Liitä","Checkbox list":"Valintaruutujen luettelo","Edit":"Muokkaa","Attach file":"Liitä tiedosto","Code Block":"Koodilohko","Inline Code":"Inline-koodi","Insert Date Time":"Lisää Päivämäärä Aika","Drop notes or files here":"Pudota muistiinpanot tai tiedostot tähän","Code View":"Koodinäkymä","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"Odota, että kaikki liitteet ladataan ja puretaan. Voit myös vaihtaa kohtaan %s muokkaamaan muistiinpanoa.","There was an error downloading this attachment:":"Tämän liitteen lataamisessa tapahtui virhe:","This attachment is not downloaded or not decrypted yet":"Tätä liitettä ei ole vielä ladattu tai sitä ei ole vielä purettu","Open...":"Avaa...","Save as...":"Tallenna nimellä...","Reveal file in folder":"Osoita kansion tiedosto","Copy path to clipboard":"Kopioi polku leikepöydälle","Copy Link Address":"Kopioi linkin osoite","to-do":"tehtävä","note":"merkintä","Creating new %s...":"Luodaan uusi %s...","The following attachments are being watched for changes:":"Seuraavia liitteitä tarkkaillaan muutosten vuoksi:","The attachments will no longer be watched when you switch to a different note.":"Liitteitä ei enää katsota, kun vaihdat toiseen muistiinpanoon.","In: %s":"Sisään: %s","Select all":"Valitse kaikki","Bold":"Lihavoitu","Italic":"Kursiivi","Hyperlink":"Hyperlinkki","Code":"Koodi","Numbered List":"Numeroitu luettelo","Bulleted List":"Luettelomerkitty luettelo","Checkbox":"Valintaruutu","Heading":"Otsikko","Horizontal Rule":"Vaakaviiva","Note title":"Muistiinpanon otsikko","Search in current note":"Etsi nykyisestä muistiinpanosta","Note body":"Muistiinpanon kappale","ID":"ID","Created":"Luotu","Updated":"Päivitetty","Completed":"Valmis","Location":"Sijainti","URL":"URL","Note History":"Muistiinpano historia","Markup":"Merkintä","Previous Line truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Copier les notes correspondant à <nom> vers [carnet]. Si aucun carnet n'est spécifié, la note est dupliquée sur place.","Cannot find \"%s\".":"Impossible de trouver \"%s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Affiche les notes dans le carnet. Utilisez `ls /` pour afficher la liste des carnets.","Displays only the first top <num> notes.":"Affiche uniquement les <num> premières notes.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Trier les notes par <field> (par exemple, title, updated_time, created_time).","Reverses the sorting order.":"Inverser l'ordre.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Affiche uniquement les notes du ou des types spécifiés. Le type peut-être `n` pour les notes, `t` pour les tâches (par exemple, `-tt` affiche uniquement les tâches, tandis que `-ttd` affiche les notes et les tâches).","Either \"text\" or \"json\"":"Soit \"text\" soit \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Utilise le format de liste longue. Le format est ID, NOMBRE_DE_NOTES (pour les carnets), DATE, TACHE_TERMINE (pour les tâches), TITRE","Please select a notebook first.":"Veuillez d'abord sélectionner un carnet.","Imports data into Joplin.":"Importer des données dans Joplin.","Source format: %s":"Format de la source : %s","Do not ask for confirmation.":"Ne pas demander de confirmation.","Output format: %s":"Format de la sortie : %s","Found: %d.":"Trouvés : %d.","Created: %d.":"Créés : %d.","Updated: %d.":"Mis à jour : %d.","Skipped: %d.":"Ignorés : %d.","Resources: %d.":"Ressources : %d.","Tagged: %d.":"Étiquettes : %d.","Importing notes...":"Importation des notes...","The notes have been imported: %s":"Les notes ont été importées : %s","Enum":"Enum","Type: %s.":"Type : %s.","Possible values: %s.":"Valeurs possibles : %s.","Default: %s":"Défaut : %s","Possible keys/values:":"Clefs/Valeurs possibles :","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"Démarre, stop ou vérifie l'état du serveur API. Pour spécifier sur quel port il doit tourner, veuillez utiliser la variable de config api.port. Les commandes sont (%s).","Server is already running on port %d":"Le serveur tourne déjà sur le port %d","Server is running on port %d":"Le serveur tourne sur le port %d","Server is not running.":"Le serveur est arrêté.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Gérer la configuration E2EE (Chiffrement de bout à bout). Les commandes sont `enable`, `disable`, `decrypt` et `status`, `decrypt-file` et `target-status`.","Enter master password:":"Entrer le mot de passe maître :","Operation cancelled":"Opération annulée","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Démarrage du déchiffrement... Veuillez patienter car cela pourrait prendre plusieurs minutes selon le nombre d'objets à déchiffrer.","Decrypted items: %d":"Objets déchiffrés : %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"Objets ignorés : %d (utilisez --retry-failed-items pour les déchiffrer à nouveau)","Completed decryption.":"Déchiffrement complété.","Confirm password:":"Confirmer le mot de passe :","Passwords do not match!":"Les mots de passe ne correspondent pas !","Enabled":"Activé","Disabled":"Désactivé","Encryption is: %s":"Le chiffrement est : %s","Creates a new notebook.":"Créer un carnet.","Moves the notes matching <note> to [notebook].":"Déplacer les notes correspondant à <note> vers [notebook].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtient ou modifie une valeur de configuration. Si la [valeur] n'est pas fournie, la valeur de [nom] sera affichée. Si ni le [nom] ni la [valeur] ne sont fournis, la configuration complète sera affichée.","Also displays unset and hidden config variables.":"Afficher également les variables cachées.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Changer de carnet - toutes les opérations à venir se feront dans ce carnet.","Synchronises with remote storage.":"Synchroniser les notes et carnets.","Sync to provided target (defaults to sync.target config value)":"Synchroniser avec la cible donnée (par défaut, la valeur de configuration `sync.target`).",Line truncated
{"OK":"OK","Cancel":"Annuler","The app is now going to close. Please relaunch it to complete the process.":"L'application va maintenance fermer. Veuillez la relancer pour terminer l'opération.","Goto Anything...":"Navigation rapide…","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportation en cours vers \"%s\" au format \"%s\". Veuillez patienter...","Could not export notes: %s":"Impossible d'exporter les notes : %s","Current version is up-to-date.":"La version actuelle est à jour.","%s (pre-release)":"%s (pré-release)","An update is available, do you want to download it now?":"Une mise à jour est disponible, souhaitez vous la télécharger maintenant ?","Your version: %s":"Votre version : %s","New version: %s":"Nouvelle version : %s","Full Release Notes":"Notes de version complètes","Search...":"Chercher...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"La note \"%s\" a été restaurée dans le carnet \"%s\".","This note has no history":"Cette note n'a pas d'historique","Unsupported link or message: %s":"Lien ou message non géré : %s","Restore":"Restaurer","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Cliquez sur \"%s\" pour restaurer cette note. Elle sera copiée dans le carnet \"%s\". La version actuelle de la note ne sera pas replacée ou modifiée.","Back":"Retour","Remove":"Supprimer","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Effacer le carnet \"%s\" ?\n\nToutes les notes et sous-carnets dans ce carnet seront également effacés.","Delete":"Supprimer","Remove tag \"%s\" from all notes?":"Enlever l’étiquette \"%s\" de toutes les notes ?","Remove this search from the sidebar?":"Enlever cette recherche de la barre latérale ?","Export":"Exporter","All notes":"Toutes les notes","Synchronise":"Synchroniser","Notebooks":"Carnets","Tags":"Étiquettes","Decrypting items: %d/%d":"Déchiffrement des objets : %d/%d","Fetching resources: %d/%d":"Tél. ressources : %d/%d","Sidebar":"Barre latérale","Focus":"Naviguer","Please select where the sync status should be exported to":"Veuillez sélectionner un répertoire ou exporter l'état de la synchronisation","Retry All":"Tout réessayer","Retry":"Réessayer","strong text":"texte en gras","emphasised text":"texte en italique","Insert Hyperlink":"Insérer lien","List item":"Élément de liste","Layout":"Disposition","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Cette note n'a pas de contenu. Cliquer sur \"%s\" pour basculer vers l'éditeur et éditer cette note.","Cut":"Couper","Copy":"Copier","Paste":"Coller","Checkbox list":"Liste de cases à cocher","Edit":"Édition","Attach file":"Attacher un fichier","Code Block":"Bloc de code","Inline Code":"Ligne de code","Insert Date Time":"Insérer la date et l'heure","Drop notes or files here":"Déposez des notes ou fichiers ici","Code View":"Code","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"Veuillez patienter jusqu'à ce que tous les fichiers joints soient téléchargés et déchiffrés. Vous pouvez également éditer la note maintenant en passant au mode %s","There was an error downloading this attachment:":"Il y a eu une erreur lors du téléchargement de ce fichier :","This attachment is not downloaded or not decrypted yet":"Cet fichier n'est pas téléchargé ou pas encore déchiffré","Open...":"Ouvrir...","Save as...":"Enregistrer sous...","Reveal file in folder":"Révéler fichier dans dossier","Copy path to clipboard":"Copier le chemin","Copy Link Address":"Copier l'adresse du lien","to-do":"tâche","note":"note","Creating new %s...":"Création de %s...","The following attachments are being watched for changes:":"Les changements sur les éléments suivants sont monitorés :","The attachments will no longer be watched when you switch to a different note.":"Les pièces jointes ne seront plus monitorées lorsque vous changerez de note.","In: %s":"Dans : %s","Select all":"Sélectionner tout","Bold":"Gras","Italic":"Italique","Hyperlink":"Lien","Code":"Code","Numbered List":"Liste numérotée","Bulleted List":"Liste à puces","Checkbox":"Case à cocher","Heading":"Titre","Horizontal Rule":"Règle horizontale","Note title":"Titre de la note","Search in current note":"Chercher dans la note en cours","Note body":"Corps de la note","ID":"ID","Created":"Créé","Updated":"Mis à jour","Completed":"Terminé","Location":"Lieu","URL":"URL","Note History":"Historique des notes","Markup":"Langage de balisage","Previous versions of this note":"Versions précédentes de cette note","Note properties":"Propriétés de la note","Error: %s":"Erreur : %s","Disabled":"Désactivé","Import":"Importer","Command":"Commande","Keyboard Shortcut":"Raccourci","Quit":"Quitter","Insert template":"Insérer un modèle","Actual Size"Line truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica as notas que corresponden a <note> ao [notebook]. Se non se especifica un, a nota será duplicada no caderno atual.","Cannot find \"%s\".":"Non é posíbel atopar «%s».","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Mostra as notas no caderno actual. Use «ls /» para ver a lista de cadernos.","Displays only the first top <num> notes.":"Mostra só as primeiras <num> notas.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Ordena os elementos por <field> (p.e.: title, updated_time, created_time).","Reverses the sorting order.":"Inverte a orde.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Motra só os elementos do tipo específicado. Pode ser «n» para notas, «t» para tarefas ou «nt» para notas e tarefas (p.e: «-tt» mostraría só as tarefas mentres «-ttd» mostraría notas e tarefas).","Either \"text\" or \"json\"":"Pode ser «text» ou «json»","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usar o formato de lista longa. O formato -e ID, NOTE_COUNT (para caderno), DATE, TODO_CHECKED (para tarefas), TITLE","Please select a notebook first.":"Seleccione un caderno primeiro.","Imports data into Joplin.":"Importa os datos en Joplin.","Source format: %s":"Formato da orixe: %s","Do not ask for confirmation.":"Non pedir confirmación.","Found: %d.":"Atopado: %d.","Created: %d.":"Creado: %d.","Updated: %d.":"Actualizado: %d.","Skipped: %d.":"Ignorado: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Etiquetado: %d.","Importing notes...":"Importando notas...","The notes have been imported: %s":"As notas foron importadas: %s","Enum":"Enum.","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valores posíbeis: %s.","Default: %s":"Predeterminado: %s","Possible keys/values:":"Posíbeis chaves/valores:","Enter master password:":"Introducir contrasinal mestre:","Operation cancelled":"Operación cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando o descifrado... Agarde xa que pode tardar varios minutos dependendo de canto haxa que descifrar.","Completed decryption.":"Descifrado completado.","Enabled":"Activado","Disabled":"Desactivado","Encryption is: %s":"O cifrado é: %s","Creates a new notebook.":"Crea un caderno novo.","Moves the notes matching <note> to [notebook].":"Move as notas que coinciden con <note> a [notebook].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtén ou estabelece un valor da configuración. Se non se indica [value], mostrará o valor de [name]. Se non se indica [name] nin [value] listará a configuración actual.","Also displays unset and hidden config variables.":"Mostra tamén variábeis de configuración non estabelecidas e ocultas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Cambia a [notebook] - todas as demais operacións sucederán neste caderno.","Synchronises with remote storage.":"Sincroniza sen almacenaxe remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizar co destino indicado (predeterminados ao valor da configuración sync.target)","Authentication was not completed (did not receive an authentication token).":"A autenticación non foi completada (non recibiu un token de autenticación).","Not authentified with %s. Please provide any missing credentials.":"Non está autenticado en %s. Proporcione as credencias que faltan.","Synchronisation is already in progress.":"A sincronización xa está en progreso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"O ficheiro de bloqueo xa está en espera. Se sabe que a sincronización non se está realizando pode eliminar o ficheiro de bloqueo en «%s» e continuar coa operación.","Synchronisation target: %s (%s)":"Destino da sincronización: %s (%s)","Starting synchronisation...":"Iniciando sincronización...","Renames the given <item> (note or notebook) to <name>.":"Renomea o <item> dado (nota ou caderno) a <name>.","Deletes the given notebook.":"Eliminar o carderno indicado.","Deletes the notebook without asking for confirmation.":"Elimina o caderno indicado sen solicitar confirmación.","Creates a new to-do.":"Crea unha nova tarefa.","Notes can only be created within a notebook.":"As notas só se poden crear dentro dun caderno.","Displays the given note.":"Mostra a nota dada.Line truncated
{"OK":"Aceptar","Cancel":"Cancelar","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportando a «%s» como formato «%s». Agarde...","Current version is up-to-date.":"A versión actual está actualizada.","An update is available, do you want to download it now?":"Hai unha actualización dispoñíbel, desexa descargala agora?","Search...":"Buscar…","Unsupported link or message: %s":"Ligazón ou mensaxe incompatíbeis: %s","Back":"Anterior","Delete":"Eliminar","Remove this search from the sidebar?":"Desexa eliminar esta busca da barra lateral?","Export":"Exportar","Synchronise":"Sincronizar","Notebooks":"Cadernos","Tags":"Etiquetas","Please select where the sync status should be exported to":"Seleccione onde exportar o estado da sincronización","Layout":"Disposición","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota non ten contido. Prema en «%s» para ir ao editor e modificar a nota.","Cut":"Cortar","Copy":"Copiar","Paste":"Pegar","Edit":"Edtar","Attach file":"Anexar un ficheiro","Open...":"Abrir…","Save as...":"Gardar como…","to-do":"tarefas pendentes","note":"nota","Creating new %s...":"Criando novo %s...","ID":"ID","Created":"Creada","Updated":"Actualizado","Disabled":"Desactivado","Import":"Importar","Quit":"Saír","Website and documentation":"Sitio web e documentación","Options":"Opcións","Save":"Gardar","Some items cannot be synchronised.":"Non é posíbel sincronizar algúns elementos.","View them now":"Visualizar agora","Some items cannot be decrypted.":"Non é posíbel descifrar algúns elementos.","Set the password":"Estabelecer un contrasinal","Rename":"Renomear","Rename notebook:":"Renomear caderno:","New to-do":"Nova tarefa","Set alarm":"Estabelecer alarma","Set alarm:":"Estabelecer alarma:","PDF File":"Ficheiro PDF","New note":"Nova nota","Toggle editor layout":"Cambiar a disposición do editor","New notebook":"Novo caderno","Notebook title:":"Título do caderno:","Add or remove tags:":"Engadir ou eliminar etiquetas:","Print":"Imprimir","Importing from \"%s\" as \"%s\" format. Please wait...":"Importando de «%s» como formato «%s». Agarde...","Synchronisation Status":"Estado da sincronización","About Joplin":"Sobre o Joplin","Check for updates...":"Buscar actualizacións…","Hide %s":"Ocultar %s","Make a donation":"Doar","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Crearase o novo caderno «%s» e o ficheiro «%s» importarse dentro del","Found: %d.":"Atopado: %d.","Created: %d.":"Creado: %d.","Updated: %d.":"Actualizado: %d.","Skipped: %d.":"Ignorado: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Etiquetado: %d.","The notes have been imported: %s":"As notas foron importadas: %s","Switch between note and to-do type":"Cambiar entre notas e tarefas","Authentication was not completed (did not receive an authentication token).":"A autenticación non foi completada (non recibiu un token de autenticación).","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Desactivar o cifrado significa que *todas* as súas notas e anexos serán sincronizados de novo e enviados sen cifrar ao destino. Desexa continuar?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"A activación do cifrado significa que *todas* as súas notas e anexos van ser resincronizados e enviados cifrados ao destino da sincronización. Non perda o contrasinal xa que, por motivos de seguranza, é a *única* forma de descifrar os datos. Para activar o cifrado, introduza o contrasinal a continuación.","Disable encryption":"Desactivar cifrado","Enable encryption":"Activar cifrado","Master Keys":"Chaves mestras","Active":"Activa","Source":"Orixe","Password":"Contrasinal","Password OK":"Contrasinal correcto","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Nota: só se vai usar unha chave mestre para cifrados (a marcada como «activa»). Algunha das chaves pode usarse para descifrar elementos dependendo de cantas notas ou cadernos foron cifrados inicialmente.","Missing Master Keys":"Faltan as chaves mestras","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"As chaves mestras con estes ID úsanse para cifrar algúns dos seus elementos, con todo o aplicativo non ten actualmente acceso a eles. Probabelmente serán descargados pola sincronización.","Status":"Estado","Encryption isLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Cannot find \"%s\".":"Ne mogu naći \"%s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Prikazuje bilješke u trenutnoj bilježnici. Upiši `ls /` za prikaz liste bilježnica.","Displays only the first top <num> notes.":"Prikaži samo prvih <num> bilješki.","Reverses the sorting order.":"Mijenja redoslijed.","Either \"text\" or \"json\"":"Ili \"text\" ili \"json\"","Please select a notebook first.":"Odaberi bilježnicu.","Do not ask for confirmation.":"Ne pitaj za potvrdu.","Found: %d.":"Nađeno: %d.","Created: %d.":"Stvoreno: %d.","Updated: %d.":"Ažurirano: %d.","Skipped: %d.":"Preskočeno: %d.","Resources: %d.":"Resursi: %d.","Tagged: %d.":"Označeno: %d.","Importing notes...":"Uvozim bilješke...","The notes have been imported: %s":"Bilješke su uvezene: %s","Enum":"Enumeracija","Type: %s.":"Vrsta: %s.","Possible values: %s.":"Moguće vrijednosti: %s.","Default: %s":"Default: %s","Possible keys/values:":"Mogući ključevi/vrijednosti:","Disabled":"Onemogućeno","Creates a new notebook.":"Stvara novu bilježnicu.","Moves the notes matching <note> to [notebook].":"Premješta podudarajuće bilješke <note> u [bilježnicu].","Also displays unset and hidden config variables.":"Također prikazuje nepostavljene i skrivene konfiguracijske varijable.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Synchronises with remote storage.":"Sinkronizira sa udaljenom pohranom podataka.","Sync to provided target (defaults to sync.target config value)":"Sinkroniziraj sa metom (default je polje sync.target u konfiguraciji)","Synchronisation is already in progress.":"Sinkronizacija je već u toku.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ako sinkronizacija nije u toku, obriši lock datoteku u \"%s\" i nastavi...","Synchronisation target: %s (%s)":"Meta sinkronizacije: %s (%s)","Starting synchronisation...":"Započinjem sinkronizaciju...","Deletes the given notebook.":"Briše datu bilježnicu.","Deletes the notebook without asking for confirmation.":"Briše bilježnicu bez traženja potvrde.","Creates a new to-do.":"Stvara novi zadatak.","Notes can only be created within a notebook.":"Bilješke je moguće stvoriti samo u sklopu bilježnice.","Displays the given note.":"Prikazuje datu bilješku.","Displays the complete information about note.":"Prikazuje potpunu informaciju o bilješci.","Edit note.":"Uredi bilješku.","No active notebook.":"Nema aktivne bilježnice.","Note does not exist: \"%s\". Create it?":"Bilješka ne postoji: \"%s\". Napravi je?","To delete a tag, untag the associated notes.":"Da bi mogao obrisati oznaku, skini oznaku s povezanih bilješki.","Please select the note or notebook to be deleted first.":"Odaberi bilješku ili bilježnicu za brisanje.","Press Ctrl+D or type \"exit\" to exit the application":"Pritisni Ctrl+D ili napiši \"exit\" za izlazak iz aplikacije","Deletes the notes without asking for confirmation.":"Briše bilješke bez traženja potvrde.","%d notes match this pattern. Delete them?":"%d bilješki se podudara s pojmom pretraživanja. Obriši ih?","Delete note?":"Obrisati bilješku?","Attaches the given file to the note.":"Prilaže datu datoteku bilješci.","Displays version information":"Prikazuje verziju","%s %s (%s)":"%s %s (%s)","Marks a to-do as non-completed.":"Označava zadatak kao nezavršen.","Exports only the given note.":"Izvozi samo datu bilješku.","Exports only the given notebook.":"Izvozi samo datu bilježnicu.","Creates a new note.":"Stvara novu bilješku.","Fatal error:":"Fatalna greška:","Displays a geolocation URL for the note.":"Prikazuje geolokacijski URL bilješke.","Search:":"Traži:","Missing required argument: %s":"Nedostaje obavezni argument: %s","%s: %s":"%s: %s","Your choice: ":"Tvoj izbor: ","Invalid answer: %s":"Nevažeći odgovor: %s","Y":"Y","n":"n","Displays usage information.":"Prikazuje informacije o korištenju.","Shortcuts are not available in CLI mode.":"Prečaci nisu podržani u naredbenom retku.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Upiši `help [naredba]` za više informacija o naredbi ili `help all` za sve informacije o korištenju.","The possible commands are:":"Moguće naredbe su:","To move from one pane to another, press Tab or Shift+Tab.":"Za prijelaz iz jednog okna u drugo, pritisni Tab ili Shift+Tab.","To enter command line mode, press \":\"":"Za ulaz u naredbeni redak, pritisni \":\"","To exit command line mode, press ESCAPE":"Za izlaz iz naredbenog retka, pritisni Esc","Exits the application.":"Izlaz iz aplikacije.","More than one item match \"%s\". Please narrow down your query.":"Više od jednog rezultata odgovara \"%s\". Promijeni upit.","No notebook selected.":"Nije odabrana bilježnica.","No notebook has been specified.":"Nije specificirana bilježnica.","N":"N","y":"y","Cancelling backLine truncated
{"OK":"U redu","Cancel":"Odustani","Unsupported link or message: %s":"Nepodržana poveznica ili poruka: %s","Back":"Natrag","Delete":"Obriši","Remove this search from the sidebar?":"Makni ovu pretragu iz izbornika?","Synchronise":"Sinkroniziraj","Notebooks":"Bilježnice","Tags":"Oznake","Please select where the sync status should be exported to":"Odaberi lokaciju za izvoz statusa sinkronizacije","Layout":"Izgled","Cut":"Izreži","Copy":"Kopiraj","Paste":"Zalijepi","Edit":"Uredi","Attach file":"Priloži datoteku","ID":"ID","Created":"Stvoreno","Updated":"Ažurirano","Disabled":"Onemogućeno","Import":"Uvoz","Quit":"Izađi","Website and documentation":"Website i dokumentacija","Options":"Opcije","Save":"Spremi","Some items cannot be synchronised.":"Neke stavke se ne mogu sinkronizirati.","View them now":"Pogledaj ih sada","Rename":"Preimenuj","Rename notebook:":"Preimenuj bilježnicu:","New to-do":"Novi zadatak","Set alarm":"Postavi upozorenje","Set alarm:":"Postavi upozorenje:","New note":"Nova bilješka","New notebook":"Nova bilježnica","Notebook title:":"Naslov bilježnice:","Add or remove tags:":"Dodaj ili makni oznake:","Synchronisation Status":"Status Sinkronizacije","About Joplin":"O Joplinu","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nova bilježnica \"%s\" će biti stvorena i datoteka \"%s\" će biti uvezena u nju","Found: %d.":"Nađeno: %d.","Created: %d.":"Stvoreno: %d.","Updated: %d.":"Ažurirano: %d.","Skipped: %d.":"Preskočeno: %d.","Resources: %d.":"Resursi: %d.","Tagged: %d.":"Označeno: %d.","The notes have been imported: %s":"Bilješke su uvezene: %s","Switch between note and to-do type":"Zamijeni bilješku i zadatak","Source":"Izvor","Status":"Status","OneDrive Login":"OneDrive Login","Clear":"Očisti","No notes in here. Create one by clicking on \"New note\".":"Ovdje nema bilješki. Stvori novu pritiskom na \"Nova bilješka\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Ovdje nema bilježnica. Stvori novu pritiskom na \"Nova bilježnica\".","Search in all the notes":"Pretraži u svim bilješkama","Untitled":"Nenaslovljen","Delete these notes?":"Obriši ove bilješke?","Configuration":"Konfiguracija","There are currently no notes. Create one by clicking on the (+) button.":"Trenutno nema bilješki. Stvori novu klikom na (+) gumb.","The notebook could not be saved: %s":"Bilježnicu nije moguće snimiti: %s","Edit notebook":"Uredi bilježnicu","Login with OneDrive":"Prijavi se u OneDrive","Refresh":"Osvježi","Log":"Log","Export Debug Report":"Izvezi Debug izvještaj","This note has been modified:":"Bilješka je promijenjena:","Save changes":"Spremi promjene","Discard changes":"Odbaci promjene","Delete note?":"Obrisati bilješku?","Unsupported image type: %s":"Nepodržana vrsta slike: %s","View on map":"Vidi na karti","Attach photo":"Priloži sliku","Convert to note":"Pretvori u bilješku","Convert to todo":"Pretvori u zadatak","Search":"Traži","The application has been authorised - you may now close this browser tab.":"Aplikacija je autorizirana - smiješ zatvoriti karticu preglednika.","The application has been successfully authorised.":"Aplikacija je uspješno autorizirana.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Otvori sljedeći URL u pregledniku da bi ovjerio aplikaciju. Aplikacija će stvoriti direktorij u \"Apps/Joplin\" i koristiti će samo taj direktorij za čitanje i pisanje. Aplikacija neće imati pristup osobnim podacima niti ičemu izvan tog direktorija. Nijedan se podatak neće dijeliti s trećom stranom.","Cannot access %s":"Ne mogu pristupiti %s","Conflicts":"Sukobi","Notebooks cannot be named \"%s\", which is a reserved title.":"Naslov \"%s\" je rezerviran i ne može se koristiti.","Light":"Svijetla","Dark":"Tamna","Synchronisation target":"Sinkroniziraj sa","Directory to synchronise with (absolute path)":"Direktorij za sinkroniziranje (apsolutna putanja)","Language":"Jezik","Date format":"Format datuma","Time format":"Format vremena","Theme":"Tema","Save geo-location with notes":"Spremi geolokacijske podatke sa bilješkama","Automatically update the application":"Automatsko instaliranje nove verzije","Synchronisation interval":"Interval sinkronizacije","%d minutes":"%d minuta","%d hour":"%d sat","%d hours":"%d sati","Invalid option value: \"%s\". Possible values are: %s.":"Nevažeća vrijednost: \"%s\". Moguće vrijednosti su: %s.","Notes and settings are stored in: %s":"Bilješke i postavke su pohranjene u: %s","This note does not have geolocation information.":"Ova bilješka nema geolokacijske informacije.","Cannot copy note to \"%s\" notebook":"Ne mogu kopirati bilješku u bilježnicu %s","Cannot move note toLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Menduplikasi catatan yang sesuai dengan <note> (catatan) ke [notebook] (buku catatan). Jika tidak ada buku catatan yang ditentukan maka catatan akan diduplikasi ke buku catatan saat ini.","Cannot find \"%s\".":"Tidak dapat menemukan \"%s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Menampilkan catatan pada buku catatan saat ini. Gunakan `ls /` untuk menampilkan daftar buku catatan.","Displays only the first top <num> notes.":"Menampilkan hanya <num> (bilangan) catatan teratas.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Mengurutkan item berdasarkan <field> (bidang) (contoh: title (judul), updated_time (waktu diperbarui), created_time (waktu dibuat)).","Reverses the sorting order.":"Membalikkan urutan.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Menampilkan hanya item dengan tipe-tipe tertentu. Dapat berupa `n` untuk catatan, `t` untuk tugas, atau `nt` untuk catatan dan tugas (contoh: `-tt` hanya akan menampilkan tugas, sedangkan `-ttd` akan menampilkan catatan dan tugas).","Either \"text\" or \"json\"":"Antara \"text\" atau \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Gunakan format daftar yang panjang. Formatnya adalah ID, NOTE_COUNT (jumlah catatan) (untuk buku catatan), DATE (tanggal), TODO_CHECKED (tugas selesai) (untuk tugas), TITLE (judul)","Please select a notebook first.":"Silakan pilih buku catatan terlebih dahulu.","Imports data into Joplin.":"Mengimpor data ke Joplin.","Source format: %s":"Format sumber: %s","Do not ask for confirmation.":"Jangan meminta konfirmasi.","Found: %d.":"Ditemukan: %d.","Created: %d.":"Dibuat: %d.","Updated: %d.":"Diubah: %d.","Skipped: %d.":"Dilewati: %d.","Resources: %d.":"Sumber daya: %d.","Tagged: %d.":"Diberi label: %d.","Importing notes...":"Mengimpor catatan...","The notes have been imported: %s":"Catatan telah berhasil diimpor: %s","Enum":"Enum","Type: %s.":"Tipe: %s.","Possible values: %s.":"Nilai yang mungkin: %s.","Default: %s":"Default: %s","Possible keys/values:":"Kunci/nilai yang mungkin:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"Memulai, menghentikan atau memeriksa server API. Untuk menentukan pada port mana server seharusnya berjalan, setel variabel konfigurasi api.port. Perintahnya adalah (%s).","Server is already running on port %d":"Server sudah berjalan pada port %d","Server is running on port %d":"Server berjalan pada port %d","Server is not running.":"Server tidak berjalan.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Mengelola konfigurasi E2EE. Terdapat beberapa perintah yaitu `enable`, `disable`, `decrypt`, `status`, `decrypt-file` dan `target-status`.","Enter master password:":"Masukkan kata sandi master:","Operation cancelled":"Operasi dibatalkan","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Memulai dekripsi… Mohon tunggu beberapa saat, kemungkinan proses akan memakan waktu beberapa menit tergantung seberapa besar yang akan didekripsi.","Decrypted items: %d":"Item terdekripsi: %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"Item yang dilewati: %d (gunakan --retry-failed-items untuk mencoba mendekripsinya lagi)","Completed decryption.":"Proses dekripsi selesai.","Confirm password:":"Konfirmasi kata sandi:","Passwords do not match!":"Kata sandi tidak cocok!","Enabled":"Diaktifkan","Disabled":"Dinonaktifkan","Encryption is: %s":"Enkripsi adalah: %s","Creates a new notebook.":"Membuat buku catatan baru.","Moves the notes matching <note> to [notebook].":"Memindahkan catatan yang cocok dengan <note> (catatan) ke [notebook] (buku catatan).","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Mendapatkan atau menyetel nilai konfigurasi. Jika [value] (nilai) tidak tersedia, maka akan menampilkan nilai dari [name] (nama). Jika [name] maupun [value] tidak tersedia juga, maka akan menampilkan daftar konfigurasi saat ini.","Also displays unset and hidden config variables.":"Juga menampilkan variabel konfigurasi yang belum disetel dan yang tersembunyi.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Beralih ke [notebook] (buku catatan) - semua operasi selanjutnya akan terjadi dalam buku catatan ini.","Synchronises with remote storage.":"Menyinkronkan Line truncated
{"OK":"Baik","Cancel":"Batal","Goto Anything...":"Pergi ke apa saja...","Exporting to \"%s\" as \"%s\" format. Please wait...":"Mengekspor ke \"%s\" sebagai format \"%s\". Mohon tunggu...","Could not export notes: %s":"Tidak dapat mengekspor catatan: %s","Current version is up-to-date.":"Versi saat ini adalah versi terbaru.","%s (pre-release)":"%s (prarilis)","An update is available, do you want to download it now?":"Pembaruan tersedia, apakah Anda mau mengunduhnya sekarang?","Your version: %s":"Versi Anda: %s","New version: %s":"Versi baru: %s","Full Release Notes":"Catatan Rilis Lengkap","Search...":"Pencarian….","The note \"%s\" has been successfully restored to the notebook \"%s\".":"Catatan \"%s\" telah berhasil dipulihkan ke buku catatan \"%s\".","This note has no history":"Catatan ini tidak memiliki riwayat","Unsupported link or message: %s":"Tautan atau pesan yang tidak didukung: %s","Restore":"Pulihkan","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Klik \"%s\" untuk memulihkan catatan. Catatan akan disalin dalam buku catatan bernama \"%s\". Versi catatan saat ini tidak akan diganti atau dimodifikasi.","Back":"Kembali","Remove":"Hapus","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Hapus buku catatan \"%s\"?\n\nSemua catatan dan sub-buku catatan dalam buku catatan ini juga akan dihapus.","Delete":"Hapus","Remove tag \"%s\" from all notes?":"Hapus label \"%s\" dari semua catatan?","Remove this search from the sidebar?":"Hapus pencarian ini dari bilah samping?","Export":"Ekspor","All notes":"Semua catatan","Synchronise":"Sinkronisasi %s","Notebooks":"Buku catatan","Tags":"Label","Decrypting items: %d/%d":"Mendekripsi item: %d/%d","Fetching resources: %d/%d":"Mengambil sumber daya: %d/%d","Sidebar":"Bilah samping","Focus":"Fokus","Please select where the sync status should be exported to":"Silakan pilih di mana status sinkronisasi seharusnya diekspor","Retry All":"Coba lagi semua","Retry":"Coba lagi","strong text":"teks yang ditekankan lebih kuat (strong text)","Insert Hyperlink":"Masukkan Tautan","List item":"Item daftar","Layout":"Tata letak","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Catatan ini tidak memiliki konten. Klik \"%s\" untuk beralih ke editor dan mengedit catatan.","Cut":"Potong","Copy":"Salin","Paste":"Tempel","Edit":"Ubah","Attach file":"Lampirkan berkas","Insert Date Time":"Masukkan Waktu dan Tanggal","There was an error downloading this attachment:":"Terjadi kesalahan saat mengunduh lampiran ini:","This attachment is not downloaded or not decrypted yet":"Lampiran ini belum diunduh atau belum didekripsi","Open...":"Buka...","Save as...":"Simpan sebagai...","Copy path to clipboard":"Salin jalur ke papan klip","Copy Link Address":"Salin Alamat Tautan","to-do":"tugas","note":"catatan","Creating new %s...":"Membuat %s baru...","In: %s":"Di: %s","Select all":"Pilih semua","Bold":"Tebal","Italic":"Miring","Hyperlink":"Tautan","Code":"Kode","Numbered List":"Daftar nomor","Bulleted List":"Daftar berpoin","Checkbox":"Kotak centang","Heading":"Tajuk","Horizontal Rule":"Garis Horisontal","Note title":"Judul catatan","Search in current note":"Pencarian di catatan sekarang","Note body":"Isi catatan","ID":"ID","Created":"Dibuat","Updated":"Diubah","Completed":"Selesai","Location":"Lokasi","URL":"URL","Note History":"Riwayat catatan","Markup":"Markah","Previous versions of this note":"Versi sebelumnya dari catatan ini","Note properties":"Properti catatan","Disabled":"Dinonaktifkan","Import":"Impor","Quit":"Keluar","Insert template":"Masukkan templat","Actual Size":"Ukuran sebenarnya","Website and documentation":"Situs web dan dokumentasi","Close Window":"Tutup jendela","Options":"Pilihan","Save":"Simpan","Some items cannot be synchronised.":"Beberapa item tidak dapat di sinkronisasi.","View them now":"Lihat sekarang","Some items cannot be decrypted.":"Beberapa item tidak dapat di dekripsi.","One or more master keys need a password.":"Satu atau lebih kunci utama membutuhkan sandi.","Set the password":"Atur kata sandi","One of your master keys use an obsolete encryption method.":"Salah satu kunci utama Anda menggunakan metode enkripsi yang usang.","The default encryption method has been changed, you should re-encrypt your data.":"Metode enkripsi default telah diubah, Kamu harus mengenkripsi ulang datamu.","More info":"Info lain","Statistics...":"Statistik...","Rename":"Ganti nama","Rename notebook:":"Ganti nama buku catatan:","New to-do":"Tugas baru","Toggle note list":"Alihkan daftar catatan","Toggle sidebar":"Alihkan bilah samping","Set alarm":"Setel alarm","Set alarm:":"Setel alarm:","PDF File":"Berkas PDF","New note":"Catatan baru","Move to notebook":"Pindah ke buku catatan","Move to notebook:":"Pindah ke buku catatan:","Toggle editor layout":"Alihkan tata letak editor","Rename tag:":"Ganti nama laLine truncated
+43 -41
View File
@@ -1,5 +1,5 @@
const locales = {};
const stats = {};
var locales = {};
var stats = {};
locales['en_GB'] = require('./en_GB.json');
locales['ar'] = require('./ar.json');
locales['bg_BG'] = require('./bg_BG.json');
@@ -15,6 +15,7 @@ locales['es_ES'] = require('./es_ES.json');
locales['et_EE'] = require('./et_EE.json');
locales['eu'] = require('./eu.json');
locales['fa'] = require('./fa.json');
locales['fi_FI'] = require('./fi_FI.json');
locales['fr_FR'] = require('./fr_FR.json');
locales['gl_ES'] = require('./gl_ES.json');
locales['hr_HR'] = require('./hr_HR.json');
@@ -38,42 +39,43 @@ locales['tr_TR'] = require('./tr_TR.json');
locales['vi'] = require('./vi.json');
locales['zh_CN'] = require('./zh_CN.json');
locales['zh_TW'] = require('./zh_TW.json');
stats['ar'] = { 'percentDone': 78 };
stats['eu'] = { 'percentDone': 33 };
stats['bs_BA'] = { 'percentDone': 82 };
stats['bg_BG'] = { 'percentDone': 65 };
stats['ca'] = { 'percentDone': 95 };
stats['hr_HR'] = { 'percentDone': 27 };
stats['cs_CZ'] = { 'percentDone': 98 };
stats['da_DK'] = { 'percentDone': 72 };
stats['de_DE'] = { 'percentDone': 97 };
stats['et_EE'] = { 'percentDone': 65 };
stats['en_GB'] = { 'percentDone': 100 };
stats['en_US'] = { 'percentDone': 100 };
stats['es_ES'] = { 'percentDone': 98 };
stats['eo'] = { 'percentDone': 37 };
stats['fr_FR'] = { 'percentDone': 98 };
stats['gl_ES'] = { 'percentDone': 42 };
stats['id_ID'] = { 'percentDone': 92 };
stats['it_IT'] = { 'percentDone': 98 };
stats['nl_NL'] = { 'percentDone': 94 };
stats['nl_BE'] = { 'percentDone': 33 };
stats['nb_NO'] = { 'percentDone': 87 };
stats['fa'] = { 'percentDone': 82 };
stats['pl_PL'] = { 'percentDone': 97 };
stats['pt_PT'] = { 'percentDone': 98 };
stats['pt_BR'] = { 'percentDone': 96 };
stats['ro'] = { 'percentDone': 77 };
stats['sl_SI'] = { 'percentDone': 41 };
stats['sv'] = { 'percentDone': 70 };
stats['th_TH'] = { 'percentDone': 52 };
stats['vi'] = { 'percentDone': 84 };
stats['tr_TR'] = { 'percentDone': 97 };
stats['el_GR'] = { 'percentDone': 95 };
stats['ru_RU'] = { 'percentDone': 94 };
stats['sr_RS'] = { 'percentDone': 70 };
stats['zh_CN'] = { 'percentDone': 95 };
stats['zh_TW'] = { 'percentDone': 94 };
stats['ja_JP'] = { 'percentDone': 99 };
stats['ko'] = { 'percentDone': 99 };
module.exports = { locales: locales, stats: stats };
stats['ar'] = {"percentDone":77};
stats['eu'] = {"percentDone":33};
stats['bs_BA'] = {"percentDone":79};
stats['bg_BG'] = {"percentDone":64};
stats['ca'] = {"percentDone":92};
stats['hr_HR'] = {"percentDone":26};
stats['cs_CZ'] = {"percentDone":96};
stats['da_DK'] = {"percentDone":79};
stats['de_DE'] = {"percentDone":96};
stats['et_EE'] = {"percentDone":63};
stats['en_GB'] = {"percentDone":100};
stats['en_US'] = {"percentDone":100};
stats['es_ES'] = {"percentDone":96};
stats['eo'] = {"percentDone":36};
stats['fi_FI'] = {"percentDone":97};
stats['fr_FR'] = {"percentDone":96};
stats['gl_ES'] = {"percentDone":42};
stats['id_ID'] = {"percentDone":88};
stats['it_IT'] = {"percentDone":97};
stats['nl_BE'] = {"percentDone":33};
stats['nl_NL'] = {"percentDone":96};
stats['nb_NO'] = {"percentDone":85};
stats['fa'] = {"percentDone":79};
stats['pl_PL'] = {"percentDone":95};
stats['pt_BR'] = {"percentDone":93};
stats['pt_PT'] = {"percentDone":95};
stats['ro'] = {"percentDone":74};
stats['sl_SI'] = {"percentDone":41};
stats['sv'] = {"percentDone":68};
stats['th_TH'] = {"percentDone":50};
stats['vi'] = {"percentDone":82};
stats['tr_TR'] = {"percentDone":94};
stats['el_GR'] = {"percentDone":92};
stats['ru_RU'] = {"percentDone":92};
stats['sr_RS'] = {"percentDone":69};
stats['zh_CN'] = {"percentDone":97};
stats['zh_TW'] = {"percentDone":91};
stats['ja_JP'] = {"percentDone":97};
stats['ko'] = {"percentDone":97};
module.exports = { locales: locales, stats: stats };
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica le note che corrispondono a <note> nel [notebook]. Se nessun Taccuino è specificato, la nota viene duplicata nel Taccuino corrente.","Cannot find \"%s\".":"Non posso trovare \"%s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Mostra le Note nel seguente Taccuino. Usa `ls /` per mostrare la lista dei Taccuini.","Displays only the first top <num> notes.":"Mostra solo le prima <num> note.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Ordina per <field> (es. titolo, ultimo aggiornamento, creazione).","Reverses the sorting order.":"Inverti l'ordine.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Mostra solo gli elementi del tipo specificato. Possono essere `n` per le note, `t` per le \"Cose-da-fare\" o `nt` per note e \"Cose-da-fare\". (es. `-tt` mostrerà solo le \"Cose-da-fare\", mentre `-ttd` mostrerà sia note che \"Cose-da-fare\".","Either \"text\" or \"json\"":"Sia \"testo\" che \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usa un formato lungo di lista. Il formato è ID, NOTE_COUNT (per i blocchi note), DATE, TODO_CHECKED (per le \"Cose-da-fare\"), TITLE","Please select a notebook first.":"Per favore prima seleziona un Taccuino.","Imports data into Joplin.":"Importa i dati in Joplin.","Source format: %s":"Formato sorgente: %s","Do not ask for confirmation.":"Non chiedere conferma.","Output format: %s":"Formato di esportazione: %s","Found: %d.":"Trovato: %d.","Created: %d.":"Creato: %d.","Updated: %d.":"Aggiornato: %d.","Skipped: %d.":"Saltato: %d.","Resources: %d.":"Risorse: %d.","Tagged: %d.":"Etichettato: %d.","Importing notes...":"Importazione delle note...","The notes have been imported: %s":"Le note sono state importate: %s","Enum":"Enumerare","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valori possibili: %s.","Default: %s":"Predefinito: %s","Possible keys/values:":"Chiave/valore possibili:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"Avvia, ferma o controlla il server API. Per specificare su quale porta deve essere eseguito, setta la variabile api.config. I comandi sono (%s).","Server is already running on port %d":"Il server è già in esecuzione sulla porta %d","Server is running on port %d":"Il server è in esecuzione sulla porta %d","Server is not running.":"Il server non è in esecuzione.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Gestisci la configurazione E2EE. I comandi sono `abilita`, `disabilita`, `decripta`, `stato`, `decripta-file` e `stato-target`.","Enter master password:":"Inserisci password principale:","Operation cancelled":"Operazione annullata","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Avvio decrittazione... Attendere prego, ci potrebbero volere diversi minuti per la decriptazione.","Decrypted items: %d":"Elementi decriptati: %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"Elementi saltati: %d (utilizza --retry-failed-items per riprovare a decrittografarli)","Completed decryption.":"Decrittografia completata.","Confirm password:":"Conferma password:","Passwords do not match!":"Le password non combaciano!","Enabled":"Attivato","Disabled":"Disabilitato","Encryption is: %s":"La crittografia è: %s","Creates a new notebook.":"Crea un nuovo Taccuino.","Moves the notes matching <note> to [notebook].":"Sposta le note che corrispondono a <note> in [notebook].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Ricevi o imposta un valore di configurazione. se [value] non è impostato, verrà mostrato il valore del [name]. Se sia [name] che [valore] sono impostati, verrà mostrata la configurazione corrente.","Also displays unset and hidden config variables.":"Mostra anche le variabili di configurazione non impostate o nascoste.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Passa tra [notebook] - tutte le ulteriori operazioni interesseranno il seguente Taccuino.","Synchronises with remote storage.":"Sincronizza con l'archivio remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizza con l'obiettivo fornito (come predefinito il valore di configurazione sync.target)","Upgrade the sync target to the latest version.":"Aggiorna la destinazione di sincroLine truncated
{"OK":"OK","Cancel":"Annulla","The app is now going to close. Please relaunch it to complete the process.":"Ora l'applicazione si chiuderà. Premi rilancia per completare il processo.","Type a note title or part of its content to jump to it. Or type # followed by a tag name, or @ followed by a notebook name. Or type : to search for commands.":"Scrivi il titolo di una nota o parte del suo contenuto per aprirla. Oppure digita # seguito dal nome di un'etichetta, oppure @ seguito dal nome di un taccuino. O scrivi : per cercare un comando.","Goto Anything...":"Vai a...","Command palette":"Comandi","Exporting to \"%s\" as \"%s\" format. Please wait...":"Esportazione da \"%s\" come formato \"%s\". Si prega di attendere...","Could not export notes: %s":"Non è possibile esportare le note: %s","Current version is up-to-date.":"La versione attuale è aggiornata.","%s (pre-release)":"%s (pre-rilascio)","An update is available, do you want to download it now?":"È disponibile un aggiornamento, vuoi scaricarlo ora?","Your version: %s":"La tua versione: %s","New version: %s":"Nuova versione: %s","Download":"Scarica","Full Release Notes":"Note di rilascio complete","Search...":"Cerca...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"La nota \"%s\" è stata ripristinata con successo nel taccuino \"%s\".","This note has no history":"Questa nota non ha cronologia","Unsupported link or message: %s":"Link o Messaggio non supportato: %s","Restore":"Ripristina","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Clicca \"%s\" per ripristinare la nota. Verrà copiata nel taccuino denominato \"%s\". La versione corrente della nota non verrà sostituita o modificata.","Back":"Indietro","Remove":"Rimuovi","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Eliminare taccuino \"%s\"?\n\nAnche tutte le note e cartelle di questo taccuino saranno eliminati.","Delete":"Elimina","Remove tag \"%s\" from all notes?":"Rimuovere l’etichetta \"%s\" da tutte le note?","Remove this search from the sidebar?":"Rimuovere questa ricerca dalla barra laterale?","Export":"Esporta","All notes":"Tutte le note","Synchronise":"Sincronizza","Notebooks":"Taccuini","Tags":"Tag","Decrypting items: %d/%d":"Decrittografia Elementi: %d/%d","Fetching resources: %d/%d":"Recupero risorse: %d/%d","Sidebar":"Barra laterale","Focus":"Focus","Please select where the sync status should be exported to":"Prego selezionare dove lo stato della sincronizzazione deve essere esportato","Retry All":"Riprova tutti","Retry":"Riprova","strong text":"testo in grassetto","emphasised text":"testo sottolineato","Insert Hyperlink":"Inserire collegamento ipertestuale","List item":"Elemento della lista","Layout":"Disposizione","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Questa nota non ha contenuto. Fai clic su \"%s\" per attivare l'editor e modificare la nota.","Cut":"Taglia","Copy":"Copia","Paste":"Incolla","Checkbox list":"Lista di caselle di spunta","Edit":"Modifica","Attach file":"Allega File","Code Block":"Blocco di codice","Inline Code":"Codice inline","Insert Date Time":"Inserisci data e ora","Drop notes or files here":"Trascina qui note o file","Code View":"Codice","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"Attendi che tutti gli allegati vengano scaricati e decrittografati. Puoi anche passare a %s per modificare la nota.","There was an error downloading this attachment:":"Errore nel scaricare questo allegato:","This attachment is not downloaded or not decrypted yet":"Questo allegato non è ancora stato scaricato o decriptato","Open...":"Apri...","Save as...":"Salva come...","Reveal file in folder":"Visualizza file nella cartella","Copy path to clipboard":"Copia il percorso negli appunti","Copy Link Address":"Copia l'indirizzo del link","to-do":"attività","note":"nota","Creating new %s...":"Creare nuovo %s...","The following attachments are being watched for changes:":"I seguenti allegati sono monitorati per eventuali modifiche:","The attachments will no longer be watched when you switch to a different note.":"Gli allegati non verranno più monitorati quando passerai ad una nota differente.","In: %s":"In: %s","Select all":"Seleziona tutto","Bold":"Grassetto","Italic":"Corsivo","Hyperlink":"Collegamento ipertestuale","Code":"Codice","Numbered List":"Elenco Numerato","Bulleted List":"Elenco Puntato","Checkbox":"Casella di controllo","Heading":"Intestazione","Horizontal Rule":"Riga orizzontale","Note title":"Titolo della nota","Search in current note":"Cerca nella nota corrente","Note body":"Corpo della nota","ID":"ID","Created":"Creato","Updated":"Aggiornato","Completed":"Completato","Location":"Posizione","URL":"URL","Note History":"Cronologia nota","Markup":"Marcatura","Previous versions of this nLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"<note>に一致するノートを[notebook]に複製します。[notebook]が指定されていない場合は、現在のノートブックに複製を行います。","Cannot find \"%s\".":"\"%s\"は見つかりませんでした。","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"現在のノートブック中のノートを表示します。ノートブックのリストを表示するには、`ls /`と入力してください。","Displays only the first top <num> notes.":"上位 <num>件のノートを表示します。","Sorts the item by <field> (eg. title, updated_time, created_time).":"アイテムを<field>で並び替え (例: title, updated_time, created_time).","Reverses the sorting order.":"逆順に並び替えます。","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"選択した種類の項目のみ表示します。`n`でノートを、`t`でToDoを、`nt`でその両方を指定できます。 (例: `-tt` ではToDoのみを表示し、`-ttd`ではノートとToDoを表示します。)","Either \"text\" or \"json\"":"\"text\"または\"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"長い形式のリストフォーマットを使用します。フォーマットは:ID, NOTE_COUNT (ノートブックのみ), DATE, TODO_CHECKED (ToDoのみ), TITLE","Please select a notebook first.":"まずはノートブックを選択して下さい。","Imports data into Joplin.":"Joplinにデータをインポートします。","Source format: %s":"ソースフォーマット: %s","Do not ask for confirmation.":"確認を行ないません。","Output format: %s":"出力フォーマット: %s","Found: %d.":"総数: %d.","Created: %d.":"新規作成: %d.","Updated: %d.":"アップデート: %d.","Skipped: %d.":"スキップ: %d.","Resources: %d.":"リソース: %d.","Tagged: %d.":"タグ付き: %d.","Importing notes...":"ノートのインポート中...","The notes have been imported: %s":"ノートはインポートされました:%s","Enum":"列挙","Type: %s.":"種類: %s.","Possible values: %s.":"取り得る値: %s.","Default: %s":"既定値: %s","Possible keys/values:":"取り得るキー/値:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"APIサーバーの起動、停止、状況確認を行います。APIサーバーが使用するポートは api.port で変更できます。コマンドは (%s)。","Server is already running on port %d":"サーバーはすでにポート %d で実行中です。","Server is running on port %d":"サーバーはポート %d で実行中です。","Server is not running.":"サーバーは実行されていません。","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"エンドツーエンド暗号化(E2EE)の設定コマンドです。<command>には `enable`, `disable`, `decrypt`, `status`, `target-status` があります。","Enter master password:":"マスターパスワードを入力してください:","Operation cancelled":"操作をキャンセルしました","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"復号を開始しました... どのぐらいの数を復号するかによりますが、数分かかりますのでお待ちください。","Decrypted items: %d":"復号済み(非暗号化)アイテム: %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"スキップされたアイテム: %d (再度復号化を試みるには--retry-failed-itemsオプションを使用してください)","Completed decryption.":"復号が完了しました。","Confirm password:":"パスワード(確認用):","Passwords do not match!":"パスワードが一致しません!","Enabled":"有効","Disabled":"無効","Encryption is: %s":"暗号化: %s","Creates a new notebook.":"あたらしいノートブックを作成します。","Moves the notes matching <note> to [notebook].":"<note>に一致するアイテムを、[notebook]に移動します。","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"設定を行います。[value]がない場合は、[name]で示された設定項目の値を表示します。両方とも指定されていない場合は、現在の設定のリストを表示します。","Also displays unset and hidden config variables.":"未設定または非表示の設Line truncated
{"OK":"OK","Cancel":"キャンセル","The app is now going to close. Please relaunch it to complete the process.":"まもなくアプリケーションは終了します。もう一度起動して処理を完了させてください。","Type a note title or part of its content to jump to it. Or type # followed by a tag name, or @ followed by a notebook name. Or type : to search for commands.":"題名や本文の一部を入力してノートを検索し、そのノートに移動できます。また、「#タグ名」で該当タグ付きノートの一覧に、「@ノートブック名」で該当ノートブックに移動できます。あるいは「:」でコマンドを検索して実行できます。","Goto Anything...":"Goto Anything...","Command palette":"コマンドパレット","Exporting to \"%s\" as \"%s\" format. Please wait...":"\"%s\" を \"%s\" フォーマットにエクスポート中。しばらくお待ちください...","Could not export notes: %s":"ノートをエクスポートできませんでした: %s","Current version is up-to-date.":"現在のバージョンは最新版です。","%s (pre-release)":"%s (プレリリース)","An update is available, do you want to download it now?":"アップデートがあります。すぐにダウンロードしますか?","Your version: %s":"あなたのバージョン: %s","New version: %s":"新バージョン: %s","Full Release Notes":"リリースノート(完全版)","Search...":"検索...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"ノート \"%s\" のノートブック \"%s\"への復元は成功しました。","This note has no history":"このノートに履歴はありません","Unsupported link or message: %s":"次のリンクまたはメッセージはサポートしていません: %s","Restore":"復元","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"\"%s\"をクリックすると復元を行います。復元されるノートは\"%s\"というノートブックにコピーされます。現在のバージョンのノートの置換や変更は行われません。","Back":"戻る","Remove":"削除","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"ノートブック \"%s\" を削除しますか?\n\nこのノートブックにあるノートとサブノートはすべて消えてしまいます。","Delete":"削除","Remove tag \"%s\" from all notes?":"すべてのノートからタグ \"%s\" を削除しますか?","Remove this search from the sidebar?":"サイドバーからこの検索を削除しますか?","Export":"エクスポート","All notes":"すべてのノート","Synchronise":"同期","Notebooks":"ノートブック","Tags":"タグ","Decrypting items: %d/%d":"復号中のアイテム: %d/%d","Fetching resources: %d/%d":"取得中のリソース: %d/%d","Sidebar":"サイドバー","Focus":"フォーカス","Please select where the sync status should be exported to":"同期状況の出力先を選択してください","Retry All":"すべて再試行","Retry":"再実行","strong text":"文字を太字に","emphasised text":"強調したいテキスト","Insert Hyperlink":"ハイパーリンクの挿入","List item":"リストアイテム","Layout":"レイアウト","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"このノートには中身がありません。 \"%s\" をクリックしてエディターを表示し、ノートを編集してください。","Cut":"切り取り","Copy":"コピー","Paste":"貼り付け","Checkbox list":"チェックボックスリスト","Edit":"編集","Attach file":"ファイルを添付する","Code Block":"コードブロック","Inline Code":"インラインコード","Insert Date Time":"日付の入力","Drop notes or files here":"ノートやファイルをここにドロップします","Code View":"コードビュー","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"すべての添付ファイルのダウンロードと復号が終わるまでお待ちください。%sに切り替えてノートを編集することはできます。","There was an error downloading this attachment:":"この添付ファイルをダウンロードするときにエラーが発生しました:","This attachment is not downloaded or not decrypted yet":"この添付ファイルはダウンロードされていないか、まだ復号されていません","Open...":"開く...","Save as...":"名前を付けて保存...","Reveal file in folder":"ファイルのあるフォルダーを開く","Copy path to clipboard":"クリップボードにパスを保存","Copy Link Address":"リンクアドレスをコピー","to-do":"to-do","note":"ノート","Creating new %s...":"新しい %s を作成中...",Line truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"<note>와 일치하는 노트를 [노트북]에 복제합니다. 노트북이 특정되지 않았다면 노트는 현재의 노트북에 복제됩니다.","Cannot find \"%s\".":"\"%s\"를 찾을 수 없습니다.","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"현재 노트북에 있는 노트를 표시합니다. `ls /`로 노트북의 목록을 확인하실 수 있습니다.","Displays only the first top <num> notes.":"맨 처음 <num> 노트만 표시합니다.","Sorts the item by <field> (eg. title, updated_time, created_time).":"항목을 <field>별로 정렬합니다 (예시: title, updated_time, created_time).","Reverses the sorting order.":"정렬 순서를 바꿉니다.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"특정 형식의 항목만 표시합니다. 노트의 경우 `n`, 할 일의 경우 `t`, 노트와 할 일 모두는 `nt` 입니다. (예시: 할 일은 `-tt`, 노트와 할 일은 `-ttd`).","Either \"text\" or \"json\"":"\"text\" 또는 \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"긴 목록 포맷을 사용합니다. 포맷은 ID, NOTE_COUNT (노트북에 해당), DATE, TODO_CHECKED (할 일에 해당), TITLE 입니다","Please select a notebook first.":"노트북을 먼저 선택해주세요.","Imports data into Joplin.":"데이터를 Joplin으로 가져옵니다.","Source format: %s":"원본 포맷: %s","Do not ask for confirmation.":"더 이상 확인을 묻지 않습니다.","Output format: %s":"출력 포맷: %s","Found: %d.":"발견됨: %d.","Created: %d.":"생성됨: %d.","Updated: %d.":"갱신됨: %d.","Skipped: %d.":"넘겨짐: %d.","Resources: %d.":"리소스: %d.","Tagged: %d.":"태그됨: %d.","Importing notes...":"노트를 가져오는 중...","The notes have been imported: %s":"노트를 가져왔습니다: %s","Enum":"열거","Type: %s.":"형태: %s.","Possible values: %s.":"가능한 값: %s.","Default: %s":"기본값: %s","Possible keys/values:":"가능한 키/값:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"API 서버를 시작, 중지 혹은 확인할수 있습니다. 실행할 포트를 지정하실려면, api.port 변수 설정을 변경해주세요. 명령어는 (%s) 입니다.","Server is already running on port %d":"서버가 이미 포트 %d에서 동작하고 있습니다","Server is running on port %d":"서버가 포트 %d에서 동작하고 있습니다","Server is not running.":"서버가 동작하지 않습니다.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"E2EE(종단간 암호화) 설정을 관리합니다. `enable`, `disable`, `decrypt`, `status`, `target-status`와 같은 명령들이 있습니다.","Enter master password:":"마스터 키를 넣어주세요:","Operation cancelled":"작업이 중지되었습니다","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"복호화를 시작합니다... 복호화 양에 따라서 몇 분 정도 걸릴수 있으니 잠시 기다러주세요.","Decrypted items: %d":"복호화된 항목: %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"건너뛴 항목: %d (복호화를 다시 시도하려면 --retry-failed-items를 사용)","Completed decryption.":"복호화가 완료되었습니다.","Confirm password:":"비밀번호 확인:","Passwords do not match!":"비밀번호가 맞지 않습니다!","Enabled":"사용함","Disabled":"사용하지 않음","Encryption is: %s":"암호화: %s","Creates a new notebook.":"새 노트북을 만듭니다.","Moves the notes matching <note> to [notebook].":"<note>와 일치하는 노트를 [notebook]으로 옮깁니다.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"설정값을 가져오거나 지정합니다. 만약 [value] 가 제공되지 않았다면, [name]의 값을 표시할 것입니다. [name] 과 [value] 모두 제공되지 않았다면, 현재 설정을 표시할 것입니다.","Also displays unset and hidden config variables.":"또한 설정하지 않았거나 숨겨진 설정 변수를 표시합니다.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"[notebook]으로 전환 - 앞으로의 모든 작업은 이 노트북 안에서만 해당됩니다.","Synchronises with remote storage.":"원격 저장Line truncated
{"OK":"확인","Cancel":"취소","The app is now going to close. Please relaunch it to complete the process.":"애플리케이션이 곧 종료됩니다. 프로세스를 완료하려면 다시 실해주세요.","Type a note title or part of its content to jump to it. Or type # followed by a tag name, or @ followed by a notebook name. Or type : to search for commands.":"노트 제목이나 내용의 일부를 입력하여 바로 이동하세요. 혹은 #으로 시작하는 태그 이름이나 @로 시작하는 노트북 이름을 입력하거나, :을 입력하여 명령을 검색하세요.\"","Goto Anything...":"가고자 하는 곳으로 이동...","Command palette":"명령 팔레트","Exporting to \"%s\" as \"%s\" format. Please wait...":"\"%s\"에 \"%s\" 포맷으로 내보내는 중입니다. 잠시만 기다려주세요...","Could not export notes: %s":"노트를 내보낼 수 없습니다: %s","Current version is up-to-date.":"현재 최신 버전을 사용중입니다.","%s (pre-release)":"%s (프리-릴리즈)","An update is available, do you want to download it now?":"업데이트가 있습니다. 지금 다운로드 할까요?","Your version: %s":"현재 버전: %s","New version: %s":"새 버전: %s","Download":"다운로드","Full Release Notes":"전체 릴리즈된 노트들","Search...":"찾기...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"노트 “%s”가 노트북 “%s\"에 성공적으로 복구되었습니다.","This note has no history":"이 노트엔 역사가 없습니다","Unsupported link or message: %s":"지원하지 않는 링크 또는 메세지: %s","Restore":"복구","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"\"%s\"를 클릭하여 노트를 복구하세요. 노트는 \"%s\" 이름을 가진 노트북에 복사될 것입니다. 현재 버전의 노트는 이동하거나 수정되지 않습니다.","Back":"뒤로 가기","Remove":"삭제","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"\"%s\" 노트북을 삭제할까요?\n\n이 노트북 안에 있는 모든 노트와 더불어 하위 노트북들도 함께 삭제됩니다.","Delete":"삭제","Remove tag \"%s\" from all notes?":"모든 노트에서 “%s” 태그를 제거할까요?","Remove this search from the sidebar?":"사이드바에서 이 검색 항목을 제거할까요?","Export":"내보내기","All notes":"모든 노트","Synchronise":"동기화","Notebooks":"노트북","Tags":"태그","Decrypting items: %d/%d":"복호화 항목: %d/%d","Fetching resources: %d/%d":"리소스 가져오는 중: %d/%d","Sidebar":"사이드바","Focus":"강조","Please select where the sync status should be exported to":"동기화 상태를 내보낼 대상을 선택하세요","Retry All":"전부 재시도","Retry":"재시도","strong text":"굵게","emphasised text":"강조","Insert Hyperlink":"하이퍼링크 삽입","List item":"목록 추가","Layout":"배치","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"비어있는 노트입니다. \"%s\" 항목을 선택해서 편집기를 전환하고 노트를 편집하세요.","Cut":"잘라내기","Copy":"복사","Paste":"붙여넣기","Checkbox list":"선택상자 목록","Edit":"편집","Attach file":"파일 첨부","Code Block":"코드 블록","Inline Code":"인라인 코드","Insert Date Time":"날짜와 시간 입력","Drop notes or files here":"노트나 파일을 여기에 끌어놓습니다","Code View":"코드 보기","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"모든 첨부 파일들이 다운로드 및 복호화될 때까지 기다려주세요. %s를 통해 이 노트를 편집하도록 전환할 수 있습니다.","There was an error downloading this attachment:":"첨부 파일을 다운로드하던 중에 오류가 발생했습니다:","This attachment is not downloaded or not decrypted yet":"이 첨부 파일은 아직 다운로드 또는 복호화 되지 않았습니다","Open...":"열기...","Save as...":"다른 이름으로 저장...","Reveal file in folder":"폴더에 있는 파일 표시","Copy path to clipboard":"경로를 클립보드에 복사","Copy Link Address":"링크 주소 복사","to-do":"할 일","note":"노트","Creating new %s...":"%s 새로 만들기...","The following attachments are being watched for changes:":"다음 첨부 파일들이 변경되었는지 감시하고 있습니다:","The attachments will no longer be watched when you switch to a different note.":"다른 노트로 전환하면 첨부 파일이 더 이상 감시되지 않습니다.","In: %s":"내부: %s","Select all":"모두 선택","Bold":"굵게","Italic":"기울임","Hyperlink":"하이퍼링크","Code":"코드","Numbered List":"번호 매기기 목록","Bulleted List":"글머리 기호 목록","CLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Dupliserer notatene som samsvarer med <note> til [notebook]. Hvis ingen notatbok er spesifisert blir notatet duplisert til gjeldende notatbok.","Cannot find \"%s\".":"Finner ikke \"%s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Viser notatene i gjeldende notatbok. Bruk `ls /` for å vise listen over notatbøker.","Displays only the first top <num> notes.":"Viser kun de første <num> notatene.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Sorter etter <field> (f.eks. title, updated_time, created_time).","Reverses the sorting order.":"Reverserer sorteringsrekkefølgen.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Viser kun elementene av den spesifikke typen. Kan være `n` for notater, `t` for gjøremål eller `nt` for notater og gjøremål (f.eks.` -tt` vile kun vise gjøremål, mens `-ttd` vil vise notater og gjøremål.)","Either \"text\" or \"json\"":"Enten \"text\" eller \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Bruk langt listeformat. Format er ID, NOTE_COUNT (for notatbok), DATE, TODO_CHECKED (for gjøremål), TITLE","Please select a notebook first.":"Vennligst velg en notatbok først.","Imports data into Joplin.":"Importer data til Joplin.","Source format: %s":"Kildeformat: %s","Do not ask for confirmation.":"Ikke spør om bekreftelse.","Found: %d.":"Funnet: %d.","Created: %d.":"Opprettet: %d.","Updated: %d.":"Oppdatert: %d.","Skipped: %d.":"Hoppet over: %d.","Resources: %d.":"Ressurser: %d.","Tagged: %d.":"Merket: %d.","Importing notes...":"Importer notater...","The notes have been imported: %s":"Notatene som har blitt importert: %s","Enum":"Enum","Type: %s.":"Type: %s.","Possible values: %s.":"Mulige verdier: %s.","Default: %s":"Standard: %s","Possible keys/values:":"Mulige nøkler/verdier:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"Start, stopp eller sjekk API-serveren. For å angi på hvilken port den skal kjøre,sett api.port konfigurasjonsvariablen. Kommandoer er (%s).","Server is already running on port %d":"Serveren kjører allerede på port %d","Server is running on port %d":"Serveren kjører på port %d","Server is not running.":"Serveren kjører ikke","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Konfigurerer E2EE-konfigurasjon. Tilgjengelige kommandoer er: `enable`(aktiver), `disable`(lukk), `decrypt`(dekrypter), `status` og `target-status` (mottager-status).","Enter master password:":"Skriv inn masterpassordet:","Operation cancelled":"Operasjon avbrutt","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Starter dekryptering... Vennligst vent da det kan ta flere minutter avhengig av mengden som skal dekrypteres.","Completed decryption.":"Dekryptering fullført.","Confirm password:":"Bekreft passord:","Passwords do not match!":"Passordene er ikke like!","Enabled":"Aktivert","Disabled":"Deaktivitert","Encryption is: %s":"Kryptering er: %s","Creates a new notebook.":"Oppretter en ny notatbok.","Moves the notes matching <note> to [notebook].":"Flytter notatene som samsvarer med <note> til [notebook].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Skaffer eller setter en konfigurasjonsverdi. Hvis [value] ikke er angitt vil den vise verdien av [name]. Hvis hverken [name] eller [value] ikke er angitt, vil den vise den gjeldende konfigurasjonen.","Also displays unset and hidden config variables.":"Viser også ikke-satte og skjulte konfigurasjonsvariabler.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Bytter til [notebook] - alle videre operasjoner vil skje i denne notatboken.","Synchronises with remote storage.":"Synkroniser med fjernlagring.","Sync to provided target (defaults to sync.target config value)":"Sync å forsynt mål (uteblivelsene å sync. target config-verdi)","Authentication was not completed (did not receive an authentication token).":"Godkjenning ble ikke fullført (mottok ikke et autoriseringsbevis).","To allow Joplin to synchronise with Dropbox, please follow the steps below:":"For å få Joplin til å synkronisere med Dropbox, vennligst følg trinnene under her:","Step 1: Open this URL in your browser to authorise the application:":"Steg 1: Åpne denne URL i din nettleser for å autorisere applikasjoneLine truncated
{"OK":"OK","Cancel":"Avbryt","Goto Anything...":"Hopp til...","Exporting to \"%s\" as \"%s\" format. Please wait...":"Eksporterer til \"%s\" i \"%s\" format. Vennligst vent...","Current version is up-to-date.":"Nåværende versjon er den siste tilgjengelige.","%s (pre-release)":"%s (førutgivelse)","An update is available, do you want to download it now?":"En oppdatering er tilgjengelig, vil du laste den ned nå?","Your version: %s":"Din versjon: %s","New version: %s":"Ny versjon: %s","Full Release Notes":"Alle utgivelsesnotater","Search...":"Søk...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"Notatet \"%s\" has blitt vellykket gjenopprettet i notatboken \"%s\".","This note has no history":"Dette notatet har ingen historikk","Unsupported link or message: %s":"Usupportert lenke eller melding: %s","Restore":"Gjenopprett","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Velg \"%s\" for å gjenopprette notatet. Det vil bli kopiert til notatboken\"%s\". Den nåværende versjonen av notatet vil ikke bli erstattet eller modifisert.","Back":"Tilbake","Remove":"Fjern","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Slette notatbok \"&s\"?\n\nAlle notater og underliggende notatbøker i denne notatboken vil også bli slettet.","Delete":"Slett","Remove tag \"%s\" from all notes?":"Fjern denne merkelappen \"%s\" fra alle notater?","Remove this search from the sidebar?":"Fjerne dette søket fra sidepanelet?","Export":"Eksporter","All notes":"Alle notater","Synchronise":"Synkroniser","Notebooks":"Notatbøker","Tags":"Merkelapper","Decrypting items: %d/%d":"Dekrypterer elementer: %d/%d","Fetching resources: %d/%d":"Henter ressurser: %d","Sidebar":"Sidepanel","Focus":"Fokuser","Please select where the sync status should be exported to":"Velg hvor synkroniseringsstatusen skal eksporteres til","Retry":"Prøv igjen","strong text":"fet tekst","Insert Hyperlink":"Sett inn hyperlenke","List item":"Listeelement","Layout":"Visning","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Dette notatet har ikke noe innhold. Klikk på \"%s\" for å redigere notatet.","Cut":"Klipp ut","Copy":"Kopier","Paste":"Lim inn","Edit":"Rediger","Attach file":"Legg ved fil","Insert Date Time":"Sett inn dato/tid","There was an error downloading this attachment:":"Det oppstod en feil ved nedlastingen av dette vedlegget:","This attachment is not downloaded or not decrypted yet":"Dette vedlegget er ikke lastet ned eller dekryptert enda.","Open...":"Åpne...","Save as...":"Lagre som...","Copy path to clipboard":"Kopier sti til utklippstavlen","Copy Link Address":"Kopier linkadresse","to-do":"gjøremål","note":"notat","Creating new %s...":"Oppretter nytt %s...","In: %s":"I: %s","Select all":"Marker alt","Bold":"Fet","Italic":"Kursiv","Hyperlink":"Hyperlenke","Code":"Kode","Numbered List":"Nummerert liste","Bulleted List":"Kulepunktliste","Checkbox":"Avmerkingsboks","Heading":"Overskrift","Horizontal Rule":"Horisontal strek","Note title":"Tittel på notat:","Search in current note":"Søk i nåværende notat","Note body":"Notatbrødtekst","ID":"ID","Created":"Opprettet","Updated":"Oppdatert","Completed":"Fullført","Location":"Lokasjon","URL":"URL","Note History":"Notathistorikk","Markup":"Markup","Previous versions of this note":"Forrige versjon av dette notatet","Note properties":"Notategenskaper","Disabled":"Deaktivitert","Import":"Importer","Quit":"Avslutt","Insert template":"Legg inn mal","Actual Size":"Faktisk størrelse","Website and documentation":"Nettsted og dokumentasjon","Close Window":"Lukk vindu","Options":"Generelle innstillinger","Save":"Lagre","Some items cannot be synchronised.":"Noen elementer kan ikke synkroniseres.","View them now":"Vis nå","Some items cannot be decrypted.":"Noen elementer kan ikke dekrypteres.","One or more master keys need a password.":"En eller flere masternøkler trenger et passord.","Set the password":"Sett passord","One of your master keys use an obsolete encryption method.":"En eller flere masternøkler bruker en utdatert krypteringsmetode.","The default encryption method has been changed, you should re-encrypt your data.":"Standard krypteringsmetode har blitt endret. Du bør rekryptere ditt innhold.","More info":"Mer informasjon","Rename":"Gi nytt navn","Rename notebook:":"Gi nytt navn til notatbok:","New to-do":"Nytt gjøremål","Toggle note list":"Skru på/av notatliste","Toggle sidebar":"Vis/skjul sidepanel","Set alarm":"Angi alarm","Set alarm:":"Angi alarm:","PDF File":"PDF-fil","New note":"Nytt notat","Toggle editor layout":"Bytt editorvisning","Rename tag:":"Gi nytt navn til merkelapp:","New notebook":"Ny notatbok","Notebook title:":"Tittel på notatbok:","Share note...":"Del notat...","New sub-notebook":"Ny undernotatbok","Template file:":"Malfiler","Add or remove tags:":"Legge til eller Line truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Dupliceert de notities die voldoen aan <note> in [notitieboek]. Als er geen notitieboek is gespecifeerd, zal de notitie gedupliceerd worden in het huidige notitieboek.","Cannot find \"%s\".":"Kan \"%s\" niet vinden.","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Toont de notities in het huidige notitieboek. Gebruik `ls /` om een lijst van notitieboeken te tonen.","Displays only the first top <num> notes.":"Toont enkel de top <num> notities.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Sorteert de items volgens <field> (bv. title, updated_time, created_time).","Reverses the sorting order.":"Draait de sorteervolgorde om.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Toont enkel de items van de specifieke type(s). Kan `n` zijn voor notities, `t` voor to-do's, of `nt` voor notities en to-do's (bv. `-tt` zou alleen to-do's tonen, terwijl `-ttd` notities en to-do's zou tonen).","Either \"text\" or \"json\"":"Of \"text\" of \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Gebruik lange lijstopmaak. Opmaak is ID, NOTE_COUNT (voor notitieboek), DATE, TODO_CHECKED (voor to-do's), TITLE","Please select a notebook first.":"Selecteer eerst een notitieboek. ","Imports data into Joplin.":"Importeert gegevens in Joplin.","Do not ask for confirmation.":"Vraag niet om bevestiging.","Found: %d.":"Gevonden: %d.","Created: %d.":"Aangemaakt: %d.","Updated: %d.":"Bijgewerkt: %d.","Skipped: %d.":"Overgeslagen: %d.","Resources: %d.":"Bronnen: %d.","Tagged: %d.":"Getagd: %d.","Importing notes...":"Notities importeren...","The notes have been imported: %s":"De notities zijn geïmporteerd: %s","Enum":"Enum","Type: %s.":"Type: %s.","Possible values: %s.":"Mogelijke waarden: %s.","Default: %s":"Standaard: %s","Possible keys/values:":"Mogelijke sleutels/waarden:","Enter master password:":"Geef hoofdpaswoord in:","Operation cancelled":"Actie geannuleerd","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Decodering gestart... Dit kan enkele minuten duren, afhankelijk van hoeveel er te decoderen valt. ","Completed decryption.":"Decodering voltooid.","Enabled":"Ingeschakeld","Disabled":"Uitgeschakeld","Encryption is: %s":"Encryptie is: %s","Creates a new notebook.":"Maakt een nieuw notitieboek aan.","Moves the notes matching <note> to [notebook].":"Verplaatst de notities die voldoen aan <note> naar [notitieboek].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Haalt een configuratie waarde op of stelt een waarde in. Als [value] niet opgegeven is, zal de waarde van [name] getoond worden. Als noch de [name] of [waarde] opgegeven zijn, zal de huidige configuratie opgelijst worden.","Also displays unset and hidden config variables.":"Toont ook niet-geconfigureerde en verborgen configuratie-opties. ","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Wisselt naar [notitieboek] - Alle verdere acties zullen op dit notitieboek toegepast worden.","Synchronises with remote storage.":"Synchroniseert met remote opslag. ","Sync to provided target (defaults to sync.target config value)":"Synchroniseer naar opgegeven doel (standaard sync.target configuratie optie)","Authentication was not completed (did not receive an authentication token).":"Authenticatie was niet voltooid (geen authenticatietoken ontvangen).","Synchronisation is already in progress.":"Synchronisatie reeds bezig.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Er is reeds een lockfile. Als u zeker bent dat er geen synchronisatie bezig is, kan de lock file verwijderd worden op \"%s\" en verder gegaan worden met de synchronisatie. ","Synchronisation target: %s (%s)":"Synchronisatiedoel: %s (%s)","Starting synchronisation...":"Synchronisatie starten...","Renames the given <item> (note or notebook) to <name>.":"Hernoemt het gegeven <item> (notitie of notitieboek) naar <name>.","Deletes the given notebook.":"Verwijdert het opgegeven notitieboek.","Deletes the notebook without asking for confirmation.":"Verwijdert het notitieboek zonder te vragen om bevestiging.","Creates a new to-do.":"Maakt nieuwe to-do aan.","Notes can only be created within a notebook.":"Notities kunnen enkel in een notitieboek aangemaakt worden.","Displays the given note.":"Toont de opgegeven notitie.","Displays the completLine truncated
{"OK":"OK","Cancel":"Annuleer","Unsupported link or message: %s":"Link of bericht \"%s\" wordt niet ondersteund","Back":"Terug","Delete":"Verwijderen","Remove this search from the sidebar?":"Dit item verwijderen van de zijbalk?","Synchronise":"Synchroniseer","Notebooks":"Notitieboeken","Tags":"Tags","Please select where the sync status should be exported to":"Selecteer waar de synchronisatie status naar geëxporteerd moet worden","Layout":"Layout","Cut":"Knip","Copy":"Kopieer","Paste":"Plak","Edit":"Bewerk","Attach file":"Voeg bestand toe","ID":"ID","Created":"Aangemaakt","Updated":"Bijgewerkt","Disabled":"Uitgeschakeld","Import":"Importeer","Quit":"Stop","Website and documentation":"Website en documentatie","Options":"Opties","Save":"Sla op","Some items cannot be synchronised.":"Sommige items kunnen niet gesynchroniseerd worden.","View them now":"Bekijk ze nu","Some items cannot be decrypted.":"Sommige items kunnen niet gedecodeerd worden.","Set the password":"Stel wachtwoord in","Rename":"Hernoem","Rename notebook:":"Hernoem notitieboek:","New to-do":"Nieuwe to-do","Set alarm":"Zet melding","Set alarm:":"Stel melding in:","New note":"Nieuwe notitie","New notebook":"Nieuw notitieboek","Notebook title:":"Notitieboek titel:","Add or remove tags:":"Voeg tag toe of verwijder tag","Synchronisation Status":"Synchronisatie status","About Joplin":"Over Joplin","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nieuw notitieboek \"%s\" zal aangemaakt worden en bestand \"%s\" wordt eraan toegevoegd","Found: %d.":"Gevonden: %d.","Created: %d.":"Aangemaakt: %d.","Updated: %d.":"Bijgewerkt: %d.","Skipped: %d.":"Overgeslagen: %d.","Resources: %d.":"Bronnen: %d.","Tagged: %d.":"Getagd: %d.","The notes have been imported: %s":"De notities zijn geïmporteerd: %s","Switch between note and to-do type":"Wissel tussen notitie en to-do type","Authentication was not completed (did not receive an authentication token).":"Authenticatie was niet voltooid (geen authenticatietoken ontvangen).","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Encryptie uitschakelen betekent dat *al* uw notities en toevoegingen opnieuw gesynchroniseerd zullen worden en ontsleuteld naar het synchronisatiedoel zullen gestuurd worden. Wil u verder gaan?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Encryptie inschakelen betekent dat *al* uw notities en toevoegingen opnieuw gesynchroniseerd zullen worden en versleuteld verzonden worden naar het synchronisatiedoel. Verlies het wachtwoord niet, aangezien dit de enige manier is om de date de ontsleutelen. Om encryptie in te schakelen, vul uw wachtwoord hieronder in. ","Disable encryption":"Schakel encryptie uit","Enable encryption":"Schakel encryptie in","Master Keys":"Hoofdsleutels","Active":"Actief","Source":"Bron","Password":"Wachtwoord","Password OK":"Wachtwoord OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Opmerking: Slechts één hoofdsleutel zal gebruikt worden voor versleuteling (aangeduid met \"active\"). Alle sleutels kunnen gebruikt worden voor decodering, afhankelijk van hoe de notitieboeken initieel versleuteld zijn.","Status":"Status","Encryption is:":"Versleuteling is:","Enabled":"Ingeschakeld","OneDrive Login":"OneDrive Login","Clear":"Vrijmaken","No notes in here. Create one by clicking on \"New note\".":"Geen notities. Maak een notitie door op \"Nieuwe notitie\" te klikken.","There is currently no notebook. Create one by clicking on \"New notebook\".":"U heeft momenteel geen notitieboek. Maak een notitieboek door op \"Nieuw notitieboek\" te klikken.","Search in all the notes":"Zoek in alle notities","Untitled":"Untitled","Delete these notes?":"Deze notities verwijderen?","Configuration":"Configuratie","There are currently no notes. Create one by clicking on the (+) button.":"Er zijn momenteel geen notities. Maak een notitie door op (+) te klikken.","The notebook could not be saved: %s":"Het notitieboek kon niet opgeslaan worden: %s","Edit notebook":"Bewerk notitieboek","Login with OneDrive":"Log in met OneDrive","Refresh":"Vernieuwen","Master Key %s":"Hoofdsleutel: %s","Created: %s":"Aangemaakt: %s","Password:":"Wachtwoord:","Password cannot be empty":"Wachtwoord kan niet leeg zijn","Enable":"Activeer","Encryption Config":"Encryptie configuratie","Encryption is: %s":"Encryptie is: %s","Log":"Log","Export Debug Report":"Exporteer debug rapport","This note has been modified:":"Deze notitie werd aangepast:","Save changes":"Sla wijzigingen op","DiscardLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Dupliceert de notities die overeenkomen met <note> tot [notebook]. Als geen notitieboek wordt opgegeven, dan wordt de notitie gedupliceerd in het huidige notitieboek.","Cannot find \"%s\".":"Kan \"%s\" niet vinden.","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Toont de notities van het huidige notitieboek. Gebruik `ls /` om de lijst met notitieboeken te tonen.","Displays only the first top <num> notes.":"Toont alleen de eerste <num> notities.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Sorteert de items op <field> (bijv. title, updated_time, created_time).","Reverses the sorting order.":"Keert de sorteervolgorde om.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Toont alleen items van specifieke type(s). Dit kan zijn: `n` voor notities, `t` voor taken of `nt` voor notities en taken (`-tt` toont alleen de taken, `-ttd` toont notities en taken).","Either \"text\" or \"json\"":"\"text\" of \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Gebruik de langelijstopmaak. De opmaak is ID, NOTE_COUNT (voor het notitieboek), DATA, TODO_CHECKED (voor taken), TITLE","Please select a notebook first.":"Kies eerst een notitieboek.","Imports data into Joplin.":"Importeert gegeven naar Joplin.","Source format: %s":"Bronformaat: %s","Do not ask for confirmation.":"Niet vragen om bevestiging.","Output format: %s":"Uitvoerformaat: %s","Found: %d.":"Gevonden: %d.","Created: %d.":"Gecreëerd: %d.","Updated: %d.":"Bijgewerkt: %d.","Skipped: %d.":"Overgeslagen: %d.","Resources: %d.":"Bronnen: %d.","Tagged: %d.":"Gelabeld: %d.","Importing notes...":"Notities importeren...","The notes have been imported: %s":"De notities zijn geïmporteerd: %s","Enum":"Enum","Type: %s.":"Type: %s.","Possible values: %s.":"Mogelijk waarden: %s.","Default: %s":"Standaard: %s","Possible keys/values:":"Mogelijke sleutels/waarden:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"Start, stop of controleer de API-server. Stel de api.port configuratievariabele in om te specificeren op welke poort deze draait. Commando's zijn (%s).","Server is already running on port %d":"Server wordt al uitgevoerd op poort %d","Server is running on port %d":"Server wordt uitgevoerd op poort %d","Server is not running.":"Server is niet actief.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Beheert de E2EE-configuratie. Opdrachten zijn: `enable`, `disable`, `decrypt`, `status`, `decrypt-file` en `target-status`.","Enter master password:":"Voer het hoofdwachtwoord in:","Operation cancelled":"Actie geannuleerd","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Decryptie starten... Een ogenblik geduld, het kan enkele minuten duren, afhankelijk van hoeveel er gedecodeerd moet worden.","Decrypted items: %d":"Ontsleutelde items: %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"Overgeslagen items: %d (gebruik --retry-failed-items om ze opnieuw te decoderen)","Completed decryption.":"Decryptie voltooid.","Confirm password:":"Bevestig wachtwoord:","Passwords do not match!":"Wachtwoorden komen niet overeen!","Enabled":"Ingeschakeld","Disabled":"Uitgeschakeld","Encryption is: %s":"Gebruikte encryptie: %s","Creates a new notebook.":"Creëert een nieuw notitieboek.","Moves the notes matching <note> to [notebook].":"Verplaatst de notities die overeenkomen met <note> naar [notebook].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Verkrijgt of stelt een configuratiewaarde in. Als [value] niet is opgegeven, dan wordt de waarde van [name] getoond. Als zowel [name] als [value] niet zijn opgegeven, dan wordt de huidige configuratie getoond.","Also displays unset and hidden config variables.":"Toont ook niet-ingestelde en verborgen configuratiewaarden.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Schakelt over naar [notebook] - alle toekomstige handelingen worden gedaan in dit notitieboek.","Synchronises with remote storage.":"Synchroniseert met cloudopslag.","Sync to provided target (defaults to sync.target config value)":"Synchroniseren naar opgegeven doel (standaard is dit sync.target)","Authentication was not completed (did not receive an authentication token).":"Authenticatie is niet voltooid (geen autheLine truncated
{"OK":"Oké","Cancel":"Annuleren","The app is now going to close. Please relaunch it to complete the process.":"De applicatie zal nu afsluiten. Gelieve het weer op te starten om het proces te voltooien.","Type a note title or part of its content to jump to it. Or type # followed by a tag name, or @ followed by a notebook name. Or type : to search for commands.":"Typ de titel van een notitie of een deel van de inhoud om er naartoe te springen. Typ # gevolgd door de naam van een label, @ gevolgd door de naam van een notitieboek, of : om te zoeken op commando's.","Goto Anything...":"Ga naar Alles...","Exporting to \"%s\" as \"%s\" format. Please wait...":"Bezig met exporteren van \"%s\" in het formaat \"%s\". Even geduld...","Could not export notes: %s":"Kon geen notities exporteren: %s","Current version is up-to-date.":"De huidige versie is up-to-date.","%s (pre-release)":"%s (pre-release)","An update is available, do you want to download it now?":"Er is een update beschikbaar. Wilt u deze nu downloaden?","Your version: %s":"Uw versie: %s","New version: %s":"Nieuwe versie: %s","Download":"Downloaden","Full Release Notes":"Volledige Release Notes","Search...":"Zoeken...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"De notitie “%s” is succesvol hersteld naar notitieboek “%s”.","This note has no history":"Deze notitie heeft geen geschiedenis","Unsupported link or message: %s":"Niet-ondersteunde link of bericht: %s","Restore":"Herstel","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Klik “%s” om de notitie te herstellen. Het wordt gekopieerd naar het notitieboek genaamd “%s”. De huidige versie van de notitie wordt niet vervangen of aangepast.","Back":"Terug","Remove":"Verwijderen","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Notitieboek “%s” verwijderen?\n\nAlle notities en sub-notitieboeken in dit notitieboek worden eveneens verwijderd.","Delete":"Verwijderen","Remove tag \"%s\" from all notes?":"Label “%s” verwijderen van alle notities?","Remove this search from the sidebar?":"Deze zoekopdracht verwijderen uit de zijbalk?","Export":"Exporteren","All notes":"Alle notities","Synchronise":"Synchroniseren","Notebooks":"Notitieboeken","Tags":"Labels","Decrypting items: %d/%d":"Bezig met ontsleutelen van items: %d/%d","Fetching resources: %d/%d":"Bronnen ophalen: %d/%d","Sidebar":"Zijbalk","Focus":"Focus","Please select where the sync status should be exported to":"Kies waar de synchronisatiestatus naar moet worden geëxporteerd","Retry All":"Alles opnieuw proberen","Retry":"Opnieuw proberen","strong text":"vetgedrukte tekst","emphasised text":"benadrukte tekst","Insert Hyperlink":"Hyperlink invoegen","List item":"Lijstitem","Layout":"Indeling","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Deze notitie bevat geen inhoud. Klik op \"%s\" om de editor te openen en de notitie te bewerken.","Cut":"Knippen","Copy":"Kopiëren","Paste":"Plakken","Checkbox list":"Checkboxlijst","Edit":"Bewerken","Attach file":"Bestand bijvoegen","Code Block":"Code Blok","Inline Code":"Inline-code","Insert Date Time":"Datum en tijd invoegen","Drop notes or files here":"Notities bestanden hier neerzetten","Code View":"Codeweergave","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"Wacht tot alle bijlagen zijn gedownload en versleuteld. Je mag ook overschakelen naar %s om de notitie te wijzigen.","There was an error downloading this attachment:":"Er is iets misgegaan tijdens het downloaden van deze bijlage:","This attachment is not downloaded or not decrypted yet":"Deze bijlage is niet gedownload of nog niet ontsleuteld","Open...":"Openen...","Save as...":"Opslaan als...","Reveal file in folder":"Bestand in map onthullen","Copy path to clipboard":"Pad kopiëren naar klembord","Copy Link Address":"Linkadres kopiëren","to-do":"taak","note":"notitie","Creating new %s...":"Bezig met creëren van nieuw(e) %s...","The following attachments are being watched for changes:":"De volgende bijlagen worden gecontroleerd op wijzigingen:","The attachments will no longer be watched when you switch to a different note.":"De bijlagen worden niet meer gecontroleerd wanneer je naar een andere notitie schakelt.","In: %s":"In: %s","Select all":"Alles selecteren","Bold":"Vetgedrukt","Italic":"Cursief","Hyperlink":"Hyperlink","Code":"Code","Numbered List":"Genummerde lijst","Bulleted List":"Opsommingslijst","Checkbox":"Checkbox","Heading":"Kop","Horizontal Rule":"Horizontale regel","Note title":"Titel van notitie","Search in current note":"Huidige notitie doorzoeken","Note body":"Inhoud van notitie","ID":"ID","Created":"Gecreëerd","Updated":"Bijgewerkt","Completed":"Voltooid","Location":"Locatie","URL":"URL","Note History":"Notitiegeschiedenis","Markup":"OpmaaLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplikuje notatki określone <note> do [notatnik]. Jeżeli notatnik nie zostanie określony, notatki zostaną zduplikowane w obecnym notatniku.","Cannot find \"%s\".":"Nie można znaleźć \"%s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Wyświetla notatki w obecnym notatniku. Użyj `ls /` aby wyświetlić listę notatników.","Displays only the first top <num> notes.":"Wyświetla jedynie pierwsze <num> notatek.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Sortuje obiekty po <field> (np. tytuł, data_aktualizacji, data_utworzenia).","Reverses the sorting order.":"Odwraca kierunek sortowania.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Wyświetla jedynie obiekty określonego typu(ów). Mogą być to `n` dla notatek, `t` dla zadań, `nt` dla notatek i zadań (np. `-tt` wyświetli jedynie zadania, podczas gdy `-ttd` wyświetli zarówno notatki, jak i zadania.","Either \"text\" or \"json\"":"Zarówno \"text\" jak i \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Użyj długiego formatu listy. Format to ID, LICZNIK_NOTATEK (dla notatników), DATA, ZADANIA_WYKONANE (dla zadań), TYTUŁ","Please select a notebook first.":"Na początku wybierz notatnik.","Imports data into Joplin.":"Importuje dane do Joplin.","Source format: %s":"Format źródłowy: %s","Do not ask for confirmation.":"Nie pytaj o potwierdzenie.","Output format: %s":"Format docelowy: %s","Found: %d.":"Znaleziono: %d.","Created: %d.":"Utworzono: %d.","Updated: %d.":"Zaaktualizowano: %d.","Skipped: %d.":"Pominięto: %d.","Resources: %d.":"Zasoby: %d.","Tagged: %d.":"Oznaczone: %d.","Importing notes...":"Importowanie notatek...","The notes have been imported: %s":"Notatki zostały zaimportowane: %s","Enum":"Wyliczanie","Type: %s.":"Typ: %s.","Possible values: %s.":"Możliwe wartośći: %s.","Default: %s":"Domyślne: %s","Possible keys/values:":"Dostępne klucze/wartości:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"Uruchom, zatrzymaj lub sprawdź serwer API. Aby określić port, na którym powinien działać ustaw zmienną api.port w konfiguracji. Polecenia to (%s)","Server is already running on port %d":"Serwer jest już uruchomiony na porcie %d","Server is running on port %d":"Serwer działa na porcie %d","Server is not running.":"Serwer nie został uruchomiony.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Zarządza konfiguracją E2EE (szyfrowanie po stronie klienta). Dostępne komendy to `enable`, `disable`, `decrypt`,`status`,`decrypt-file`,`target-status`.","Enter master password:":"Wprowadź hasło główne:","Operation cancelled":"Operacja anulowana","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Rozpoczynanie deszyfrowania...Proszę czekać, może to zająć kilkanaście minut w zależności od ilości danych.","Decrypted items: %d":"Deszyfrowane obiekty: %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"Pominięte obiekty: %d (użyj --retry-failed-items żeby ponownie spróbować je odszyfrować)","Completed decryption.":"Deszyfrowywanie zakończone.","Confirm password:":"Powtórz hasło:","Passwords do not match!":"Hasła się nie zgadzają!","Enabled":"Aktywowano","Disabled":"Deaktywowano","Encryption is: %s":"Szyfrowanie jest: %s","Creates a new notebook.":"Tworzy nowy notatnik.","Moves the notes matching <note> to [notebook].":"Przenosi notatki określone <note> do [notatnik].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Pobiera lub ustawia wartość pliku konfiguracyjnego. Jeżeli [wartość] nie jest podana, zostanie wyświetlona wartość [nazwa]. Jeżeli zarówno [nazwa], jak i [wartość] nie zostanie podana, wyświetlona zostanie lista z obecną konfiguracją.","Also displays unset and hidden config variables.":"Wyświetla także nieustawione i ukryte zmienne konfiguracyjne.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Przełącza na [Notatnik] - wszystkie przyszłe operacje zostaną wykonane w tym notatniku.","Synchronises with remote storage.":"Synchronizuje z dyskiem zdalnym.","Sync to provided target (defaults to sync.target config value)":"Synchronizuje z określonym serwisem (domyślnie z wartością konfiguracji sync.taLine truncated
{"OK":"OK","Cancel":"Anuluj","The app is now going to close. Please relaunch it to complete the process.":"Aplikacja zostanie teraz zamknięta. Uruchom ją ponownie aby ukończyć proces.","Goto Anything...":"Idź do...","Exporting to \"%s\" as \"%s\" format. Please wait...":"Eksportowanie do \"%s\" jako \"%s\". Proszę czekać...","Could not export notes: %s":"Nie udało się wyeksportować notatek: %s","Current version is up-to-date.":"Obecna wersja jest aktualna.","%s (pre-release)":"%s (przedpremiera)","An update is available, do you want to download it now?":"Aktualizacja jest dostępna, czy chcesz ją pobrać?","Your version: %s":"Twoja wersja: %s","New version: %s":"Nowa wersja: %s","Full Release Notes":"Całe informacje o wersji / opis zmian","Search...":"Wyszukaj...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"Notatka \"%s\" została pomyślnie przywrócona do notatnika \"%s\".","This note has no history":"Notatka nie posiada historii","Unsupported link or message: %s":"Niewspierany odnośnik lub wiadomość: %s","Restore":"Przywróć","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Naciśnij \"%s\" aby przywrócić notatkę. Zostanie ona skopiowana do notatnika o nazwie \"%s\". Obecna wersja notatki nie zostanie nadpisana lub zmodyfikowana.","Back":"Cofnij","Remove":"Usuń","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Usunąć notatnik \"%s:?\n\nWszystkie notatki i notatniki podrzędne zawarte w tym notatniku także zostaną usunięte.","Delete":"Usuń","Remove tag \"%s\" from all notes?":"Usunąć znacznik \"%s\" ze wszystkich notatek?","Remove this search from the sidebar?":"Usunąć wyszukiwanie z nawigatora?","Export":"Eksportuj","All notes":"Wszystkie notatki","Synchronise":"Synchronizuj","Notebooks":"Notatniki","Tags":"Znaczniki","Decrypting items: %d/%d":"Deszyfrowanie obiektów %d/%d","Fetching resources: %d/%d":"Pobieranie zasobów: %d/%d","Sidebar":"Nawigator","Focus":"Wyszczególnienie","Please select where the sync status should be exported to":"Proszę wybrać gdzie powinen zostać eksportowany status synchronizacji","Retry All":"Ponów wszystko","Retry":"Ponów","strong text":"pogrubienie","emphasised text":"wyszczególnienie","Insert Hyperlink":"Wstaw Hyperlink","List item":"Obiekt listy","Layout":"Układ","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Notatka nie posiada zawartości. Naciśnik na \"%s\" aby przełączyć edytor i edytować notatkę.","Cut":"Wytnij","Copy":"Kopiuj","Paste":"Wklej","Checkbox list":"Lista checkboxów","Edit":"Edytuj","Attach file":"Załącz plik","Code Block":"Blok kodu","Inline Code":"Kod w linii","Insert Date Time":"Wstaw stempel czasowy","Drop notes or files here":"Upuść notatki lub pliki tutaj","Code View":"Widok kodu","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"Poczekaj na pobranie I odszyfrowanie wszystkich załączników. Możesz też przenieść się do %s żeby edytować notatkę.","There was an error downloading this attachment:":"Wystąpił błąd pobierania załącznika:","This attachment is not downloaded or not decrypted yet":"Załącznik nie został jeszcze pobrany lub deszyfrowany","Open...":"Otwórz...","Save as...":"Zapisz jako...","Reveal file in folder":"Odkryj plik w folderze","Copy path to clipboard":"Skopiuj ścieżkę do schowka","Copy Link Address":"Skopiuj adres odnośnika","to-do":"zadanie","note":"notatka","Creating new %s...":"Tworzenie nowego %s...","The following attachments are being watched for changes:":"Następujące załączniki są obserwowane pod kątem zmian:","The attachments will no longer be watched when you switch to a different note.":"Załączniki nie będą obserwowane gdy przejdziesz do innej notatki.","In: %s":"W: %s","Select all":"Wybierz wszystko","Bold":"Pogrubienie","Italic":"Kursywa","Hyperlink":"Hyperlink","Code":"Kod","Numbered List":"Lista numerowana","Bulleted List":"Lista punktowa","Checkbox":"Pole wyboru","Heading":"Nagłówek","Horizontal Rule":"Linia horyzontalna","Note title":"Tytuł notatki","Search in current note":"Wyszukaj w obecnej notatce","Note body":"Zawartość notatki","ID":"ID","Created":"Utworzono","Updated":"Zaaktualizowano","Completed":"Ukończono","Location":"Lokacja","URL":"Odnośnik","Note History":"Historia notatek","Markup":"Markup","Previous versions of this note":"Poprzednie wersje notatki","Note properties":"Właściwośći notatki","Disabled":"Deaktywowano","Import":"Zaimportuj","Command":"Komenda","Keyboard Shortcut":"Skrót klawiszowy","Quit":"Wyjdź","Insert template":"Wstaw szablon","Actual Size":"Rozmiar rzeczywisty","Website and documentation":"Strona internetowa i dokumentacja","Hide Joplin":"Ukryj okno aplikacji","Close Window":"Zamknij okno","Preferences":"Ustawienia"Line truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica as notas que correspondem a <nota> para o [caderno]. Se nenhum caderno for especificado, a nota será duplicada no caderno atual.","Cannot find \"%s\".":"Não posso encontrar \"%s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Exibe as notas no caderno atual. Use `ls /` para exibir a lista de cadernos.","Displays only the first top <num> notes.":"Exibe apenas as primeiras <num>notas.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Classifica o item por <campo> (ex.: title, update_time, created_time).","Reverses the sorting order.":"Inverte a ordem de classificação.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Exibe apenas os itens do(s) tipo(s) específico(s). Pode ser `n` para notas,` t` para tarefas, ou `nt` para notas e tarefas (por exemplo.` -tt` exibiria apenas os itens pendentes, enquanto `-ttd` exibiria notas e tarefas .","Either \"text\" or \"json\"":"Ou \"text\" ou \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use o formato da lista longa. O formato é ID, NOTE_COUNT (para caderno), DATE, TODO_CHECKED (para tarefas), TITLE","Please select a notebook first.":"Por favor, selecione um caderno primeiro.","Imports data into Joplin.":"Importa dados para o Joplin.","Source format: %s":"Formato da origem: \"%s\"","Do not ask for confirmation.":"Não pedir confirmação.","Output format: %s":"Formato da saída: \"%s\"","Found: %d.":"Encontrado: %d.","Created: %d.":"Criado: %d.","Updated: %d.":"Atualizado: %d.","Skipped: %d.":"Ignorado: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Tag adicionada: %d.","Importing notes...":"Importando notas ...","The notes have been imported: %s":"As notas foram importadas: %s","Enum":"Enum","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valores possíveis: %s.","Default: %s":"Padrão: %s","Possible keys/values:":"Possíveis chaves/valores:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"Inicie, pare ou verifique o servidor da API. Para especificar em qual porta deve ser executada, defina a variável de configuração api.port. Os comandos são (%s).","Server is already running on port %d":"O servidor já está rodando na porta %d","Server is running on port %d":"O servidor está rodando na porta %d","Server is not running.":"O servidor não está executando.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Gerencia a configuração E2EE. Os comandos são `enable`, `disable`, `decrypt`, `status`, `decrypt-file` e `target-status`.","Enter master password:":"Digite a senha mestra:","Operation cancelled":"Operação cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando decriptação... Por favor aguarde, pois isso pode demorar vários minutos, dependendo de quanto há para decriptar.","Decrypted items: %d":"Itens decriptados: %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"Items ignorados: %d (use --retry-failed-items para tentar novamente)","Completed decryption.":"Decriptação completada.","Confirm password:":"Confirme a senha:","Passwords do not match!":"As senhas não coincidem!","Enabled":"Habilitado","Disabled":"Desabilitado","Encryption is: %s":"Encriptação está: %s","Creates a new notebook.":"Cria um novo caderno.","Moves the notes matching <note> to [notebook].":"Move as notas correspondentes <note> para [caderno].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtém ou define um valor de configuração. Se [valor] não for fornecido, ele mostrará o valor de [nome]. Se nem [nome] nem [valor] forem fornecidos, ele listará a configuração atual.","Also displays unset and hidden config variables.":"Também exibe variáveis de configuração não definidas e ocultas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Alterna para [caderno] - todas as operações adicionais acontecerão dentro deste caderno.","Synchronises with remote storage.":"Sincroniza com o armazenamento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizar para destino fornecido (p padrão é o valor de configuração sync.target)","Upgrade the sync target to the latest version.":"Atualizar o alvo de sincronização para a última versão.",Line truncated
{"OK":"OK","Cancel":"Cancelar","The app is now going to close. Please relaunch it to complete the process.":"O app irá fechar agora. Por favor, reabra-o para completar o processo.","Goto Anything...":"Ir para qualquer coisa...","Command palette":"Paleta de Comandos","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportando para \"%s\" com o formato \"%s\". Por favor, aguarde...","Could not export notes: %s":"Não foi possível exportar notas: %s","Current version is up-to-date.":"A versão atual está atualizada.","%s (pre-release)":"%s (pre-release)","An update is available, do you want to download it now?":"Uma atualização está disponível, você quer baixar agora?","Your version: %s":"Sua versão: %s","New version: %s":"Nova versão: %s","Full Release Notes":"Notas da versão completas","Search...":"Pesquisar...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"A nota \"%s\" foi restaurada com sucesso no caderno \"%s\".","This note has no history":"Esta nota não tem histórico","Unsupported link or message: %s":"Link ou mensagem não suportada: %s","Restore":"Restaurar","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Clique \"%s\" para restaurar a nota. Ela será copiada no caderno com nomes \"%s\". A versão atual da nota não será substituída ou modificada.","Back":"Voltar","Remove":"Remover","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Excluir o caderno\"%s\"?\n\nTodas as notas e sub-cadernos dentro deste também serão excluídos.","Delete":"Excluir","Remove tag \"%s\" from all notes?":"Remover a tag \"%s\" de todas as notas?","Remove this search from the sidebar?":"Remover essa pesquisa da barra lateral?","Export":"Exportar","All notes":"Todas as notas","Synchronise":"Sincronizar","Notebooks":"Cadernos","Tags":"Tags","Decrypting items: %d/%d":"Decriptando itens: %d/%d","Fetching resources: %d/%d":"Buscando recursos: %d/%d","Sidebar":"Barra Lateral","Focus":"Focar","Please select where the sync status should be exported to":"Favor selecionar o local para onde o status de sincronia deveria ser exportado","Retry All":"Tentar Todos de novo","Retry":"Tentar novamente","strong text":"texto forte","emphasised text":"texto enfatizado","Insert Hyperlink":"Inserir Hiperlink","List item":"Listar item","Layout":"Layout","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota não possui conteúdo. Clique em \"%s\" para alternar para o editor, e edite a nota.","Cut":"Cortar","Copy":"Copiar","Paste":"Colar","Checkbox list":"Lista de Opções","Edit":"Editar","Attach file":"Anexar arquivo","Code Block":"Bloco de Código","Inline Code":"Código","Insert Date Time":"Inserir Data e Hora","Drop notes or files here":"Solte notas e arquivos aqui","Code View":"Visualizar Código","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"Por favor, aguarde que todos os anexos sejam baixados e decriptados. Você também pode mudar para %s para editar a nota.","There was an error downloading this attachment:":"Houve um erro ao baixar este anexo:","This attachment is not downloaded or not decrypted yet":"O anexo ainda não foi baixado ou decriptado","Open...":"Abrir...","Save as...":"Salvar como...","Reveal file in folder":"Mostrar aquivo na pasta","Copy path to clipboard":"Copiar caminho para a área de transferência","Copy Link Address":"Copiar endereço do link","to-do":"tarefa","note":"nota","Creating new %s...":"Criando novo %s...","The attachments will no longer be watched when you switch to a different note.":"Os anexos não serão mais observados quando você mudar para uma notadiferente.","In: %s":"Em: %s","Select all":"Selecionar tudo","Bold":"Negrito","Italic":"Itálico","Hyperlink":"Hiperlink","Code":"Código","Numbered List":"Lista numerada","Bulleted List":"Lista com bullets","Checkbox":"Checkbox","Heading":"Cabeçalho","Horizontal Rule":"Régua horizontal","Note title":"Título da Nota","Search in current note":"Pesquisar na nota atual","Note body":"Corpo da Nota","ID":"ID","Created":"Criado","Updated":"Atualizado","Completed":"Completado","Location":"Localização","URL":"URL","Note History":"Histórico da Nota","Markup":"Marcação","Previous versions of this note":"Versões anteriores desta nota","Note properties":"Propriedades da nota","Disabled":"Desabilitado","Import":"Importar","Command":"Command","Quit":"Sair","Insert template":"Inserir template","Actual Size":"Tamanho Atual","Website and documentation":"Website e documentação","Close Window":"Fechar Janela","Options":"Opções","Press the shortcut":"Digite o atalho","Press the shortcut and then press ENTER. Or, press BACKSPACE to clear the shortcut.":"Digite o atalho e então aperte ENTER. Ou, pressione BARRA DE ESPAÇO para limpar oatalho","Save":"Salvar","TheLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica as notas que correspondam <note> com [notebook]. Se nenhum caderno for especificado, a Nota será duplicada no caderno atual.","Cannot find \"%s\".":"Não foi possível encontrar \"%s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Apresenta as notas neste caderno. Utilize `ls /` para apresentar a lista de cadernos.","Displays only the first top <num> notes.":"Apresenta apenas as primeiras <num> notas.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Ordena o item por <field> (ex.: title, update_time, created_time)","Reverses the sorting order.":"Inverte a ordem de ordenação.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Apresenta apenas os itens do(s) tipo(s) específico(s). Pode ser `n` para notas, `t` para tarefas, ou `nt` para notas e tarefas (ex: `-tt` apresentaria apenas as tarefas, enquanto `-ttd` apresentaria as notas e tarefas).","Either \"text\" or \"json\"":"Ou \"texto\" ou \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Utilize o formato de lista longa. O formato é ID, NOTE_COUNT (para cadernos), DATE, TODO_CHECKED (para tarefas), TITLE","Please select a notebook first.":"Por favor, selecione o caderno primeiro.","Imports data into Joplin.":"Importa dados para o Joplin.","Source format: %s":"Formato da origem: %s","Do not ask for confirmation.":"Não peça confirmação.","Output format: %s":"Formato da saída: %s","Found: %d.":"Encontrado: %d.","Created: %d.":"Criado: %d.","Updated: %d.":"Atualizado: %d.","Skipped: %d.":"Ignorado: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Etiquetado: %d.","Importing notes...":"A importar notas...","The notes have been imported: %s":"As notas foram importadas: %s","Enum":"Enumeração","Type: %s.":"Digite: %s.","Possible values: %s.":"Valores possíveis: %s.","Default: %s":"Pré-definido: %s","Possible keys/values:":"Chaves/valores possíveis:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"Iniciar, parar ou verificar o servidor da API. Para especificar em qual porta o mesmo deve ser executado, defina a variável api.port config. Os comandos são (%s).","Server is already running on port %d":"O servidor já está em execução na porta %d","Server is running on port %d":"O servidor está em execução na porta %d","Server is not running.":"O servidor não está em execução.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Administra a configuração E2EE. Os comandos são `enable`, `disable`, `decrypt`, `status`, `decrypt-file` e `target-status`.","Enter master password:":"Digite a palavra-passe mestra:","Operation cancelled":"Operação cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"A começar a desencriptação... Por favor, aguarde, dado que pode demorar vários minutos, dependendo de quanto há para desencriptar.","Decrypted items: %d":"Itens desencriptados: %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"Itens ignorados: %d (use --retry-failed-items para tentar desencriptá-los novamente)","Completed decryption.":"Desencriptação completa.","Confirm password:":"Confirmar palavra-passe:","Passwords do not match!":"As palavras-chave não correspondem!","Enabled":"Ativada","Disabled":"Desativada","Encryption is: %s":"Encriptação é: %s","Creates a new notebook.":"Cria um novo caderno.","Moves the notes matching <note> to [notebook].":"Move as notas correspondentes a <note> para [notebook].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtém ou define um valor de configuração. Se o [value] não for fornecido, será apresentado o valor de [name]. Se tanto [name] como [value] não forem fornecidos, será apresentada a configuração atual.","Also displays unset and hidden config variables.":"Também apresenta variáveis de configuração não definidas ou ocultas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Alterna para [notebook] - todas as outras operações acontecerão dentro deste caderno.","Synchronises with remote storage.":"Sincroniza com o armazenamento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizar para o destino indicado (pré-definido para o valor de configuração sync.target)","Line truncated
{"OK":"OK","Cancel":"Cancelar","The app is now going to close. Please relaunch it to complete the process.":"A aplicação vai fechar. Por favor volte a executá-la para completar o processo.","Goto Anything...":"Saltar para...","Exporting to \"%s\" as \"%s\" format. Please wait...":"A exportar para \"%s\" com o formato \"%s\". Por favor, aguarde...","Could not export notes: %s":"Não foi possível exportar as notas: %s","Current version is up-to-date.":"A versão atual está atualizada.","%s (pre-release)":"%s (pré-lançamento)","An update is available, do you want to download it now?":"Uma atualização está disponível, pretende transferi-la agora?","Your version: %s":"A sua versão: %s","New version: %s":"A nova versão %s","Full Release Notes":"Notas de Lançamento Completas","Search...":"Procurar...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"A nota \"%s\" foi recuperada com sucesso para o caderno \"%s\".","This note has no history":"Esta nota não tem histórico","Unsupported link or message: %s":"Ligação ou mensagem não suportados: %s","Restore":"Restaurar","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Carregue \"%s\" para restaurar a nota. A mesma será copiada para um caderno intitulado \"%s\". A versão atual da nota não será substituída ou modificada.","Back":"Atrás","Remove":"Remover","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Remover caderno \"%s\"?\n\nTodas as notas e sub-cadernos no interior deste caderno também serão eliminados.","Delete":"Eliminar","Remove tag \"%s\" from all notes?":"Remover a etiqueta \"%s\" de todas as notas?","Remove this search from the sidebar?":"Remover esta pesquisa da barra lateral?","Export":"Exportar","All notes":"Todas as notas","Synchronise":"Sincronizar","Notebooks":"Cadernos","Tags":"Etiquetas","Decrypting items: %d/%d":"A desencriptar itens: %d/%d","Fetching resources: %d/%d":"A obter recursos: %d/%d","Sidebar":"Barra lateral","Focus":"Foco","Please select where the sync status should be exported to":"Por favor, selecione para onde deverá o estado de sincronização ser exportado","Retry All":"Voltar a tentar tudo","Retry":"Repetir","strong text":"texto destacado","emphasised text":"texto realçado","Insert Hyperlink":"Inserir Hiperligação","List item":"Listar item","Layout":"Estrutura","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota não tem conteúdo. Carregue em \"%s\" para abrir o editor e editar a nota.","Cut":"Cortar","Copy":"Copiar","Paste":"Colar","Checkbox list":"Lista de caixas de seleção","Edit":"Editar","Attach file":"Anexar ficheiro","Code Block":"Bloco de Código","Inline Code":"Código em Linha","Insert Date Time":"Inserir Data e Hora","Drop notes or files here":"Insira notas ou ficheiros aqui","Code View":"Vista de Código","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"Por favor espere que todos os anexados sejam transferidos e desencriptados. Também pode mudar para %s para editar a nota.","There was an error downloading this attachment:":"Ocorreu um erro ao transferir este anexo:","This attachment is not downloaded or not decrypted yet":"Este anexo ainda não foi descarregado ou ainda não foi desencriptado","Open...":"Abrir...","Save as...":"Guardar como...","Reveal file in folder":"Revelar arquivo na pasta","Copy path to clipboard":"Copiar caminho para a área de transferência","Copy Link Address":"Copiar Endereço da Ligação","to-do":"tarefa","note":"nota","Creating new %s...":"A criar novo/a %s...","The following attachments are being watched for changes:":"Os anexos seguintes estão a ser monitorizados quanto a alterações:","The attachments will no longer be watched when you switch to a different note.":"Os anexos deixarão de ser monitorizados quando mudar para uma nota diferente.","In: %s":"Em: %s","Select all":"Selecionar tudo","Bold":"Negrito","Italic":"Itálico","Hyperlink":"Hiperligação","Code":"Código","Numbered List":"Lista Enumerada","Bulleted List":"Lista com Marcadores","Checkbox":"Campo de seleção","Heading":"Cabeçalho","Horizontal Rule":"Régua Horizontal","Note title":"Título da nota","Search in current note":"Procurar nesta nota","Note body":"Corpo da nota","ID":"ID","Created":"Criado","Updated":"Atualizado","Completed":"Concluído","Location":"Localização","URL":"Endereço","Note History":"Histórico de notas","Markup":"Sinalização","Previous versions of this note":"Versões prévias desta nota","Note properties":"Propriedades da nota","Error: %s":"Erro: %s","Disabled":"Desativada","Import":"Importar","Command":"Comando","Keyboard Shortcut":"Atalhos de Teclado","Quit":"Sair","Insert template":"Inserir modelo","Actual Size":"Dimensão Atual","Website and documentation":"Página da internLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Dublează notele care se potrivesc <note> in [agendă]. Dacă nu este specificat nici o agendă, nota este dublată în agenda curentă.","Cannot find \"%s\".":"Nu poate fi găsit \"%s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Afișează notele în agenda curentă. Utilizați 'ls /' pentru a afișa lista de notițe.","Displays only the first top <num> notes.":"Afișează numai primele notițe.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Sortează elementul după <field> (de exemplu, titlu, data_actualizării, data_creării).","Reverses the sorting order.":"Inversează ordinea sortării.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Afișează numai elementele de tipul (tipurile) specific(e). Tipuri acceptate: \"n\" pentru notițe, \"t\" pentru to-dos, sau \"nt\" pentru notițe și to-dos (de exemplu, `-tt` afișează numai to-dos, în timp ce `-ttd` afișează notițe și to-dos.","Either \"text\" or \"json\"":"Sau \"text\", sau \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Utilizați formatul listei lungi. Formatul este ID, NOTE_COUNT (pentru agendă), DATE, TODO_CHECKED (pentru todos), TITLE","Please select a notebook first.":"Selectați prima dată un caiet de notițe.","Imports data into Joplin.":"Importați date în Joplin.","Source format: %s":"Formatul sursei: %s","Do not ask for confirmation.":"Nu cere confirmarea.","Output format: %s":"Formatul sursei: %s","Found: %d.":"Găsit: %d.","Created: %d.":"Creat: %d.","Updated: %d.":"Actualizat: %d.","Skipped: %d.":"Omise: %d.","Resources: %d.":"Resurse: %d.","Tagged: %d.":"Etichetate: %d.","Importing notes...":"Se importă notițe...","The notes have been imported: %s":"Notițele au fost importante: %s","Enum":"Enum","Type: %s.":"Tip: %s.","Possible values: %s.":"Valori posibile: %s.","Default: %s":"Modul implicit: %s","Possible keys/values:":"Posibile chei/valori:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"Porniți, opriți sau verificați serverul API. Pentru a specifica pe ce port trebuie să ruleze, setați variabila de configurare api.port. Comenzile sunt (% s).","Server is already running on port %d":"Serverul rulează deja pe portul% d","Server is running on port %d":"Serverul rulează pe portul %d","Server is not running.":"Serverul nu rulează.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Gestionarea configurația E2EE. Comenzile sunt „enable\", „disable\", „decrypt\", „status\", „decrypt-file\" și „target-status\".","Enter master password:":"Introduceți parola master:","Operation cancelled":"Operațiunea a fost amânată","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Se începe decriptarea... Vă rugăm să așteptați, deoarece poate dura câteva minute, în funcție de cât este de decriptat.","Decrypted items: %d":"Elemente decriptate: %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"Elemente omise:% d (utilizați --retry-failed-items pentru a încerca din nou decriptarea acestora)","Completed decryption.":"Decriptare completă.","Confirm password:":"Confirmare parolă:","Passwords do not match!":"Parolele nu se potrivesc!","Enabled":"Activat","Disabled":"Dezactivat","Encryption is: %s":"Criptarea este: %s","Creates a new notebook.":"Creați caiet de notițe.","Moves the notes matching <note> to [notebook].":"Mutați notițele care se potrivesc cu <notă> la [agendă].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obține sau setează o valoare de configurare. Dacă [valoare] nu este furnizată, va afișa valoarea [nume]. Dacă nu este furnizat nici [nume], nici [valoare], va afișa configurația curentă.","Also displays unset and hidden config variables.":"Afișează, de asemenea, variabile de configurare nesetate și ascunse.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Trece la [agendă] - toate operațiunile ulterioare vor avea loc în această agendă.","Synchronises with remote storage.":"Sincronizarea cu stocarea de la distanță.","Sync to provided target (defaults to sync.target config value)":"Sincronizarea cu o ținta specificată (presetat la valoare de configurare sync.target)","Authentication was not cLine truncated
{"OK":"OK","Cancel":"Anulați","Goto Anything...":"Mergeți la...","Exporting to \"%s\" as \"%s\" format. Please wait...":"Se exportă către \"%s\" în format \"%s\". Vă rugăm să așteptați...","Could not export notes: %s":"Nu s-au putut exporta notițele:% s","Current version is up-to-date.":"Versiunea curentă este actualizată.","%s (pre-release)":"%s (pre-lansare)","An update is available, do you want to download it now?":"Este disponibilă o nouă actualizare, doriți să o descărcați acum?","Your version: %s":"Versiunea dvs.:% s","New version: %s":"Versiune nouă:% s","Full Release Notes":"Descrierea versiunii instalate","Search...":"Caută...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"Nota \"%s\" a fost restabilită cu succes în agenda \"%s\".","This note has no history":"Această notă nu are istoric","Unsupported link or message: %s":"Link sau mesaj neacceptat:% s","Restore":"Restabilire","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Faceți clic pe \"%s\" pentru a restabili nota. Va fi copiat în agenda numită \"% s\". Versiunea actuală a notei nu va fi înlocuită sau modificată.","Back":"Înapoi","Remove":"Ștergeți","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Ștergeți agenda \"%s\"?\n\nToate notițele și sub-notițele în această agendă vor fi șterse.","Delete":"Ștergeți","Remove tag \"%s\" from all notes?":"Eliminați eticheta \"% s\" din toate notițele?","Remove this search from the sidebar?":"Eliminați această căutare din bara laterală?","Export":"Exportați","All notes":"Toate notițele","Synchronise":"Sincronizați","Notebooks":"Caiete de notițe","Tags":"Etichete","Decrypting items: %d/%d":"Se decriptează itemi: %d/%d","Fetching resources: %d/%d":"Încărcarea resurselor: %d/%d","Sidebar":"Bara laterală","Focus":"Focus","Please select where the sync status should be exported to":"Vă rugăm să selectați unde trebuie exportată starea de sincronizare","Retry All":"Încercați din nou toate","Retry":"Încercați din nou","strong text":"text strong","emphasised text":"text accentuat","Insert Hyperlink":"Introduceți hyperlink","List item":"Listați item","Layout":"Layout","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Această notiță nu are conținut. Faceți clic pe \"% s\" pentru a comuta editorul și a edita nota.","Cut":"Tăiați","Copy":"Copiați","Paste":"Lipește","Checkbox list":"Lista casetelor de selectare","Edit":"Editați","Attach file":"Atașați fișier","Code Block":"Bloc de cod","Inline Code":"Inline Cod","Insert Date Time":"Introduceți data și ora","Drop notes or files here":"Plasați notițe sau fișiere aici","Code View":"Vizualizare code","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"Vă rugăm să așteptați descărcarea și decriptarea tuturor atașamentelor. De asemenea, puteți comuta la %s pentru a edita notița.","There was an error downloading this attachment:":"A apărut o eroare la descărcarea acestui atașament:","This attachment is not downloaded or not decrypted yet":"Acest atașament nu este descărcat sau nu este încă decriptat","Open...":"Deschideți...","Save as...":"Salvați ca...","Reveal file in folder":"Afișează fișierul în folder","Copy path to clipboard":"Copiați locația în clipboard","Copy Link Address":"Copați adresa link-ului","to-do":"to-do","note":"notiță","Creating new %s...":"Se crează un %s...","In: %s":"În: %s","Select all":"Selectează tot","Bold":"Bold","Italic":"Italic","Hyperlink":"Hyperlink","Code":"Cod","Numbered List":"Listă numerotată","Bulleted List":"Listă cu puncte","Checkbox":"Căsuță","Heading":"Titlu","Horizontal Rule":"Linie orizontală","Note title":"Titlul caietului de notițe","Search in current note":"Căutați în notița curentă","ID":"ID","Created":"Creat","Updated":"Actualizat","Completed":"Completat","Location":"Locație","URL":"URL","Note History":"Istoric notiță","Markup":"Markup","Previous versions of this note":"Versiunile anterioare ale acestei notițe","Note properties":"Titlul caietului de notițe","Disabled":"Dezactivat","Import":"Importați","Quit":"Ieșiți","Insert template":"Inserați șablonul","Actual Size":"Dimensiunea actuală","Website and documentation":"Website și documentație","Close Window":"Închide fereastra","Options":"Opțiuni","Save":"Salvați","Some items cannot be synchronised.":"Câțiva itemi nu pot fi sincronizați.","View them now":"Vizualizați-le acum","Some items cannot be decrypted.":"Câțiva itemi nu pot fi descriptați.","One or more master keys need a password.":"Una sau mai multe chei master au nevoie de o parolă.","Set the password":"Setați parola","One of your master keys use an obsolete encryption method.":"Una dintre cheiLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Дублирует заметки, соответствующие выражению <note>, в блокнот [notebook]. Если блокнот не указан, заметки дублируются в текущем блокноте.","Cannot find \"%s\".":"Не удалось найти \"%s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Выводит заметки текущего блокнота. Для вывода списка блокнотов используйте `ls /`.","Displays only the first top <num> notes.":"Выводит только первые <num> заметок.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Сортирует элементы по полю <field> (напр. title, updated_time, created_time).","Reverses the sorting order.":"Меняет порядок сортировки.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Отображает только элементы заданного типа(ов). Поддерживаемые типы: `n` для заметок, `t` для задач или `nt` для заметок и задач (напр. `-tt` выведет только задачи, в то время как `-ttd` выведет и заметки, и задачи).","Either \"text\" or \"json\"":"Или \"text\" или \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Использовать расширенный формат списка. Поля формата: ID, NOTE_COUNT (для блокнотов), DATE, TODO_CHECKED (для задач), TITLE","Please select a notebook first.":"Сначала выберите блокнот.","Imports data into Joplin.":"Импортирует данные в Joplin.","Source format: %s":"Исходный формат: %s","Do not ask for confirmation.":"Не запрашивать подтверждение.","Output format: %s":"Выходной формат: %s","Found: %d.":"Найдено: %d.","Created: %d.":"Создано: %d.","Updated: %d.":"Обновлено: %d.","Skipped: %d.":"Пропущено: %d.","Resources: %d.":"Ресурсов: %d.","Tagged: %d.":"С метками: %d.","Importing notes...":"Импорт заметок...","The notes have been imported: %s":"Импортировано заметок: %s","Enum":"Enum","Type: %s.":"Тип: %s.","Possible values: %s.":"Возможные значения: %s.","Default: %s":"По умолчанию: %s","Possible keys/values:":"Возможные ключи/значения:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"Запустить, остановить или проверить сервер API. Порт сервера настраивается с помощью параметра конфигурации api.port. Доступные команды: (%s).","Server is already running on port %d":"Сервер уже запущен. Порт: %d","Server is running on port %d":"Сервер запущен. Порт: %d","Server is not running.":"Сервер не запущен.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Управляет конфигурацией E2EE. Доступные команды: `enable`, `disable`, `decrypt`, `status`, `decrypt-file` и `target-status`.","Enter master password:":"Введите мастер-пароль:","Operation cancelled":"Операция отменена","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Запуск расшифровки... Пожалуйста, подождите. Расшифровка может занять несколько минут в зависимости от объема данных.","Decrypted items: %d":"Расшифровано элементов: %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"Пропущено элементов: %d (используйте команду --retry-failed-items, чтобы повторить попытку расшифровки)","Completed decryption.":"Расшифровка завершена.","Confirm password:":"Подтвердите пароль:","Passwords do not match!":"Пароли не совпадают!","Enabled":"Включено","Disabled":"Отключено","Encryption is: %s":"Шифрование: %s","Creates a new notebook.":"Создает новый блокнот.","Moves the notes matchinLine truncated
{"OK":"OK","Cancel":"Отмена","Goto Anything...":"Перейти к чему-либо…","Exporting to \"%s\" as \"%s\" format. Please wait...":"Экспорт в \"%s\" в формате \"%s\". Пожалуйста, подождите...","Could not export notes: %s":"Не удалось экспортировать заметки: %s","Current version is up-to-date.":"Установлена последняя версия.","%s (pre-release)":"%s (предварительный выпуск)","An update is available, do you want to download it now?":"Доступно обновление, хотите загрузить его сейчас?","Your version: %s":"Ваша версия: %s","New version: %s":"Новая версия: %s","Full Release Notes":"Описание установленной версии","Search...":"Поиск...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"Заметка “%s” была успешно восстановлена в блокнот “%s”.","This note has no history":"Эта заметка не имеет предыдущих версий","Unsupported link or message: %s":"Неподдерживаемая ссылка или сообщение: %s","Restore":"Восстановить","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Нажмите “%s”, чтобы восстановить заметку. Она будет скопирована в блокнот “%s”. Текущая версия заметки не будет заменена или изменена.","Back":"Назад","Remove":"Удалить","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Удалить блокнот “%s”?\n\nВсе заметки и вложенные блокноты также будут удалены.","Delete":"Удалить","Remove tag \"%s\" from all notes?":"Удалить метку “%s” из всех заметок?","Remove this search from the sidebar?":"Удалить этот поиск из боковой панели?","Export":"Экспорт","All notes":"Все заметки","Synchronise":"Синхронизировать","Notebooks":"Блокноты","Tags":"Метки","Decrypting items: %d/%d":"Расшифровка элементов: %d/%d","Fetching resources: %d/%d":"Загрузка ресурсов: %d/%d","Sidebar":"Боковая панель","Focus":"Фокус","Please select where the sync status should be exported to":"Пожалуйста, выберите, куда должен быть экспортирован статус синхронизации","Retry All":"Повторить попытку для всех","Retry":"Повторить попытку","strong text":"полужирный текст","Insert Hyperlink":"Вставить гиперссылку","List item":"Элемент списка","Layout":"Вид редактора","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Эта пустая заметка. Нажмите на \"%s\", чтобы переключиться в редактор и отредактировать ее.","Cut":"Вырезать","Copy":"Копировать","Paste":"Вставить","Checkbox list":"Список флажков","Edit":"Правка","Attach file":"Прикрепить файл","Code Block":"Блок кода","Inline Code":"Инлайн код","Insert Date Time":"Вставить дату и время","Drop notes or files here":"Перетащите сюда заметки или файлы","Code View":"Просмотр кода","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"Пожалуйста, дождитесь окончания загрузки и расшифровки всех вложений. Вы можете переключиться на %s для редактирования заметки.","There was an error downloading this attachment:":"Произошла ошибка при загрузке вложения:","This attachment is not downloaded or not decrypted yet":"Это вложение еще не загружено или еще не расшифровано","Open...":"Открыть...","Save as...":"Сохранить как...","Reveal file in folder":"Показать файл в папке","Copy path to clipboard":"Скопировать путь в буфер обмена","Copy Link Address":"Скопировать ссылку","to-do":"задача","note":"заметка","Creating new %s...":"Создание новой %s...","In: %s":"В: %s","Select all":"Выбрать все","Bold":"Полужирный","Italic":"Курсивный","Hyperlink":"Гиперссылка","Code":"Код","Numbered List":"НуLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Podvoji zabeležke ustrezajoče <note> v [notebook]. Če nobena beležnica ni specificirana, zabeležka je podvojena v trenutni beležnici.","Cannot find \"%s\".":"Ni moč najti \"%s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Prikaže zabeležke v trenutni beležnici. Uporabite `ls /` za prikaz seznama beležnic.","Displays only the first top <num> notes.":"Prikaže samo prvih <num> zabeležk.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Razvrsti predmete glede na<field>(title, updated_time, created_time).","Reverses the sorting order.":"Obrne vrstni red.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Prikaže samo predmete specifičnega tipa(tipov). Lahko je `n` za zabeležke, `t` za seznam opravil ali `nt` za zabeležke in za seznam opravil (to pomeni. `-tt` bi prikazal samo za narediti, med tem ko `-ttd` bi prikazal zabeležke in seznam opravil.","Either \"text\" or \"json\"":"Ali \"text\" ali \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"V uporabi je format dolgi seznam in je formata ID, NOTE_COUNT (za beležnice), DATE, TODO_CHECKED (seznam opravil), TITLE","Please select a notebook first.":"Prosim najprej izberite beležnico.","Imports data into Joplin.":"Uvozi podatke v Joplin.","Source format: %s":"Format vira: %s","Do not ask for confirmation.":"Ne sprašuj za potrditev.","Found: %d.":"Najdeno: %d.","Created: %d.":"Ustvarjeno: %d.","Updated: %d.":"Posodobljeno: %d.","Skipped: %d.":"Preskočeno: %d.","Resources: %d.":"Viri: %d.","Tagged: %d.":"Zaznamovano: %d.","Importing notes...":"Uvažanje zabeležk...","The notes have been imported: %s":"Zabeležke so bile uvožene: %s","Enum":"Enum","Type: %s.":"Vrsta: %s.","Possible values: %s.":"Možne vrednosti: %s.","Default: %s":"Privzeto: %s","Possible keys/values:":"Možne tipke/vrednosti:","Enter master password:":"Vnesite glavno geslo:","Operation cancelled":"Operacija je preklicana","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Dekripcija se začenja... Prosim počakajte. Vse skupaj lahko vzame nekaj minut, glede na količino materiala, ki jo je potrebno dekriptirati.","Completed decryption.":"Dekripcija končana.","Enabled":"Omogočeno","Disabled":"Onemogočeno","Encryption is: %s":"Enkripcija je: %s","Creates a new notebook.":"Ustvari novo beležnico.","Moves the notes matching <note> to [notebook].":"Premakne ustrezno zabeležko, ki ustreza <note> v [notebook].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Dobi ali nastavi configuracijsko vrednost. Če [value] ni dodeljena, bo prikazana vrednost od [name]. Če niti [name] ali [value] nista dodeljena, bo prikazana sedanja konfiguracija.","Also displays unset and hidden config variables.":"Prikaže tudi nenastavljene in skrite spremenljivke konfiguracije.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Se premakne v [notebook] - vse nadaljnje operacije se bodo zgodile znotraj te beležnice.","Synchronises with remote storage.":"Sinhronizira z oddaljenim dostopom.","Sync to provided target (defaults to sync.target config value)":"Sinhroniziraj z danim ciljem(defaults to sync.target config value)","Authentication was not completed (did not receive an authentication token).":"Avtentikacija ni bila uspešna(autentikacijski token ni bil prejet).","Not authentified with %s. Please provide any missing credentials.":"Avtentikacija z %s ni potekla. Prosim priskrbite manjkajoče podatke.","Synchronisation is already in progress.":"Sinhronizacija je že v postopku.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Zaklenjena datoteka je že v postopku. Če veste, da trenutno ne poteka sinhronizacija, lahko izbrišete zaklenjeno datoteko na \"%s\" in nadaljujete z operacijo.","Synchronisation target: %s (%s)":"Mesto sinhronizacije: %s(%s)","Starting synchronisation...":"Sinhronizacija se začenja.","Renames the given <item> (note or notebook) to <name>.":"Preimenuje dano <item> (zabeležka ali beležnica) v <name>.","Deletes the given notebook.":"Izbriše dano beležnico.","Deletes the notebook without asking for confirmation.":"Izbriše beležnico brez potrebne potrditve.","Creates a new to-do.":"Ustvari nov seznam opravil.","Notes can only be created within a notebook.":"Zabeležke so lahko ustLine truncated
{"OK":"OK","Cancel":"Prekliči","Exporting to \"%s\" as \"%s\" format. Please wait...":"Izvažam v \"%s\" kot \"%s\" format. Prosim počakajte...","Current version is up-to-date.":"Sedanja verzija je najnovejša.","An update is available, do you want to download it now?":"Posodobitev je na voljo, jo želite prenesti sedaj?","Unsupported link or message: %s":"Nepodprta povezava ali sporočilo: %s","Back":"Nazaj","Delete":"Izbriši","Remove this search from the sidebar?":"Odstranite ta iskalni niz iz stranske vrstice?","Export":"Izvozi","Synchronise":"Sinhroniziraj","Notebooks":"Beležnice","Tags":"Oznake","Please select where the sync status should be exported to":"Prosim izberite, kam želite izvoziti sinhronizacijski status","Layout":"Izgled","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Ta zabeležka nima vsebine. Kliknite na \"%s\" da menjate med urejevalnikom in urejanje zabeležke.","Cut":"Izreži","Copy":"Kopiraj","Paste":"Prilepi","Edit":"Uredi","Attach file":"Pripni datoteko","Open...":"Odpri...","Save as...":"Shrani kot...","to-do":"seznam opravil","note":"zabeležka","Creating new %s...":"Ustvarjanje nove %s...","ID":"ID","Created":"Ustvarjeno","Updated":"Posodobljeno","Disabled":"Onemogočeno","Import":"Uvozi","Quit":"Izhod","Website and documentation":"Spletna stran in dokumentacija","Options":"Možnosti","Save":"Shrani","Some items cannot be synchronised.":"Nekateri premeti ne morejo biti sinhronizirani.","View them now":"Prikaži jih sedaj","Some items cannot be decrypted.":"Nekateri predmeti ne morejo biti dekriptirani.","Set the password":"Nastavi geslo","Rename":"Preimenuj","Rename notebook:":"Preimenuj beležnico:","New to-do":"Novi seznam opravil","Set alarm":"Nastavi alarm","Set alarm:":"Nastavi alarm:","PDF File":"PDF datoteka","New note":"Nova zabeležka","Toggle editor layout":"Spremeni izgled urejevalnika","New notebook":"Nova beležnica","Notebook title:":"Naslov beležnice:","Add or remove tags:":"Dodaj ali odstrani oznako:","Print":"Natisni","Importing from \"%s\" as \"%s\" format. Please wait...":"Uvažam v \"%s\" kot \"%s\" format. Prosim počakajte...","Synchronisation Status":"Sinhronizacijski status","About Joplin":"O Joplinu","Check for updates...":"Preverjanje za posodobitvami...","Hide %s":"Skrij %s","Make a donation":"Doniraj","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nova beležnica \"%s\" bo ustvarjena in datoteka \"%s\" bo uvožena v njo","Found: %d.":"Najdeno: %d.","Created: %d.":"Ustvarjeno: %d.","Updated: %d.":"Posodobljeno: %d.","Skipped: %d.":"Preskočeno: %d.","Resources: %d.":"Viri: %d.","Tagged: %d.":"Zaznamovano: %d.","The notes have been imported: %s":"Zabeležke so bile uvožene: %s","Switch between note and to-do type":"Menjaj med zabeležko in seznamom opravil","Authentication was not completed (did not receive an authentication token).":"Avtentikacija ni bila uspešna(autentikacijski token ni bil prejet).","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Onemogočanje enkripcije pomeni da bodo *vse* vaše zabeležke in priponke ponovno sinhronizirane in poslane neenkriptirane do ciljne sinhronizacijske naprave. Ali želite nadaljevati?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Omogočanje enkripcije pomeni, da bodo *vse* vaše zabeležke in priponke ponovno sinhronizirane in poslane enkriptirane do ciljne sinhronizacijske naprave. Obvezno si zapomnite geslo, saj bo zaradi varnostnih namenov to edini način, da dekriptirate vsebino beležnice. Da omogočite enkripcijo, vnesite geslo.","Disable encryption":"Onemogoči enkripcijo","Enable encryption":"Omogoči enkripcijo","Master Keys":"Glavno geslo","Active":"Aktiven","Source":"Vir","Password":"Geslo","Password OK":"Geslo OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Opomnik: samo eno glavno geslo bo uporabljeno za enkripcijo(tisto, ki je označena kot ''aktiven''). Vsa izmed gesel se lahko morda uporabijo za dekripcijo, odvisno od načina, kako so bile zabeležke in beležnice prvotno enkriptirane.","Missing Master Keys":"Manjkajoča glavna gesla","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"Glavna gesla s sledečimi ID so uporabljena za enkripcijo nekaterih vaših predmetov. Kakorkoli, aplikacija trenutno nima dostopa do njih. Verjetno je, da bodo sčaLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Дуплира белешке које се поклапају <note> u [Бележницу] . Уколико бележница није наведена белешка ће се дуплирати у тренутној бележници.","Cannot find \"%s\".":"Не могу пронаћи \"%s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Приказује белешке у tренутној бележници. Користите 'ls /' да прикажете листу бележница.","Displays only the first top <num> notes.":"Приказује само прве у врху <num> белешке.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Сортира ставке по <field> (нпр. назив, време_ажурирања, време_креирања).","Reverses the sorting order.":"Преокреће редослед сортирања.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Приказује само ставке специфичног типа. Може бити `n` за белешке, `t` за листу обавити, или `nt` за белешке и обавити листу (нпр. `-tt` би приказало само ставке задужења док `-ttd` би приказало белешке и листу задужења.","Either \"text\" or \"json\"":"Или \"текст\" или \"џејсон\" - (json)","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Користите дугачки формат листе. Формат је ID, NOTE_COUNT (за бележницу), DATE, TODO_CHECKED (за листу ставки задужења)","Please select a notebook first.":"Молимо вас да прво одаберете бележницу.","Imports data into Joplin.":"Увоз података у Џоплин.","Source format: %s":"Избворни формат: %s","Do not ask for confirmation.":"Не питај за потврду.","Found: %d.":"Пронађено: %d.","Created: %d.":"Креирано: %d.","Updated: %d.":"Ажурирано: %d.","Skipped: %d.":"Прескочено: %d.","Resources: %d.":"Ресурси: %d.","Tagged: %d.":"Означено: %d.","Importing notes...":"Увозим белешке...","The notes have been imported: %s":"Белешке су увезене: %s","Enum":"Енумериација","Type: %s.":"Тип:%s.","Possible values: %s.":"Могуће вредности: %s.","Default: %s":"Подразумевано: %s","Possible keys/values:":"Могуће вредности:","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Управља Е2ЕЕ конфигурацијом. Команде су `enable`, `disable`, `decrypt`, `status`, `decrypt-file` и `target-status`.","Enter master password:":"Унесите главну лозинку:","Operation cancelled":"Операција је обустављена","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Започињем декрипцију... Молим вас сачекајте јер може потрајати пар минута у зависности од количине садржаја која се декриптује.","Completed decryption.":"Дешифровање је завршено.","Enabled":"Омогућено","Disabled":"Онемогућено","Encryption is: %s":"Шифровање је: %s","Creates a new notebook.":"Креира нову бележницу.","Moves the notes matching <note> to [notebook].":"Премешта белешке које се подударају са <note> у [белешку].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Добија или поставља конфигурацијску вредност. Уколико (вредност) није дата, приказаће вредност (имена). Уколико ни (име) ни вредност нису одбрани излистаће се тренутна конфигурација.","Also displays unset and hidden config variables.":"Такође приказује неподешене или скривене конфигурацијске промењљиве.","Switches to [notebook] - all further operations will happen within this notebook.":"Пребацује се на [notebook] - све даље операције ће се одвиLine truncated
{"OK":"ОК","Cancel":"Обустави","Goto Anything...":"Иди на било шта...","Exporting to \"%s\" as \"%s\" format. Please wait...":"Извозим у \"%s као \"%s\" формат. Молимо вас да сачекате...","Current version is up-to-date.":"Тренутна верзија је ажурна.","%s (pre-release)":"%s (верзија пре главне)","An update is available, do you want to download it now?":"Доступно је ажурирање програма, да ли желите да га сада преузмете?","Your version: %s":"Ваша верзија: %s","New version: %s":"Нова верзија: %s","Search...":"Претрага...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"Ова белешка \"%s\" је успешно враћена у бележницу \"%s\".","This note has no history":"Ова белешка нема историју","Unsupported link or message: %s":"Неподржана веза или порука: %s","Restore":"Повраћај","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Кликните \"%s\" за повраћај белешке. Биће копирана у бележницу под називом \"%s\". Тренутна верзија белешке неће бити замењена или измењена.","Back":"Назад","Remove":"Уклони","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Обрисати бележницу \"%s\"\n\nСве белешке и под-бележницe унутар ове бележнице ће такође бити обрисане.","Delete":"Обриши","Remove tag \"%s\" from all notes?":"Уклонити ознаку \"%s\" из свих белешки?","Remove this search from the sidebar?":"Уклонити ову претраку из бочне траке?","Export":"Извоз","Synchronise":"Синхронизуј","Notebooks":"Бележнице","Tags":"Ознаке","Decrypting items: %d/%d":"Дешифрујем ставке: %d/%d","Fetching resources: %d/%d":"Дохватам ресурсе: %d/%d","Sidebar":"Бочна трака","Focus":"Концентрација","Please select where the sync status should be exported to":"Молимо вас да одаберете где ће се извести статус синхронизације","Retry":"Покушај поново","strong text":"подебљан текст","Insert Hyperlink":"Уметни хипер-везу","List item":"Lиста ставки","Layout":"Распоред","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Ова белешка нема садржаја. Кликните на \"%s\" да активирате уредника и уредите белешку.","Cut":"Исецфи","Copy":"Копирај","Paste":"Налепи","Edit":"Уреди","Attach file":"Приложи фајл","Insert Date Time":"Уметни време и датум","There was an error downloading this attachment:":"Дошло је до грешке приликом преузимања овог прилога","Open...":"Отвори...","Save as...":"Сачувај као...","Copy path to clipboard":"Копирај путању у клипборд","Copy Link Address":"Копирај адресу везе","to-do":"ставка задужења","note":"белешка","Creating new %s...":"Креирам ново %s...","In: %s":"У: %s","Select all":"Одабери све","Bold":"Подебљај","Italic":"Искошено","Hyperlink":"Хипер-веза","Code":"Код","Numbered List":"Нумерисана листа","Bulleted List":"Листа са знаковима за набрајање","Checkbox":"Поље за потврду","Heading":"Заглавље","Horizontal Rule":"Хоризонтална линија","Note title":"Наслов белешке","Search in current note":"Птретрага у тренутној белешци","Note body":"Тело белешке","ID":"ИД","Created":"Креирано","Updated":"Ажурирано","Location":"Локација","URL":"УРЛ","Note History":"Историја о белешци","Markup":"Означавање","Previous versions of this note":"Претхнодне верзије ове белешке","Note properties":"Својства белешке","Disabled":"Онемогућено","Import":"Увоз","Quit":"Излаз","Website and documentation":"Вебсајт и документација","Close Window":"Затвори прозор","Options":"Опције","Save":"Сними","Some items cannot be synchronised.":"Неке ставке се не могу синхронизовати.","View them now":"Прикажи ставку одмах","One or more master keys need aLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplicerar anteckningarna som matchar <note> till [notebook]. Om ingen anteckningsbok är angiven kopieras anteckningen i den aktuella anteckningsboken.","Cannot find \"%s\".":"Kan inte hitta \"%s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Visar anteckningarna i den nuvarande anteckningsboken. Använd `ls /` för att visa listan över anteckningsböcker.","Displays only the first top <num> notes.":"Visar endast de första övre <num> anteckningarna.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Sorterar objektet efter <field> (t.ex. title, updated_time, created_time).","Reverses the sorting order.":"Omvänder sorteringsordningen.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Visar endast objekt av den specifika typen/typerna. Kan vara `n` för anteckningar, `t` för att-göra eller `nt` för anteckningar och att-göra (t.ex. `-tt` skulle bara visa att-göra, medan `-ttd` skulle visa anteckningar och att-göra.","Either \"text\" or \"json\"":"Antingen \"text\" eller \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Använd långt listformat. Format är ID, NOTE_COUNT (för anteckningsbok), DATE, TODO_CHECKED (för att-göra), TITLE","Please select a notebook first.":"Välj en anteckningsbok först.","Imports data into Joplin.":"Importerar data till Joplin.","Source format: %s":"Källformat: %s","Do not ask for confirmation.":"Fråga inte om bekräftelse.","Found: %d.":"Hittad: %d.","Created: %d.":"Skapad: %d.","Updated: %d.":"Uppdaterad: %d.","Skipped: %d.":"Överhoppad: %d.","Resources: %d.":"Resurser: %d.","Tagged: %d.":"Taggad: %d.","Importing notes...":"Importerar anteckningar...","The notes have been imported: %s":"Anteckningarna har importerats: %s","Enum":"Enum","Type: %s.":"Typ: %s.","Possible values: %s.":"Möjliga värden: %s.","Default: %s":"Standard: %s","Possible keys/values:":"Möjliga nycklar/värden:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"Starta, stoppa eller kontrollera API-server. För att ange vilken port den ska köra på, välj api.port konfiguration. Kommandon är (%s).","Server is already running on port %d":"Servern körs redan på port %d","Server is running on port %d":"Servern körs på port %d","Server is not running.":"Servern körs inte.","Enter master password:":"Ange huvudlösenord:","Operation cancelled":"Operation avbruten","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Startar dekryptering... Vänta eftersom det kan ta flera minuter beroende på hur mycket som ska dekrypteras.","Completed decryption.":"Dekryptering färdig.","Enabled":"Aktiverad","Disabled":"Inaktiverad","Encryption is: %s":"Kryptering är: %s","Creates a new notebook.":"Skapar en ny anteckningsbok.","Moves the notes matching <note> to [notebook].":"Flyttar anteckningarna som matchar <note> till [notebook].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Hämtar eller ställer in ett konfigureringsvärde. Om [value] inte anges kommer det att visa värdet på [name]. Om varken [name] eller [value] anges, kommer det att lista den nuvarande konfigurationen.","Also displays unset and hidden config variables.":"Visar även inte inställda och dolda konfigurationsvariabler.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Växlar till [notebook] - alla ytterligare åtgärder kommer att hända inom denna anteckningsbok.","Synchronises with remote storage.":"Synkroniserar med fjärrlagring.","Sync to provided target (defaults to sync.target config value)":"Synkronisera till det angivna målet (standardvärde till sync.target-konfigueringsvärde)","Authentication was not completed (did not receive an authentication token).":"Autentisering slutfördes inte (mottog inte en autentiseringstoken).","To allow Joplin to synchronise with Dropbox, please follow the steps below:":"För att tillåta Joplin att synkronisera med Dropbox, följ stegen nedan:","Step 1: Open this URL in your browser to authorise the application:":"Steg 1: Öppna den här webbadressen i din webbläsare för att godkänna programmet:","Step 2: Enter the code provided by Dropbox:":"Steg 2: Ange koden som tillhandahålls av Dropbox:","Not authentified with %s. Please provide any missing credentials.":"Ej autentiserad med %s. Ange eventuella saknade uppgiLine truncated
{"OK":"OK","Cancel":"Avbryt","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportera till \"%s\" som \"%s\" format. Vänta...","Current version is up-to-date.":"Nuvarande version är uppdaterad.","%s (pre-release)":"%s (förhandsversion)","An update is available, do you want to download it now?":"En uppdatering är tillgänglig, vill du hämta den nu?","Your version: %s":"Din version: %s","New version: %s":"Ny version: %s","Full Release Notes":"Fullständig information om denna version","Search...":"Sök...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"Den här anteckningen \"%s\" har framgångsrikt återställts till anteckningsboken \"%s\".","Unsupported link or message: %s":"Länk eller meddelande stöds inte: %s","Restore":"Återställ","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Klicka på \"%s\" för att återställa anteckningen. Den kommer kopieras till anteckningsboken som heter \"%s\". Den nuvarande versionen kommer inte att ersättas eller modifieras.","Back":"Tillbaka","Remove":"Ta bort","Delete":"Ta bort","Remove this search from the sidebar?":"Ta bort den här sökningen från sidofältet?","Export":"Exportera","Synchronise":"Synkronisera","Notebooks":"Anteckningsböcker","Tags":"Taggar","Decrypting items: %d/%d":"Dekrypterar objekt: %d/%d","Fetching resources: %d/%d":"Hämtar resurser: %d/%d","Sidebar":"Sidofältet","Focus":"Fokus","Please select where the sync status should be exported to":"Välj vart synkroniseringstillståndet ska exporteras till","Retry All":"Försök alla igen","Retry":"Försök igen","strong text":"stark text","Insert Hyperlink":"Infoga hyperlänk","List item":"Listobjekt","Layout":"Layout","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Den här anteckningen har inget innehåll. Klicka på \"%s\" för att växla redigeraren och redigera anteckningen.","Cut":"Klipp ut","Copy":"Kopiera","Paste":"Klistra in","Edit":"Redigera","Attach file":"Bifoga fil","Insert Date Time":"Infoga datumtid","There was an error downloading this attachment:":"Något blev fel vid nedladdningen av denna bilaga:","Open...":"Öppna...","Save as...":"Spara som...","Copy path to clipboard":"Kopiera sökväg till urklipp","Copy Link Address":"Kopiera länkadress","to-do":"att-göra","note":"anteckning","Creating new %s...":"Skapar ny %s...","In: %s":"I: %s","Select all":"Välj alla","Bold":"Fet","Italic":"Kursiv","Hyperlink":"Hyperlänk","Code":"Kod","Numbered List":"Numrerad lista","Bulleted List":"Punktlista","Checkbox":"Kryssruta","Heading":"Rubrik","Horizontal Rule":"Horisontell regel","Note title":"Rubriken","Search in current note":"Sök i aktuell anteckning","Note body":"Texten","ID":"ID","Created":"Skapad","Updated":"Uppdaterad","Location":"Plats","URL":"URL","Previous versions of this note":"Tidigare versioner av denna anteckning","Note properties":"Anteckningens egenskaper","Disabled":"Inaktiverad","Import":"Importera","Quit":"Avsluta","Actual Size":"Faktiskt storlek","Website and documentation":"Webbplats och dokumentation","Close Window":"Stäng fönster","Options":"Inställningar","Save":"Spara","Some items cannot be synchronised.":"Några objekt kan inte synkroniseras.","View them now":"Visa dem nu","Some items cannot be decrypted.":"Några objekt kan inte dekrypteras.","Set the password":"Ställ in lösenord","The default encryption method has been changed, you should re-encrypt your data.":"Standardkrypteringsmetoden har ändrats, du bör omkryptera din data.","Rename":"Byt namn","Rename notebook:":"Byt namn på anteckningsbok:","New to-do":"Ny att-göra","Toggle sidebar":"Växla sidofältet","Set alarm":"Sätt alarm","Set alarm:":"Ställ in alarm:","PDF File":"PDF-fil","New note":"Ny anteckning","Toggle editor layout":"Växla redigeringslayout","Rename tag:":"Byt namn på tagg:","New notebook":"Ny anteckningsbok","Notebook title:":"Titel på anteckningsbok:","Template file:":"Fil för mall:","Add or remove tags:":"Lägg till eller ta bort taggar:","Print":"Skriv ut","To allow Joplin to synchronise with Dropbox, please follow the steps below:":"För att tillåta Joplin att synkronisera med Dropbox, följ stegen nedan:","Step 1: Open this URL in your browser to authorise the application:":"Steg 1: Öppna den här webbadressen i din webbläsare för att godkänna programmet:","Step 2: Enter the code provided by Dropbox:":"Steg 2: Ange koden som tillhandahålls av Dropbox:","Submit":"Skicka","Token has been copied to the clipboard!":"Token har kopierats till urklipp!","The web clipper service is enabled and set to auto-start.":"Web clipper-tjänsten är aktiverad och inställd för automatisk start.","Status: Started on port %d":"Tillstånd: Startad på port %d","Status: %s":"Tillstånd: %s","Disable Web Clipper Service":"Inaktivera Web Clipper-tjänsten","The web clipper service is not enabled.":"Web clipLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Cannot find \"%s\".":"ไม่พบ \"%s\"","Displays only the first top <num> notes.":"แสดงเฉพาะบันทึก <num> อันดับแรก","Please select a notebook first.":"โปรดเลือกสมุดบันทึกก่อน","Imports data into Joplin.":"นำเข้าข้อมูลเข้ามาที่ Joplin","Source format: %s":"ฟอร์แมตต้นฉบับ: %s","Found: %d.":"พบ: %d","Created: %d.":"สร้างเมื่อ: %d","Updated: %d.":"แก้ไขเมื่อ: %d","Skipped: %d.":"ข้าม: %d","Resources: %d.":"ทรัพยากร: %d","Tagged: %d.":"แท็ก: %d","Importing notes...":"กำลังนำเข้าบันทึก...","The notes have been imported: %s":"บันทึกได้ถูกนำเข้าแล้ว: %s","Enum":"Enum","Possible values: %s.":"ค่าที่เป็นไปได้: %s","Server is already running on port %d":"เซิร์ฟเวอร์กำลังทำงานอยู่แล้วที่พอร์ต %d","Server is running on port %d":"เซิร์ฟเวอร์กำลังทำงานที่พอร์ต %d","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"จัดการการตั้งค่า E2EE คำสั่งคือ `enable`, `disable`, `decrypt`, `status`, `decrypt-file` และ `target-status`","Operation cancelled":"ระบวนการถูกยกเลิก","Completed decryption.":"ถอดรหัสเรียบร้อยแล้ว","Confirm password:":"ยืนยันรหัสผ่าน:","Passwords do not match!":"รหัสผ่านไม่เหมือนกัน!","Enabled":"เปิด","Disabled":"ปิด","Creates a new notebook.":"สร้างสมุดบันทึกใหม่","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Synchronises with remote storage.":"ซิงโครไนซ์กับแหล่งเก็บข้อมูลระยะไกล","Authentication was not completed (did not receive an authentication token).":"การขออนุมัติไม่สมบูรณ์ (ไม่ได้รับ Token เพื่อขออนุมัติ)","Step 1: Open this URL in your browser to authorise the application:":"ขั้นตอนที่ 1: เปิด URL นี้ในเว็บเบราว์เซอร์ เพื่อขออนุมัติแอปพลิเคชั่น","Step 2: Enter the code provided by Dropbox:":"ขั้นตอนที่ 2: กรอกรหัสที่ได้มาจาก Dropbox:","Synchronisation target: %s (%s)":"จุดหมายการซิงโครไนซ์: %s (%s)","Starting synchronisation...":"เริ่มต้นการซิงโครไนซ์...","Downloading resources...":"กำลังดาวน์โหลดทรัพยากร...","Deletes the given notebook.":"ลบสมุดบันทึกที่เลือก","Deletes the notebook without asking for confirmation.":"ลบสมุดบันทึกโดยไม่ต้องถามการยืนยัน","Creates a new to-do.":"สร้าง to-do ใหม่","Displays the given note.":"แสดงบันทึกที่เลือก","Displays the complete information about note.":"แสดงข้อมูลทั้งหมดของบันทึก","Edit note.":"แก้ไขบันทึก","No active notebook.":"ไม่มีสมุดบันทึกที่ถูกใช้งาน","Press Ctrl+D or type \"exit\" to exit the application":"กด Ctrl+D หรือพิมพ์ \"exit\" เพื่อออกจากแอปพลิเคชั่น","Delete note?":"ลบบันทึก?","Displays version information":"แสดงข้อมูลเวอร์ชั่น","%s %s (%s)":"%s %s (%s)","Exports only the given notebook.":"ส่งออกเฉพาะสมุดบันทึกที่เลือก","Creates a new note.":"สร้างบันทึกใหม่","Type `joplin help` for usage information.":"พิมพ์ `joplin help` สำหรับข้อมูลการใช้งาน","Fatal error:":"ผิดพลาดร้ายแรง:","Displays a geolocation URL for the note.":"แสดง URL ตำแหน่งภูมิศาสตร์สำหรับบันทึก","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"ยินดีต้อนรับสู่ Joplin!\n\nพิมพ์ `:help shortcuts` สำหรLine truncated
{"OK":"ตกลง","Cancel":"ยกเลิก","Your version: %s":"เวอร์ชั่นของคุณ: %s","New version: %s":"เวอร์ชั่นใหม่: %s","Search...":"ค้นหา...","This note has no history":"บันทึกนี้ไม่มีประวัติย้อนหลัง","Restore":"กู้คืน","Delete":"ลบ","Remove tag \"%s\" from all notes?":"ลบแท็ก \"%s\" ออกจากบันทึกทั้งหมด?","Remove this search from the sidebar?":"ลบการค้นหานี้ออกจากแถบด้านข้าง?","Export":"ส่งออก","All notes":"บันทึกทั้งหมด","Synchronise":"ซิงโครไนซ์","Notebooks":"สมุดบันทึก","Tags":"แท็ก","Decrypting items: %d/%d":"กำลังถอดรหัสรายการ: %d/%d","Sidebar":"แถบด้านข้าง","Retry":"ลองอีกครั้ง","Insert Hyperlink":"แทรกไฮเปอร์ลิงก์","Cut":"ตัด","Copy":"คัดลอก","Paste":"วาง","Edit":"แก้ไข","Attach file":"แนบไฟล์","Insert Date Time":"แทรก วันที่และเวลา","Open...":"เปิด...","Save as...":"บันทึกเป็น...","Copy path to clipboard":"คัดลอกที่อยู่ (path) ไปที่คลิปบอร์ด","Copy Link Address":"คัดลอกที่อยู่ลิงก์","to-do":"to-do","note":"บันทึก","Creating new %s...":"สร้าง %s...","In: %s":"ใน: %s","Select all":"เลือกทั้งหมด","Bold":"ตัวหนา","Italic":"ตัวเอียง","Hyperlink":"ไฮเปอร์ลิงก์","Code":"Code","Numbered List":"รายการแบบตัวเลข","Checkbox":"ช่องทำเครื่องหมาย","Heading":"หัวข้อ","Note title":"ชื่อบันทึก","Search in current note":"ค้นหาในบันทึกปัจจุบัน","Created":"สร้างเมื่อ","Updated":"แก้ไขเมื่อ","URL":"URL","Note History":"ประวัติบันทึกย้อนหลัง","Markup":"Markup","Previous versions of this note":"เวอร์ชั่นก่อนหน้าของบันทึกนี้","Note properties":"คุณสมบัติของบันทึก","Disabled":"ปิด","Import":"นำเข้า","Quit":"ออก","Insert template":"แทรกเทมเพลต","Website and documentation":"เว็บไซต์และเอกสารต่างๆ","Close Window":"ปิดหน้าต่าง","Options":"ตัวเลือก","Save":"บันทึก","Set the password":"ตั้งรหัสผ่าน","Rename":"แก้ไขชื่อ","Rename notebook:":"แก้ไขชื่อสมุดบันทึก","New to-do":"สร้าง to-do","Toggle sidebar":"สลับแถบด้านข้าง","Set alarm":"ตั้งการแจ้งเตือน","Set alarm:":"ตั้งการแจ้งเตือน:","PDF File":"ไฟล์ PDF","New note":"สร้างบันทึกใหม่","Rename tag:":"แก้ไขชื่อแท็ก","New notebook":"สร้างสมุดบันทึกใหม่","Notebook title:":"ชื่อสมุดบันทึก:","Share note...":"แบ่งปันบันทึก...","New sub-notebook":"สร้างสมุดบันทึกย่อยใหม่","Template file:":"ไฟล์เทมเพลต:","Add or remove tags:":"เพิ่มหรือลบแท็ก:","Print":"พิมพ์","Step 1: Open this URL in your browser to authorise the application:":"ขั้นตอนที่ 1: เปิด URL นี้ในเว็บเบราว์เซอร์ เพื่อขออนุมัติแอปพลิเคชั่น","Step 2: Enter the code provided by Dropbox:":"ขั้นตอนที่ 2: กรอกรหัสที่ได้มาจาก Dropbox:","Token has been copied to the clipboard!":"Token ได้ถูกคัดลอกไปที่คลิปบอร์ดแล้ว!","Status: Started on port %d":"สถานะ: เริ่มทำงาน ที่พอร์ต %d","Status: %s":"สถานะ: %s","Disable Web Clipper Service":"ปิดบริการ Web Clipper","Enable Web Clipper Service":"เปิดใช้บริการ Web Clipper","In order to use the web clipper, you need to do the following:":"ในการที่จะใช้ web clipper คุณจำเป็นต้องทำสิ่งต่อไปนี้:","Step 1: Enable the clipper service":"ขั้นตอนที่Line truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"<Not> ile eşleşen notları [notebook] not defterine çoğaltır. Not belirtilmemişse, not geçerli not defterinde çoğaltılır.","Cannot find \"%s\".":"\"%s\" bulunamıyor.","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Geçerli not defterindeki notları görüntüler. Not defteri listesini görüntülemek için `ls /` kullanın.","Displays only the first top <num> notes.":"Yalnızca ilk <num> notu görüntüler.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Öğeyi <field> olarak sıralar (örneğin başlık, güncellenme_zamanı, oluşturulma_zamanı).","Reverses the sorting order.":"Sıralama düzenini tersine çevirir.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Sadece belirli tip öğeleri gösterir. Notlar için `n`, yapılacaklar listeleri için `t` veya not ve yapılacaklar listesi için `nt` (örnek: `-tt` sadece yapılacaklar listesini gösterirken, `-ttd` not ve yapılacaklar listesini gösterir)","Either \"text\" or \"json\"":"\"metin\" ya da \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Uzun liste formatını kullan. Format: ID, NOTE_COUNT (not defterleri için), DATE, TODO_CHECKED (yapılacak listesi için), TITLE","Please select a notebook first.":"Lütfen önce bir not defteri seçin.","Imports data into Joplin.":"Joplin'e veri aktarır.","Source format: %s":"Kaynak biçimi: %s","Do not ask for confirmation.":"Onay için sorma.","Output format: %s":"Çıktı biçimi: %s","Found: %d.":"Bulundu: %d.","Created: %d.":"Oluşturuldu: %d.","Updated: %d.":"Güncellenme: %d.","Skipped: %d.":"Atlandı: %d.","Resources: %d.":"Kaynaklar: %d.","Tagged: %d.":"Etiket: %d.","Importing notes...":"Notlar içe aktarılıyor...","The notes have been imported: %s":"Notlar içe aktarıldı: %s","Enum":"Enum","Type: %s.":"Tip: %s.","Possible values: %s.":"Olası değerler: %s.","Default: %s":"Varsayılan: %s","Possible keys/values:":"Mümkün ayarlar/değerler:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"API sunucu kontrolünü başlat, durdur veya kontrol et. Hangi port üzerinden çalışacağını api.port ayar değişkeni ile ayarlayınız. Komutlar (%s).","Server is already running on port %d":"Sunucu zaten %d portunda çalışıyor","Server is running on port %d":"Sunucu %d portunda çalışıyor","Server is not running.":"Sunucu çalışmıyor.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Uçtan Uca Şifreleme ayarını yönetir. Komutlar `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.","Enter master password:":"Ana parolayı girin:","Operation cancelled":"İşlem iptal edildi","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Şifre çözme başlatılıyor... Çözülecek dosya sayısına bağlı olarak biraz zaman alabilir, lütfen bekleyiniz.","Decrypted items: %d":"Şifresi çözülen öğeler: %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"Atlanan öğeler: %d (--retry-failed parametresi ile şifrelemelerini çözmeyi yeniden deneyebilirsiniz)","Completed decryption.":"Şifre çözümü tamamlandı.","Confirm password:":"Parolayı doğrula:","Passwords do not match!":"Parolalar eşleşmiyor!","Enabled":"Etkin","Disabled":"Pasif","Encryption is: %s":"Şifreleme: %s","Creates a new notebook.":"Yeni bir not defteri oluşturur.","Moves the notes matching <note> to [notebook].":"<note> ile eşleşen tüm notları [notebook] defterine taşı.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Ayar değeri alınır veya ayarlanır. Eğer [değer] sağlanmamışsa, [isim] kısmı gözükecektir. Eğer [isim] ve [değer] bilgilerinin ikisi de mevcut değilse, mevcut olan yapılandırmayı listeleyecek.","Also displays unset and hidden config variables.":"Ayrıca ayarlanmamış ve gizlenmiş yapılandırma değişkenlerini de görüntüler.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"[notebook] not defterine geçer - daha sonraki tüm işlemler bu not defterinde gerçekleşecektir.","Synchronises with remote storage.":"Uzak depolama ile senkronize eder.","Sync to provided target (defaults to sync.target config value)":"Sağlanan hedefe senkronize et (varsayılan olarak sync.targeLine truncated
{"OK":"OK","Cancel":"İptal et","The app is now going to close. Please relaunch it to complete the process.":"Uygulama şimdi kapanacak. İşlemi tamamlamak için lütfen uygulamayı kapandıktan sonar yeniden çalıştırın.","Goto Anything...":"Şuraya Git...","Exporting to \"%s\" as \"%s\" format. Please wait...":"\"%s\" den \"%s\" biçiminde dışa aktarılıyor. Lütfen bekleyin...","Could not export notes: %s":"Notlar dışarı aktarılamadı: %s","Current version is up-to-date.":"Sürümünüz güncel.","%s (pre-release)":"%s (ön-sürüm)","An update is available, do you want to download it now?":"Güncelleme mevcut, şimdi indirmek ister misiniz?","Your version: %s":"Sürümünüz: %s","New version: %s":"Yeni sürüm: %s","Full Release Notes":"Sürüm Notlarının Tamamı","Search...":"Ara...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"“%s” notu başarılı bir şekilde “%s” not defterine geri yüklendi.","This note has no history":"Bu notun hiç değişiklik geçmişi yok","Unsupported link or message: %s":"Desteklenmeyen bağlantı veya mesaj: %s","Restore":"Geri yükle","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Notu geri yükleme için şuna tıklayın: \"%s\". %s isimli not defterine kopyalanacak. Notun güncel versiyonunun yeri değiştirilmeyecek ya da üzerinde değişiklik yapılmayacak.","Back":"Geri","Remove":"Sil","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"“%s” not defteri silinsin mi ?\n\nNot defteri içersindeki tüm not ve alt not defterleri de silinecektir.","Delete":"Sil","Remove tag \"%s\" from all notes?":"“%s” etiketi tüm notlardan kaldırılsın mı?","Remove this search from the sidebar?":"Bu aramayı kenar çubuğundan kaldır?","Export":"Dışa aktar","All notes":"Tüm notlar","Synchronise":"Senkroniza Et","Notebooks":"Not defterleri","Tags":"Etiketler","Decrypting items: %d/%d":"Şifresi çözülenler: %d/%d","Fetching resources: %d/%d":"Kaynaklar alınıyor: %d/%d","Sidebar":"Kenar çubuğu","Focus":"Odaklan","Please select where the sync status should be exported to":"Lütfen senkronizasyon durumunun nereye aktarılacağını seçin","Retry All":"Tümünü yeniden dene","Retry":"Yeniden dene","strong text":"kuvvetli metin","emphasised text":"vurgulanan metin","Insert Hyperlink":"Köprü Link ekle","List item":"Öğeyi listele","Layout":"Düzen","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Bu nota içerik girilmemiş. Editöre geçiş yapıp notu düzenlemek için \"%s\" butonuna tıklayın.","Cut":"Kes","Copy":"Kopyala","Paste":"Yapıştır","Checkbox list":"Onay Kutusu listesi","Edit":"Düzenle","Attach file":"Dosya ekle","Code Block":"Kod Bloğu","Inline Code":"İç Kod","Insert Date Time":"Tarih Ekle","Drop notes or files here":"Not veya dosyaları buraya sürükleyin","Code View":"Kod Görünümü","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"Tüm ek dosyaların indirilip şifrelerinin çözülmesi için lütfen bekleyin. Ayrıca %s ile notu düzenleyebilirsiniz.","There was an error downloading this attachment:":"Bu eki indirirken bir hata oluştu:","This attachment is not downloaded or not decrypted yet":"Bu ek henüz indirilmedi veya şifresi çözülmedi","Open...":"Aç...","Save as...":"Farklı kaydet...","Reveal file in folder":"Dosyayı klasörde görüntüle","Copy path to clipboard":"Yolu panoya kopyala","Copy Link Address":"Bağlantı Adresini Kopyala","to-do":"yapılacak","note":"not","Creating new %s...":"Yeni %s oluşturuluyor...","The following attachments are being watched for changes:":"Şu ek dosyaları değişiklikler için izlenmekte:","The attachments will no longer be watched when you switch to a different note.":"Eğer başka bir not'a geçerseniz ek dosyalar artık izlenmeyecek.","In: %s":"İçinde: %s","Select all":"Tümünü seç","Bold":"Kalın","Italic":"İtalik","Hyperlink":"Köprü link","Code":"Kod","Numbered List":"Numaralı liste","Bulleted List":"Maddeli liste","Checkbox":"Onay Kutusu","Heading":"Başlık","Horizontal Rule":"Yatay kural","Note title":"Not başlığı","Search in current note":"Mevcut notta ara","Note body":"Not gövdesi","ID":"Kimlik","Created":"Oluşturuldu","Updated":"Güncellendi","Completed":"Tamamlandı","Location":"Konum","URL":"URL","Note History":"Not Geçmişi","Markup":"Düzenleme","Previous versions of this note":"Bu notun önceki sürümleri","Note properties":"Not özellikleri","Disabled":"Pasif","Import":"İçe aktar","Command":"Komut","Keyboard Shortcut":"Klavye Kısayolu","Quit":"Çıkış","Insert template":"Taslak Ekle","Actual Size":"Asıl Boyut","Website and documentation":"Web sitesi ve dökümanlar","Hide Joplin":"Joplin'i Gizle","Close Window":"Pencereyi Kapat","Preferences":"TercLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Sao chép những note trùng với <note> tới [notebook]. Nếu không có notebook nào được chỉ định, note sẽ được sao chép tới notebook hiện tại.","Cannot find \"%s\".":"Không tìm thấy \"%s\".","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Hiển thị notes trong notebook hiện tại. Sử dụng `ls /` để hiển thị danh mục các notebook.","Displays only the first top <num> notes.":"Hiển thị duy nhất <số lượng> notes đầu tiên.","Sorts the item by <field> (eg. title, updated_time, created_time).":"Sắp xếp những mục theo <trường> (ví dụ, tiêu đề, thời điểm cập nhật, thời điểm tạo).","Reverses the sorting order.":"Đảo ngược thứ tự sắp xếp.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Chỉ hiển thị những mục theo phân loại đã được xác định. Có thể sử dụng `n` cho notes, `t` cho to-do, hoặc `nt` cho notes và to-dos (ví dụ `-tt` sẽ chỉ hiển thị to-dos, trong khi đó `-ttd` sẽ chỉ hiển thị notes và to-dos).","Either \"text\" or \"json\"":"\"text\" hoặc \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Sử dụng định dạng danh mục dài. Định dạng là ID, NOTE_COUNT (cho notebook), DATE, TODO_CHECKED (cho to-dos), TITLE","Please select a notebook first.":"Hãy chọn một notebook trước.","Imports data into Joplin.":"Imports dữ liệu vào Joplin.","Source format: %s":"Định dạng từ nguồn: %s","Do not ask for confirmation.":"Không cần xác nhận.","Found: %d.":"Tìm thấy: %d.","Created: %d.":"Đã tạo: %d.","Updated: %d.":"Đã cập nhật: %d.","Skipped: %d.":"Đã bỏ qua: %d.","Resources: %d.":"Tài nguyên: %d.","Tagged: %d.":"Đã gắn: %d.","Importing notes...":"Đang import notes...","The notes have been imported: %s":"Những notes đã được import: %s","Enum":"Enum","Type: %s.":"Dạng: %s.","Possible values: %s.":"Những giá trị có thể sử dụng là: %s.","Default: %s":"Mặc định: %s","Possible keys/values:":"Từ khóa/giá trị có thể sử dụng:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"Bắt đầu, dừng, hoặc kiểm tra server API. Để chỉ định port mà ứng dụng sẽ chạy, đặt giá trị cho biến cấu hình api.port. Những câu lệnh bao gồm (%s).","Server is already running on port %d":"Server đang hoạt động trên port %d","Server is running on port %d":"Server đang khởi động trên port %d","Server is not running.":"Server chưa chạy.","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"Quản lý cấu hình E2EE. Câu lệnh bao gồm `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.","Enter master password:":"Điền mật khẩu master:","Operation cancelled":"Thi hành đã được hủy","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Bắt đầu giải mã… Vui lòng chờ, quá trình có thể mất vài phút tùy vào số lượng cần giải mã.","Completed decryption.":"Giải mã đã hoàn thành.","Confirm password:":"Xác nhận mật khẩu:","Passwords do not match!":"Mật khẩu không trùng!","Enabled":"Đã bật","Disabled":"Đã tắt","Encryption is: %s":"Mã hóa là: %s","Creates a new notebook.":"Tạo một notebook mới.","Moves the notes matching <note> to [notebook].":"Di chuyển những notes trùng với <note> tới [notebook].","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Lấy hoặc thiết lập giá trị của tập tin cấu hình. Nếu [giá trị] không được cung cấp, [tên] sẽ được cung cấp. Nếu [tên] lẫn [giá trị] không được cung cấp, tập tin cấu hình hiện tại sẽ được hiển thị.","Also displays unset and hidden config variables.":"Biến chưa được đặt và biến ẩn của cấu hình cũng sẽ được hiển thị.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"Chuyển tới [notebook] - tất cả những hoạt động tiếp theo sẽ được hoàn thành ở trên notebook này.","Synchronises with remote storage.":"Đồng bộ hóa với hệ thống lưuLine truncated
{"OK":"OK","Cancel":"Hủy","Goto Anything...":"Đi tới bất kỳ điểm nào...","Current version is up-to-date.":"Phiên bản hiện tại đã được cập nhật mới nhất.","%s (pre-release)":"%s (chưa xuất bản)","An update is available, do you want to download it now?":"Có bản cập nhật mới, bạn có muốn cập nhật không?","Your version: %s":"Phiên bản hiện tại: %s","New version: %s":"Phiên bản mới: %s","Full Release Notes":"Thông báo phiên bản mới","Search...":"Tìm kiếm...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"Note \"%s\" đã được hồi phục tại notebook \"%s\".","This note has no history":"Note này không có lịch sử","Unsupported link or message: %s":"Đường dẫn hoặc tin nhắn không được hỗ trợ: %s","Restore":"Hồi phục","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"Ấn \"%s\" để hồi phục note. Thao tác này sẽ sao chép notebook có tên \"%s\". Phiên bản hiện tại của note sẽ không bị mất đi hay thay đổi.","Back":"Quay lại","Remove":"Xóa","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"Có xóa notebook \"%s\" không?\n\nTất cả notes và sub-notebooks trong notebook này sẽ bị xóa.","Delete":"Xóa","Remove tag \"%s\" from all notes?":"Gỡ bỏ tag \"%s\" khỏi tất cả các notes?","Remove this search from the sidebar?":"Bỏ kết quả tìm kiếm từ thanh bên?","Export":"Export","All notes":"Tất cả các notes","Synchronise":"Đồng bộ hóa","Notebooks":"Notebooks","Tags":"Thẻ gắn","Decrypting items: %d/%d":"Số mục được giải mã: %d/%d","Fetching resources: %d/%d":"Đang lấy tài nguyên: %d/%d","Sidebar":"Thanh bên","Focus":"Đặt con trỏ tới","Please select where the sync status should be exported to":"Vui lòng chọn điểm đến mà trạng thái đồng bộ sẽ được export tới","Retry":"Thử lại","strong text":"strong text","Insert Hyperlink":"Chèn hyperlink","List item":"Danh mục","Layout":"Dàn trang","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Note này không chứa nội dung. Ấn \"%s\" để ẩn hiện trình chỉnh sửa văn bản và chỉnh sửa note.","Cut":"Cắt","Copy":"Sao chép","Paste":"Dán","Edit":"Chỉnh sửa","Attach file":"Đính kèm","Insert Date Time":"Chèn ngày tháng","There was an error downloading this attachment:":"Chương trình gặp phải lỗi khi tải về đính kèm:","This attachment is not downloaded or not decrypted yet":"Đính kèm này chưa được tải về hoặc chưa được giải mã","Open...":"Mở...","Save as...":"Lưu lại thành...","Copy path to clipboard":"Sao chép đường dẫn tới clipboard","Copy Link Address":"Sao chép địa chỉ đường dẫn","to-do":"to-do","note":"note","Creating new %s...":"Tạo mới %s...","In: %s":"Trong: %s","Select all":"Chọn tất cả","Bold":"In đậm","Italic":"In nghiêng","Hyperlink":"Hyperlink","Code":"Mã","Numbered List":"Danh mục thứ tự","Bulleted List":"Danh mục không thứ tự","Checkbox":"Ô dấu check","Heading":"Tiêu đề","Horizontal Rule":"Kẻ ngang","Note title":"Tiêu đề note","Search in current note":"Tìm kiếm trong note hiện tại","Note body":"Thân note","ID":"ID","Created":"Đã được tạo","Updated":"Đã được cập nhật","Completed":"Hoàn thành","Location":"Vị trí","URL":"URL","Note History":"Lịch sử của note","Markup":"Đánh dấu","Previous versions of this note":"Phiên bản trước của note này","Note properties":"Đặc tính của note","Disabled":"Đã tắt","Import":"Import","Quit":"Thoát","Insert template":"Chèn mẫu","Actual Size":"Kích thước chuẩn","Website and documentation":"Trang web và tài liệu","Close Window":"Đóng cửa sổ","Options":"Lựa chọn","Save":"Lưu lại","Some items cannot be synchronised.":"Một số mục không thể đồng bộ hóa.","View them now":"Xem chúng bây giờ","One or more master keys need a password.":"Một hoặc hơn một master keys cần mật khẩu.","Set the password":"Đặt mật khẩu","Rename":"Đổi tên","Rename notebook:":"Đổi tên notebook:","New to-do":"To-do mới","Toggle note list":"Ẩn/hiện danh mục note","Toggle sidebar":"Ẩn/hiện thanh bên","Set alarm":"Đặt nhắc hẹn","Set alarm:":"Đặt ghi nhớ:","PDF File":"PDF File","New note":"Note mới","Toggle editor layout":"Ẩn/hiện trình chỉnh sửa văn bản","Rename tag:":"Đổi tên tag:","New notebook":"Notebook mới","Notebook title:":"Tiêu đề notebook:","Share note...":"Chia sẻ note...","New sub-notebook":"Sub-notebook mới","Template file:":"Tập tin mẫu:","Add or remove tags:":"Gắn hoặc gỡ tags:","PLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"复制符合 <note> 的笔记至 [notebook]。若无指定的笔记本,该笔记将被复制至当前笔记本。","Cannot find \"%s\".":"无法找到 \"%s\" 。","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"在当前笔记本中显示笔记。使用 `ls /` 显示笔记本列表。","Displays only the first top <num> notes.":"只显示最上方的 <num> 条笔记。","Sorts the item by <field> (eg. title, updated_time, created_time).":"通过 <field> 排序项目 (示例: title, updated_time, created_time) 。","Reverses the sorting order.":"反转排序顺序。","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"仅显示指定类型的项目。可以把 `n` 用于笔记,`t` 用于待办事项,或者 `nt` 用于笔记和待办事项 (示例: `-tt` 只会显示待办事项,当使用 `-ttd` 时将会显示笔记和待办事项。","Either \"text\" or \"json\"":"\"text\" 或 \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"使用长列表格式。格式为: ID, NOTE_COUNT (仅笔记本) , DATE, TODO_CHECKED (仅待办事项) , TITLE","Please select a notebook first.":"请先选择笔记本。","Imports data into Joplin.":"导入数据到 Jolin。","Source format: %s":"原数据格式: %s","Do not ask for confirmation.":"不再要求确认。","Output format: %s":"导出格式: %s","Found: %d.":"已找到: %d条。","Created: %d.":"已创建: %d条。","Updated: %d.":"已更新: %d条。","Skipped: %d.":"已跳过: %d条。","Resources: %d.":"资源: %d。","Tagged: %d.":"已标签: %d条。","Importing notes...":"正在导入笔记...","The notes have been imported: %s":"以下笔记已被导入: %s","Enum":"枚举","Type: %s.":"格式: %s。","Possible values: %s.":"可用值: %s。","Default: %s":"默认值: %s","Possible keys/values:":"可用键/值:","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"启动,停止或检查 API 服务。可以通过设置 ‘api.port’ 变量指定 API 服务运行在哪个端口上。执行命令 (%s) 。","Server is already running on port %d":"服务已在端口 %d 上运行","Server is running on port %d":"服务正在端口 %d 上运行","Server is not running.":"服务没有运行。","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"管理 E2EE 配置。命令为: `enable`、`disable`、`decrypt`、`status`、`decrypt-file` 和 `target-status`。","Enter master password:":"输入主密码:","Operation cancelled":"操作已取消","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"开始解密,请稍候... 取决于需解密的文件数量,解密环节可能需要等待几分钟。","Decrypted items: %d":"解密项目: %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"跳过项目: %d (使用 —retry-failed-items 来尝试重新解密)","Completed decryption.":"已完成解密。","Confirm password:":"确认密码:","Passwords do not match!":"密码不匹配!","Enabled":"已启用","Disabled":"已禁用","Encryption is: %s":"加密状态: %s","Creates a new notebook.":"新建笔记本。","Moves the notes matching <note> to [notebook].":"移动符合 <note> 的笔记到 [notebook]。","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"读取或设置配置数值。如果 [value] 值没有提供,它将显示 [name] 值。如果没有提供 [name] 或 [value] 值,它将列出当前配置。","Also displays unset and hidden config variables.":"同时显示未设置的与隐藏的配置变量。","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"切换到 [notebook] - 所有进一步操作将在该笔记本中进行。","Synchronises with remote storage.":"与远程储存同步。","Sync to provided target (defaults to sync.target config value)":"同步到所提供的目标 (默认为同步目标配置值)","Authentication was not completed (did not receive an authentication token).":"认证未完成 (未收到认证令牌) 。","To allow Joplin to synchronise with Dropbox, please follow the steps below:":"要让 Joplin 与 Dropbox 同步,请按下列步骤操作:","Step 1: Open this URL in your browser to authorise the application:":"步骤一:在浏览器中打开此 URL 来授权应用程序:",Line truncated
{"OK":"确认","Cancel":"取消","The app is now going to close. Please relaunch it to complete the process.":"应用将要关闭。请重新启动它以完成此过程。","Type a note title or part of its content to jump to it. Or type # followed by a tag name, or @ followed by a notebook name. Or type : to search for commands.":"输入笔记标题或部分内容以转跳到它。或者输入 # 跟着一个标签名,或者输入 @ 跟着一个笔记本名字,或者输入 : 以搜索命令。","Goto Anything...":"跳转到任意内容...","Command palette":"命令面板","Exporting to \"%s\" as \"%s\" format. Please wait...":"导出到“%s”,格式为“%s”。请稍等...","Could not export notes: %s":"无法导出笔记:%s","Current version is up-to-date.":"当前版本为最新版。","%s (pre-release)":"%s(预发行版)","An update is available, do you want to download it now?":"有更新可用,是否现在进行下载?","Your version: %s":"您的版本:%s","New version: %s":"最新版本:%s","Download":"下载","Full Release Notes":"完整发行说明","Search...":"搜索...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"笔记“%s”已成功恢复到笔记本“%s”中。","This note has no history":"此笔记没有历史记录","Unsupported link or message: %s":"不被支持的链接或信息:%s","Restore":"恢复","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"单击“%s”以恢复笔记。它将会被复制到名为“%s”的笔记本中。笔记的当前版本不会被替换或修改。","Back":"返回","Remove":"移除","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"是否删除笔记本“%s”?\n\n所有在该笔记本内的笔记和子笔记本也将同时被删除。","Delete":"删除","Remove tag \"%s\" from all notes?":"从所有笔记中删除标签“%s”?","Remove this search from the sidebar?":"从边栏中删除该项搜索?","Export":"导出","All notes":"全部笔记","Synchronise":"同步","Notebooks":"笔记本","Tags":"标签","Decrypting items: %d/%d":"正在解密条目:%d/%d","Fetching resources: %d/%d":"正在获取资源:%d/%d","Sidebar":"边栏","Focus":"聚焦于","Please select where the sync status should be exported to":"请选择同步状态的导出位置","Retry All":"全部重试","Retry":"重试","strong text":"加粗文本","emphasised text":"强调文本","Insert Hyperlink":"插入超链接","List item":"列表项","Layout":"布局","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"该笔记没有任何内容。点击 \"%s\" 切换到编辑器并编辑笔记。","Cut":"剪切","Copy":"复制","Paste":"粘贴","Checkbox list":"复选框列表","Edit":"编辑","Attach file":"附加文件","Code Block":"代码块","Inline Code":"内联代码","Insert Date Time":"插入时间","Drop notes or files here":"将笔记或文件拖到此处","Code View":"代码视图","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"请等待所有附件均被下载并解密。您可以切换到 %s 编辑笔记。","There was an error downloading this attachment:":"下载此附件时出错:","This attachment is not downloaded or not decrypted yet":"该附件没有下载或者尚未解密","Open...":"打开...","Save as...":"另存为...","Reveal file in folder":"在文件夹中展示文件","Copy path to clipboard":"复制路径到剪贴板","Copy Link Address":"复制链接地址","to-do":"待办事项","note":"笔记","Creating new %s...":"新建 %s...","The following attachments are being watched for changes:":"下列附件将被监控变化:","The attachments will no longer be watched when you switch to a different note.":"当您切换到其他笔记时,这些附件将不再被监控。","In: %s":"位于:%s","Select all":"全选","Bold":"加粗","Italic":"斜体","Hyperlink":"超链接","Code":"代码","Numbered List":"编号列表","Bulleted List":"项目符号列表","Checkbox":"复选框","Heading":"标题","Horizontal Rule":"水平线","Note title":"笔记标题","Search in current note":"在当前笔记内搜索","Note body":"笔记正文","ID":"ID","Created":"创建日期","Updated":"更新日期","Completed":"已完成","Location":"位置","URL":"URL","Note History":"笔记历史","Markup":"标记","Previous versions of this note":"此笔记的早期版本","Note properties":"笔记属性","Error: %s":"错误:%s","Disabled":"已禁用","Import":"导入","Command":"命令","Keyboard Shortcut":"键盘快捷键","Quit":"退出","Insert template":"插入模版","Actual Size":"实际大小","Website and documentation":"网站与文档","Hide Joplin":"隐藏 Joplin","Close Window":"关闭窗口","Preferences":"首选项","Options":"选项","Press the shorLine truncated
+1 -1
View File
@@ -1 +1 @@
{"Duplicates the notes matching <note> to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"將匹配 <note> 的記事複製到 [notebook]。如果未指定筆記本,則預設複製到當前筆記本中。","Cannot find \"%s\".":"找不到 \"%s\"。","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"顯示當前記事本中的記事。使用 \"ls/\" 顯示記事本的清單。","Displays only the first top <num> notes.":"僅顯示頭 <num> 則記事。","Sorts the item by <field> (eg. title, updated_time, created_time).":"按 <field> 對項目進行排序 (例如: 標題、更新時間、建立時間等等)。","Reverses the sorting order.":"顛倒排序順序。","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"僅顯示特定類型的項目。您可用 `n` 來顯示記事,`t` 來顯示待辦事項,或者 `nt` 一併顯示記事及待辦事項。又例如,用 `-tt` 僅顯示待辦事項,而 `-ttd` 則一併顯示記事及待辦事項。","Either \"text\" or \"json\"":"\"text\" 或 \"json\" 二者之一","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"使用長清單格式。格式為 ID, NOTE_COUNT (用於記事本), DATE, TODO_CHECKED (用於待辦事項), TITLE","Please select a notebook first.":"請先選擇記事本。","Imports data into Joplin.":"匯入資料至 Joplin。","Source format: %s":"來源格式: %s","Do not ask for confirmation.":"不要要求確認。","Output format: %s":"匯出格式: %s","Found: %d.":"找到: %d。","Created: %d.":"已建立: %d。","Updated: %d.":"已更新: %d。","Skipped: %d.":"已略過: %d。","Resources: %d.":"資源: %d。","Tagged: %d.":"已標籤: %d。","Importing notes...":"正在匯入記事...","The notes have been imported: %s":"已匯入記事: %s","Enum":"列舉 (Enum)","Type: %s.":"類型: %s。","Possible values: %s.":"可能的值: %s。","Default: %s":"預設: %s","Possible keys/values:":"可能的鍵/值: ","Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).":"開始、停止或檢查API伺服器。若要指定在哪個連接埠上執行,請設定api.port設定變數。指令為 (%s)","Server is already running on port %d":"伺服器已經在 %d 連接埠執行","Server is running on port %d":"伺服器在%d連接埠執行","Server is not running.":"伺服器尚未運作。","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.":"管理 E2EE 設定。指令為 `enable`,`disable`,`decrypt`,`status` 和 `target-status`。","Enter master password:":"輸入主密碼: ","Operation cancelled":"操作已取消","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"正在開始解密...請稍候。這可能需要幾分鐘,取決於解密的程度。","Decrypted items: %d":"解密項目: %d","Skipped items: %d (use --retry-failed-items to retry decrypting them)":"跳過項目: %d (使用 —retry-failed-items 來嘗試重新解密)","Completed decryption.":"解密完成。","Confirm password:":"確認密碼: ","Passwords do not match!":"密碼不相符!","Enabled":"已啟用","Disabled":"已停用","Encryption is: %s":"加密: %s","Creates a new notebook.":"新增記事本。","Moves the notes matching <note> to [notebook].":"將匹配 <note> 的記事移動到 [notebook]。","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"取得或設定一個設置值。如果沒有指明 [value],則會顯示 [name] 的值。如果 [name] 和 [vallue] 兩者均沒有指明,則會列出當前設置。","Also displays unset and hidden config variables.":"亦顯示未設置和隱藏的設置變數。","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Switches to [notebook] - all further operations will happen within this notebook.":"切換到 [notebook] - 所有進一步的操作將在此筆記本中發生。","Synchronises with remote storage.":"與遠端儲存設備同步。","Sync to provided target (defaults to sync.target config value)":"同步到已指明的目標 (預設是 sync.target 的設置值)","Authentication was not completed (did not receive an authentication token).":"身份驗證未完成 (未收到身份驗證的 token)。","To allow Joplin to synchronise with Dropbox, please follow the steps below:":"請按照以下步驟,設置 Joplin 與 Dropbox 同步所需的選項: ","Step 1: Open this URL in your browser to authorise the application:":"步驟 1: 在瀏覽器中打開此網址以授權應用程式: ","SteLine truncated
{"OK":"確定","Cancel":"取消","Goto Anything...":"前往任意內容...","Exporting to \"%s\" as \"%s\" format. Please wait...":"匯出到 \"%s\" 為 \"%s\" 格式。請稍候...","Could not export notes: %s":"無法匯出記事: %s","Current version is up-to-date.":"此版本是最新的。","%s (pre-release)":"%s (預發行)","An update is available, do you want to download it now?":"有可用的更新,您需要立即下載嗎?","Your version: %s":"您目前的版本: %s","New version: %s":"最新版本: %s","Full Release Notes":"完整的發行備註","Search...":"搜尋...","The note \"%s\" has been successfully restored to the notebook \"%s\".":"記事 \"%s\" 已經被成功還原到筆記本 \"%s\".","This note has no history":"此記事沒有歷史紀錄","Unsupported link or message: %s":"不支援的鏈接或訊息: %s","Restore":"還原","Click \"%s\" to restore the note. It will be copied in the notebook named \"%s\". The current version of the note will not be replaced or modified.":"點選 \"%s\" 來還原記事。它將被複製到名為 \"%s\"的記事本中。目前記事的版本將不會被取代或修改。","Back":"返回","Remove":"移除","Delete notebook \"%s\"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.":"確定刪除記事本 \"%s\"?\n\n此記事本中的所有記事和子筆記本也將被刪除。","Delete":"刪除","Remove tag \"%s\" from all notes?":"是否從所有記事中刪除此標籤 \"%s\"?","Remove this search from the sidebar?":"是否從側邊欄中刪除此搜索?","Export":"匯出","All notes":"全部記事","Synchronise":"進行同步","Notebooks":"記事本","Tags":"標籤","Decrypting items: %d/%d":"正在解密項目: %d/%d 項","Fetching resources: %d/%d":"擷取資源檔案: %d/%d","Sidebar":"側邊欄","Focus":"焦點","Please select where the sync status should be exported to":"請選擇將同步狀態導出到的位置","Retry All":"全部重試","Retry":"重試","strong text":"重要文字","emphasised text":"強調文字","Insert Hyperlink":"插入超連結","List item":"清單項目","Layout":"頁面佈局","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"此記事沒有內容。按一下 \"%s\" 切換到編輯模式並編輯記事。","Cut":"剪下","Copy":"複製","Paste":"貼上","Checkbox list":"核取方塊清單","Edit":"編輯","Attach file":"附加檔案","Code Block":"程式碼區塊","Inline Code":"內嵌程式碼","Insert Date Time":"插入日期時間","Drop notes or files here":"將記事或檔案拖曳至此處","Code View":"程式碼檢視","Please wait for all attachments to be downloaded and decrypted. You may also switch to %s to edit the note.":"請等待所有附件均被下載並解密。你還能在 %s 中編輯記事。","There was an error downloading this attachment:":"下載此附件時出現錯誤: ","This attachment is not downloaded or not decrypted yet":"此附件尚未被下載或是尚未解密完成","Open...":"開啟...","Save as...":"另存為...","Reveal file in folder":"在资料夹中展示檔案","Copy path to clipboard":"複製路徑到剪貼板","Copy Link Address":"複製鏈接位址","to-do":"待辦事項","note":"記事","Creating new %s...":"建立新 %s...","In: %s":"在: %s","Select all":"選擇全部","Bold":"粗體","Italic":"斜體","Hyperlink":"超連結","Code":"引言","Numbered List":"編號清單","Bulleted List":"項目清單","Checkbox":"核取方塊","Heading":"標題","Horizontal Rule":"水平線","Note title":"記事標題","Search in current note":"在目前記事中搜尋","Note body":"內容主體","ID":"ID","Created":"已建立","Updated":"已更新","Completed":"已完成","Location":"地理位置","URL":"網址","Note History":"記事本歷史紀錄","Markup":"標記","Previous versions of this note":"此記事的先前版本","Note properties":"記事本性質","Disabled":"已停用","Import":"匯入","Quit":"結束","Insert template":"插入範本","Actual Size":"實際大小","Website and documentation":"官方網站及線上說明","Close Window":"關閉視窗","Options":"選項","Save":"儲存","Some items cannot be synchronised.":"有些項目不能同步。","View them now":"立即檢視","Some items cannot be decrypted.":"有些項目不能解密。","One or more master keys need a password.":"一個或多個主密鑰需要密碼。","Set the password":"設置密碼","One of your master keys use an obsolete encryption method.":"您的主密鑰有一組使用了過時的加密方法。","The default encryption method has been changed, you should re-encrypt your data.":"預設的加密方法已更改,您應該重新加密資料。","More info":"更多資訊","Statistics...":"統計...","Rename":"重新命名","Rename notebook:":"重新命名記事本: ","New to-do":"新增待辦事項","Toggle note list":"切換記事清單","Toggle sidebar":"顯示 / 隱藏側邊欄","Set alarm":"設置提醒","Set alarmLine truncated
+16 -1
View File
@@ -171,7 +171,7 @@ class Note extends BaseItem {
useAbsolutePaths: false,
}, options);
const pathsToTry = [];
let pathsToTry = [];
if (options.useAbsolutePaths) {
pathsToTry.push(`file://${Setting.value('resourceDir')}`);
pathsToTry.push(`file://${shim.pathRelativeToCwd(Setting.value('resourceDir'))}`);
@@ -179,6 +179,21 @@ class Note extends BaseItem {
pathsToTry.push(Resource.baseRelativeDirectoryPath());
}
// We support both the escaped and unescaped versions because both
// of those paths are valid:
//
// [](file://C:/I like spaces in paths/abcdefg.jpg)
// [](file://C:/I%20like%20spaces%20in%20paths/abcdefg.jpg)
//
// https://discourse.joplinapp.org/t/12986/4
const temp = [];
for (const p of pathsToTry) {
temp.push(p);
temp.push(markdownUtils.escapeLinkUrl(p));
}
pathsToTry = temp;
this.logger().debug('replaceResourceExternalToInternalLinks', 'options:', options, 'pathsToTry:', pathsToTry);
for (const basePath of pathsToTry) {
+5
View File
@@ -350,6 +350,8 @@ class Setting extends BaseModel {
// to the last folder that was selected.
activeFolderId: { value: '', type: SettingItemType.String, public: false },
richTextBannerDismissed: { value: false, type: SettingItemType.Bool, public: false },
firstStart: { value: true, type: SettingItemType.Bool, public: false },
locale: {
value: defaultLocale(),
@@ -594,6 +596,9 @@ class Setting extends BaseModel {
'markdown.plugin.fountain': { value: false, type: SettingItemType.Bool, section: 'markdownPlugins', public: true, appTypes: ['mobile', 'desktop'], label: () => `${_('Enable Fountain syntax support')}${wysiwygYes}` },
'markdown.plugin.mermaid': { value: true, type: SettingItemType.Bool, section: 'markdownPlugins', public: true, appTypes: ['mobile', 'desktop'], label: () => `${_('Enable Mermaid diagrams support')}${wysiwygYes}` },
'markdown.plugin.audioPlayer': { value: true, type: SettingItemType.Bool, section: 'markdownPlugins', public: true, appTypes: ['mobile', 'desktop'], label: () => `${_('Enable audio player')}${wysiwygNo}` },
'markdown.plugin.videoPlayer': { value: true, type: SettingItemType.Bool, section: 'markdownPlugins', public: true, appTypes: ['mobile', 'desktop'], label: () => `${_('Enable video player')}${wysiwygNo}` },
'markdown.plugin.pdfViewer': { value: !mobilePlatform, type: SettingItemType.Bool, section: 'markdownPlugins', public: true, appTypes: ['desktop'], label: () => `${_('Enable PDF viewer')}${wysiwygNo}` },
'markdown.plugin.mark': { value: true, type: SettingItemType.Bool, section: 'markdownPlugins', public: true, appTypes: ['mobile', 'desktop'], label: () => `${_('Enable ==mark== syntax')}${wysiwygNo}` },
'markdown.plugin.footnote': { value: true, type: SettingItemType.Bool, section: 'markdownPlugins', public: true, appTypes: ['mobile', 'desktop'], label: () => `${_('Enable footnotes')}${wysiwygNo}` },
'markdown.plugin.toc': { value: true, type: SettingItemType.Bool, section: 'markdownPlugins', public: true, appTypes: ['mobile', 'desktop'], label: () => `${_('Enable table of contents extension')}${wysiwygNo}` },
+632 -365
View File
File diff suppressed because it is too large. Load diff
+3 -4
View File
@@ -17,14 +17,16 @@
},
"devDependencies": {
"@types/jest": "^26.0.15",
"jest": "^26.6.3",
"@types/node": "^14.14.6",
"jest": "^26.6.3",
"typescript": "^4.0.5"
},
"dependencies": {
"@joplin/fork-htmlparser2": "^4.1.8",
"@joplin/fork-sax": "^1.2.12",
"@joplin/renderer": "^1.0.17",
"@joplin/turndown": "^4.0.30",
"@joplin/turndown-plugin-gfm": "^1.0.12",
"async-mutex": "^0.1.3",
"aws-sdk": "^2.588.0",
"base-64": "^0.1.0",
@@ -33,7 +35,6 @@
"chokidar": "^3.4.3",
"color": "3.1.2",
"compare-versions": "^3.6.0",
"diacritics": "^1.3.0",
"diff-match-patch": "^1.0.4",
"es6-promise-pool": "^2.5.0",
"file-uri-to-path": "^1.0.0",
@@ -45,8 +46,6 @@
"image-data-uri": "^2.0.0",
"image-type": "^3.0.0",
"immer": "^7.0.14",
"joplin-turndown": "^4.0.30",
"joplin-turndown-plugin-gfm": "^1.0.12",
"levenshtein": "^1.0.5",
"lodash": "^4.17.20",
"markdown-it": "^10.0.0",
+2 -260
View File
@@ -1,274 +1,16 @@
import eventManager from '../eventManager';
import shim from '../shim';
import { _ } from '../locale';
import keysRegExp from './KeymapService_keysRegExp';
import keycodeToElectronMap from './KeymapService_keycodeToElectronMap';
const BaseService = require('./BaseService').default;
const keysRegExp = /^([0-9A-Z)!@#$%^&*(:+<_>?~{|}";=,\-./`[\\\]']|F1*[1-9]|F10|F2[0-4]|Plus|Space|Tab|Backspace|Delete|Insert|Return|Enter|Up|Down|Left|Right|Home|End|PageUp|PageDown|Escape|Esc|VolumeUp|VolumeDown|VolumeMute|MediaNextTrack|MediaPreviousTrack|MediaStop|MediaPlayPause|PrintScreen|Numlock|Scrolllock|Capslock|num([0-9]|dec|add|sub|mult|div))$/;
const modifiersRegExp = {
darwin: /^(Ctrl|Option|Shift|Cmd)$/,
default: /^(Ctrl|Alt|AltGr|Shift|Super)$/,
};
const keycodeToElectronMap = [
'', // [0]
'', // [1]
'', // [2]
'', // [3]
'', // [4]
'', // [5]
'', // [6]
'', // [7]
'Backspace', // [8]
'Tab', // [9]
'', // [10]
'', // [11]
'Clear', // [12]
'Enter', // [13]
'', // [14]
'', // [15]
'Shift', // [16]
'Ctrl', // [17]
'Alt', // [18]
'', // [19]
'Capslock', // [20]
'', // [21]
'', // [22]
'', // [23]
'', // [24]
'', // [25]
'', // [26]
'Esc', // [27]
'', // [28]
'', // [29]
'', // [30]
'', // [31]
'Space', // [32]
'PageUp', // [33]
'PageDown', // [34]
'End', // [35]
'Home', // [36]
'Left', // [37]
'Up', // [38]
'Right', // [39]
'Down', // [40]
'', // [41]
'', // [42]
'', // [43]
'PrintScreen', // [44]
'Insert', // [45]
'Delete', // [46]
'', // [47]
'0', // [48]
'1', // [49]
'2', // [50]
'3', // [51]
'4', // [52]
'5', // [53]
'6', // [54]
'7', // [55]
'8', // [56]
'9', // [57]
':', // [58]
';', // [59]
'<', // [60]
'=', // [61]
'>', // [62]
'?', // [63]
'@', // [64]
'A', // [65]
'B', // [66]
'C', // [67]
'D', // [68]
'E', // [69]
'F', // [70]
'G', // [71]
'H', // [72]
'I', // [73]
'J', // [74]
'K', // [75]
'L', // [76]
'M', // [77]
'N', // [78]
'O', // [79]
'P', // [80]
'Q', // [81]
'R', // [82]
'S', // [83]
'T', // [84]
'U', // [85]
'V', // [86]
'W', // [87]
'X', // [88]
'Y', // [89]
'Z', // [90]
'Super', // [91] Super: Windows Key (Windows) or Command Key (Mac)
'', // [92]
'ContextMenu', // [93]
'', // [94]
'', // [95]
'num0', // [96]
'num1', // [97]
'num2', // [98]
'num3', // [99]
'num4', // [100]
'num5', // [101]
'num6', // [102]
'num7', // [103]
'num8', // [104]
'num9', // [105]
'nummult', // [106] *
'numadd', // [107] +
'', // [108]
'numsub', // [109] -
'numdec', // [110]
'numdiv', // [111] ÷
'F1', // [112]
'F2', // [113]
'F3', // [114]
'F4', // [115]
'F5', // [116]
'F6', // [117]
'F7', // [118]
'F8', // [119]
'F9', // [120]
'F10', // [121]
'F11', // [122]
'F12', // [123]
'F13', // [124]
'F14', // [125]
'F15', // [126]
'F16', // [127]
'F17', // [128]
'F18', // [129]
'F19', // [130]
'F20', // [131]
'F21', // [132]
'F22', // [133]
'F23', // [134]
'F24', // [135]
'', // [136]
'', // [137]
'', // [138]
'', // [139]
'', // [140]
'', // [141]
'', // [142]
'', // [143]
'Numlock', // [144]
'Scrolllock', // [145]
'', // [146]
'', // [147]
'', // [148]
'', // [149]
'', // [150]
'', // [151]
'', // [152]
'', // [153]
'', // [154]
'', // [155]
'', // [156]
'', // [157]
'', // [158]
'', // [159]
'', // [160]
'!', // [161]
'"', // [162]
'#', // [163]
'$', // [164]
'%', // [165]
'&', // [166]
'_', // [167]
'(', // [168]
')', // [169]
'*', // [170]
'Plus', // [171]
'|', // [172]
'-', // [173]
'{', // [174]
'}', // [175]
'~', // [176]
'', // [177]
'', // [178]
'', // [179]
'', // [180]
'VolumeMute', // [181]
'VolumeDown', // [182]
'VolumeUp', // [183]
'', // [184]
'', // [185]
';', // [186]
'=', // [187]
',', // [188]
'-', // [189]
'.', // [190]
'/', // [191]
'`', // [192]
'', // [193]
'', // [194]
'', // [195]
'', // [196]
'', // [197]
'', // [198]
'', // [199]
'', // [200]
'', // [201]
'', // [202]
'', // [203]
'', // [204]
'', // [205]
'', // [206]
'', // [207]
'', // [208]
'', // [209]
'', // [210]
'', // [211]
'', // [212]
'', // [213]
'', // [214]
'', // [215]
'', // [216]
'', // [217]
'', // [218]
'[', // [219]
'\\', // [220]
']', // [221]
'\'', // [222]
'', // [223]
'', // [224]
'AltGr', // [225]
'', // [226]
'', // [227]
'', // [228]
'', // [229]
'', // [230]
'', // [231]
'', // [232]
'', // [233]
'', // [234]
'', // [235]
'', // [236]
'', // [237]
'', // [238]
'', // [239]
'', // [240]
'', // [241]
'', // [242]
'', // [243]
'', // [244]
'', // [245]
'', // [246]
'', // [247]
'', // [248]
'', // [249]
'', // [250]
'', // [251]
'', // [252]
'', // [253]
'', // [254]
'', // [255]
];
const defaultKeymapItems = {
darwin: [
{ accelerator: 'Cmd+N', command: 'newNote' },
@@ -0,0 +1,262 @@
// This is the keycode map for Electron.
const keycodeToElectronMap = [
'', // [0]
'', // [1]
'', // [2]
'', // [3]
'', // [4]
'', // [5]
'', // [6]
'', // [7]
'Backspace', // [8]
'Tab', // [9]
'', // [10]
'', // [11]
'Clear', // [12]
'Enter', // [13]
'', // [14]
'', // [15]
'Shift', // [16]
'Ctrl', // [17]
'Alt', // [18]
'', // [19]
'Capslock', // [20]
'', // [21]
'', // [22]
'', // [23]
'', // [24]
'', // [25]
'', // [26]
'Esc', // [27]
'', // [28]
'', // [29]
'', // [30]
'', // [31]
'Space', // [32]
'PageUp', // [33]
'PageDown', // [34]
'End', // [35]
'Home', // [36]
'Left', // [37]
'Up', // [38]
'Right', // [39]
'Down', // [40]
'', // [41]
'', // [42]
'', // [43]
'PrintScreen', // [44]
'Insert', // [45]
'Delete', // [46]
'', // [47]
'0', // [48]
'1', // [49]
'2', // [50]
'3', // [51]
'4', // [52]
'5', // [53]
'6', // [54]
'7', // [55]
'8', // [56]
'9', // [57]
':', // [58]
';', // [59]
'<', // [60]
'=', // [61]
'>', // [62]
'?', // [63]
'@', // [64]
'A', // [65]
'B', // [66]
'C', // [67]
'D', // [68]
'E', // [69]
'F', // [70]
'G', // [71]
'H', // [72]
'I', // [73]
'J', // [74]
'K', // [75]
'L', // [76]
'M', // [77]
'N', // [78]
'O', // [79]
'P', // [80]
'Q', // [81]
'R', // [82]
'S', // [83]
'T', // [84]
'U', // [85]
'V', // [86]
'W', // [87]
'X', // [88]
'Y', // [89]
'Z', // [90]
'Super', // [91] Super: Windows Key (Windows) or Command Key (Mac)
'', // [92]
'ContextMenu', // [93]
'', // [94]
'', // [95]
'num0', // [96]
'num1', // [97]
'num2', // [98]
'num3', // [99]
'num4', // [100]
'num5', // [101]
'num6', // [102]
'num7', // [103]
'num8', // [104]
'num9', // [105]
'nummult', // [106] *
'numadd', // [107] +
'', // [108]
'numsub', // [109] -
'numdec', // [110]
'numdiv', // [111] ÷
'F1', // [112]
'F2', // [113]
'F3', // [114]
'F4', // [115]
'F5', // [116]
'F6', // [117]
'F7', // [118]
'F8', // [119]
'F9', // [120]
'F10', // [121]
'F11', // [122]
'F12', // [123]
'F13', // [124]
'F14', // [125]
'F15', // [126]
'F16', // [127]
'F17', // [128]
'F18', // [129]
'F19', // [130]
'F20', // [131]
'F21', // [132]
'F22', // [133]
'F23', // [134]
'F24', // [135]
'', // [136]
'', // [137]
'', // [138]
'', // [139]
'', // [140]
'', // [141]
'', // [142]
'', // [143]
'Numlock', // [144]
'Scrolllock', // [145]
'', // [146]
'', // [147]
'', // [148]
'', // [149]
'', // [150]
'', // [151]
'', // [152]
'', // [153]
'', // [154]
'', // [155]
'', // [156]
'', // [157]
'', // [158]
'', // [159]
'', // [160]
'!', // [161]
'"', // [162]
'#', // [163]
'$', // [164]
'%', // [165]
'&', // [166]
'_', // [167]
'(', // [168]
')', // [169]
'*', // [170]
'Plus', // [171]
'|', // [172]
'-', // [173]
'{', // [174]
'}', // [175]
'~', // [176]
'', // [177]
'', // [178]
'', // [179]
'', // [180]
'VolumeMute', // [181]
'VolumeDown', // [182]
'VolumeUp', // [183]
'', // [184]
'', // [185]
';', // [186]
'=', // [187]
',', // [188]
'-', // [189]
'.', // [190]
'/', // [191]
'`', // [192]
'', // [193]
'', // [194]
'', // [195]
'', // [196]
'', // [197]
'', // [198]
'', // [199]
'', // [200]
'', // [201]
'', // [202]
'', // [203]
'', // [204]
'', // [205]
'', // [206]
'', // [207]
'', // [208]
'', // [209]
'', // [210]
'', // [211]
'', // [212]
'', // [213]
'', // [214]
'', // [215]
'', // [216]
'', // [217]
'', // [218]
'[', // [219]
'\\', // [220]
']', // [221]
'\'', // [222]
'', // [223]
'', // [224]
'AltGr', // [225]
'', // [226]
'', // [227]
'', // [228]
'', // [229]
'', // [230]
'', // [231]
'', // [232]
'', // [233]
'', // [234]
'', // [235]
'', // [236]
'', // [237]
'', // [238]
'', // [239]
'', // [240]
'', // [241]
'', // [242]
'', // [243]
'', // [244]
'', // [245]
'', // [246]
'', // [247]
'', // [248]
'', // [249]
'', // [250]
'', // [251]
'', // [252]
'', // [253]
'', // [254]
'', // [255]
];
export default keycodeToElectronMap;
@@ -0,0 +1,9 @@
// We move this regex outside KeymapService because it makes gettext parsing
// fail. In fact it doesn't fail at the regex itself but at the next backtick
// into the code. Probably their parser see a backtick in the regex and opens a
// JS template string, while it shouldn't.
// https://discourse.joplinapp.org/t/translations/12832?u=laurent
const keysRegExp = /^([0-9A-Z)!@#$%^&*(:+<_>?~{|}";=,\-./`[\\\]']|F1*[1-9]|F10|F2[0-4]|Plus|Space|Tab|Backspace|Delete|Insert|Return|Enter|Up|Down|Left|Right|Home|End|PageUp|PageDown|Escape|Esc|VolumeUp|VolumeDown|VolumeMute|MediaNextTrack|MediaPreviousTrack|MediaStop|MediaPlayPause|PrintScreen|Numlock|Scrolllock|Capslock|num([0-9]|dec|add|sub|mult|div))$/;
export default keysRegExp;
+1 -1
View File
@@ -23,7 +23,7 @@ export default class KvStore extends BaseService {
this.instance_ = null;
}
private constructor() {
public constructor() {
super();
this.incMutex_ = new Mutex();
}
@@ -33,6 +33,30 @@ export default class ToolbarButtonUtils {
return this.service_;
}
// Editor commands will focus the editor after they're executed
private isEditorCommand(commandName: string) {
return (commandName.indexOf('editor.') === 0 ||
// These commands are grandfathered in, but in the future
// all editor commands should start with "editor."
// WARNING: Some commands such as textLink are not defined here
// because they are more complex and handle focus manually
commandName === 'textCopy' ||
commandName === 'textCut' ||
commandName === 'textPaste' ||
commandName === 'textSelectAll' ||
commandName === 'textBold' ||
commandName === 'textItalic' ||
commandName === 'textCode' ||
commandName === 'attachFile' ||
commandName === 'textNumberedList' ||
commandName === 'textBulletedList' ||
commandName === 'textCheckbox' ||
commandName === 'textHeading' ||
commandName === 'textHorizontalRule' ||
commandName === 'insertDateTime'
);
}
private commandToToolbarButton(commandName: string, whenClauseContext: any): ToolbarButtonInfo {
const newEnabled = this.service.isEnabled(commandName, whenClauseContext);
const newTitle = this.service.title(commandName);
@@ -52,8 +76,11 @@ export default class ToolbarButtonUtils {
tooltip: this.service.label(commandName),
iconName: command.declaration.iconName,
enabled: newEnabled,
onClick: () => {
onClick: async () => {
void this.service.execute(commandName);
if (this.isEditorCommand(commandName)) {
void this.service.execute('editor.focus');
}
},
title: newTitle,
};
@@ -1,11 +1,17 @@
import { _ } from '../../locale';
const InteropService_Exporter_Base = require('./InteropService_Exporter_Base').default;
const InteropService_Exporter_Raw = require('./InteropService_Exporter_Raw').default;
import InteropService_Exporter_Base from './InteropService_Exporter_Base';
import InteropService_Exporter_Raw from './InteropService_Exporter_Raw';
import shim from '../../shim';
const fs = require('fs-extra');
const shim = require('../../shim').default;
export default class InteropService_Exporter_Jex extends InteropService_Exporter_Base {
async init(destPath: string) {
private tempDir_: string;
private destPath_: string;
private rawExporter_: InteropService_Exporter_Raw;
public async init(destPath: string) {
if (await shim.fsDriver().isDirectory(destPath)) throw new Error(`Path is a directory: ${destPath}`);
this.tempDir_ = await this.temporaryDirectory_(false);
@@ -14,15 +20,15 @@ export default class InteropService_Exporter_Jex extends InteropService_Exporter
await this.rawExporter_.init(this.tempDir_);
}
async processItem(itemType: number, item: any) {
public async processItem(itemType: number, item: any) {
return this.rawExporter_.processItem(itemType, item);
}
async processResource(resource: any, filePath: string) {
public async processResource(resource: any, filePath: string) {
return this.rawExporter_.processResource(resource, filePath);
}
async close() {
public async close() {
const stats = await shim.fsDriver().readDirStats(this.tempDir_, { recursive: true });
const filePaths = stats.filter((a: any) => !a.isDirectory()).map((a: any) => a.path);
@@ -14,7 +14,7 @@ export default class JoplinViewsMenuItems {
private store: any;
private plugin: Plugin;
constructor(plugin: Plugin, store: any) {
public constructor(plugin: Plugin, store: any) {
this.store = store;
this.plugin = plugin;
}
@@ -22,7 +22,7 @@ export default class JoplinViewsMenuItems {
/**
* Creates a new menu item and associate it with the given command. You can specify under which menu the item should appear using the `location` parameter.
*/
async create(id: string, commandName: string, location: MenuItemLocation = MenuItemLocation.Tools, options: CreateMenuItemOptions = null) {
public async create(id: string, commandName: string, location: MenuItemLocation = MenuItemLocation.Tools, options: CreateMenuItemOptions = null) {
if (typeof location !== 'string') {
this.plugin.deprecationNotice('1.5', 'Creating a view without an ID is deprecated. To fix it, change your call to `joplin.views.menuItem.create("my-unique-id", ...)`');
options = location as any;
@@ -35,8 +35,17 @@ export default class JoplinViewsMenuItems {
const controller = new MenuItemController(handle, this.plugin.id, this.store, commandName, location);
this.plugin.addViewController(controller);
// Register the command with the keymap service - not that if no
// accelerator is provided, we still register the command, so that
// it appears in the keymap editor, which will allow the user to
// set a custom shortcut.
//
// https://discourse.joplinapp.org/t/plugin-note-tabs/12752/39
if (options && options.accelerator) {
KeymapService.instance().registerCommandAccelerator(commandName, options.accelerator);
} else {
KeymapService.instance().registerCommandAccelerator(commandName, null);
}
}
@@ -3,20 +3,6 @@ import createViewHandle from '../utils/createViewHandle';
import WebviewController, { ContainerType } from '../WebviewController';
import { ViewHandle } from './types';
interface InitialPosition {
nextTo: string,
}
// initialPosition: {
// nextTo: 'editor',
// side: '',top, right, bottom , left
// size: 100,
// }
interface CreateOptions {
initialPosition: InitialPosition,
}
/**
* Allows creating and managing view panels. View panels currently are
* displayed at the right of the sidebar and allows displaying any HTML
@@ -43,7 +29,7 @@ export default class JoplinViewsPanels {
/**
* Creates a new panel
*/
async create(id: string, options:CreateOptions = null): Promise<ViewHandle> {
async create(id: string): Promise<ViewHandle> {
if (!id) {
this.plugin.deprecationNotice('1.5', 'Creating a view without an ID is deprecated. To fix it, change your call to `joplin.views.panels.create("my-unique-id")`');
id = `${this.plugin.viewCount}`;
@@ -19,7 +19,14 @@ interface ItemChangeEvent {
event: ItemChangeEventType;
}
interface SyncStartEvent {
// Tells whether there were errors during sync or not. The log will
// have the complete information about any error.
withErrors: boolean;
}
type ItemChangeHandler = (event: ItemChangeEvent)=> void;
type SyncStartHandler = (event: SyncStartEvent)=> void;
/**
* The workspace service provides access to all the parts of Joplin that
@@ -80,8 +87,15 @@ export default class JoplinWorkspace {
/**
* Called when an alarm associated with a to-do is triggered.
*/
public async onNoteAlarmTrigger(callback: Function): Promise<Disposable> {
return makeListener(eventManager, 'noteAlarmTrigger', callback);
public async onNoteAlarmTrigger(handler: Function): Promise<Disposable> {
return makeListener(eventManager, 'noteAlarmTrigger', handler);
}
/**
* Called when the synchronisation process is starting.
*/
public async onSyncStart(handler: SyncStartHandler): Promise<Disposable> {
return makeListener(eventManager, 'syncStart', handler);
}
/**
@@ -4,8 +4,7 @@ const Setting = require('../../models/Setting').default;
const Note = require('../../models/Note.js');
const BaseModel = require('../../BaseModel').default;
const ItemChangeUtils = require('../ItemChangeUtils');
const { pregQuote, scriptType } = require('../../string-utils.js');
const removeDiacritics = require('diacritics').remove;
const { pregQuote, scriptType, removeDiacritics } = require('../../string-utils.js');
const { sprintf } = require('sprintf-js');
const filterParser = require('./filterParser').default;
const queryBuilder = require('./queryBuilder').default;
+1 -1
View File
@@ -41,7 +41,7 @@ const theme: Theme = {
searchMarkerBackgroundColor: '#F7D26E',
searchMarkerColor: 'black',
warningBackgroundColor: '#CC6600',
warningBackgroundColor: '#013F74',
tableBackgroundColor: 'rgb(40, 41, 42)',
codeBackgroundColor: 'rgb(47, 48, 49)',
+2 -2
View File
@@ -135,11 +135,11 @@ export default class HtmlToHtml {
enableLongPress: options.enableLongPress,
});
if (!r) return null;
if (!r.html) return null;
return {
type: 'replaceElement',
html: r,
html: r.html,
};
});
}
+24
View File
@@ -32,6 +32,7 @@ const rules: RendererRules = {
checkbox: require('./MdToHtml/rules/checkbox').default,
katex: require('./MdToHtml/rules/katex').default,
link_open: require('./MdToHtml/rules/link_open').default,
link_close: require('./MdToHtml/rules/link_close').default,
html_image: require('./MdToHtml/rules/html_image').default,
highlight_keywords: require('./MdToHtml/rules/highlight_keywords').default,
code_inline: require('./MdToHtml/rules/code_inline').default,
@@ -96,11 +97,19 @@ interface PluginAssets {
[pluginName: string]: PluginAsset[];
}
export interface Link {
href: string;
resource: any;
resourceReady: boolean;
resourceFullPath: string;
}
interface PluginContext {
css: any;
pluginAssets: any;
cache: any;
userData: any;
currentLinks: Link[];
}
interface RenderResultPluginAsset {
@@ -142,6 +151,10 @@ export interface RuleOptions {
// linkRenderingType = 1 is the regular rendering and clicking on it is handled via embedded JS (in onclick attribute)
// linkRenderingType = 2 gives a plain link with no JS. Caller needs to handle clicking on the link.
linkRenderingType?: number;
audioPlayerEnabled: boolean;
videoPlayerEnabled: boolean;
pdfViewerEnabled: boolean;
}
export default class MdToHtml {
@@ -201,10 +214,16 @@ export default class MdToHtml {
}
private pluginOptions(name: string) {
// Currently link_close is only used to append the media player to
// the resource links so we use the mediaPlayers plugin options for
// it.
if (name === 'link_close') name = 'mediaPlayers';
let o = this.pluginOptions_[name] ? this.pluginOptions_[name] : {};
o = Object.assign({
enabled: true,
}, o);
return o;
}
@@ -348,6 +367,10 @@ export default class MdToHtml {
codeTheme: 'atom-one-light.css',
theme: Object.assign({}, defaultNoteStyle, theme),
plugins: {},
audioPlayerEnabled: this.pluginEnabled('audioPlayer'),
videoPlayerEnabled: this.pluginEnabled('videoPlayer'),
pdfViewerEnabled: this.pluginEnabled('pdfViewer'),
}, options);
// The "codeHighlightCacheKey" option indicates what set of cached object should be
@@ -373,6 +396,7 @@ export default class MdToHtml {
pluginAssets: {},
cache: this.contextCache_,
userData: {},
currentLinks: [],
};
const markdownIt = new MarkdownIt({
@@ -3,12 +3,12 @@ import linkReplacement from './linkReplacement';
describe('linkReplacement', () => {
test('should handle non-resource links', () => {
const r = linkReplacement('https://example.com/test');
const r = linkReplacement('https://example.com/test').html;
expect(r).toBe('<a data-from-md href=\'https://example.com/test\' onclick=\'postMessage("https://example.com/test", { resourceId: "" }); return false;\'>');
});
test('should handle non-resource links - simple rendering', () => {
const r = linkReplacement('https://example.com/test', { linkRenderingType: 2 });
const r = linkReplacement('https://example.com/test', { linkRenderingType: 2 }).html;
expect(r).toBe('<a data-from-md href=\'https://example.com/test\'>');
});
@@ -25,7 +25,7 @@ describe('linkReplacement', () => {
},
},
},
});
}).html;
expect(r).toBe(`<a data-from-md data-resource-id='${resourceId}' href='#' onclick='postMessage("joplin://${resourceId}", { resourceId: "${resourceId}" }); return false;'><span class="resource-icon fa-joplin"></span>`);
});
@@ -43,7 +43,7 @@ describe('linkReplacement', () => {
},
},
},
});
}).html;
// Since the icon is embedded as SVG, we only check for the prefix
const expectedPrefix = `<a class="not-loaded-resource resource-status-notDownloaded" data-resource-id="${resourceId}"><img src="data:image/svg+xml;utf8`;
+23 -3
View File
@@ -14,7 +14,14 @@ export interface Options {
enableLongPress?: boolean;
}
export default function(href: string, options: Options = null) {
export interface LinkReplacementResult {
html: string;
resource: any;
resourceReady: boolean;
resourceFullPath: string;
}
export default function(href: string, options: Options = null): LinkReplacementResult {
options = {
title: '',
resources: {},
@@ -35,6 +42,7 @@ export default function(href: string, options: Options = null) {
let hrefAttr = '#';
let mime = '';
let resourceId = '';
let resource = null;
if (isResourceUrl) {
resourceId = resourceHrefInfo.itemId;
@@ -44,11 +52,18 @@ export default function(href: string, options: Options = null) {
if (result && result.item) {
if (!title) title = result.item.title;
mime = result.item.mime;
resource = result.item;
}
if (result && resourceStatus !== 'ready' && !options.plainResourceRendering) {
const icon = utils.resourceStatusFile(resourceStatus);
return `<a class="not-loaded-resource resource-status-${resourceStatus}" data-resource-id="${resourceId}">` + `<img src="data:image/svg+xml;utf8,${htmlentities(icon)}"/>`;
return {
resourceReady: false,
html: `<a class="not-loaded-resource resource-status-${resourceStatus}" data-resource-id="${resourceId}">` + `<img src="data:image/svg+xml;utf8,${htmlentities(icon)}"/>`,
resource,
resourceFullPath: null,
};
} else {
href = `joplin://${resourceId}`;
if (resourceHrefInfo.hash) href += `#${resourceHrefInfo.hash}`;
@@ -100,5 +115,10 @@ export default function(href: string, options: Options = null) {
if (js) attrHtml.push(js);
}
return `<a ${attrHtml.join(' ')}>${icon}`;
return {
html: `<a ${attrHtml.join(' ')}>${icon}`,
resourceReady: true,
resource,
resourceFullPath: resource && options.ResourceModel ? options.ResourceModel.fullPath(resource) : null,
};
}
+41
View File
@@ -0,0 +1,41 @@
import { Link } from '../MdToHtml';
import { toForwardSlashes } from '../pathUtils';
const Entities = require('html-entities').AllHtmlEntities;
const htmlentities = new Entities().encode;
export interface Options {
audioPlayerEnabled: boolean;
videoPlayerEnabled: boolean;
pdfViewerEnabled: boolean;
}
export default function(link: Link, options: Options) {
const resource = link.resource;
if (!link.resourceReady || !resource || !resource.mime) return '';
const escapedResourcePath = htmlentities(`file://${toForwardSlashes(link.resourceFullPath)}`);
const escapedMime = htmlentities(resource.mime);
if (options.videoPlayerEnabled && resource.mime.indexOf('video/') === 0) {
return `
<video class="media-player media-video" controls>
<source src="${escapedResourcePath}" type="${escapedMime}">
</video>
`;
}
if (options.audioPlayerEnabled && resource.mime.indexOf('audio/') === 0) {
return `
<audio class="media-player media-audio" controls>
<source src="${escapedResourcePath}" type="${escapedMime}">
</audio>
`;
}
if (options.pdfViewerEnabled && resource.mime === 'application/pdf') {
return `<object data="${escapedResourcePath}" class="media-player media-pdf" type="${escapedMime}"></object>`;
}
return '';
}
Loaded 100 of 198 files, more files were not shown because too many files have changed in this diff. Show more