1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-08-30 20:39:46 +02:00

Compare commits

...

187 Commits

Author SHA1 Message Date
Laurent Cozic
2b624a9aed Electron release v1.0.96 2018-05-26 17:25:15 +01:00
Laurent Cozic
792fd7c50d Update translations 2018-05-26 17:25:11 +01:00
Laurent Cozic
90d37a15bd Electron: Added link to Firefox extension 2018-05-26 17:13:27 +01:00
Laurent Cozic
ef57ee803f Clipper: Fixes to get it working in Firefox 2018-05-26 16:28:55 +01:00
Laurent Cozic
e2bfb74895 Clipper: Minor improvement to screenshot usability 2018-05-26 15:53:50 +01:00
Laurent Cozic
89b486a3ee Clipper: Allow selecting a folder and fixed screenshot taking issue 2018-05-26 15:46:57 +01:00
Laurent Cozic
d6c6ef20d4 Update website 2018-05-26 12:58:44 +01:00
Laurent Cozic
6cb6e9541f Clipper: started doc 2018-05-26 12:57:14 +01:00
Laurent Cozic
a8acecb703 Clipper: Display server status in popup 2018-05-26 12:17:41 +01:00
Laurent Cozic
0938297250 Clipper: Make dev icon look different and run dev server on different port 2018-05-26 11:18:54 +01:00
Laurent Cozic
a2da2f681c Update website 2018-05-25 14:04:48 +01:00
Laurent Cozic
32477e901d Electron release v1.0.95 2018-05-25 13:31:42 +01:00
Laurent Cozic
1841c4dc11 Merge branch 'master' of github.com:laurent22/joplin 2018-05-25 13:31:27 +01:00
Laurent Cozic
f81dce3321 Merge branch 'clipper' 2018-05-25 13:31:15 +01:00
Laurent Cozic
e15f84716a Clipper: Added Clipper config screen and improved server 2018-05-25 13:30:27 +01:00
Laurent Cozic
d11ecd8fac Clipper: Better handling of clipper server detection 2018-05-25 11:18:47 +01:00
Laurent Cozic
012e70d668 Clipper: Dynamically allocate and detect clipper service port 2018-05-25 11:08:22 +01:00
Laurent Cozic
264ee4f319 Clipper: Support clipping screenshots 2018-05-25 08:51:54 +01:00
Laurent Cozic
4640d6d6e3 Clipper: Made extension compatible with Chrome and started screenshot clipping 2018-05-24 18:32:30 +01:00
Laurent Cozic
9db9d98419 Clipper: Skip style section when importing HTML 2018-05-24 13:32:43 +01:00
Laurent Cozic
f79d7b9626 Clipper: Set source URL and fixed issues with tables and urls 2018-05-24 12:44:13 +01:00
Laurent Cozic
a8da469523 Clipper: Improved download of images and conversion to resources 2018-05-23 14:25:59 +01:00
Laurent Cozic
3c5eb99c59 Clipper: Download images and convert them to resources 2018-05-23 12:14:38 +01:00
Laurent Cozic
84efc6a04e ios-v10.0.24 2018-05-22 16:09:25 +01:00
Laurent Cozic
86e3038cfe Mobile: Fixes #531: Get WebDAV to work with certain servers that require a trailing slash on directories 2018-05-22 15:55:38 +01:00
Laurent Cozic
6898b9ca4c All: Identify another Dropbox missing auth error, to allow resetting the token 2018-05-22 15:03:55 +01:00
Laurent Cozic
9eb62920f7 Update SyncTargetDropbox.js 2018-05-22 15:02:35 +01:00
Laurent Cozic
7cf267254f Clipper: Improved Html To Md conversion 2018-05-22 00:54:23 +01:00
Laurent Cozic
5a0e3cbbf2 ios-v10.0.23 2018-05-21 23:02:47 +01:00
Laurent Cozic
4b376ec5c2 Update website 2018-05-21 21:53:13 +01:00
Laurent Cozic
92b71d3eb2 Electron release v1.0.94 2018-05-21 20:17:13 +01:00
Laurent Cozic
c32d7de7c4 Updated French transaltion 2018-05-21 20:17:00 +01:00
Laurent Cozic
c83a61d45d Android: Resolves #538 (kind of): Added info to ask user to set app permissions 2018-05-21 17:24:09 +01:00
Laurent Cozic
429f2d5aab All: Fixes #536: Allow changing sync target file path 2018-05-21 16:26:01 +01:00
Laurent Cozic
ed70cf571c Electron: partially resolves #532: Better handling of Dropbox error message 2018-05-21 16:24:57 +01:00
Laurent Cozic
fd77671575 Electron: Fixes #535: Note preview was not always updated when it should 2018-05-21 15:29:35 +01:00
Laurent Cozic
9d915a916e Fixed test 2018-05-21 15:21:08 +01:00
Laurent Cozic
acb90935c7 Fixed tests 2018-05-20 13:33:26 +01:00
Laurent Cozic
6301ba0a12 Electron: Fixes #527: Remove empty section separators from menus 2018-05-20 13:01:07 +01:00
Laurent Cozic
44e1245416 Electron: Fixes #528: Set translation in bridge functions too 2018-05-20 12:54:42 +01:00
Laurent Cozic
6527d9db83 Update translation 2018-05-20 12:31:54 +01:00
Laurent Cozic
2bcaf62a2f Merge pull request #543 from Abijeet/tag-rename
Adds functionality to allow for renaming of tags.
2018-05-20 12:24:15 +01:00
Laurent Cozic
2db3998f11 Merge pull request #540 from Abijeet/master
Added styles to fix margin bottom for  nested lists
2018-05-20 12:24:01 +01:00
Laurent Cozic
04724c58d1 All: Fixes #491: Handle non-standard ports and better handling of fetchBlob errors 2018-05-20 12:20:15 +01:00
Laurent Cozic
7ed9c2770c Clipper: Improved UI and integration with main app 2018-05-20 10:19:59 +01:00
Abijeet
48883bfa13 Adds functionality to allow for renaming of tags.
Towards #374

Signed-off-by: Abijeet <abijeetpatro@gmail.com>
2018-05-20 13:09:32 +05:30
Abijeet
b6d9e695d1 Added styles to fix margin bottom for nested lists
Fixes #482

Signed-off-by: Abijeet <abijeetpatro@gmail.com>
2018-05-19 23:39:27 +05:30
Laurent Cozic
43bab3c1bd Merge branch 'master' of github.com:laurent22/joplin 2018-05-16 15:34:09 +01:00
Laurent Cozic
dd67602b87 ios v10.0.22 2018-05-16 15:33:52 +01:00
Laurent Cozic
c96a416c2c Clipper: Clean up 2018-05-16 14:21:33 +01:00
Laurent Cozic
c4ca9cde32 Electron: Allow copying path of resources 2018-05-16 14:16:43 +01:00
Laurent Cozic
6c5d208893 Clipper: Added first files 2018-05-16 14:16:14 +01:00
Laurent Cozic
795fd8b58c HtmlToMD: Finish restoring codes that could be saved, and scoped tests to ENEX-like data 2018-05-16 10:56:30 +01:00
Laurent Cozic
c226940792 HtmlToMd: Re-applied recent changes that can be kept 2018-05-16 10:09:46 +01:00
Laurent Cozic
bdd0a6106f HtmlToMd: Revert to version a677b2e844 2018-05-16 10:09:07 +01:00
Laurent Cozic
d1ea7ad3ea HtmlToMd: Minor fix on table 2018-05-16 09:54:13 +01:00
Laurent Cozic
a2b1181f7c HtmlToMd: Fixed handling of inline tags 2018-05-15 13:26:53 +01:00
Laurent Cozic
8cce2f17d5 HtmlToMd: Improved import of inline and code block 2018-05-15 13:13:55 +01:00
Laurent Cozic
658b911513 HtmlToMd: Minor tweak on LI tag 2018-05-15 09:52:56 +01:00
Laurent Cozic
3c95979d94 HtmlToMd: Fix LI tags that contains blocks 2018-05-14 23:13:17 +01:00
Laurent Cozic
2e32211a28 HtmlToMd: Fix conversion of tables 2018-05-14 23:04:40 +01:00
Laurent Cozic
ba2874173d HtmlToMd: Added more test cases and fixed some issues 2018-05-14 19:48:52 +01:00
Laurent Cozic
ba9598682c HtmlToMd: Fixed various tests 2018-05-14 18:46:04 +01:00
Laurent Cozic
30bfd82683 Update website 2018-05-14 12:47:51 +01:00
Laurent Cozic
10c6774c28 Fix download links 2018-05-14 12:47:36 +01:00
Laurent Cozic
c4ad9019aa Update website 2018-05-14 12:42:06 +01:00
Laurent Cozic
7c99ab9947 Update Readme for portable app 2018-05-14 12:41:45 +01:00
Laurent Cozic
feb7778fe4 Electron release v1.0.93 2018-05-14 12:18:40 +01:00
Laurent Cozic
b45185780f Fixed auto-update download url 2018-05-14 12:18:00 +01:00
Laurent Cozic
4e032c0c55 Electron release v1.0.92 2018-05-14 11:36:40 +01:00
Laurent Cozic
2e2b35dfeb Fixed import of tables and added tests 2018-05-14 11:36:02 +01:00
Laurent Cozic
526ef7e1d2 Don't add new table when processing a table 2018-05-14 11:24:19 +01:00
Laurent Cozic
a37005446a Fixed tests 2018-05-14 11:23:18 +01:00
Laurent Cozic
e012b927dc Merge branch 'clipper' 2018-05-14 11:09:57 +01:00
Laurent Cozic
359b8d5545 Various tweaks to build portable version 2018-05-14 11:08:33 +01:00
Laurent Cozic
23c592b322 Merge branch 'master' of github.com:laurent22/joplin 2018-05-14 10:31:32 +01:00
Laurent Cozic
9aeddf86f4 Updated PortableApps build files 2018-05-14 10:31:16 +01:00
FoxMaSk
0e1887988e add OneDrive
add OneDrive to the general description of the supported services
2018-05-13 14:42:36 +02:00
Laurent Cozic
394f2df664 All: More robust HTML to MD conversion and started adding test units for it 2018-05-12 11:48:39 +01:00
Laurent Cozic
2a04378a0d Merge branch 'clipper' 2018-05-11 15:32:45 +01:00
Laurent Cozic
bac68f2c42 All: Various changes to improve import of HTML 2018-05-11 15:29:44 +01:00
Laurent Cozic
0f0ff86ffa Merge pull request #409 from petrz12/better-evernote-import
Merge monospace text lines when importing from Evernote
2018-05-11 15:25:26 +01:00
Laurent Cozic
8b38752cbf Fix downloads 2018-05-11 14:36:52 +01:00
Laurent Cozic
3c24589450 Fixed deployment script 2018-05-11 14:36:22 +01:00
Laurent Cozic
65065a62d8 CLI v1.0.107 2018-05-11 13:50:19 +01:00
Laurent Cozic
482e9340bc Android release v1.0.125 2018-05-10 21:31:58 +01:00
Laurent Cozic
69d490996e Mobile: Remove uneeded GCM and C2DM dependencies from Android to make it acceptable for F-Droid 2018-05-10 21:25:06 +01:00
Laurent Cozic
3494937e34 Mobile: Resolves #503: Share note with other apps 2018-05-10 20:39:41 +01:00
Laurent Cozic
41ba1043be All: Fixed incorrect timeout for sync-after-save (was using ms instead of sec). Removed needless caching of note IDs in database. 2018-05-10 19:50:44 +01:00
Laurent Cozic
cc57de60c0 Update website 2018-05-10 15:48:16 +01:00
Laurent Cozic
60a2b9e5c6 Electron release v1.0.91 2018-05-10 15:24:46 +01:00
Laurent Cozic
8e1fb666a5 Electron: Fixes #510: Removed reference to missing file 2018-05-10 15:24:38 +01:00
Laurent Cozic
f4ad777bbf Update website 2018-05-10 14:32:33 +01:00
Laurent Cozic
2eacf6146a Android release v1.0.124 2018-05-10 12:24:36 +01:00
Laurent Cozic
fe2ba34cb4 Electron release v1.0.90 2018-05-10 12:22:33 +01:00
Laurent Cozic
84daa0db61 Update readme 2018-05-10 12:22:14 +01:00
Laurent Cozic
b9118a90be All: Resolves #443: Various optimisations to make dealing with large notes easier and make Katex re-rendering faster 2018-05-10 12:02:39 +01:00
Laurent Cozic
ef2ffd4e52 Electron: Resolves #200, Resolves #416: Allow attaching images by pasting them in. Allow attaching files by drag and dropping them. Insert attachement at cursor position. 2018-05-10 10:45:44 +01:00
Laurent Cozic
5e3063abe0 Updated translations 2018-05-09 21:05:52 +01:00
Laurent Cozic
f460b2497a Merge pull request #506 from fmrtn/master
Updated Spanish translation
2018-05-09 21:04:20 +01:00
Laurent Cozic
c080d7054f Merge branch 'master' of github.com:laurent22/joplin 2018-05-09 21:00:33 +01:00
Laurent Cozic
61dd4cefbc All: Resolves #345: Option to hide completed todos 2018-05-09 21:00:05 +01:00
Laurent Cozic
63d99b2d70 Mobile: Fixes #497: Make sure Dropbox text input is visible when keyboard is visible on iPhone SE 2018-05-09 19:11:48 +01:00
Laurent Cozic
55332d7671 Electron: Fixes #481: Shortcuts were not working when text editor had focus 2018-05-09 18:41:32 +01:00
Laurent Cozic
16635defcd Mobile: Fixes #455: Use active folder when creating new note from Welcome screen 2018-05-09 18:12:00 +01:00
Laurent Cozic
595cf3fcad Mobile: Fixes #433: Don't scroll note back to top when changing checkbox state 2018-05-09 18:04:48 +01:00
Fernando
c9b9f82130 Updated Spanish translation 2018-05-09 18:48:32 +02:00
Laurent Cozic
f5bca733d7 Fixed translator email encoding issue 2018-05-09 17:06:02 +01:00
Laurent Cozic
494e235e18 Electron: Resolves #500: Fixed XSS security vulnerability 2018-05-09 16:59:33 +01:00
Laurent Cozic
85219a6004 Android release v1.0.123 2018-05-09 16:43:33 +01:00
Laurent Cozic
e4a7851e57 Update debugging.md 2018-05-09 16:33:16 +01:00
Laurent Cozic
b7529b40b5 Updated tests 2018-05-09 16:14:27 +01:00
Laurent Cozic
74827e5324 Electron: Fixed tag display 2018-05-09 15:31:42 +01:00
Laurent Cozic
2e16cc5433 ios-v10.0.21 2018-05-09 14:15:04 +01:00
Laurent Cozic
7f41bc5703 Update website 2018-05-09 14:10:13 +01:00
Laurent Cozic
a2380fb752 Android release v1.0.122 2018-05-09 13:18:39 +01:00
Laurent Cozic
f6a902809d Electron release v1.0.89 2018-05-09 13:17:08 +01:00
Laurent Cozic
33a853397d Electron release v1.0.88 2018-05-09 13:16:55 +01:00
Laurent Cozic
4f02481899 Electron release v1.0.87 2018-05-09 13:14:42 +01:00
Laurent Cozic
b18076565f Update translations 2018-05-09 13:14:17 +01:00
Laurent Cozic
853ddc5840 Update website 2018-05-09 13:11:03 +01:00
Laurent Cozic
7930ab66c6 Merge branch 'master' into subnotebooks 2018-05-09 13:10:20 +01:00
Laurent Cozic
c7716c0d59 All: Resolves #122: Sub-notebook support in desktop, mobile and cli app 2018-05-09 13:08:00 +01:00
Laurent Cozic
49cbb254d0 CLI: Fixed link handling 2018-05-09 12:50:50 +01:00
Laurent Cozic
cf9246796d CLI: Added support for sub-notebooks 2018-05-09 12:39:27 +01:00
Laurent Cozic
e1dee546dc Mobile: Added support for sub-notebooks 2018-05-09 12:39:17 +01:00
Laurent Cozic
da6fdad2de All: Handle saving collapsed states of sub-notebook 2018-05-09 10:49:31 +01:00
Laurent Cozic
567596643c Electron: Handle drag and dropping notebooks to change the parent 2018-05-09 09:53:47 +01:00
Laurent Cozic
cb617e1b14 All: Fixes #61: Handle path that ends with slash for file system sync. 2018-05-08 11:29:25 +01:00
Laurent Cozic
facf8afa8b Update translations 2018-05-08 11:12:36 +01:00
Laurent Cozic
f0dd61a711 Merge pull request #495 from fmrtn/master
Updated Spanish translation
2018-05-08 11:12:01 +01:00
Laurent Cozic
e958211a13 Merge pull request #496 from zuphilip/patch-1
Update address pronouns "du" in German translation
2018-05-08 11:11:45 +01:00
Philipp Zumstein
0ed170b5bc Update address pronouns "du" in German translation 2018-05-07 07:12:01 +02:00
Fernando
473d3453a2 Updated Spanish translation 2018-05-06 20:29:35 +02:00
Laurent Cozic
fa9d7b0408 Electron: Started UI and backend for sub-notebook support 2018-05-06 12:11:59 +01:00
Laurent Cozic
d4a28f48c9 Update website 2018-05-06 11:17:34 +01:00
Laurent Cozic
ead6fff861 Merge branch 'master' of github.com:laurent22/joplin 2018-05-06 11:16:52 +01:00
Laurent Cozic
c7d06b35cd Merge pull request #494 from stweil/typo
Fix some typos
2018-05-06 11:16:43 +01:00
Laurent Cozic
fa939e5c76 Merge branch 'master' of github.com:laurent22/joplin 2018-05-06 11:16:19 +01:00
Laurent Cozic
1bf2601f4f Merge pull request #492 from zuphilip/patch-1
Update de_DE.po
2018-05-06 11:15:59 +01:00
Stefan Weil
feb0c02c9a ReactNativeClient: Fix some typos (found by codespell)
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2018-05-05 16:25:37 +02:00
Stefan Weil
40a34a7c05 Fix typos in documentation (found by codespell)
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2018-05-05 16:23:48 +02:00
Stefan Weil
c62dcd96b0 CliClient: Fix some typos (found by codespell)
Remove also a "translation" which was none from locales/hr_HR.po.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2018-05-05 16:22:14 +02:00
Philipp Zumstein
1364d6786d Update de_DE.po 2018-05-05 11:08:47 +02:00
petrz12
9f2666aef9 Evernote code block conversion added, better handling of monospace empty lines 2018-05-04 00:23:19 +02:00
Laurent Cozic
a6a351e68d Electron: Export/Import links to notes 2018-05-03 13:11:45 +01:00
Laurent Cozic
1db38a9699 Merge pull request #484 from fmrtn/master
Spanish translation updated
2018-05-03 12:08:57 +01:00
Fernando
c57db1834f Spanish translation updated 2018-05-03 13:07:36 +02:00
Laurent Cozic
3aeb49b469 Merge branch 'master' of github.com:laurent22/joplin 2018-05-03 11:31:17 +01:00
Laurent Cozic
80b467eead All: For now, disable attaching resources larger than 10MB due to #371 2018-05-03 11:31:07 +01:00
Laurent Cozic
61572f287a Update README.md
Added note about large resources
2018-05-03 11:06:12 +01:00
petrz12
f136664c11 codeblock detection added 2018-05-02 22:39:50 +02:00
Laurent Cozic
0e545baf10 Update issue_template.md 2018-05-02 21:39:11 +01:00
Laurent Cozic
e65e647359 Update issue_template.md 2018-05-02 21:38:49 +01:00
Laurent Cozic
238268884e Update debugging.md 2018-05-02 20:16:08 +01:00
Laurent Cozic
4c210d0956 Electron: Fixes #480: Ignore invalid flag automatically passed by macOS 2018-05-02 15:51:33 +01:00
Laurent Cozic
5f32c6466a Update website 2018-05-02 15:33:18 +01:00
Laurent Cozic
71bd39a8a3 Update website 2018-05-02 15:31:17 +01:00
Laurent Cozic
ffb660f0f4 Move tool file 2018-05-02 15:28:13 +01:00
Laurent Cozic
dde23632c1 Move tool file 2018-05-02 15:27:12 +01:00
Laurent Cozic
9d26f13db0 Android release v1.0.120 2018-05-02 15:18:13 +01:00
Laurent Cozic
2a4c9c4427 Electron release v1.0.86 2018-05-02 15:16:02 +01:00
Laurent Cozic
3bfde26b74 Merge branch 'master' of github.com:laurent22/joplin 2018-05-02 15:13:28 +01:00
Laurent Cozic
a419bc7253 All: Resolves #134: Allow linking to a note from another note 2018-05-02 15:13:20 +01:00
Laurent Cozic
89e0dad88b Update README.md
32-bit is now supported
2018-05-02 13:16:04 +01:00
Laurent Cozic
ff1ee1249b Mobile: Resolves #61: Enable File System sync on mobile as the driver seems to be working now 2018-05-02 10:27:37 +01:00
Laurent Cozic
ba9cfd8041 Electron: Increased timeout for sync-after-save to 30 seconds 2018-05-02 08:34:54 +01:00
Laurent Cozic
80a51e02a4 Update readme downloads 2018-05-01 22:33:01 +01:00
Laurent Cozic
a2e2a9a2f5 Electron release v1.0.85 2018-05-01 21:16:24 +01:00
Laurent Cozic
49e4c37cac Electron: Check that the filename contains 'Setup' when auto-updating 2018-05-01 21:13:41 +01:00
Laurent Cozic
11d323d8b7 Electron: Fixes #479: Currently loaded note was cleared when creating new note 2018-05-01 21:13:17 +01:00
Laurent Cozic
784ba45f1f Electron release v1.0.84 2018-05-01 19:39:06 +01:00
Laurent Cozic
e534414874 All: Fixes #434: Handle Katex block mode 2018-05-01 19:34:42 +01:00
Laurent Cozic
01f4faf8f1 Mobile: Fixes #426: Fix missing menu icon on Android 4 2018-05-01 19:30:41 +01:00
Laurent Cozic
b33d30ca47 Merge branch 'master' of github.com:laurent22/joplin 2018-05-01 19:05:33 +01:00
Laurent Cozic
1ba3fae101 All: Resolves #470: Make it clear that spaces in URLs are invalid. 2018-05-01 19:05:14 +01:00
Laurent Cozic
9550347e04 Merge pull request #448 from solariz/master
Fix for Issue #430
2018-05-01 18:54:43 +01:00
Laurent Cozic
398946d39a Mobile: Fixes #393: Fixed moving new notes before they are saved 2018-05-01 18:53:45 +01:00
Laurent Cozic
05faf55e8d All: Fixes #363: Fixed indentation and rendering of lists 2018-05-01 16:45:17 +01:00
Laurent Cozic
4cf5525e20 Electron: Fixes #355: Set undo state properly when loading new note 2018-05-01 10:48:15 +01:00
Laurent Cozic
62e91c44d7 Electron: Fixes #346: Make sure links have an address when exporting to PDF 2018-05-01 10:14:48 +01:00
Laurent Cozic
e4ec4ae92b Mobile: Fix action button when note is being edited. 2018-05-01 10:09:36 +01:00
Laurent Cozic
c1f5dfd9cc Keep Blob tests to revisit in a few weeks 2018-04-30 21:21:17 +01:00
petrz12
c8c9f80cc5 Making monospace merging permanent 2018-04-21 13:55:18 +02:00
Marco G
577bef5704 Fix for Issue #430 2018-04-21 10:25:13 +02:00
petrz12
69ddcc6e30 Remove debug lines, fixing some comments 2018-04-18 14:13:19 +02:00
petrz12
16554b22c7 Merge monospace text lines when importing from Evernote 2018-04-10 22:59:45 +02:00
247 changed files with 32226 additions and 1548 deletions

View File

@@ -1,5 +1,6 @@
const { Logger } = require('lib/logger.js');
const Folder = require('lib/models/Folder.js');
const BaseItem = require('lib/models/BaseItem.js');
const Tag = require('lib/models/Tag.js');
const BaseModel = require('lib/BaseModel.js');
const Note = require('lib/models/Note.js');
@@ -9,6 +10,8 @@ const { reducer, defaultState } = require('lib/reducer.js');
const { splitCommandString } = require('lib/string-utils.js');
const { reg } = require('lib/registry.js');
const { _ } = require('lib/locale.js');
const Entities = require('html-entities').AllHtmlEntities;
const htmlentities = (new Entities()).encode;
const chalk = require('chalk');
const tk = require('terminal-kit');
@@ -638,12 +641,27 @@ class AppGui {
return true;
}
if (link.type === 'resource') {
const resourceId = link.id;
let resource = await Resource.load(resourceId);
if (!resource) throw new Error('No resource with ID ' + resourceId); // Should be nearly impossible
if (resource.mime) response.setHeader('Content-Type', resource.mime);
response.write(await Resource.content(resource));
if (link.type === 'item') {
const itemId = link.id;
let item = await BaseItem.loadItemById(itemId);
if (!item) throw new Error('No item with ID ' + itemId); // Should be nearly impossible
if (item.type_ === BaseModel.TYPE_RESOURCE) {
if (item.mime) response.setHeader('Content-Type', item.mime);
response.write(await Resource.content(item));
} else if (item.type_ === BaseModel.TYPE_NOTE) {
const html = [`
<!DOCTYPE html>
<html class="client-nojs" lang="en" dir="ltr">
<head><meta charset="UTF-8"/></head><body>
`];
html.push('<pre>' + htmlentities(item.title) + '\n\n' + htmlentities(item.body) + '</pre>');
html.push('</body></html>');
response.write(html.join(''));
} else {
throw new Error('Unsupported item type: ' + item.type_);
}
return true;
}
@@ -659,7 +677,7 @@ class AppGui {
if (resourceIdRegex.test(url)) {
noteLinks[index] = {
type: 'resource',
type: 'item',
id: url.substr(2),
};
} else if (hasProtocol(url, ['http', 'https', 'file', 'ftp'])) {

View File

@@ -36,7 +36,7 @@ async function handleAutocompletionPromise(line) {
if (next[0] === '-') {
for (let i = 0; i<metadata.options.length; i++) {
const options = metadata.options[i][0].split(' ');
//if there are multiple options then they will be seperated by comma and
//if there are multiple options then they will be separated by comma and
//space. The comma should be removed
if (options[0][options[0].length - 1] === ',') {
options[0] = options[0].slice(0, -1);

View File

@@ -72,7 +72,7 @@ class Command extends BaseCommand {
this.stdout('');
this.stdout(commandNames.join(', '));
this.stdout('');
this.stdout(_('In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.'));
this.stdout(_('In any command, a note or notebook can be referred to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.'));
this.stdout('');
this.stdout(_('To move from one pane to another, press Tab or Shift+Tab.'));
this.stdout(_('Use the arrows and page up/down to scroll the lists and text areas (including this console).'));

View File

@@ -29,7 +29,7 @@ class Command extends BaseCommand {
const folder = await app().loadItem(BaseModel.TYPE_FOLDER, pattern);
if (!folder) throw new Error(_('Cannot find "%s".', pattern));
const ok = force ? true : await this.prompt(_('Delete notebook? All notes within this notebook will also be deleted.'), { booleanAnswerDefault: 'n' });
const ok = force ? true : await this.prompt(_('Delete notebook? All notes and sub-notebooks within this notebook will also be deleted.'), { booleanAnswerDefault: 'n' });
if (!ok) return;
await Folder.delete(folder.id);

View File

@@ -18,19 +18,20 @@ class FolderListWidget extends ListWidget {
this.notesParentType_ = 'Folder';
this.updateIndexFromSelectedFolderId_ = false;
this.updateItems_ = false;
this.trimItemTitle = false;
this.itemRenderer = (item) => {
let output = [];
if (item === '-') {
output.push('-'.repeat(this.innerWidth));
} else if (item.type_ === Folder.modelType()) {
output.push(Folder.displayTitle(item));
output.push(' '.repeat(this.folderDepth(this.folders, item.id)) + Folder.displayTitle(item));
} else if (item.type_ === Tag.modelType()) {
output.push('[' + Folder.displayTitle(item) + ']');
} else if (item.type_ === BaseModel.TYPE_SEARCH) {
output.push(_('Search:'));
output.push(item.title);
}
}
// if (item && item.id) output.push(item.id.substr(0, 5));
@@ -38,6 +39,17 @@ class FolderListWidget extends ListWidget {
};
}
folderDepth(folders, folderId) {
let output = 0;
while (true) {
const folder = BaseModel.byId(folders, folderId);
if (!folder.parent_id) return output;
output++;
folderId = folder.parent_id;
}
throw new Error('unreachable');
}
get selectedFolderId() {
return this.selectedFolderId_;
}

View File

@@ -66,26 +66,6 @@ process.stdout.on('error', function( err ) {
}
});
// async function main() {
// const InteropService = require('lib/services/InteropService');
// const service = new InteropService();
// console.info(service.moduleByFormat('importer', 'enex'));
// //await service.modules();
// }
// main().catch((error) => { console.error(error); });
application.start(process.argv).catch((error) => {
if (error.code == 'flagError') {
console.error(error.message);

View File

@@ -229,7 +229,7 @@ msgid "The possible commands are:"
msgstr "Dostupné příkazy:"
msgid ""
"In any command, a note or notebook can be refered to by title or ID, or "
"In any command, a note or notebook can be referred to by title or ID, or "
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
"note or notebook. `$c` can be used to refer to the currently selected item."
msgstr ""
@@ -364,7 +364,10 @@ msgstr "Smaže vybraný zápisník."
msgid "Deletes the notebook without asking for confirmation."
msgstr "Smaže zápisník bez potvrzení."
msgid "Delete notebook? All notes within this notebook will also be deleted."
#, fuzzy
msgid ""
"Delete notebook? All notes and sub-notebooks within this notebook will also "
"be deleted."
msgstr "Smazat zápisník? Budou smazány i všechny poznámky v něm obsažené."
msgid "Deletes the notes matching <note-pattern>."
@@ -629,6 +632,9 @@ msgstr "Nástroje"
msgid "Synchronisation status"
msgstr "Stav synchronizace"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr "Nastavení šifrování"
@@ -679,6 +685,49 @@ msgstr "Ano"
msgid "No"
msgstr "Ne"
msgid "The web clipper service is already enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Stav: %s."
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"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."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
msgid "Check synchronisation configuration"
msgstr "Zkontrolujte nastavení synchronizace"
@@ -798,6 +847,10 @@ msgstr "Tagy oddělujte čárkami."
msgid "Rename notebook:"
msgstr "Přejmenovat zápisník:"
#, fuzzy
msgid "Rename tag:"
msgstr "Přejmenovat"
msgid "Set alarm:"
msgstr "Nastavit alarm:"
@@ -826,6 +879,10 @@ msgstr "Přidat či odebrat tagy"
msgid "Switch between note and to-do type"
msgstr "Přepnout mezi poznámkou a to-do"
#, fuzzy
msgid "Copy Markdown link"
msgstr "Markdown"
msgid "Delete"
msgstr "Smazat"
@@ -845,10 +902,19 @@ msgstr "Otevřít..."
msgid "Save as..."
msgstr "Uložit jako..."
msgid "Copy path to clipboard"
msgstr ""
#, javascript-format
msgid "Unsupported link or message: %s"
msgstr "Nepodporovaný link či zpráva: %s"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr "Tato poznámka je prázdný. Klikněte na \"%s\" pro otevření editoru."
msgid "Attach file"
msgstr "Přiložit soubor"
@@ -858,12 +924,6 @@ msgstr "Tagy"
msgid "Set alarm"
msgstr "Nastavit alarm"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr "Tato poznámka je prázdný. Klikněte na \"%s\" pro otevření editoru."
msgid "to-do"
msgstr "to-do"
@@ -895,6 +955,10 @@ msgstr "Stav synchronizace"
msgid "Encryption Options"
msgstr "Nastavení šifrování"
#, fuzzy
msgid "Clipper Options"
msgstr "Obecná nastavení"
msgid "Remove this tag from all the notes?"
msgstr "Odebrat tento tag ze všech poznámek?"
@@ -1035,6 +1099,10 @@ msgstr "Nelze editovat zašifrovanou položku"
msgid "Conflicts"
msgstr "Konflikty"
#, fuzzy
msgid "Cannot move notebook to this location"
msgstr "Poznámku nelze přesunout do zápisníku \"%s\""
#, javascript-format
msgid "A notebook with this title already exists: \"%s\""
msgstr "Zápisník s tímto názvem již existuje: \"%s\""
@@ -1088,6 +1156,10 @@ msgstr "Tmavý"
msgid "Uncompleted to-dos on top"
msgstr "Nedokončené to-do listy nahoře"
#, fuzzy
msgid "Show completed to-dos"
msgstr "Nedokončené to-do listy nahoře"
msgid "Sort notes by"
msgstr "Řadit poznámky podle"
@@ -1121,9 +1193,10 @@ msgstr "Globální zoom"
msgid "Editor font family"
msgstr "Rodina písma v editoru"
#, fuzzy
msgid ""
"The font name will not be checked. If incorrect or empty, it will default to "
"a generic monospace font."
"This must be *monospace* font or it will not work properly. If the font is "
"incorrect or empty, it will default to a generic monospace font."
msgstr ""
"Jméno fontu není kontrolováno. Pokud je neplatné či chybí, bude použit "
"defaultní monospace font."
@@ -1320,6 +1393,22 @@ msgstr "Nové tagy:"
msgid "Type new tags or select from list"
msgstr "Zadejte nové tagy, nebo vyberte existující ze seznamu"
msgid ""
"To work correctly, the app needs the following permissions. Please enable "
"them in your phone settings, in Apps > Joplin > Permissions"
msgstr ""
msgid ""
"- Storage: to allow attaching files to notes and to enable filesystem "
"synchronisation."
msgstr ""
msgid "- Camera: to allow taking a picture and attaching it to a note."
msgstr ""
msgid "- Location: to allow attaching geo-location information to a note."
msgstr ""
msgid "Joplin website"
msgstr "Web Joplinu"
@@ -1366,6 +1455,14 @@ msgstr "Uložit změny"
msgid "Discard changes"
msgstr "Zahodit změny"
#, javascript-format
msgid "No item with ID %s"
msgstr ""
#, javascript-format
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Nepodporovaný formát obrázku: %s"
@@ -1376,6 +1473,9 @@ msgstr "Přiložit obrázek"
msgid "Attach any file"
msgstr "Přiložit soubor"
msgid "Share"
msgstr ""
msgid "Convert to note"
msgstr "Konvertovat na poznámku"

View File

@@ -2,7 +2,7 @@
# Copyright (C) YEAR Laurent Cozic
# This file is distributed under the same license as the Joplin-CLI package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#
msgid ""
msgstr ""
"Project-Id-Version: Joplin-CLI 1.0.0\n"
@@ -229,7 +229,7 @@ msgid "The possible commands are:"
msgstr "Mulige kommandoer er:"
msgid ""
"In any command, a note or notebook can be refered to by title or ID, or "
"In any command, a note or notebook can be referred to by title or ID, or "
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
"note or notebook. `$c` can be used to refer to the currently selected item."
msgstr ""
@@ -367,7 +367,10 @@ msgstr "Sletter aktuelle notesbog."
msgid "Deletes the notebook without asking for confirmation."
msgstr "Sletter notesbogen uden at bede om bekræftelse."
msgid "Delete notebook? All notes within this notebook will also be deleted."
#, fuzzy
msgid ""
"Delete notebook? All notes and sub-notebooks within this notebook will also "
"be deleted."
msgstr "Slet notesbog? Alle noter i notesbogen bliver også slettet."
msgid "Deletes the notes matching <note-pattern>."
@@ -634,6 +637,9 @@ msgstr "Værktøjer"
msgid "Synchronisation status"
msgstr "Synkroniserings status"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr "Krypterings muligheder"
@@ -684,6 +690,49 @@ msgstr "Ja"
msgid "No"
msgstr "Nej"
msgid "The web clipper service is already enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Tilstand: %s."
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"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."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
msgid "Check synchronisation configuration"
msgstr "Check synkroniserings Indstillinger"
@@ -807,6 +856,10 @@ msgstr "Adskil hver mærke med komma."
msgid "Rename notebook:"
msgstr "Omdøb notesbog:"
#, fuzzy
msgid "Rename tag:"
msgstr "Omdøb"
msgid "Set alarm:"
msgstr "Indstil alarm:"
@@ -835,6 +888,10 @@ msgstr "Tilføj eller slet mærker"
msgid "Switch between note and to-do type"
msgstr "Skift mellem note- og opgave type"
#, fuzzy
msgid "Copy Markdown link"
msgstr "Markdown"
msgid "Delete"
msgstr "Slet"
@@ -854,10 +911,19 @@ msgstr "Åben..."
msgid "Save as..."
msgstr "Gem som..."
msgid "Copy path to clipboard"
msgstr ""
#, javascript-format
msgid "Unsupported link or message: %s"
msgstr "Ugyldigt- eller ulovligt link eller besked: %s"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr "Denne note er tom. Klik på \"%s\" for at starte editor og rette noten."
msgid "Attach file"
msgstr "Vedhæft fil"
@@ -867,12 +933,6 @@ msgstr "Mærker"
msgid "Set alarm"
msgstr "Indstil alarm"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr "Denne note er tom. Klik på \"%s\" for at starte editor og rette noten."
msgid "to-do"
msgstr "opgave"
@@ -904,6 +964,10 @@ msgstr "Synkroniserings status"
msgid "Encryption Options"
msgstr "Krypterings indstillinger"
#, fuzzy
msgid "Clipper Options"
msgstr "Generelle indstillinger"
msgid "Remove this tag from all the notes?"
msgstr "Slet denne markering fra alle noter?"
@@ -1044,6 +1108,10 @@ msgstr "Krypteret emner kan ikke rettes"
msgid "Conflicts"
msgstr "Konflikter"
#, fuzzy
msgid "Cannot move notebook to this location"
msgstr "Kan ikke flytte note til \"%s\" notesbog"
#, javascript-format
msgid "A notebook with this title already exists: \"%s\""
msgstr "En notesbog bruger allerede dette navn: \"%s\""
@@ -1097,6 +1165,10 @@ msgstr "Mørkt"
msgid "Uncompleted to-dos on top"
msgstr "Ufærdige opgaver øverst"
#, fuzzy
msgid "Show completed to-dos"
msgstr "Ufærdige opgaver øverst"
msgid "Sort notes by"
msgstr "Sorter noter efter"
@@ -1130,9 +1202,10 @@ msgstr "Global zoom procent"
msgid "Editor font family"
msgstr "Rediger skrifttype"
#, fuzzy
msgid ""
"The font name will not be checked. If incorrect or empty, it will default to "
"a generic monospace font."
"This must be *monospace* font or it will not work properly. If the font is "
"incorrect or empty, it will default to a generic monospace font."
msgstr ""
"Skrifttypenavn checkes ikke. Hvis tom eller ukorrekt, standard vil returnere "
"til monospace font."
@@ -1329,6 +1402,22 @@ msgstr "Nye tags:"
msgid "Type new tags or select from list"
msgstr "Indtast nye tags eller vælg fra listen"
msgid ""
"To work correctly, the app needs the following permissions. Please enable "
"them in your phone settings, in Apps > Joplin > Permissions"
msgstr ""
msgid ""
"- Storage: to allow attaching files to notes and to enable filesystem "
"synchronisation."
msgstr ""
msgid "- Camera: to allow taking a picture and attaching it to a note."
msgstr ""
msgid "- Location: to allow attaching geo-location information to a note."
msgstr ""
msgid "Joplin website"
msgstr "Joplin hjemmeside"
@@ -1375,6 +1464,14 @@ msgstr "Gem ændringer"
msgid "Discard changes"
msgstr "Fortryd ændringer"
#, javascript-format
msgid "No item with ID %s"
msgstr ""
#, javascript-format
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Ulovlig billedtype: %s"
@@ -1385,6 +1482,9 @@ msgstr "Vedhæft foto"
msgid "Attach any file"
msgstr "Vedhæft fil"
msgid "Share"
msgstr ""
msgid "Convert to note"
msgstr "Konverter til note"

View File

@@ -7,13 +7,13 @@ msgid ""
msgstr ""
"Project-Id-Version: Joplin-CLI 1.0.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: Tobias Grasse <mail@tobias-grasse.net>\n"
"Last-Translator: Philipp Zumstein <zuphilip@gmail.com>\n"
"Language-Team: \n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.6\n"
"X-Generator: Poedit 2.0.7\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "To delete a tag, untag the associated notes."
@@ -238,7 +238,7 @@ msgid "The possible commands are:"
msgstr "Mögliche Befehle lauten:"
msgid ""
"In any command, a note or notebook can be refered to by title or ID, or "
"In any command, a note or notebook can be referred to by title or ID, or "
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
"note or notebook. `$c` can be used to refer to the currently selected item."
msgstr ""
@@ -259,9 +259,8 @@ msgstr ""
"Benutze die Pfeiltasten und Bild hoch/runter um durch Listen und Texte zu "
"scrollen (inklusive diesem Terminal)."
#, fuzzy
msgid "To maximise/minimise the console, press \"tc\"."
msgstr "Um das Terminal zu maximieren/minimieren, drücke \"TC\"."
msgstr "Um das Terminal zu maximieren/minimieren, drücke \"tc\"."
msgid "To enter command line mode, press \":\""
msgstr "Um den Kommandozeilen Modus aufzurufen, drücke \":\""
@@ -380,7 +379,10 @@ msgstr "Löscht das ausgewählte Notizbuch."
msgid "Deletes the notebook without asking for confirmation."
msgstr "Löscht das Notizbuch, ohne nach einer Bestätigung zu fragen."
msgid "Delete notebook? All notes within this notebook will also be deleted."
#, fuzzy
msgid ""
"Delete notebook? All notes and sub-notebooks within this notebook will also "
"be deleted."
msgstr ""
"Notizbuch wirklich löschen? Alle Notizen darin werden ebenfalls gelöscht."
@@ -433,12 +435,14 @@ msgstr ""
msgid ""
"To allow Joplin to synchronise with Dropbox, please follow the steps below:"
msgstr ""
"Um Joplin die Synchronisation mit Dropbox zu ermöglichen, folge bitte den "
"folgenden Schritten:"
msgid "Step 1: Open this URL in your browser to authorise the application:"
msgstr ""
msgstr "Schritt 1: URL im Browser öffnen um die Anwendung zu autorisieren:"
msgid "Step 2: Enter the code provided by Dropbox:"
msgstr ""
msgstr "Schritt 2: Den von Dropbox bereitgestellten Code eingeben:"
#, javascript-format
msgid "Not authentified with %s. Please provide any missing credentials."
@@ -531,9 +535,8 @@ msgstr "Standard: %s"
msgid "Possible keys/values:"
msgstr "Mögliche Werte:"
#, fuzzy
msgid "Type `joplin help` for usage information."
msgstr "Zeigt die Nutzungsstatistik an."
msgstr "Gib `joplin help` ein um die Nutzungsstatistik anzuzeigen."
msgid "Fatal error:"
msgstr "Schwerwiegender Fehler:"
@@ -541,7 +544,7 @@ msgstr "Schwerwiegender Fehler:"
msgid ""
"The application has been authorised - you may now close this browser tab."
msgstr ""
"Das Programm wurde autorisiert - Du kannst diesen Browsertab nun schließen."
"Das Programm wurde autorisiert - du kannst diesen Browsertab nun schließen."
msgid "The application has been successfully authorised."
msgstr "Das Programm wurde erfolgreich autorisiert."
@@ -647,7 +650,7 @@ msgid "View"
msgstr "Ansicht"
msgid "Toggle sidebar"
msgstr ""
msgstr "Seitenleiste ein/aus"
msgid "Toggle editor layout"
msgstr "Editor Layout umschalten"
@@ -658,6 +661,9 @@ msgstr "Werkzeuge"
msgid "Synchronisation status"
msgstr "Status der Synchronisation"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr "Verschlüsselung"
@@ -708,6 +714,49 @@ msgstr "Ja"
msgid "No"
msgstr "Nein"
msgid "The web clipper service is already enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Status: %s."
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"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."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
msgid "Check synchronisation configuration"
msgstr "Überprüfen der Synchronisationseinstellungen"
@@ -719,7 +768,7 @@ msgid "Save"
msgstr "Speichern"
msgid "Submit"
msgstr ""
msgstr "Absenden"
msgid ""
"Disabling encryption means *all* your notes and attachments are going to be "
@@ -795,6 +844,8 @@ msgid ""
"For more information about End-To-End Encryption (E2EE) and advices on how "
"to enable it please check the documentation:"
msgstr ""
"Weitere Informationen zur Ende-zu-Ende-Verschlüsselung (E2EE) und Hinweise "
"zur Aktivierung findest du in der Dokumentation (auf Englisch):"
msgid "Status"
msgstr "Status"
@@ -830,15 +881,18 @@ msgstr "Trenne jede Markierung mit einem Komma."
msgid "Rename notebook:"
msgstr "Notizbuch umbenennen:"
#, fuzzy
msgid "Rename tag:"
msgstr "Umbenennen"
msgid "Set alarm:"
msgstr "Alarm erstellen:"
msgid "Layout"
msgstr "Layout"
#, fuzzy
msgid "Search..."
msgstr "Suchen"
msgstr "Suchen..."
msgid "Some items cannot be synchronised."
msgstr "Manche Objekte können nicht synchronisiert werden."
@@ -858,6 +912,10 @@ msgstr "Markierungen hinzufügen oder entfernen"
msgid "Switch between note and to-do type"
msgstr "Zwischen Notiz und To-Do Typ wechseln"
#, fuzzy
msgid "Copy Markdown link"
msgstr "Markdown"
msgid "Delete"
msgstr "Löschen"
@@ -872,8 +930,8 @@ msgstr ""
msgid ""
"There is currently no notebook. Create one by clicking on \"New notebook\"."
msgstr ""
"Momentan existieren noch keine Notizbücher. Erstelle eines, indem du auf den "
"(+) Knopf drückst."
"Momentan existieren noch keine Notizbücher. Erstelle eines, indem du auf "
"\"Neues Notizbuch\" drückst."
msgid "Open..."
msgstr "Öffne..."
@@ -881,10 +939,21 @@ msgstr "Öffne..."
msgid "Save as..."
msgstr "Sichern unter..."
msgid "Copy path to clipboard"
msgstr ""
#, javascript-format
msgid "Unsupported link or message: %s"
msgstr "Nicht unterstützter Link oder Nachricht: %s"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
"Diese Notiz hat keinen Inhalt. Klicke auf „%s“ um den Editor zu aktivieren "
"und die Notiz zu bearbeiten."
msgid "Attach file"
msgstr "Datei anhängen"
@@ -894,14 +963,6 @@ msgstr "Markierungen"
msgid "Set alarm"
msgstr "Alarm erstellen"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
"Diese Notiz hat keinen Inhalt. Klicke auf „%s“ um den Editor zu aktivieren "
"und die Notiz zu bearbeiten."
msgid "to-do"
msgstr "To-Do"
@@ -922,7 +983,7 @@ msgid "OneDrive Login"
msgstr "OneDrive Login"
msgid "Dropbox Login"
msgstr ""
msgstr "Dropbox Anmeldung"
msgid "Options"
msgstr "Optionen"
@@ -933,6 +994,10 @@ msgstr "Synchronisations Status"
msgid "Encryption Options"
msgstr "Verschlüsselungsoptionen"
#, fuzzy
msgid "Clipper Options"
msgstr "Allgemeine Einstellungen"
msgid "Remove this tag from all the notes?"
msgstr "Diese Markierung von allen Notizen entfernen?"
@@ -961,7 +1026,7 @@ msgid "Unknown flag: %s"
msgstr "Unbekanntes Argument: %s"
msgid "Dropbox"
msgstr ""
msgstr "Dropbox"
msgid "File system"
msgstr "Dateisystem"
@@ -1040,9 +1105,9 @@ msgstr "Remote Objekte gelöscht: %d."
msgid "Fetched items: %d/%d."
msgstr "Geladene Objekte: %d/%d."
#, fuzzy, javascript-format
#, javascript-format
msgid "State: %s."
msgstr "Status: \"%s\"."
msgstr "Status: %s."
msgid "Cancelling..."
msgstr "Abbrechen..."
@@ -1074,6 +1139,10 @@ msgstr "Verschlüsselte Objekte können nicht verändert werden"
msgid "Conflicts"
msgstr "Konflikte"
#, fuzzy
msgid "Cannot move notebook to this location"
msgstr "Kann Notiz nicht zu Notizbuch \"%s\" verschieben"
#, javascript-format
msgid "A notebook with this title already exists: \"%s\""
msgstr "Ein Notizbuch mit diesem Titel existiert bereits : \"%s\""
@@ -1129,6 +1198,10 @@ msgstr "Dunkel"
msgid "Uncompleted to-dos on top"
msgstr "Zeige unvollständige To-Dos an oberster Stelle"
#, fuzzy
msgid "Show completed to-dos"
msgstr "Zeige unvollständige To-Dos an oberster Stelle"
msgid "Sort notes by"
msgstr "Sortiere Notizen nach"
@@ -1154,7 +1227,7 @@ msgid "Show tray icon"
msgstr "Zeige Tray Icon"
msgid "Note: Does not work in all desktop environments."
msgstr ""
msgstr "Hinweis: Funktioniert nicht in allen Desktopumgebungen."
msgid "Global zoom percentage"
msgstr "Zoomstufe der Benutzeroberfläche"
@@ -1162,9 +1235,10 @@ msgstr "Zoomstufe der Benutzeroberfläche"
msgid "Editor font family"
msgstr "Editor Schriftenfamilie"
#, fuzzy
msgid ""
"The font name will not be checked. If incorrect or empty, it will default to "
"a generic monospace font."
"This must be *monospace* font or it will not work properly. If the font is "
"incorrect or empty, it will default to a generic monospace font."
msgstr ""
"Der Name der Schrift wird nicht überprüft. Ist dieser inkorrekt oder leer "
"wird eine generische Monospace Schrift verwendet."
@@ -1284,7 +1358,7 @@ msgid ""
"(which is displayed in brackets above)."
msgstr ""
"Diese Objekte verbleiben auf dem Gerät, werden aber nicht zum "
"Synchronisationsziel hochgeladen. Um diese Objekte zu finden, suchen Sie "
"Synchronisationsziel hochgeladen. Um diese Objekte zu finden, suchst du "
"entweder nach dem Titel oder der ID (die oben in Klammern angezeigt wird)."
msgid "Sync status (synced items / total items)"
@@ -1360,17 +1434,32 @@ msgid "Cancel synchronisation"
msgstr "Synchronisation abbrechen"
msgid "New tags:"
msgstr ""
msgstr "Neue Markierungen:"
msgid "Type new tags or select from list"
msgstr "Neue Markierungen eingeben oder aus der Liste auswählen"
msgid ""
"To work correctly, the app needs the following permissions. Please enable "
"them in your phone settings, in Apps > Joplin > Permissions"
msgstr ""
msgid ""
"- Storage: to allow attaching files to notes and to enable filesystem "
"synchronisation."
msgstr ""
msgid "- Camera: to allow taking a picture and attaching it to a note."
msgstr ""
msgid "- Location: to allow attaching geo-location information to a note."
msgstr ""
msgid "Joplin website"
msgstr "Website von Joplin"
#, fuzzy
msgid "Login with Dropbox"
msgstr "Mit OneDrive anmelden"
msgstr "Mit Dropbox anmelden"
#, javascript-format
msgid "Master Key %s"
@@ -1411,6 +1500,14 @@ msgstr "Änderungen speichern"
msgid "Discard changes"
msgstr "Änderungen verwerfen"
#, javascript-format
msgid "No item with ID %s"
msgstr ""
#, javascript-format
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Nicht unterstütztes Fotoformat: %s"
@@ -1421,6 +1518,9 @@ msgstr "Foto anhängen"
msgid "Attach any file"
msgstr "Beliebige Datei anhängen"
msgid "Share"
msgstr ""
msgid "Convert to note"
msgstr "In eine Notiz umwandeln"

View File

@@ -210,7 +210,7 @@ msgid "The possible commands are:"
msgstr ""
msgid ""
"In any command, a note or notebook can be refered to by title or ID, or "
"In any command, a note or notebook can be referred to by title or ID, or "
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
"note or notebook. `$c` can be used to refer to the currently selected item."
msgstr ""
@@ -332,7 +332,9 @@ msgstr ""
msgid "Deletes the notebook without asking for confirmation."
msgstr ""
msgid "Delete notebook? All notes within this notebook will also be deleted."
msgid ""
"Delete notebook? All notes and sub-notebooks within this notebook will also "
"be deleted."
msgstr ""
msgid "Deletes the notes matching <note-pattern>."
@@ -568,6 +570,9 @@ msgstr ""
msgid "Synchronisation status"
msgstr ""
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr ""
@@ -618,6 +623,49 @@ msgstr ""
msgid "No"
msgstr ""
msgid "The web clipper service is already enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, javascript-format
msgid "Status: %s"
msgstr ""
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"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."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
msgid "Check synchronisation configuration"
msgstr ""
@@ -726,6 +774,9 @@ msgstr ""
msgid "Rename notebook:"
msgstr ""
msgid "Rename tag:"
msgstr ""
msgid "Set alarm:"
msgstr ""
@@ -753,6 +804,9 @@ msgstr ""
msgid "Switch between note and to-do type"
msgstr ""
msgid "Copy Markdown link"
msgstr ""
msgid "Delete"
msgstr ""
@@ -772,10 +826,19 @@ msgstr ""
msgid "Save as..."
msgstr ""
msgid "Copy path to clipboard"
msgstr ""
#, javascript-format
msgid "Unsupported link or message: %s"
msgstr ""
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
msgid "Attach file"
msgstr ""
@@ -785,12 +848,6 @@ msgstr ""
msgid "Set alarm"
msgstr ""
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
msgid "to-do"
msgstr ""
@@ -822,6 +879,9 @@ msgstr ""
msgid "Encryption Options"
msgstr ""
msgid "Clipper Options"
msgstr ""
msgid "Remove this tag from all the notes?"
msgstr ""
@@ -954,6 +1014,9 @@ msgstr ""
msgid "Conflicts"
msgstr ""
msgid "Cannot move notebook to this location"
msgstr ""
#, javascript-format
msgid "A notebook with this title already exists: \"%s\""
msgstr ""
@@ -1005,6 +1068,9 @@ msgstr ""
msgid "Uncompleted to-dos on top"
msgstr ""
msgid "Show completed to-dos"
msgstr ""
msgid "Sort notes by"
msgstr ""
@@ -1039,8 +1105,8 @@ msgid "Editor font family"
msgstr ""
msgid ""
"The font name will not be checked. If incorrect or empty, it will default to "
"a generic monospace font."
"This must be *monospace* font or it will not work properly. If the font is "
"incorrect or empty, it will default to a generic monospace font."
msgstr ""
msgid "Automatically update the application"
@@ -1226,6 +1292,22 @@ msgstr ""
msgid "Type new tags or select from list"
msgstr ""
msgid ""
"To work correctly, the app needs the following permissions. Please enable "
"them in your phone settings, in Apps > Joplin > Permissions"
msgstr ""
msgid ""
"- Storage: to allow attaching files to notes and to enable filesystem "
"synchronisation."
msgstr ""
msgid "- Camera: to allow taking a picture and attaching it to a note."
msgstr ""
msgid "- Location: to allow attaching geo-location information to a note."
msgstr ""
msgid "Joplin website"
msgstr ""
@@ -1271,6 +1353,14 @@ msgstr ""
msgid "Discard changes"
msgstr ""
#, javascript-format
msgid "No item with ID %s"
msgstr ""
#, javascript-format
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr ""
@@ -1281,6 +1371,9 @@ msgstr ""
msgid "Attach any file"
msgstr ""
msgid "Share"
msgstr ""
msgid "Convert to note"
msgstr ""

View File

@@ -230,7 +230,7 @@ msgid "The possible commands are:"
msgstr "Los posibles comandos son:"
msgid ""
"In any command, a note or notebook can be refered to by title or ID, or "
"In any command, a note or notebook can be referred to by title or ID, or "
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
"note or notebook. `$c` can be used to refer to the currently selected item."
msgstr ""
@@ -250,7 +250,6 @@ msgstr ""
"Para desplazar en las listas y areas de texto (incluyendo la consola) "
"utilice las flechas y re pág/av pág."
#, fuzzy
msgid "To maximise/minimise the console, press \"tc\"."
msgstr "Para maximizar/minimizar la consola, presione \"tc\"."
@@ -369,10 +368,12 @@ msgstr "Elimina la libreta dada."
msgid "Deletes the notebook without asking for confirmation."
msgstr "Elimina una libreta sin pedir confirmación."
msgid "Delete notebook? All notes within this notebook will also be deleted."
msgid ""
"Delete notebook? All notes and sub-notebooks within this notebook will also "
"be deleted."
msgstr ""
"¿Desea eliminar la libreta? Todas las notas dentro de esta libreta también "
"serán eliminadas."
"¿Desea eliminar la libreta? Todas las notas y sublibretas dentro de esta "
"libreta también serán eliminadas."
msgid "Deletes the notes matching <note-pattern>."
msgstr "Elimina las notas que coinciden con <note-pattern>."
@@ -634,7 +635,7 @@ msgid "View"
msgstr "Ver"
msgid "Toggle sidebar"
msgstr ""
msgstr "Cambia la barra lateral"
msgid "Toggle editor layout"
msgstr "Cambia el diseño del editor"
@@ -645,6 +646,9 @@ msgstr "Herramientas"
msgid "Synchronisation status"
msgstr "Estado de la sincronización"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr "Opciones de cifrado"
@@ -695,6 +699,49 @@ msgstr "Sí"
msgid "No"
msgstr "No"
msgid "The web clipper service is already enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Estado: «%s»."
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"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."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
msgid "Check synchronisation configuration"
msgstr "Comprobar sincronización"
@@ -818,6 +865,10 @@ msgstr "Separar cada etiqueta por una coma."
msgid "Rename notebook:"
msgstr "Renombrar libreta:"
#, fuzzy
msgid "Rename tag:"
msgstr "Renombrar"
msgid "Set alarm:"
msgstr "Ajustar alarma:"
@@ -845,6 +896,9 @@ msgstr "Añadir o borrar etiquetas"
msgid "Switch between note and to-do type"
msgstr "Cambiar entre nota y lista de tareas"
msgid "Copy Markdown link"
msgstr "Copiar el enlace de Markdown"
msgid "Delete"
msgstr "Eliminar"
@@ -864,10 +918,21 @@ msgstr "Abrir..."
msgid "Save as..."
msgstr "Guardar como..."
msgid "Copy path to clipboard"
msgstr ""
#, javascript-format
msgid "Unsupported link or message: %s"
msgstr "Enlace o mensaje no soportado: %s"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
"Esta nota no tiene contenido. Pulse en \"%s\" para cambiar al editor y "
"editar la nota."
msgid "Attach file"
msgstr "Adjuntar archivo"
@@ -877,14 +942,6 @@ msgstr "Etiquetas"
msgid "Set alarm"
msgstr "Establecer alarma"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
"Esta nota no tiene contenido. Pulse en \"%s\" para cambiar al editor y "
"editar la nota."
msgid "to-do"
msgstr "lista de tareas"
@@ -916,6 +973,10 @@ msgstr "Estado de la sincronización"
msgid "Encryption Options"
msgstr "Opciones de cifrado"
#, fuzzy
msgid "Clipper Options"
msgstr "Opciones generales"
msgid "Remove this tag from all the notes?"
msgstr "¿Desea eliminar esta etiqueta de todas las notas?"
@@ -1056,6 +1117,9 @@ msgstr "Los elementos cifrados no pueden ser modificados"
msgid "Conflicts"
msgstr "Conflictos"
msgid "Cannot move notebook to this location"
msgstr "No se puede mover la libreta a este lugar"
#, javascript-format
msgid "A notebook with this title already exists: \"%s\""
msgstr "Ya existe una libreta con este nombre: «%s»"
@@ -1110,6 +1174,10 @@ msgstr "Oscuro"
msgid "Uncompleted to-dos on top"
msgstr "Mostrar tareas incompletas al inicio de las listas"
#, fuzzy
msgid "Show completed to-dos"
msgstr "Mostrar tareas incompletas al inicio de las listas"
msgid "Sort notes by"
msgstr "Ordenar notas por"
@@ -1135,7 +1203,7 @@ msgid "Show tray icon"
msgstr "Mostrar icono en la bandeja"
msgid "Note: Does not work in all desktop environments."
msgstr ""
msgstr "Nota: No funciona en todos los entornos de escritorio."
msgid "Global zoom percentage"
msgstr "Establecer el porcentaje de aumento de la aplicación"
@@ -1143,9 +1211,10 @@ msgstr "Establecer el porcentaje de aumento de la aplicación"
msgid "Editor font family"
msgstr "Fuente del editor"
#, fuzzy
msgid ""
"The font name will not be checked. If incorrect or empty, it will default to "
"a generic monospace font."
"This must be *monospace* font or it will not work properly. If the font is "
"incorrect or empty, it will default to a generic monospace font."
msgstr ""
"El nombre de la fuente no se comprobado. Si es incorrecto o está vacío, se "
"utilizará una fuente genérica monoespaciada."
@@ -1343,6 +1412,22 @@ msgstr "Nuevas etiquetas:"
msgid "Type new tags or select from list"
msgstr "Escriba nuevas etiquetas o seleccionelas de la lista"
msgid ""
"To work correctly, the app needs the following permissions. Please enable "
"them in your phone settings, in Apps > Joplin > Permissions"
msgstr ""
msgid ""
"- Storage: to allow attaching files to notes and to enable filesystem "
"synchronisation."
msgstr ""
msgid "- Camera: to allow taking a picture and attaching it to a note."
msgstr ""
msgid "- Location: to allow attaching geo-location information to a note."
msgstr ""
msgid "Joplin website"
msgstr "Sitio web de Joplin"
@@ -1388,6 +1473,15 @@ msgstr "Guardar cambios"
msgid "Discard changes"
msgstr "Descartar cambios"
#, javascript-format
msgid "No item with ID %s"
msgstr "No hay elementos con el ID %s"
#, javascript-format
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
"La aplicación móvil de Joplin no soporta actualmente este tipo de enlace: %s"
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Tipo de imagen no soportado: %s"
@@ -1398,6 +1492,9 @@ msgstr "Adjuntar foto"
msgid "Attach any file"
msgstr "Adjuntar cualquier archivo"
msgid "Share"
msgstr ""
msgid "Convert to note"
msgstr "Convertir a nota"

View File

@@ -227,7 +227,7 @@ msgid "The possible commands are:"
msgstr "Litezkeen komandoak hauek dira:"
msgid ""
"In any command, a note or notebook can be refered to by title or ID, or "
"In any command, a note or notebook can be referred to by title or ID, or "
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
"note or notebook. `$c` can be used to refer to the currently selected item."
msgstr ""
@@ -368,7 +368,10 @@ msgstr "Ezabatu emandako koadernoak."
msgid "Deletes the notebook without asking for confirmation."
msgstr "Ezabatu koadernoak berrespenik gabe."
msgid "Delete notebook? All notes within this notebook will also be deleted."
#, fuzzy
msgid ""
"Delete notebook? All notes and sub-notebooks within this notebook will also "
"be deleted."
msgstr "Koadernoa ezabatu? Dituen ohar guztiak ere ezabatuko dira."
msgid "Deletes the notes matching <note-pattern>."
@@ -642,6 +645,9 @@ msgstr "Tresnak"
msgid "Synchronisation status"
msgstr "Sinkronizazioaren egoera"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr "Zifratzeko aukerak"
@@ -694,6 +700,49 @@ msgstr ""
msgid "No"
msgstr "E"
msgid "The web clipper service is already enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Egoera: \"%s\"."
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"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."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
#, fuzzy
msgid "Check synchronisation configuration"
msgstr "Sinkronizazioa utzi"
@@ -817,6 +866,10 @@ msgstr "Banatu etiketak koma erabiliaz."
msgid "Rename notebook:"
msgstr "Berrizendatu koadernoa:"
#, fuzzy
msgid "Rename tag:"
msgstr "Berrizendatu"
msgid "Set alarm:"
msgstr "Ezarri alarma:"
@@ -845,6 +898,9 @@ msgstr "Gehitu edo ezabatu etiketak"
msgid "Switch between note and to-do type"
msgstr "Aldatu oharra eta zeregin eren artean."
msgid "Copy Markdown link"
msgstr ""
msgid "Delete"
msgstr "Ezabatu"
@@ -865,10 +921,19 @@ msgstr ""
msgid "Save as..."
msgstr "Gorde aldaketak"
msgid "Copy path to clipboard"
msgstr ""
#, javascript-format
msgid "Unsupported link or message: %s"
msgstr "Esteka edo mezu ez dago onartua: %s"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
msgid "Attach file"
msgstr "Erantsi fitxategia"
@@ -878,12 +943,6 @@ msgstr "Etiketak"
msgid "Set alarm"
msgstr "Ezarri alarma"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
#, fuzzy
msgid "to-do"
msgstr "Zeregin berria"
@@ -918,6 +977,10 @@ msgstr "Sinkronizazioaren egoera"
msgid "Encryption Options"
msgstr "Zifratzeko aukerak"
#, fuzzy
msgid "Clipper Options"
msgstr "Ezarpenak"
msgid "Remove this tag from all the notes?"
msgstr "Kendu etiketa hori ohar guztietatik?"
@@ -1060,6 +1123,10 @@ msgstr "Zifratutako itemak ezin aldatu daitezke"
msgid "Conflicts"
msgstr "Gatazkak"
#, fuzzy
msgid "Cannot move notebook to this location"
msgstr "Ezin eraman daiteke oharra \"%s\" koadernora"
#, javascript-format
msgid "A notebook with this title already exists: \"%s\""
msgstr "Dagoeneko bada koaderno bat izen horrekin: \"%s\""
@@ -1115,6 +1182,10 @@ msgstr "Iluna"
msgid "Uncompleted to-dos on top"
msgstr "Bete gabeko zereginak erakutsi zerrendaren goiko partean"
#, fuzzy
msgid "Show completed to-dos"
msgstr "Bete gabeko zereginak erakutsi zerrendaren goiko partean"
msgid "Sort notes by"
msgstr ""
@@ -1153,8 +1224,8 @@ msgid "Editor font family"
msgstr ""
msgid ""
"The font name will not be checked. If incorrect or empty, it will default to "
"a generic monospace font."
"This must be *monospace* font or it will not work properly. If the font is "
"incorrect or empty, it will default to a generic monospace font."
msgstr ""
msgid "Automatically update the application"
@@ -1352,6 +1423,22 @@ msgstr ""
msgid "Type new tags or select from list"
msgstr ""
msgid ""
"To work correctly, the app needs the following permissions. Please enable "
"them in your phone settings, in Apps > Joplin > Permissions"
msgstr ""
msgid ""
"- Storage: to allow attaching files to notes and to enable filesystem "
"synchronisation."
msgstr ""
msgid "- Camera: to allow taking a picture and attaching it to a note."
msgstr ""
msgid "- Location: to allow attaching geo-location information to a note."
msgstr ""
msgid "Joplin website"
msgstr ""
@@ -1398,6 +1485,14 @@ msgstr "Gorde aldaketak"
msgid "Discard changes"
msgstr "Bertan behera utzi aldaketak"
#, javascript-format
msgid "No item with ID %s"
msgstr ""
#, javascript-format
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Irudi formatua ez onartua: %s"
@@ -1408,6 +1503,9 @@ msgstr "Argazkia erantsi"
msgid "Attach any file"
msgstr "Erantsi fitxategiren bat"
msgid "Share"
msgstr ""
msgid "Convert to note"
msgstr "Oharra bihurtu"

View File

@@ -229,7 +229,7 @@ msgid "The possible commands are:"
msgstr "Les commandes possibles sont :"
msgid ""
"In any command, a note or notebook can be refered to by title or ID, or "
"In any command, a note or notebook can be referred to by title or ID, or "
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
"note or notebook. `$c` can be used to refer to the currently selected item."
msgstr ""
@@ -365,10 +365,12 @@ msgstr "Supprimer le carnet."
msgid "Deletes the notebook without asking for confirmation."
msgstr "Supprimer le carnet sans demander la confirmation."
msgid "Delete notebook? All notes within this notebook will also be deleted."
msgid ""
"Delete notebook? All notes and sub-notebooks within this notebook will also "
"be deleted."
msgstr ""
"Effacer le carnet ? Toutes les notes dans ce carnet seront également "
"effacées."
"Effacer le carnet ? Toutes les notes et sous-carnets dans ce carnet seront "
"également effacés."
msgid "Deletes the notes matching <note-pattern>."
msgstr "Supprimer les notes correspondants à <note-pattern>."
@@ -643,6 +645,9 @@ msgstr "Outils"
msgid "Synchronisation status"
msgstr "État de la synchronisation"
msgid "Web clipper options"
msgstr "Options du Web Clipper"
msgid "Encryption options"
msgstr "Options de cryptage"
@@ -694,6 +699,56 @@ msgstr "Oui"
msgid "No"
msgstr "Non"
msgid "The web clipper service is already enabled and set to auto-start."
msgstr "Le service du Web Clipper est activé et démarrera automatiquement."
#, javascript-format
msgid "Status: Started on port %d"
msgstr "État : Commencé sur le port %d"
#, javascript-format
msgid "Status: %s"
msgstr "État : %s"
msgid "Disable Web Clipper Service"
msgstr "Désactiver le service du Web Clipper"
msgid "The web clipper service is not enabled."
msgstr "Le service du Web Clipper n'est pas activé."
msgid "Enable Web Clipper Service"
msgstr "Activer le service du Web Clipper"
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
"Le Web Clipper permet de sauver des pages web et des captures d'écran depuis "
"votre navigateur vers Joplin."
msgid "In order to use the web clipper, you need to do the following:"
msgstr "Pour utiliser le Web Clipper, veuillez suivre ces instructions :"
msgid "Step 1: Enable the clipper service"
msgstr "Étape 1 : Activez le service du Web Clipper"
msgid ""
"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."
msgstr ""
"Le service permet au module complémentaire de communiquer avec Joplin. "
"Lorsque vous aller l'activer, il se pourrait que votre pare feu vous demande "
"d'autoriser l'application Joplin."
msgid "Step 2: Install the extension"
msgstr "Étape 2 : Installez le module complémentaire"
msgid "Download and install the relevant extension for your browser:"
msgstr ""
"Téléchargez et installez le module complémentaire correspondant à votre "
"navigateur :"
msgid "Check synchronisation configuration"
msgstr "Vérifier config synchronisation"
@@ -764,7 +819,7 @@ msgid ""
"how the notes or notebooks were originally encrypted."
msgstr ""
"Note : seule une clef maître va être utilisée pour le cryptage (celle "
"marquée comme \"actif\" ci-dessus). N'importe quel clef peut-être utilisée "
"marquée comme \"actif\" ci-dessus). N'importe quelle clef peut être utilisée "
"pour le décryptage, selon la façon dont les notes ou carnets étaient cryptés "
"à l'origine."
@@ -821,6 +876,9 @@ msgstr "Séparez chaque étiquette par une virgule."
msgid "Rename notebook:"
msgstr "Renommer le carnet :"
msgid "Rename tag:"
msgstr "Renommer étiquette :"
msgid "Set alarm:"
msgstr "Régler alarme :"
@@ -848,6 +906,9 @@ msgstr "Gérer les étiquettes"
msgid "Switch between note and to-do type"
msgstr "Alterner entre note et tâche"
msgid "Copy Markdown link"
msgstr "Copier lien Markdown"
msgid "Delete"
msgstr "Supprimer"
@@ -870,10 +931,21 @@ msgstr "Ouvrir..."
msgid "Save as..."
msgstr "Enregistrer sous..."
msgid "Copy path to clipboard"
msgstr "Copier le chemin"
#, javascript-format
msgid "Unsupported link or message: %s"
msgstr "Lien ou message non géré : %s"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
"Cette note n'a pas de contenu. Cliquer sur \"%s\" pour basculer vers "
"l'éditeur et éditer cette note."
msgid "Attach file"
msgstr "Attacher un fichier"
@@ -883,14 +955,6 @@ msgstr "Étiquettes"
msgid "Set alarm"
msgstr "Régler alarme"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
"Cette note n'a pas de contenu. Cliquer sur \"%s\" pour basculer vers "
"l'éditeur et éditer cette note."
msgid "to-do"
msgstr "tâche"
@@ -922,6 +986,9 @@ msgstr "État de la synchronisation"
msgid "Encryption Options"
msgstr "Options de cryptage"
msgid "Clipper Options"
msgstr "Options du Web Clipper"
msgid "Remove this tag from all the notes?"
msgstr "Enlever cette étiquette de toutes les notes ?"
@@ -1063,6 +1130,9 @@ msgstr "Les objets cryptés ne peuvent être modifiés"
msgid "Conflicts"
msgstr "Conflits"
msgid "Cannot move notebook to this location"
msgstr "Impossible de déplacer le carnet vers le carnet \"%s\""
#, javascript-format
msgid "A notebook with this title already exists: \"%s\""
msgstr "Un carnet avec ce titre existe déjà : \"%s\""
@@ -1116,6 +1186,9 @@ msgstr "Sombre"
msgid "Uncompleted to-dos on top"
msgstr "Tâches non-terminées en haut"
msgid "Show completed to-dos"
msgstr "Afficher les tâches complétées"
msgid "Sort notes by"
msgstr "Trier les notes par"
@@ -1150,10 +1223,11 @@ msgid "Editor font family"
msgstr "Police de l'éditeur"
msgid ""
"The font name will not be checked. If incorrect or empty, it will default to "
"a generic monospace font."
"This must be *monospace* font or it will not work properly. If the font is "
"incorrect or empty, it will default to a generic monospace font."
msgstr ""
"Le nom de la police ne sera pas vérifié. Si incorrect ou vide une police "
"Il faut que ce soit une police *monospace* ou cela ne fonctionnera pas "
"correctement. Si la police est incorrecte ou non-spécifiée, une police "
"monospace sera utilisée par défaut."
msgid "Automatically update the application"
@@ -1351,6 +1425,28 @@ msgstr "Nouvelles étiquettes :"
msgid "Type new tags or select from list"
msgstr "Entrez de nouvelles étiquettes ou sélectionnez de la liste"
msgid ""
"To work correctly, the app needs the following permissions. Please enable "
"them in your phone settings, in Apps > Joplin > Permissions"
msgstr ""
"Pour fonctionner correctement, l'appli a besoin des autorisations suivantes. "
"Veuillez les activer dans les paramètres de votre téléphone, dans le menu "
"Applications > Joplin > Autorisations"
msgid ""
"- Storage: to allow attaching files to notes and to enable filesystem "
"synchronisation."
msgstr ""
"- Stockage : Pour attacher des fichiers aux notes et pour activer la "
"synchronisation vers le système de fichier."
msgid "- Camera: to allow taking a picture and attaching it to a note."
msgstr ""
"- Appareil photo : Pour pouvoir prendre une photo et l'attacher à une note."
msgid "- Location: to allow attaching geo-location information to a note."
msgstr "- Position : Pour attacher à une note les coordonnées GPS."
msgid "Joplin website"
msgstr "Site web de Joplin"
@@ -1396,6 +1492,15 @@ msgstr "Enregistrer les changements"
msgid "Discard changes"
msgstr "Ignorer les changements"
#, javascript-format
msgid "No item with ID %s"
msgstr "Aucun objet avec identifiant %s"
#, javascript-format
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
"L'application mobile Joplin ne gère pas pour l'instant ce type de lien : %s"
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Type d'image non géré : %s"
@@ -1406,6 +1511,9 @@ msgstr "Attacher une photo"
msgid "Attach any file"
msgstr "Attacher un fichier"
msgid "Share"
msgstr "Partager"
msgid "Convert to note"
msgstr "Convertir en note"

View File

@@ -226,7 +226,7 @@ msgid "The possible commands are:"
msgstr "As ordes posíbeis son:"
msgid ""
"In any command, a note or notebook can be refered to by title or ID, or "
"In any command, a note or notebook can be referred to by title or ID, or "
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
"note or notebook. `$c` can be used to refer to the currently selected item."
msgstr ""
@@ -364,7 +364,10 @@ msgstr "Eliminar o carderno indicado."
msgid "Deletes the notebook without asking for confirmation."
msgstr "Elimina o caderno indicado sen solicitar confirmación."
msgid "Delete notebook? All notes within this notebook will also be deleted."
#, fuzzy
msgid ""
"Delete notebook? All notes and sub-notebooks within this notebook will also "
"be deleted."
msgstr ""
"Desexa eliminar o caderno? Tamén se eliminarán todas as notas deste caderno."
@@ -634,6 +637,9 @@ msgstr "Ferramentas"
msgid "Synchronisation status"
msgstr "Estado da sincronización"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr "Opcións de cifrado"
@@ -684,6 +690,49 @@ msgstr "Si"
msgid "No"
msgstr "Non"
msgid "The web clipper service is already enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Estado: %s."
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"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."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
msgid "Check synchronisation configuration"
msgstr "Comprobar a configuración da sincronización"
@@ -805,6 +854,10 @@ msgstr "Separar cada etiqueta por unha coma."
msgid "Rename notebook:"
msgstr "Renomear caderno:"
#, fuzzy
msgid "Rename tag:"
msgstr "Renomear"
msgid "Set alarm:"
msgstr "Estabelecer alarma:"
@@ -832,6 +885,10 @@ msgstr "Engadir ou eliminar etiquetas"
msgid "Switch between note and to-do type"
msgstr "Cambiar entre notas e tarefas"
#, fuzzy
msgid "Copy Markdown link"
msgstr "Markdown"
msgid "Delete"
msgstr "Eliminar"
@@ -851,10 +908,21 @@ msgstr "Abrir…"
msgid "Save as..."
msgstr "Gardar como…"
msgid "Copy path to clipboard"
msgstr ""
#, javascript-format
msgid "Unsupported link or message: %s"
msgstr "Ligazón ou mensaxe incompatíbeis: %s"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
"Esta nota non ten contido. Prema en «%s» para ir ao editor e modificar a "
"nota."
msgid "Attach file"
msgstr "Anexar un ficheiro"
@@ -864,14 +932,6 @@ msgstr "Etiquetas"
msgid "Set alarm"
msgstr "Estabelecer alarma"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
"Esta nota non ten contido. Prema en «%s» para ir ao editor e modificar a "
"nota."
msgid "to-do"
msgstr "tarefas pendentes"
@@ -903,6 +963,10 @@ msgstr "Estado da sincronización"
msgid "Encryption Options"
msgstr "Opcións de cifrado"
#, fuzzy
msgid "Clipper Options"
msgstr "Opcións xerais"
msgid "Remove this tag from all the notes?"
msgstr "Desexa eliminar esta etiqueta de todas as notas?"
@@ -1043,6 +1107,10 @@ msgstr "Non é posíbel modificar elementos cifrados"
msgid "Conflicts"
msgstr "Conflitos"
#, fuzzy
msgid "Cannot move notebook to this location"
msgstr "Non é posíbel mover a nota ao caderno «%s»"
#, javascript-format
msgid "A notebook with this title already exists: \"%s\""
msgstr "Xa existe un caderno con ese título: «%s»"
@@ -1096,6 +1164,10 @@ msgstr "Escuro"
msgid "Uncompleted to-dos on top"
msgstr "Tarefas sen completar arriba"
#, fuzzy
msgid "Show completed to-dos"
msgstr "Tarefas sen completar arriba"
msgid "Sort notes by"
msgstr "Ordenar notas por"
@@ -1129,9 +1201,10 @@ msgstr "Porcentaxe de ampliación"
msgid "Editor font family"
msgstr "Familia de tipos de letra do editor"
#, fuzzy
msgid ""
"The font name will not be checked. If incorrect or empty, it will default to "
"a generic monospace font."
"This must be *monospace* font or it will not work properly. If the font is "
"incorrect or empty, it will default to a generic monospace font."
msgstr ""
"Non se comprobará o nome da fonte. Se é incorrecto ou está baleiro, "
"estabelecerase por omisión un tipo de letra xenérico de largura única."
@@ -1328,6 +1401,22 @@ msgstr "Etiquetas novas:"
msgid "Type new tags or select from list"
msgstr "Escriba etiquetas novas ou seleccione da lista"
msgid ""
"To work correctly, the app needs the following permissions. Please enable "
"them in your phone settings, in Apps > Joplin > Permissions"
msgstr ""
msgid ""
"- Storage: to allow attaching files to notes and to enable filesystem "
"synchronisation."
msgstr ""
msgid "- Camera: to allow taking a picture and attaching it to a note."
msgstr ""
msgid "- Location: to allow attaching geo-location information to a note."
msgstr ""
msgid "Joplin website"
msgstr "Sitio web de Joplin"
@@ -1374,6 +1463,14 @@ msgstr "Gardar cambios"
msgid "Discard changes"
msgstr "Desbotar os cambios"
#, javascript-format
msgid "No item with ID %s"
msgstr ""
#, javascript-format
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Tipo de imaxe incompatíbel: %s"
@@ -1384,6 +1481,9 @@ msgstr "Anexar foto"
msgid "Attach any file"
msgstr "Adxuntar calquera ficheiro"
msgid "Share"
msgstr ""
msgid "Convert to note"
msgstr "Converter para nota"

View File

@@ -229,15 +229,11 @@ msgstr ""
msgid "The possible commands are:"
msgstr "Moguće naredbe su:"
#, fuzzy
msgid ""
"In any command, a note or notebook can be refered to by title or ID, or "
"In any command, a note or notebook can be referred to by title or ID, or "
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
"note or notebook. `$c` can be used to refer to the currently selected item."
msgstr ""
"In any command, a note or notebook can be refered to by title or ID, or "
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
"note or notebook. `$c` can be used to refer to the currently selected item."
msgid "To move from one pane to another, press Tab or Shift+Tab."
msgstr "Za prijelaz iz jednog okna u drugo, pritisni Tab ili Shift+Tab."
@@ -372,7 +368,10 @@ msgstr "Briše datu bilježnicu."
msgid "Deletes the notebook without asking for confirmation."
msgstr "Briše bilježnicu bez traženja potvrde."
msgid "Delete notebook? All notes within this notebook will also be deleted."
#, fuzzy
msgid ""
"Delete notebook? All notes and sub-notebooks within this notebook will also "
"be deleted."
msgstr ""
"Obrisati bilježnicu? Sve bilješke u toj bilježnici će također biti obrisane."
@@ -644,6 +643,9 @@ msgstr "Alati"
msgid "Synchronisation status"
msgstr "Status sinkronizacije"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr ""
@@ -697,6 +699,49 @@ msgstr ""
msgid "No"
msgstr "N"
msgid "The web clipper service is already enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Stanje: \"%s\"."
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"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."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
#, fuzzy
msgid "Check synchronisation configuration"
msgstr "Prekini sinkronizaciju"
@@ -808,6 +853,10 @@ msgstr "Odvoji oznake zarezom."
msgid "Rename notebook:"
msgstr "Preimenuj bilježnicu:"
#, fuzzy
msgid "Rename tag:"
msgstr "Preimenuj"
msgid "Set alarm:"
msgstr "Postavi upozorenje:"
@@ -837,6 +886,9 @@ msgstr "Dodaj ili makni oznake"
msgid "Switch between note and to-do type"
msgstr "Zamijeni bilješku i zadatak"
msgid "Copy Markdown link"
msgstr ""
msgid "Delete"
msgstr "Obriši"
@@ -857,10 +909,19 @@ msgstr ""
msgid "Save as..."
msgstr "Spremi promjene"
msgid "Copy path to clipboard"
msgstr ""
#, javascript-format
msgid "Unsupported link or message: %s"
msgstr "Nepodržana poveznica ili poruka: %s"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
msgid "Attach file"
msgstr "Priloži datoteku"
@@ -870,12 +931,6 @@ msgstr "Oznake"
msgid "Set alarm"
msgstr "Postavi upozorenje"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
#, fuzzy
msgid "to-do"
msgstr "Novi zadatak"
@@ -909,6 +964,10 @@ msgstr "Status Sinkronizacije"
msgid "Encryption Options"
msgstr ""
#, fuzzy
msgid "Clipper Options"
msgstr "Opcije"
msgid "Remove this tag from all the notes?"
msgstr "Makni ovu oznaku iz svih bilješki?"
@@ -1048,6 +1107,10 @@ msgstr "Neke stavke se ne mogu sinkronizirati."
msgid "Conflicts"
msgstr "Sukobi"
#, fuzzy
msgid "Cannot move notebook to this location"
msgstr "Ne mogu premjestiti bilješku u bilježnicu %s"
#, javascript-format
msgid "A notebook with this title already exists: \"%s\""
msgstr "Bilježnica s ovim naslovom već postoji: \"%s\""
@@ -1102,6 +1165,10 @@ msgstr "Tamna"
msgid "Uncompleted to-dos on top"
msgstr "Prikaži nezavršene zadatke na vrhu liste"
#, fuzzy
msgid "Show completed to-dos"
msgstr "Prikaži nezavršene zadatke na vrhu liste"
msgid "Sort notes by"
msgstr ""
@@ -1140,8 +1207,8 @@ msgid "Editor font family"
msgstr ""
msgid ""
"The font name will not be checked. If incorrect or empty, it will default to "
"a generic monospace font."
"This must be *monospace* font or it will not work properly. If the font is "
"incorrect or empty, it will default to a generic monospace font."
msgstr ""
msgid "Automatically update the application"
@@ -1332,6 +1399,22 @@ msgstr ""
msgid "Type new tags or select from list"
msgstr ""
msgid ""
"To work correctly, the app needs the following permissions. Please enable "
"them in your phone settings, in Apps > Joplin > Permissions"
msgstr ""
msgid ""
"- Storage: to allow attaching files to notes and to enable filesystem "
"synchronisation."
msgstr ""
msgid "- Camera: to allow taking a picture and attaching it to a note."
msgstr ""
msgid "- Location: to allow attaching geo-location information to a note."
msgstr ""
msgid "Joplin website"
msgstr ""
@@ -1379,6 +1462,14 @@ msgstr "Spremi promjene"
msgid "Discard changes"
msgstr "Odbaci promjene"
#, javascript-format
msgid "No item with ID %s"
msgstr ""
#, javascript-format
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Nepodržana vrsta slike: %s"
@@ -1389,6 +1480,9 @@ msgstr "Priloži sliku"
msgid "Attach any file"
msgstr "Priloži datoteku"
msgid "Share"
msgstr ""
msgid "Convert to note"
msgstr "Pretvori u bilješku"

View File

@@ -226,7 +226,7 @@ msgid "The possible commands are:"
msgstr "I possibili comandi sono:"
msgid ""
"In any command, a note or notebook can be refered to by title or ID, or "
"In any command, a note or notebook can be referred to by title or ID, or "
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
"note or notebook. `$c` can be used to refer to the currently selected item."
msgstr ""
@@ -364,7 +364,9 @@ msgstr "Elimina il seguente blocco note."
msgid "Deletes the notebook without asking for confirmation."
msgstr "Elimina il blocco note senza richiedere una conferma."
msgid "Delete notebook? All notes within this notebook will also be deleted."
msgid ""
"Delete notebook? All notes and sub-notebooks within this notebook will also "
"be deleted."
msgstr ""
msgid "Deletes the notes matching <note-pattern>."
@@ -626,6 +628,9 @@ msgstr "Strumenti"
msgid "Synchronisation status"
msgstr "Stato di sincronizzazione"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr ""
@@ -679,6 +684,49 @@ msgstr ""
msgid "No"
msgstr "N"
msgid "The web clipper service is already enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Stato: \"%s\"."
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"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."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
#, fuzzy
msgid "Check synchronisation configuration"
msgstr "Cancella la sincronizzazione"
@@ -790,6 +838,10 @@ msgstr "Separa ogni etichetta da una virgola."
msgid "Rename notebook:"
msgstr "Rinomina il blocco note:"
#, fuzzy
msgid "Rename tag:"
msgstr "Rinomina"
msgid "Set alarm:"
msgstr "Imposta allarme:"
@@ -819,6 +871,9 @@ msgstr "Aggiungi o rimuovi etichetta"
msgid "Switch between note and to-do type"
msgstr "Passa da un tipo di nota a un elenco di attività"
msgid "Copy Markdown link"
msgstr ""
msgid "Delete"
msgstr "Elimina"
@@ -840,10 +895,19 @@ msgstr ""
msgid "Save as..."
msgstr "Salva i cambiamenti"
msgid "Copy path to clipboard"
msgstr ""
#, javascript-format
msgid "Unsupported link or message: %s"
msgstr "Collegamento o messaggio non supportato: %s"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
msgid "Attach file"
msgstr "Allega file"
@@ -853,12 +917,6 @@ msgstr "Etichette"
msgid "Set alarm"
msgstr "Imposta allarme"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
#, fuzzy
msgid "to-do"
msgstr "Nuova attività"
@@ -892,6 +950,10 @@ msgstr "Stato della Sincronizzazione"
msgid "Encryption Options"
msgstr ""
#, fuzzy
msgid "Clipper Options"
msgstr "Opzioni"
msgid "Remove this tag from all the notes?"
msgstr "Rimuovere questa etichetta da tutte le note?"
@@ -1034,6 +1096,10 @@ msgstr "Alcuni elementi non possono essere sincronizzati."
msgid "Conflicts"
msgstr "Conflitti"
#, fuzzy
msgid "Cannot move notebook to this location"
msgstr "Non posso spostare la nota nel blocco note \"%s\""
#, javascript-format
msgid "A notebook with this title already exists: \"%s\""
msgstr "Esiste già un blocco note col titolo \"%s\""
@@ -1088,6 +1154,10 @@ msgstr "Scuro"
msgid "Uncompleted to-dos on top"
msgstr "Mostra todo inclompleti in cima alla lista"
#, fuzzy
msgid "Show completed to-dos"
msgstr "Mostra todo inclompleti in cima alla lista"
msgid "Sort notes by"
msgstr ""
@@ -1126,8 +1196,8 @@ msgid "Editor font family"
msgstr ""
msgid ""
"The font name will not be checked. If incorrect or empty, it will default to "
"a generic monospace font."
"This must be *monospace* font or it will not work properly. If the font is "
"incorrect or empty, it will default to a generic monospace font."
msgstr ""
msgid "Automatically update the application"
@@ -1318,6 +1388,22 @@ msgstr ""
msgid "Type new tags or select from list"
msgstr ""
msgid ""
"To work correctly, the app needs the following permissions. Please enable "
"them in your phone settings, in Apps > Joplin > Permissions"
msgstr ""
msgid ""
"- Storage: to allow attaching files to notes and to enable filesystem "
"synchronisation."
msgstr ""
msgid "- Camera: to allow taking a picture and attaching it to a note."
msgstr ""
msgid "- Location: to allow attaching geo-location information to a note."
msgstr ""
msgid "Joplin website"
msgstr ""
@@ -1365,6 +1451,14 @@ msgstr "Salva i cambiamenti"
msgid "Discard changes"
msgstr "Ignora modifiche"
#, javascript-format
msgid "No item with ID %s"
msgstr ""
#, javascript-format
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Tipo di immagine non supportata: %s"
@@ -1375,6 +1469,9 @@ msgstr "Allega foto"
msgid "Attach any file"
msgstr "Allega qualsiasi file"
msgid "Share"
msgstr ""
msgid "Convert to note"
msgstr "Converti in nota"

View File

@@ -224,7 +224,7 @@ msgid "The possible commands are:"
msgstr "有効なコマンドは:"
msgid ""
"In any command, a note or notebook can be refered to by title or ID, or "
"In any command, a note or notebook can be referred to by title or ID, or "
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
"note or notebook. `$c` can be used to refer to the currently selected item."
msgstr ""
@@ -361,7 +361,10 @@ msgstr "指定されたノートブックを削除します。"
msgid "Deletes the notebook without asking for confirmation."
msgstr "ノートブックを確認なしで削除します。"
msgid "Delete notebook? All notes within this notebook will also be deleted."
#, fuzzy
msgid ""
"Delete notebook? All notes and sub-notebooks within this notebook will also "
"be deleted."
msgstr "ノートブックを削除しますか?中にあるノートはすべて消えてしまいます。"
msgid "Deletes the notes matching <note-pattern>."
@@ -627,6 +630,9 @@ msgstr "ツール"
msgid "Synchronisation status"
msgstr "同期状況"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr ""
@@ -679,6 +685,49 @@ msgstr ""
msgid "No"
msgstr ""
msgid "The web clipper service is already enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "状態: \"%s\"。"
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"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."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
#, fuzzy
msgid "Check synchronisation configuration"
msgstr "同期の中止"
@@ -794,6 +843,10 @@ msgstr "それぞれのタグをカンマ(,)で区切ってください。"
msgid "Rename notebook:"
msgstr "ノートブックの名前を変更:"
#, fuzzy
msgid "Rename tag:"
msgstr "名前の変更"
msgid "Set alarm:"
msgstr "アラームをセット:"
@@ -823,6 +876,9 @@ msgstr "タグの追加・削除"
msgid "Switch between note and to-do type"
msgstr "ノートとToDoを切り替え"
msgid "Copy Markdown link"
msgstr ""
msgid "Delete"
msgstr "削除"
@@ -843,10 +899,19 @@ msgstr ""
msgid "Save as..."
msgstr "変更を保存"
msgid "Copy path to clipboard"
msgstr ""
#, javascript-format
msgid "Unsupported link or message: %s"
msgstr ""
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
msgid "Attach file"
msgstr "ファイルを添付"
@@ -856,12 +921,6 @@ msgstr "タグ"
msgid "Set alarm"
msgstr "アラームをセット"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
#, fuzzy
msgid "to-do"
msgstr "新しいToDo"
@@ -895,6 +954,10 @@ msgstr "同期状況"
msgid "Encryption Options"
msgstr ""
#, fuzzy
msgid "Clipper Options"
msgstr "オプション"
msgid "Remove this tag from all the notes?"
msgstr "すべてのノートからこのタグを削除しますか?"
@@ -1036,6 +1099,10 @@ msgstr "いくつかの項目は同期されませんでした。"
msgid "Conflicts"
msgstr "衝突"
#, fuzzy
msgid "Cannot move notebook to this location"
msgstr "ノートをノートブック \"%s\"に移動できませんでした。"
#, javascript-format
msgid "A notebook with this title already exists: \"%s\""
msgstr "\"%s\"という名前のノートブックはすでに存在しています。"
@@ -1092,6 +1159,10 @@ msgstr "暗い"
msgid "Uncompleted to-dos on top"
msgstr "未完のToDoをリストの上部に表示"
#, fuzzy
msgid "Show completed to-dos"
msgstr "未完のToDoをリストの上部に表示"
msgid "Sort notes by"
msgstr ""
@@ -1130,8 +1201,8 @@ msgid "Editor font family"
msgstr ""
msgid ""
"The font name will not be checked. If incorrect or empty, it will default to "
"a generic monospace font."
"This must be *monospace* font or it will not work properly. If the font is "
"incorrect or empty, it will default to a generic monospace font."
msgstr ""
msgid "Automatically update the application"
@@ -1322,6 +1393,22 @@ msgstr ""
msgid "Type new tags or select from list"
msgstr ""
msgid ""
"To work correctly, the app needs the following permissions. Please enable "
"them in your phone settings, in Apps > Joplin > Permissions"
msgstr ""
msgid ""
"- Storage: to allow attaching files to notes and to enable filesystem "
"synchronisation."
msgstr ""
msgid "- Camera: to allow taking a picture and attaching it to a note."
msgstr ""
msgid "- Location: to allow attaching geo-location information to a note."
msgstr ""
msgid "Joplin website"
msgstr ""
@@ -1369,6 +1456,14 @@ msgstr "変更を保存"
msgid "Discard changes"
msgstr "変更を破棄"
#, javascript-format
msgid "No item with ID %s"
msgstr ""
#, javascript-format
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "サポートされていないイメージ形式: %s."
@@ -1379,6 +1474,9 @@ msgstr "写真を添付"
msgid "Attach any file"
msgstr "ファイルを添付"
msgid "Share"
msgstr ""
msgid "Convert to note"
msgstr "ノートに変換"

View File

@@ -210,7 +210,7 @@ msgid "The possible commands are:"
msgstr ""
msgid ""
"In any command, a note or notebook can be refered to by title or ID, or "
"In any command, a note or notebook can be referred to by title or ID, or "
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
"note or notebook. `$c` can be used to refer to the currently selected item."
msgstr ""
@@ -332,7 +332,9 @@ msgstr ""
msgid "Deletes the notebook without asking for confirmation."
msgstr ""
msgid "Delete notebook? All notes within this notebook will also be deleted."
msgid ""
"Delete notebook? All notes and sub-notebooks within this notebook will also "
"be deleted."
msgstr ""
msgid "Deletes the notes matching <note-pattern>."
@@ -568,6 +570,9 @@ msgstr ""
msgid "Synchronisation status"
msgstr ""
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr ""
@@ -618,6 +623,49 @@ msgstr ""
msgid "No"
msgstr ""
msgid "The web clipper service is already enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, javascript-format
msgid "Status: %s"
msgstr ""
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"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."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
msgid "Check synchronisation configuration"
msgstr ""
@@ -726,6 +774,9 @@ msgstr ""
msgid "Rename notebook:"
msgstr ""
msgid "Rename tag:"
msgstr ""
msgid "Set alarm:"
msgstr ""
@@ -753,6 +804,9 @@ msgstr ""
msgid "Switch between note and to-do type"
msgstr ""
msgid "Copy Markdown link"
msgstr ""
msgid "Delete"
msgstr ""
@@ -772,10 +826,19 @@ msgstr ""
msgid "Save as..."
msgstr ""
msgid "Copy path to clipboard"
msgstr ""
#, javascript-format
msgid "Unsupported link or message: %s"
msgstr ""
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
msgid "Attach file"
msgstr ""
@@ -785,12 +848,6 @@ msgstr ""
msgid "Set alarm"
msgstr ""
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
msgid "to-do"
msgstr ""
@@ -822,6 +879,9 @@ msgstr ""
msgid "Encryption Options"
msgstr ""
msgid "Clipper Options"
msgstr ""
msgid "Remove this tag from all the notes?"
msgstr ""
@@ -954,6 +1014,9 @@ msgstr ""
msgid "Conflicts"
msgstr ""
msgid "Cannot move notebook to this location"
msgstr ""
#, javascript-format
msgid "A notebook with this title already exists: \"%s\""
msgstr ""
@@ -1005,6 +1068,9 @@ msgstr ""
msgid "Uncompleted to-dos on top"
msgstr ""
msgid "Show completed to-dos"
msgstr ""
msgid "Sort notes by"
msgstr ""
@@ -1039,8 +1105,8 @@ msgid "Editor font family"
msgstr ""
msgid ""
"The font name will not be checked. If incorrect or empty, it will default to "
"a generic monospace font."
"This must be *monospace* font or it will not work properly. If the font is "
"incorrect or empty, it will default to a generic monospace font."
msgstr ""
msgid "Automatically update the application"
@@ -1226,6 +1292,22 @@ msgstr ""
msgid "Type new tags or select from list"
msgstr ""
msgid ""
"To work correctly, the app needs the following permissions. Please enable "
"them in your phone settings, in Apps > Joplin > Permissions"
msgstr ""
msgid ""
"- Storage: to allow attaching files to notes and to enable filesystem "
"synchronisation."
msgstr ""
msgid "- Camera: to allow taking a picture and attaching it to a note."
msgstr ""
msgid "- Location: to allow attaching geo-location information to a note."
msgstr ""
msgid "Joplin website"
msgstr ""
@@ -1271,6 +1353,14 @@ msgstr ""
msgid "Discard changes"
msgstr ""
#, javascript-format
msgid "No item with ID %s"
msgstr ""
#, javascript-format
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr ""
@@ -1281,6 +1371,9 @@ msgstr ""
msgid "Attach any file"
msgstr ""
msgid "Share"
msgstr ""
msgid "Convert to note"
msgstr ""

View File

@@ -230,7 +230,7 @@ msgid "The possible commands are:"
msgstr "Mogelijke commando's zijn:"
msgid ""
"In any command, a note or notebook can be refered to by title or ID, or "
"In any command, a note or notebook can be referred to by title or ID, or "
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
"note or notebook. `$c` can be used to refer to the currently selected item."
msgstr ""
@@ -369,7 +369,10 @@ msgstr "Verwijdert het opgegeven notitieboek."
msgid "Deletes the notebook without asking for confirmation."
msgstr "Verwijdert het notitieboek zonder te vragen om bevestiging."
msgid "Delete notebook? All notes within this notebook will also be deleted."
#, fuzzy
msgid ""
"Delete notebook? All notes and sub-notebooks within this notebook will also "
"be deleted."
msgstr ""
"Notitieboek verwijderen? Alle notities in dit notitieboek zullen ook "
"verwijderd worden."
@@ -644,6 +647,9 @@ msgstr "Tools"
msgid "Synchronisation status"
msgstr "Synchronisatie status"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr "Versleutelopties"
@@ -696,6 +702,49 @@ msgstr ""
msgid "No"
msgstr "N"
msgid "The web clipper service is already enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Status: \"%s\""
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"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."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
#, fuzzy
msgid "Check synchronisation configuration"
msgstr "Annuleer synchronisatie"
@@ -819,6 +868,10 @@ msgstr "Scheid iedere tag met een komma."
msgid "Rename notebook:"
msgstr "Hernoem notitieboek:"
#, fuzzy
msgid "Rename tag:"
msgstr "Hernoem"
msgid "Set alarm:"
msgstr "Stel melding in:"
@@ -847,6 +900,9 @@ msgstr "Voeg tag toe of verwijder tag"
msgid "Switch between note and to-do type"
msgstr "Wissel tussen notitie en to-do type"
msgid "Copy Markdown link"
msgstr ""
msgid "Delete"
msgstr "Verwijderen"
@@ -869,10 +925,19 @@ msgstr ""
msgid "Save as..."
msgstr "Sla wijzigingen op"
msgid "Copy path to clipboard"
msgstr ""
#, javascript-format
msgid "Unsupported link or message: %s"
msgstr "Link of bericht \"%s\" wordt niet ondersteund"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
msgid "Attach file"
msgstr "Voeg bestand toe"
@@ -882,12 +947,6 @@ msgstr "Tags"
msgid "Set alarm"
msgstr "Zet melding"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
#, fuzzy
msgid "to-do"
msgstr "Nieuwe to-do"
@@ -921,6 +980,10 @@ msgstr "Synchronisatie status"
msgid "Encryption Options"
msgstr "Versleutelopties"
#, fuzzy
msgid "Clipper Options"
msgstr "Algemene opties"
msgid "Remove this tag from all the notes?"
msgstr "Deze tag verwijderen van alle notities?"
@@ -1062,6 +1125,10 @@ msgstr "Versleutelde items kunnen niet aangepast worden"
msgid "Conflicts"
msgstr "Conflicten"
#, fuzzy
msgid "Cannot move notebook to this location"
msgstr "Kan notitie niet naar notitieboek \"%s\" verplaatsen."
#, javascript-format
msgid "A notebook with this title already exists: \"%s\""
msgstr "Er bestaat al een notitieboek met \"%s\" als titel"
@@ -1119,6 +1186,10 @@ msgstr "Donker"
msgid "Uncompleted to-dos on top"
msgstr "Toon onvoltooide to-do's aan de top van de lijsten"
#, fuzzy
msgid "Show completed to-dos"
msgstr "Toon onvoltooide to-do's aan de top van de lijsten"
msgid "Sort notes by"
msgstr ""
@@ -1156,8 +1227,8 @@ msgid "Editor font family"
msgstr ""
msgid ""
"The font name will not be checked. If incorrect or empty, it will default to "
"a generic monospace font."
"This must be *monospace* font or it will not work properly. If the font is "
"incorrect or empty, it will default to a generic monospace font."
msgstr ""
msgid "Automatically update the application"
@@ -1354,6 +1425,22 @@ msgstr ""
msgid "Type new tags or select from list"
msgstr ""
msgid ""
"To work correctly, the app needs the following permissions. Please enable "
"them in your phone settings, in Apps > Joplin > Permissions"
msgstr ""
msgid ""
"- Storage: to allow attaching files to notes and to enable filesystem "
"synchronisation."
msgstr ""
msgid "- Camera: to allow taking a picture and attaching it to a note."
msgstr ""
msgid "- Location: to allow attaching geo-location information to a note."
msgstr ""
msgid "Joplin website"
msgstr ""
@@ -1400,6 +1487,14 @@ msgstr "Sla wijzigingen op"
msgid "Discard changes"
msgstr "Verwijder wijzigingen"
#, javascript-format
msgid "No item with ID %s"
msgstr ""
#, javascript-format
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Afbeeldingstype %s wordt niet ondersteund"
@@ -1410,6 +1505,9 @@ msgstr "Voeg foto toe"
msgid "Attach any file"
msgstr "Voeg bestand toe"
msgid "Share"
msgstr ""
msgid "Convert to note"
msgstr "Converteer naar notitie"

View File

@@ -227,7 +227,7 @@ msgid "The possible commands are:"
msgstr "Os comandos possíveis são:"
msgid ""
"In any command, a note or notebook can be refered to by title or ID, or "
"In any command, a note or notebook can be referred to by title or ID, or "
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
"note or notebook. `$c` can be used to refer to the currently selected item."
msgstr ""
@@ -363,7 +363,10 @@ msgstr "Exclui o caderno informado."
msgid "Deletes the notebook without asking for confirmation."
msgstr "Exclui o caderno sem pedir confirmação."
msgid "Delete notebook? All notes within this notebook will also be deleted."
#, fuzzy
msgid ""
"Delete notebook? All notes and sub-notebooks within this notebook will also "
"be deleted."
msgstr ""
"Excluir o caderno? Todas as notas deste caderno notebook também serão "
"excluídas."
@@ -641,6 +644,9 @@ msgstr "Ferramentas"
msgid "Synchronisation status"
msgstr "Status de sincronização"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr "Opções de Encriptação"
@@ -691,6 +697,49 @@ msgstr "Sim"
msgid "No"
msgstr "Não"
msgid "The web clipper service is already enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Estado: \"%s\"."
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"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."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
msgid "Check synchronisation configuration"
msgstr "Verificar a configuração da sincronização"
@@ -815,6 +864,10 @@ msgstr "Separe cada tag por vírgula."
msgid "Rename notebook:"
msgstr "Renomear caderno:"
#, fuzzy
msgid "Rename tag:"
msgstr "Renomear"
msgid "Set alarm:"
msgstr "Definir alarme:"
@@ -842,6 +895,10 @@ msgstr "Adicionar ou remover tags"
msgid "Switch between note and to-do type"
msgstr "Alternar entre os tipos Nota e Tarefa"
#, fuzzy
msgid "Copy Markdown link"
msgstr "Markdown"
msgid "Delete"
msgstr "Excluir"
@@ -861,10 +918,21 @@ msgstr "Abrir..."
msgid "Save as..."
msgstr "Salvar como..."
msgid "Copy path to clipboard"
msgstr ""
#, javascript-format
msgid "Unsupported link or message: %s"
msgstr "Link ou mensagem não suportada: %s"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
"Esta nota não possui conteúdo. Clique em \"%s\" para alternar para o editor, "
"e edite a nota."
msgid "Attach file"
msgstr "Anexar arquivo"
@@ -874,14 +942,6 @@ msgstr "Tags"
msgid "Set alarm"
msgstr "Definir alarme"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
"Esta nota não possui conteúdo. Clique em \"%s\" para alternar para o editor, "
"e edite a nota."
msgid "to-do"
msgstr "tarefa"
@@ -913,6 +973,10 @@ msgstr "Status de sincronização"
msgid "Encryption Options"
msgstr "Opções de Encriptação"
#, fuzzy
msgid "Clipper Options"
msgstr "Opções Gerais"
msgid "Remove this tag from all the notes?"
msgstr "Remover esta tag de todas as notas?"
@@ -1055,6 +1119,10 @@ msgstr "Itens encriptados não podem ser modificados"
msgid "Conflicts"
msgstr "Conflitos"
#, fuzzy
msgid "Cannot move notebook to this location"
msgstr "Não é possível mover a nota para o caderno \"%s\""
#, javascript-format
msgid "A notebook with this title already exists: \"%s\""
msgstr "Já existe caderno com este título: \"%s\""
@@ -1109,6 +1177,10 @@ msgstr "Dark"
msgid "Uncompleted to-dos on top"
msgstr "Mostrar tarefas incompletas no topo"
#, fuzzy
msgid "Show completed to-dos"
msgstr "Mostrar tarefas incompletas no topo"
msgid "Sort notes by"
msgstr "Ordenar notas por"
@@ -1142,9 +1214,10 @@ msgstr "Porcentagem global do zoom"
msgid "Editor font family"
msgstr "Família de fontes do editor"
#, fuzzy
msgid ""
"The font name will not be checked. If incorrect or empty, it will default to "
"a generic monospace font."
"This must be *monospace* font or it will not work properly. If the font is "
"incorrect or empty, it will default to a generic monospace font."
msgstr ""
"O nomes da fonte não será verificado. Se estiver incorreto ou vazio, será "
"usado por default uma fonte genérica monospace."
@@ -1342,6 +1415,22 @@ msgstr "Novas tags:"
msgid "Type new tags or select from list"
msgstr "Digite novsa tags, ou selecione da lista"
msgid ""
"To work correctly, the app needs the following permissions. Please enable "
"them in your phone settings, in Apps > Joplin > Permissions"
msgstr ""
msgid ""
"- Storage: to allow attaching files to notes and to enable filesystem "
"synchronisation."
msgstr ""
msgid "- Camera: to allow taking a picture and attaching it to a note."
msgstr ""
msgid "- Location: to allow attaching geo-location information to a note."
msgstr ""
msgid "Joplin website"
msgstr "Site do Joplin"
@@ -1387,6 +1476,14 @@ msgstr "Gravar alterações"
msgid "Discard changes"
msgstr "Descartar alterações"
#, javascript-format
msgid "No item with ID %s"
msgstr ""
#, javascript-format
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Tipo de imagem não suportada: %s"
@@ -1397,6 +1494,9 @@ msgstr "Anexar foto"
msgid "Attach any file"
msgstr "Anexar qualquer arquivo"
msgid "Share"
msgstr ""
msgid "Convert to note"
msgstr "Converter para nota"

View File

@@ -230,7 +230,7 @@ msgid "The possible commands are:"
msgstr "Доступные команды:"
msgid ""
"In any command, a note or notebook can be refered to by title or ID, or "
"In any command, a note or notebook can be referred to by title or ID, or "
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
"note or notebook. `$c` can be used to refer to the currently selected item."
msgstr ""
@@ -369,7 +369,10 @@ msgstr "Удаляет заданный блокнот."
msgid "Deletes the notebook without asking for confirmation."
msgstr "Удаляет блокнот без запроса подтверждения."
msgid "Delete notebook? All notes within this notebook will also be deleted."
#, fuzzy
msgid ""
"Delete notebook? All notes and sub-notebooks within this notebook will also "
"be deleted."
msgstr "Удалить блокнот? Все заметки в этом блокноте также будут удалены."
msgid "Deletes the notes matching <note-pattern>."
@@ -641,6 +644,9 @@ msgstr "Инструменты"
msgid "Synchronisation status"
msgstr "Статус синхронизации"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr "Настройки шифрования"
@@ -691,6 +697,49 @@ msgstr "Да"
msgid "No"
msgstr "Нет"
msgid "The web clipper service is already enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Статус: «%s»."
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"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."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
msgid "Check synchronisation configuration"
msgstr "Проверить настройки синхронизации"
@@ -814,6 +863,10 @@ msgstr "Каждый тег отделяется запятой."
msgid "Rename notebook:"
msgstr "Переименовать блокнот:"
#, fuzzy
msgid "Rename tag:"
msgstr "Переименовать"
msgid "Set alarm:"
msgstr "Установить напоминание:"
@@ -842,6 +895,10 @@ msgstr "Добавить или удалить теги"
msgid "Switch between note and to-do type"
msgstr "Переключить тип между заметкой и задачей"
#, fuzzy
msgid "Copy Markdown link"
msgstr "Markdown"
msgid "Delete"
msgstr "Удалить"
@@ -861,10 +918,21 @@ msgstr "Открыть..."
msgid "Save as..."
msgstr "Сохранить как..."
msgid "Copy path to clipboard"
msgstr ""
#, javascript-format
msgid "Unsupported link or message: %s"
msgstr "Неподдерживаемая ссыка или сообщение: %s"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
"Заметка пуста. Нажмите на «%s», чтобы переключиться в редактор и "
"отредактировать её."
msgid "Attach file"
msgstr "Прикрепить файл"
@@ -874,14 +942,6 @@ msgstr "Теги"
msgid "Set alarm"
msgstr "Установить напоминание"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr ""
"Заметка пуста. Нажмите на «%s», чтобы переключиться в редактор и "
"отредактировать её."
msgid "to-do"
msgstr "задача"
@@ -913,6 +973,10 @@ msgstr "Статус синхронизации"
msgid "Encryption Options"
msgstr "Настройки шифрования"
#, fuzzy
msgid "Clipper Options"
msgstr "Основные настройки"
msgid "Remove this tag from all the notes?"
msgstr "Убрать этот тег со всех заметок?"
@@ -1053,6 +1117,10 @@ msgstr "Зашифрованные элементы не могут быть и
msgid "Conflicts"
msgstr "Конфликты"
#, fuzzy
msgid "Cannot move notebook to this location"
msgstr "Не удалось переместить заметку в блокнот «%s»"
#, javascript-format
msgid "A notebook with this title already exists: \"%s\""
msgstr "Блокнот с таким названием уже существует: «%s»"
@@ -1106,6 +1174,10 @@ msgstr "Тёмная"
msgid "Uncompleted to-dos on top"
msgstr "Незавершённые задачи сверху"
#, fuzzy
msgid "Show completed to-dos"
msgstr "Незавершённые задачи сверху"
msgid "Sort notes by"
msgstr "Сортировать заметки по"
@@ -1139,9 +1211,10 @@ msgstr "Глобальный масштаб в процентах"
msgid "Editor font family"
msgstr "Семейство шрифтов редактора"
#, fuzzy
msgid ""
"The font name will not be checked. If incorrect or empty, it will default to "
"a generic monospace font."
"This must be *monospace* font or it will not work properly. If the font is "
"incorrect or empty, it will default to a generic monospace font."
msgstr ""
"Название шрифта не проверяется. Если оно указано некорректно или не задано, "
"будет использоваться стандартный моноширинный шрифт."
@@ -1339,6 +1412,22 @@ msgstr ""
msgid "Type new tags or select from list"
msgstr ""
msgid ""
"To work correctly, the app needs the following permissions. Please enable "
"them in your phone settings, in Apps > Joplin > Permissions"
msgstr ""
msgid ""
"- Storage: to allow attaching files to notes and to enable filesystem "
"synchronisation."
msgstr ""
msgid "- Camera: to allow taking a picture and attaching it to a note."
msgstr ""
msgid "- Location: to allow attaching geo-location information to a note."
msgstr ""
msgid "Joplin website"
msgstr "Сайт Joplin"
@@ -1385,6 +1474,14 @@ msgstr "Сохранить изменения"
msgid "Discard changes"
msgstr "Отменить изменения"
#, javascript-format
msgid "No item with ID %s"
msgstr ""
#, javascript-format
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Неподдерживаемый формат изображения: %s"
@@ -1395,6 +1492,9 @@ msgstr "Прикрепить фото"
msgid "Attach any file"
msgstr "Прикрепить любой файл"
msgid "Share"
msgstr ""
msgid "Convert to note"
msgstr "Преобразовать в заметку"

1539
CliClient/locales/sl_SI.po Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -220,7 +220,7 @@ msgid "The possible commands are:"
msgstr "可用命令为:"
msgid ""
"In any command, a note or notebook can be refered to by title or ID, or "
"In any command, a note or notebook can be referred to by title or ID, or "
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
"note or notebook. `$c` can be used to refer to the currently selected item."
msgstr ""
@@ -350,7 +350,10 @@ msgstr "删除给定笔记本。"
msgid "Deletes the notebook without asking for confirmation."
msgstr "删除笔记本(不要求确认)。"
msgid "Delete notebook? All notes within this notebook will also be deleted."
#, fuzzy
msgid ""
"Delete notebook? All notes and sub-notebooks within this notebook will also "
"be deleted."
msgstr "是否删除笔记本?此笔记本内所有笔记也将被删除。"
msgid "Deletes the notes matching <note-pattern>."
@@ -607,6 +610,9 @@ msgstr "工具"
msgid "Synchronisation status"
msgstr "同步状态"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr "加密选项"
@@ -657,6 +663,49 @@ msgstr "是"
msgid "No"
msgstr "否"
msgid "The web clipper service is already enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "状态:\"%s\"。"
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"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."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
msgid "Check synchronisation configuration"
msgstr "检查同步配置"
@@ -774,6 +823,10 @@ msgstr "用逗号\",\"分开每个标签。"
msgid "Rename notebook:"
msgstr "重命名笔记本:"
#, fuzzy
msgid "Rename tag:"
msgstr "重命名"
msgid "Set alarm:"
msgstr "设置提醒:"
@@ -802,6 +855,9 @@ msgstr "添加或删除标签"
msgid "Switch between note and to-do type"
msgstr "在笔记和待办事项类型之间切换"
msgid "Copy Markdown link"
msgstr ""
msgid "Delete"
msgstr "删除"
@@ -821,10 +877,19 @@ msgstr "打开…"
msgid "Save as..."
msgstr "另存为…"
msgid "Copy path to clipboard"
msgstr ""
#, javascript-format
msgid "Unsupported link or message: %s"
msgstr "不支持的链接或信息:%s"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr "此笔记没有任何内容。点击 \"%s\" 切换至编辑器并编辑笔记。"
msgid "Attach file"
msgstr "附加文件"
@@ -834,12 +899,6 @@ msgstr "标签"
msgid "Set alarm"
msgstr "设置提醒"
#, javascript-format
msgid ""
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
"note."
msgstr "此笔记没有任何内容。点击 \"%s\" 切换至编辑器并编辑笔记。"
msgid "to-do"
msgstr "待办事项"
@@ -871,6 +930,10 @@ msgstr "同步状态"
msgid "Encryption Options"
msgstr "加密选项"
#, fuzzy
msgid "Clipper Options"
msgstr "通用选项"
msgid "Remove this tag from all the notes?"
msgstr "从所有笔记中删除此标签?"
@@ -1008,6 +1071,10 @@ msgstr "无法修改加密项目。"
msgid "Conflicts"
msgstr "冲突文件"
#, fuzzy
msgid "Cannot move notebook to this location"
msgstr "无法移动笔记至\"%s\"笔记本"
#, javascript-format
msgid "A notebook with this title already exists: \"%s\""
msgstr "以此标题命名的笔记本已存在:\"%s\""
@@ -1059,6 +1126,10 @@ msgstr "深色"
msgid "Uncompleted to-dos on top"
msgstr "未完成的待办事项在顶端"
#, fuzzy
msgid "Show completed to-dos"
msgstr "未完成的待办事项在顶端"
msgid "Sort notes by"
msgstr "排序笔记"
@@ -1092,9 +1163,10 @@ msgstr "全局缩放比例"
msgid "Editor font family"
msgstr "编辑器字体"
#, fuzzy
msgid ""
"The font name will not be checked. If incorrect or empty, it will default to "
"a generic monospace font."
"This must be *monospace* font or it will not work properly. If the font is "
"incorrect or empty, it will default to a generic monospace font."
msgstr ""
"此软件不会检查所设置字体的有效性。若无效或空白,此处将会设置成一款通用等宽字"
"体。"
@@ -1286,6 +1358,22 @@ msgstr ""
msgid "Type new tags or select from list"
msgstr ""
msgid ""
"To work correctly, the app needs the following permissions. Please enable "
"them in your phone settings, in Apps > Joplin > Permissions"
msgstr ""
msgid ""
"- Storage: to allow attaching files to notes and to enable filesystem "
"synchronisation."
msgstr ""
msgid "- Camera: to allow taking a picture and attaching it to a note."
msgstr ""
msgid "- Location: to allow attaching geo-location information to a note."
msgstr ""
msgid "Joplin website"
msgstr "Joplin官网"
@@ -1332,6 +1420,14 @@ msgstr "保存更改"
msgid "Discard changes"
msgstr "放弃更改"
#, javascript-format
msgid "No item with ID %s"
msgstr ""
#, javascript-format
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "不支持的图片格式:%s"
@@ -1342,6 +1438,9 @@ msgstr "附加照片"
msgid "Attach any file"
msgstr "附加任何文件"
msgid "Share"
msgstr ""
msgid "Convert to note"
msgstr "转换至笔记"

File diff suppressed because it is too large Load Diff

View File

@@ -19,7 +19,7 @@
],
"owner": "Laurent Cozic"
},
"version": "1.0.106",
"version": "1.0.107",
"bin": {
"joplin": "./main.js"
},
@@ -31,10 +31,15 @@
"async-mutex": "^0.1.3",
"base-64": "^0.1.0",
"compare-version": "^0.1.2",
"es6-promise-pool": "^2.5.0",
"follow-redirects": "^1.2.4",
"form-data": "^2.1.4",
"fs-extra": "^5.0.0",
"html-entities": "^1.2.1",
"html-minifier": "^3.5.15",
"image-type": "^3.0.0",
"joplin-turndown": "^4.0.3",
"joplin-turndown-plugin-gfm": "^1.0.2",
"jssha": "^2.3.0",
"levenshtein": "^1.0.5",
"lodash": "^4.17.4",
@@ -47,6 +52,7 @@
"promise": "^7.1.1",
"proper-lockfile": "^2.0.1",
"query-string": "4.3.4",
"read-chunk": "^2.1.0",
"redux": "^3.7.2",
"sax": "^1.2.2",
"server-destroy": "^1.0.1",
@@ -58,9 +64,10 @@
"strip-ansi": "^4.0.0",
"tar": "^4.4.0",
"tcp-port-used": "^0.1.2",
"tkwidgets": "^0.5.25",
"tkwidgets": "^0.5.26",
"url-parse": "^1.2.0",
"uuid": "^3.0.1",
"valid-url": "^1.0.9",
"word-wrap": "^1.2.3",
"xml2js": "^0.4.19",
"yargs-parser": "^7.0.0"

View File

@@ -8,8 +8,20 @@ rsync -a "$ROOT_DIR/../ReactNativeClient/lib/" "$BUILD_DIR/lib/"
rsync -a "$ROOT_DIR/build/locales/" "$BUILD_DIR/locales/"
mkdir -p "$BUILD_DIR/data"
if [[ $TEST_FILE == "" ]]; then
(cd "$ROOT_DIR" && npm test tests-build/synchronizer.js tests-build/encryption.js tests-build/ArrayUtils.js tests-build/models_Setting.js tests-build/services_InteropService.js)
else
if [[ $TEST_FILE != "" ]]; then
(cd "$ROOT_DIR" && npm test tests-build/$TEST_FILE.js)
fi
exit
fi
(cd "$ROOT_DIR" && npm test tests-build/ArrayUtils.js)
(cd "$ROOT_DIR" && npm test tests-build/encryption.js
(cd "$ROOT_DIR" && npm test tests-build/EnexToMd.js)
(cd "$ROOT_DIR" && npm test tests-build/HtmlToMd.js)
(cd "$ROOT_DIR" && npm test tests-build/markdownUtils.js)
(cd "$ROOT_DIR" && npm test tests-build/models_Folder.js)
(cd "$ROOT_DIR" && npm test tests-build/models_Note.js)
(cd "$ROOT_DIR" && npm test tests-build/models_Setting.js)
(cd "$ROOT_DIR" && npm test tests-build/services_InteropService.js)
(cd "$ROOT_DIR" && npm test tests-build/services_ResourceService.js)
(cd "$ROOT_DIR" && npm test tests-build/synchronizer.js)
(cd "$ROOT_DIR" && npm test tests-build/urlUtils.js)

View File

@@ -44,4 +44,13 @@ describe('ArrayUtils', function() {
done();
});
it('should compare arrays', async (done) => {
expect(ArrayUtils.contentEquals([], [])).toBe(true);
expect(ArrayUtils.contentEquals(['a'], ['a'])).toBe(true);
expect(ArrayUtils.contentEquals(['b', 'a'], ['a', 'b'])).toBe(true);
expect(ArrayUtils.contentEquals(['b'], ['a', 'b'])).toBe(false);
done();
});
});

View File

@@ -0,0 +1,62 @@
require('app-module-path').addPath(__dirname);
const { time } = require('lib/time-utils.js');
const { filename } = require('lib/path-utils.js');
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
const Folder = require('lib/models/Folder.js');
const Note = require('lib/models/Note.js');
const BaseModel = require('lib/BaseModel.js');
const { shim } = require('lib/shim');
const { enexXmlToMd } = require('lib/import-enex-md-gen.js');
jasmine.DEFAULT_TIMEOUT_INTERVAL = 60 * 60 * 1000; // Can run for a while since everything is in the same test unit
process.on('unhandledRejection', (reason, p) => {
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
});
describe('EnexToMd', function() {
beforeEach(async (done) => {
await setupDatabaseAndSynchronizer(1);
await switchClient(1);
done();
});
it('should convert from Enex to Markdown', asyncTest(async () => {
const basePath = __dirname + '/enex_to_md';
const files = await shim.fsDriver().readDirStats(basePath);
for (let i = 0; i < files.length; i++) {
const htmlFilename = files[i].path;
if (htmlFilename.indexOf('.html') < 0) continue;
const htmlPath = basePath + '/' + htmlFilename;
const mdPath = basePath + '/' + filename(htmlFilename) + '.md';
// if (htmlFilename !== 'text2.html') continue;
const html = await shim.fsDriver().readFile(htmlPath);
const expectedMd = await shim.fsDriver().readFile(mdPath);
const actualMd = await enexXmlToMd('<div>' + html + '</div>', []);
if (actualMd !== expectedMd) {
console.info('');
console.info('Error converting file: ' + htmlFilename);
console.info('--------------------------------- Got:');
console.info(actualMd.split('\n'));
console.info('--------------------------------- Expected:');
console.info(expectedMd.split('\n'));
console.info('--------------------------------------------');
console.info('');
expect(false).toBe(true);
// return;
} else {
expect(true).toBe(true)
}
}
}));
});

View File

@@ -0,0 +1,66 @@
require('app-module-path').addPath(__dirname);
const { time } = require('lib/time-utils.js');
const { filename } = require('lib/path-utils.js');
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
const Folder = require('lib/models/Folder.js');
const Note = require('lib/models/Note.js');
const BaseModel = require('lib/BaseModel.js');
const { shim } = require('lib/shim');
const HtmlToMd = require('lib/HtmlToMd');
const { enexXmlToMd } = require('lib/import-enex-md-gen.js');
jasmine.DEFAULT_TIMEOUT_INTERVAL = 60 * 60 * 1000; // Can run for a while since everything is in the same test unit
process.on('unhandledRejection', (reason, p) => {
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
});
describe('HtmlToMd', function() {
beforeEach(async (done) => {
await setupDatabaseAndSynchronizer(1);
await switchClient(1);
done();
});
it('should convert from Html to Markdown', asyncTest(async () => {
const basePath = __dirname + '/html_to_md';
const files = await shim.fsDriver().readDirStats(basePath);
const htmlToMd = new HtmlToMd();
for (let i = 0; i < files.length; i++) {
const htmlFilename = files[i].path;
if (htmlFilename.indexOf('.html') < 0) continue;
const htmlPath = basePath + '/' + htmlFilename;
const mdPath = basePath + '/' + filename(htmlFilename) + '.md';
// if (htmlFilename !== 'table_with_colspan.html') continue;
const html = await shim.fsDriver().readFile(htmlPath);
const expectedMd = await shim.fsDriver().readFile(mdPath);
const actualMd = await htmlToMd.parse('<div>' + html + '</div>', []);
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('');
expect(false).toBe(true);
// return;
} else {
expect(true).toBe(true)
}
}
}));
});

View File

@@ -0,0 +1,16 @@
<div>
<p>For example, consider a web page like this:</p>
<pre class="brush: html line-numbers language-html"><code class=" language-html"><span class="token doctype">&lt;!DOCTYPE html&gt;</span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>html</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>head</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>meta</span> <span class="token attr-name">http-equiv</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>content-type<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>text/html; charset<span class="token punctuation">=</span>utf-8<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>head</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>body</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>script</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>page-scripts/page-script.js<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span><span class="token script language-javascript"></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>body</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>html</span><span class="token punctuation">&gt;</span></span><span class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>
<p>The script "page-script.js" does this:</p>
</div>

View File

@@ -0,0 +1,14 @@
For example, consider a web page like this:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<script src="page-scripts/page-script.js"></script>
</body>
</html>
The script "page-script.js" does this:

View File

@@ -0,0 +1,7 @@
<p>Subshell:</p>
<pre><code>(
set -e
false
echo Unreachable
) &amp;&amp; echo Great success
</code></pre>

View File

@@ -0,0 +1,7 @@
Subshell:
(
set -e
false
echo Unreachable
) && echo Great success

View File

@@ -0,0 +1,9 @@
<div>
<div class="note">
<p>Values added to the global scope of a content script with</p>
</div>
<h2 id="Loading_content_scripts">Loading content scripts</h2>
<p>You can load a content script into a web page in one of three ways:</p>
</div>

View File

@@ -0,0 +1,5 @@
Values added to the global scope of a content script with
## Loading content scripts
You can load a content script into a web page in one of three ways:

View File

@@ -0,0 +1,3 @@
<div>
<p>Similarly, I need another regex to match double newlines (<code>\n\n</code>) that are not part of a longer run of newline characters like <code>\n\n\n</code> or <code>\n\n\n\n\n\n</code> etc.</p>
</div>

View File

@@ -0,0 +1 @@
Similarly, I need another regex to match double newlines (`\n\n`) that are not part of a longer run of newline characters like `\n\n\n` or `\n\n\n\n\n\n` etc.

View File

@@ -0,0 +1,3 @@
<div>
<p>the&nbsp;<code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onConnect">runtime.onConnect</a></code> listener gets passed its own <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/Port">runtime.Port</a></code> object.</p>
</div>

View File

@@ -0,0 +1 @@
the `[runtime.onConnect](/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onConnect)` listener gets passed its own `[runtime.Port](/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/Port)` object.

View File

@@ -0,0 +1,4 @@
<a href="https://arstechnica.com/civis/ucp.php?mode=login&return_to=%2Ftech-policy%2F2018%2F05%2Fjails-are-replacing-in-person-visits-with-video-calling-services-theyre-awful%2F" class="dropdown-toggle">
Sign in
<span class="icon dropdown-indicator icon-drop-indicator"></span>
</a>

View File

@@ -0,0 +1 @@
[Sign in](https://arstechnica.com/civis/ucp.php?mode=login&return_to=%2Ftech-policy%2F2018%2F05%2Fjails-are-replacing-in-person-visits-with-video-calling-services-theyre-awful%2F)

View File

@@ -0,0 +1,17 @@
<div>
<p>Liste de courses</p>
<div>
<div><en-todo checked="true"/>Pizzas</div>
<div><en-todo checked="true"/>Pain</div>
<div><en-todo checked="true"/>Jambon</div>
</div>
<div><br/></div>
<div>
<div><en-todo checked="true"/>On its own</div>
</div>
<p>End</p>
</div>

View File

@@ -0,0 +1,9 @@
Liste de courses
- [X] Pizzas
- [X] Pain
- [X] Jambon
- [X] On its own
End

View File

@@ -0,0 +1 @@
<ul class="find-me-on"><li><a href="https://github.com/zetter">Github</a></li><li><a href="https://twitter.com/czetter">Twitter</a></li><li><a href="http://lanyrd.com/profile/czetter/">Lanyrd</a></li></ul>

View File

@@ -0,0 +1,3 @@
- [Github](https://github.com/zetter)
- [Twitter](https://twitter.com/czetter)
- [Lanyrd](http://lanyrd.com/profile/czetter/)

View File

@@ -0,0 +1 @@
<ul class="find-me-on"><li>Github</li><li>Twitter</li></ul>

View File

@@ -0,0 +1,2 @@
- Github
- Twitter

View File

@@ -0,0 +1,11 @@
<div>
<p>Short paragraphs are merged together:</p>
<p>Something something</p>
<p>Blablbla blabla lbla</p>
<p>Last line</p>
</div>
<div>
<p>Longer ones are separated by new lines. In 1894 Joplin arrived in Sedalia, Missouri. At first, Joplin stayed with the family of Arthur Marshall, at the time a 13-year-old boy but later one of Joplin's students and a rag-time composer in his own right.[26] There is no record of Joplin having a permanent residence in the town until 1904, as Joplin was making a living as a touring musician.</p>
<p>There is little precise evidence known about Joplin's activities at this time, although he performed as a solo musician at dances and at the major black clubs in Sedalia, the Black 400 club and the Maple Leaf Club. He performed in the Queen City Cornet Band, and his own six-piece dance orchestra.</p>
</div>

View File

@@ -0,0 +1,8 @@
Short paragraphs are merged together:
Something something
Blablbla blabla lbla
Last line
Longer ones are separated by new lines. In 1894 Joplin arrived in Sedalia, Missouri. At first, Joplin stayed with the family of Arthur Marshall, at the time a 13-year-old boy but later one of Joplin's students and a rag-time composer in his own right.[26] There is no record of Joplin having a permanent residence in the town until 1904, as Joplin was making a living as a touring musician.
There is little precise evidence known about Joplin's activities at this time, although he performed as a solo musician at dances and at the major black clubs in Sedalia, the Black 400 club and the Maple Leaf Club. He performed in the Queen City Cornet Band, and his own six-piece dance orchestra.

View File

@@ -0,0 +1,12 @@
<table>
<tr>
<td>
<div>$ sudo ethtool --set-priv-flags p2p1 mlx4_rss_xor_hash_function on</div>
<div># Three empty lines follow</div>
<div><br/></div>
<div><br/></div>
</td>
</tr>
</table>
Some text

View File

@@ -0,0 +1,5 @@
| |
| --- |
| $ sudo ethtool --set-priv-flags p2p1 mlx4_rss_xor_hash_function on<br># Three empty lines follow |
Some text

View File

@@ -0,0 +1,3 @@
<div>
<table style="-evernote-table:true;border-collapse:collapse;width:100%;table-layout:fixed;margin-left:0px;"><tr><td style="border-style:solid;border-width:1px;border-color:rgb(211,211,211);padding:10px;margin:0px;width:50%;"><div>line 1</div><div>line 2</div></td><td style="border-style:solid;border-width:1px;border-color:rgb(211,211,211);padding:10px;margin:0px;width:50%;"><div><br/></div></td></tr><tr><td style="border-style:solid;border-width:1px;border-color:rgb(211,211,211);padding:10px;margin:0px;width:50%;"><div>aaaaaa</div></td><td style="border-style:solid;border-width:1px;border-color:rgb(211,211,211);padding:10px;margin:0px;width:50%;"><div>line 3</div><div>line 4</div></td></tr></table>
</div>

View File

@@ -0,0 +1,4 @@
| | |
| --- | --- |
| line 1<br>line 2 | |
| aaaaaa | line 3<br>line 4 |

View File

@@ -0,0 +1 @@
<a href="https://joplin.cozic.net"><h1 id="joplin"><img class="title-icon" src="https://joplin.cozic.net/images/Icon512.png">oplin</h1></a>

View File

@@ -0,0 +1 @@
[# ![](https://joplin.cozic.net/images/Icon512.png)oplin](https://joplin.cozic.net)

View File

@@ -0,0 +1 @@
<a href="javascript:alert('js')">Some text</a>

View File

@@ -0,0 +1 @@
[Some text]()

View File

@@ -0,0 +1 @@
<a href="http://example.com"><p>That</p><p>Shouldn't be allowed</p></a>

View File

@@ -0,0 +1 @@
[That<br>Shouldn't be allowed](http://example.com)

View File

@@ -0,0 +1,13 @@
<!-- Make sure in particular that indentation is correct after the 9th item -->
<ol>
<li><p>One</p><p>Two</p></li>
<li><p>One</p><p>Two</p></li>
<li><p>One</p><p>Two</p></li>
<li><p>One</p><p>Two</p></li>
<li><p>One</p><p>Two</p></li>
<li><p>One</p><p>Two</p></li>
<li><p>One</p><p>Two</p></li>
<li><p>One</p><p>Two</p></li>
<li><p>One</p><p>Two</p></li>
<li><p>One</p><p>Two</p></li>
</ol>

View File

@@ -0,0 +1,39 @@
1. One
Two
2. One
Two
3. One
Two
4. One
Two
5. One
Two
6. One
Two
7. One
Two
8. One
Two
9. One
Two
10. One
Two

View File

@@ -0,0 +1 @@
<script id="appnexus-adload" data-reactid="7">window.apntag=window.apntag||{};window.apntag.anq=window.apntag.anq||[];</script>

File diff suppressed because one or more lines are too long

View File

View File

@@ -0,0 +1,4 @@
<table>
<tr><td>No</td><td>header</td></tr>
<tr><td>And no</td><td>suprises</td></tr>
</table>

View File

@@ -0,0 +1,4 @@
| | |
| --- | --- |
| No | header |
| And no | suprises |

View File

@@ -0,0 +1,15 @@
<table>
<tr>
<td colspan="2">
Something that was originally spanning two columns
</td>
</tr>
<tr>
<td>
One
</td>
<td>
Two
</td>
</tr>
</table>

View File

@@ -0,0 +1,4 @@
| | |
| --- | --- |
| Something that was originally spanning two columns | |
| One | Two |

View File

@@ -0,0 +1,10 @@
<table>
<tr>
<td></td>
<td>Previous is empty</td>
</tr>
<tr>
<td>Next is empty</td>
<td></td>
</tr>
</table>

View File

@@ -0,0 +1,4 @@
| | |
| --- | --- |
| | Previous is empty |
| Next is empty | |

View File

@@ -0,0 +1,13 @@
<table>
<tr>
<td>One</td><td>Two</td>
</tr>
<tr></tr>
<tr>
<td>One</td><td>Two</td>
</tr>
<tr></tr>
<tr>
<td>One</td><td>Two</td>
</tr>
</table>

View File

@@ -0,0 +1,5 @@
| | |
| --- | --- |
| One | Two |
| One | Two |
| One | Two |

View File

@@ -0,0 +1,6 @@
<table>
<tr>
<td><p>Some paragraph</p><p>inside a table cell</p></td>
<td>Second column</td>
</tr>
</table>

View File

@@ -0,0 +1,3 @@
| | |
| --- | --- |
| Some paragraph<br><br>inside a table cell | Second column |

View File

@@ -0,0 +1,16 @@
<!--
The inner table is rendered but not the outer one.
Basically if any table contains another table, it is rendered as plain text
-->
<table>
<tr><td>
First column, and an inner table:
<table>
<tr><td>One</td><td>Two</td></tr>
<tr><td>One</td><td>Two</td></tr>
</table>
</td>
<td>Second column</td>
</tr>
</table>

View File

@@ -0,0 +1,8 @@
First column, and an inner table:
| | |
| --- | --- |
| One | Two |
| One | Two |
Second column

View File

@@ -0,0 +1,54 @@
require('app-module-path').addPath(__dirname);
const { time } = require('lib/time-utils.js');
const { fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
const markdownUtils = require('lib/markdownUtils.js');
process.on('unhandledRejection', (reason, p) => {
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
});
describe('markdownUtils', function() {
beforeEach(async (done) => {
done();
});
it('should prepend a base URL', async (done) => {
const baseUrl = 'https://test.com/site';
const testCases = [
['[something](testing.html)', '[something](https://test.com/site/testing.html)'],
['![something](/img/test.png)', '![something](https://test.com/img/test.png)'],
['[![something](/img/test.png)](/index.html "Home page")', '[![something](https://test.com/img/test.png)](https://test.com/index.html "Home page")'],
['[onelink.com](/jmp/?id=123&u=http://something.com/test)', '[onelink.com](https://test.com/jmp/?id=123&u=http://something.com/test)'],
['[![some text](/img/test.png)](/jmp/?s=80&l=related&u=http://example.com "some decription")', '[![some text](https://test.com/img/test.png)](https://test.com/jmp/?s=80&l=related&u=http://example.com "some decription")'],
];
for (let i = 0; i < testCases.length; i++) {
const md = testCases[i][0];
const expected = testCases[i][1];
expect(markdownUtils.prependBaseUrl(md, baseUrl)).toBe(expected);
}
done();
});
it('should extract image URLs', async (done) => {
const testCases = [
['![something](http://test.com/img.png)', ['http://test.com/img.png']],
['![something](http://test.com/img.png) ![something2](http://test.com/img2.png)', ['http://test.com/img.png', 'http://test.com/img2.png']],
['![something](http://test.com/img.png "Some description")', ['http://test.com/img.png']],
];
for (let i = 0; i < testCases.length; i++) {
const md = testCases[i][0];
const expected = testCases[i][1];
expect(markdownUtils.extractImageUrls(md).join('')).toBe(expected.join(''));
}
done();
});
});

View File

@@ -0,0 +1,55 @@
require('app-module-path').addPath(__dirname);
const { time } = require('lib/time-utils.js');
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
const Folder = require('lib/models/Folder.js');
const Note = require('lib/models/Note.js');
const BaseModel = require('lib/BaseModel.js');
const { shim } = require('lib/shim');
process.on('unhandledRejection', (reason, p) => {
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
});
async function allItems() {
let folders = await Folder.all();
let notes = await Note.all();
return folders.concat(notes);
}
describe('models_Folder', function() {
beforeEach(async (done) => {
await setupDatabaseAndSynchronizer(1);
await switchClient(1);
done();
});
it('should tell if a notebook can be nested under another one', asyncTest(async () => {
let f1 = await Folder.save({ title: "folder1" });
let f2 = await Folder.save({ title: "folder2", parent_id: f1.id });
let f3 = await Folder.save({ title: "folder3", parent_id: f2.id });
let f4 = await Folder.save({ title: "folder4" });
expect(await Folder.canNestUnder(f1.id, f2.id)).toBe(false);
expect(await Folder.canNestUnder(f2.id, f2.id)).toBe(false);
expect(await Folder.canNestUnder(f3.id, f1.id)).toBe(true);
expect(await Folder.canNestUnder(f4.id, f1.id)).toBe(true);
expect(await Folder.canNestUnder(f2.id, f3.id)).toBe(false);
expect(await Folder.canNestUnder(f3.id, f2.id)).toBe(true);
expect(await Folder.canNestUnder(f1.id, '')).toBe(true);
expect(await Folder.canNestUnder(f2.id, '')).toBe(true);
}));
it('should recursively delete notes and sub-notebooks', asyncTest(async () => {
let f1 = await Folder.save({ title: "folder1" });
let f2 = await Folder.save({ title: "folder2", parent_id: f1.id });
let n1 = await Note.save({ title: 'note1', parent_id: f2.id });
await Folder.delete(f1.id);
const all = await allItems();
expect(all.length).toBe(0);
}));
});

View File

@@ -0,0 +1,39 @@
require('app-module-path').addPath(__dirname);
const { time } = require('lib/time-utils.js');
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
const Folder = require('lib/models/Folder.js');
const Note = require('lib/models/Note.js');
const BaseModel = require('lib/BaseModel.js');
const { shim } = require('lib/shim');
process.on('unhandledRejection', (reason, p) => {
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
});
describe('models_Note', function() {
beforeEach(async (done) => {
await setupDatabaseAndSynchronizer(1);
await switchClient(1);
done();
});
it('should find resource and note IDs', asyncTest(async () => {
let folder1 = await Folder.save({ title: "folder1" });
let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
let note2 = await Note.save({ title: 'ma deuxième note', body: 'Lien vers première note : ' + Note.markdownTag(note1), parent_id: folder1.id });
let items = await Note.linkedItems(note2.body);
expect(items.length).toBe(1);
expect(items[0].id).toBe(note1.id);
await shim.attachFileToNote(note2, __dirname + '/../tests/support/photo.jpg');
note2 = await Note.load(note2.id);
items = await Note.linkedItems(note2.body);
expect(items.length).toBe(2);
expect(items[0].type_).toBe(BaseModel.TYPE_NOTE);
expect(items[1].type_).toBe(BaseModel.TYPE_RESOURCE);
}));
});

View File

@@ -180,7 +180,7 @@ describe('services_InteropService', function() {
let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg');
note1 = await Note.load(note1.id);
let resourceIds = Note.linkedResourceIds(note1.body);
let resourceIds = await Note.linkedResourceIds(note1.body);
let resource1 = await Resource.load(resourceIds[0]);
await service.export({ path: filePath });
@@ -193,7 +193,7 @@ describe('services_InteropService', function() {
let note2 = (await Note.all())[0];
expect(note2.body).not.toBe(note1.body);
resourceIds = Note.linkedResourceIds(note2.body);
resourceIds = await Note.linkedResourceIds(note2.body);
expect(resourceIds.length).toBe(1);
let resource2 = await Resource.load(resourceIds[0]);
expect(resource2.id).not.toBe(resource1.id);
@@ -249,4 +249,28 @@ describe('services_InteropService', function() {
expect(folder2.title).toBe('folder1');
}));
it('should export and import links to notes', asyncTest(async () => {
const service = new InteropService();
const filePath = exportDir() + '/test.jex';
let folder1 = await Folder.save({ title: "folder1" });
let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
let note2 = await Note.save({ title: 'ma deuxième note', body: 'Lien vers première note : ' + Note.markdownTag(note1), parent_id: folder1.id });
await service.export({ path: filePath, sourceFolderIds: [folder1.id] });
await Note.delete(note1.id);
await Note.delete(note2.id);
await Folder.delete(folder1.id);
await service.import({ path: filePath });
expect(await Note.count()).toBe(2);
expect(await Folder.count()).toBe(1);
let note1_2 = await Note.loadByTitle('ma note');
let note2_2 = await Note.loadByTitle('ma deuxième note');
expect(note2_2.body.indexOf(note1_2.id) >= 0).toBe(true);
}));
});

View File

@@ -56,8 +56,8 @@ SyncTargetRegistry.addClass(SyncTargetOneDrive);
SyncTargetRegistry.addClass(SyncTargetNextcloud);
SyncTargetRegistry.addClass(SyncTargetDropbox);
// const syncTargetId_ = SyncTargetRegistry.nameToId("nextcloud");
const syncTargetId_ = SyncTargetRegistry.nameToId("memory");
const syncTargetId_ = SyncTargetRegistry.nameToId("nextcloud");
// const syncTargetId_ = SyncTargetRegistry.nameToId("memory");
//const syncTargetId_ = SyncTargetRegistry.nameToId('filesystem');
// const syncTargetId_ = SyncTargetRegistry.nameToId('dropbox');
const syncDir = __dirname + '/../tests/sync';

View File

@@ -0,0 +1,37 @@
require('app-module-path').addPath(__dirname);
const { time } = require('lib/time-utils.js');
const { fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
const urlUtils = require('lib/urlUtils.js');
process.on('unhandledRejection', (reason, p) => {
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
});
describe('urlUtils', function() {
beforeEach(async (done) => {
done();
});
it('should prepend a base URL', async (done) => {
expect(urlUtils.prependBaseUrl('testing.html', 'http://example.com')).toBe('http://example.com/testing.html');
expect(urlUtils.prependBaseUrl('testing.html', 'http://example.com/')).toBe('http://example.com/testing.html');
expect(urlUtils.prependBaseUrl('/jmp/?id=123&u=http://something.com/test', 'http://example.com/')).toBe('http://example.com/jmp/?id=123&u=http://something.com/test');
expect(urlUtils.prependBaseUrl('/testing.html', 'http://example.com/')).toBe('http://example.com/testing.html');
expect(urlUtils.prependBaseUrl('/testing.html', 'http://example.com/something')).toBe('http://example.com/testing.html');
expect(urlUtils.prependBaseUrl('/testing.html', 'https://example.com/something')).toBe('https://example.com/testing.html');
expect(urlUtils.prependBaseUrl('//somewhereelse.com/testing.html', 'https://example.com/something')).toBe('https://somewhereelse.com/testing.html');
expect(urlUtils.prependBaseUrl('//somewhereelse.com/testing.html', 'http://example.com/something')).toBe('http://somewhereelse.com/testing.html');
expect(urlUtils.prependBaseUrl('', 'http://example.com/something')).toBe('http://example.com/something');
expect(urlUtils.prependBaseUrl('testing.html', '')).toBe('testing.html');
// It shouldn't prepend anyting for these:
expect(urlUtils.prependBaseUrl('mailto:emailme@example.com', 'http://example.com')).toBe('mailto:emailme@example.com');
expect(urlUtils.prependBaseUrl('javascript:var%20testing=true', 'http://example.com')).toBe('javascript:var%20testing=true');
expect(urlUtils.prependBaseUrl('http://alreadyabsolute.com', 'http://example.com')).toBe('http://alreadyabsolute.com');
done();
});
});

1
Clipper/joplin-webclipper/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
dist/

View File

@@ -0,0 +1,48 @@
let browser_ = null;
if (typeof browser !== 'undefined') {
browser_ = browser;
browserSupportsPromises_ = true;
} else if (typeof chrome !== 'undefined') {
browser_ = chrome;
browserSupportsPromises_ = false;
}
function env() {
return !('update_url' in browser_.runtime.getManifest()) ? 'dev' : 'prod';
}
async function browserCaptureVisibleTabs(windowId, options) {
if (browserSupportsPromises_) return browser_.tabs.captureVisibleTab(windowId, { format: 'jpeg' });
return new Promise((resolve, reject) => {
browser_.tabs.captureVisibleTab(windowId, { format: 'jpeg' }, (image) => {
resolve(image);
});
});
}
browser_.runtime.onInstalled.addListener(function() {
if (env() === 'dev') {
browser_.browserAction.setIcon({
path: 'icons/32-dev.png',
});
}
});
browser_.runtime.onMessage.addListener((command) => {
if (command.name === 'screenshotArea') {
browserCaptureVisibleTabs(null, { format: 'jpeg' }).then((imageDataUrl) => {
content = Object.assign({}, command.content);
content.imageDataUrl = imageDataUrl;
fetch(command.apiBaseUrl + "/notes", {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(content)
});
});
}
});

View File

@@ -0,0 +1 @@
*.bundle.js

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,245 @@
(function() {
if (window.jopext_hasRun) return;
window.jopext_hasRun = true;
console.info('jopext: Loading content script');
let browser_ = null;
if (typeof browser !== 'undefined') {
browser_ = browser;
browserSupportsPromises_ = true;
} else if (typeof chrome !== 'undefined') {
browser_ = chrome;
browserSupportsPromises_ = false;
}
function pageTitle() {
const titleElements = document.getElementsByTagName("title");
if (titleElements.length) return titleElements[0].text.trim();
return document.title.trim();
}
function baseUrl() {
let output = location.origin + location.pathname;
if (output[output.length - 1] !== '/') {
output = output.split('/');
output.pop();
output = output.join('/');
}
return output;
}
// Cleans up element by removing all its invisible children (which we don't want to render as Markdown)
function cleanUpElement(element) {
const childNodes = element.childNodes;
for (let i = 0; i < childNodes.length; i++) {
const node = childNodes[i];
let isVisible = node.nodeType === 1 ? window.getComputedStyle(node).display !== 'none' : true;
if (isVisible && ['input', 'textarea', 'script', 'style', 'select', 'option', 'button'].indexOf(node.nodeName.toLowerCase()) >= 0) isVisible = false;
if (!isVisible) {
element.removeChild(node);
} else {
cleanUpElement(node);
}
}
}
function readabilityProcess() {
var uri = {
spec: location.href,
host: location.host,
prePath: location.protocol + "//" + location.host,
scheme: location.protocol.substr(0, location.protocol.indexOf(":")),
pathBase: location.protocol + "//" + location.host + location.pathname.substr(0, location.pathname.lastIndexOf("/") + 1)
};
// Readability directly change the passed document so clone it so as
// to preserve the original web page.
const documentClone = document.cloneNode(true);
const readability = new Readability(documentClone); // new window.Readability(uri, documentClone);
const article = readability.parse();
if (!article) throw new Error('Could not parse HTML document with Readability');
return {
title: article.title,
body: article.content,
}
}
async function prepareCommandResponse(command) {
console.info('Got command: ' + command.name);
if (command.name === "simplifiedPageHtml") {
let article = null;
try {
article = readabilityProcess();
} catch (error) {
console.warn(error);
console.warn('Sending full page HTML instead');
const newCommand = Object.assign({}, command, { name: 'completePageHtml' });
const response = await prepareCommandResponse(newCommand);
response.warning = 'Could not retrieve simplified version of page - full page has been saved instead.';
return response;
}
return {
name: 'clippedContent',
html: article.body,
title: article.title,
baseUrl: baseUrl(),
url: location.origin + location.pathname,
parentId: command.parentId,
};
} else if (command.name === "completePageHtml") {
const cleanDocument = document.body.cloneNode(true);
cleanUpElement(cleanDocument);
return {
name: 'clippedContent',
html: cleanDocument.innerHTML,
title: pageTitle(),
baseUrl: baseUrl(),
url: location.origin + location.pathname,
parentId: command.parentId,
};
} else if (command.name === 'screenshot') {
const overlay = document.createElement('div');
overlay.style.opacity = '0.6';
overlay.style.background = 'black';
overlay.style.width = '100%';
overlay.style.height = '100%';
overlay.style.zIndex = 99999999;
overlay.style.top = 0;
overlay.style.left = 0;
overlay.style.position = 'fixed';
document.body.appendChild(overlay);
const messageComp = document.createElement('div');
const messageCompWidth = 300;
messageComp.style.position = 'fixed'
messageComp.style.opacity = '0.95'
messageComp.style.fontSize = '14px';
messageComp.style.width = messageCompWidth + 'px'
messageComp.style.maxWidth = messageCompWidth + 'px'
messageComp.style.border = '1px solid black'
messageComp.style.background = 'white'
messageComp.style.top = '10px'
messageComp.style.textAlign = 'center';
messageComp.style.padding = '10px'
messageComp.style.left = Math.round(document.body.clientWidth / 2 - messageCompWidth / 2) + 'px'
messageComp.style.zIndex = overlay.style.zIndex + 1
messageComp.textContent = 'Drag and release to capture a screenshot';
document.body.appendChild(messageComp);
const selection = document.createElement('div');
selection.style.opacity = '0.4';
selection.style.border = '1px solid red';
selection.style.background = 'white';
selection.style.border = '2px solid black';
selection.style.zIndex = overlay.style.zIndex - 1;
selection.style.top = 0;
selection.style.left = 0;
selection.style.position = 'fixed';
document.body.appendChild(selection);
let isDragging = false;
let draggingStartPos = null;
let selectionArea = {};
function updateSelection() {
selection.style.left = selectionArea.x + 'px';
selection.style.top = selectionArea.y + 'px';
selection.style.width = selectionArea.width + 'px';
selection.style.height = selectionArea.height + 'px';
}
function setSelectionSizeFromMouse(event) {
selectionArea.width = Math.max(1, event.clientX - draggingStartPos.x);
selectionArea.height = Math.max(1, event.clientY - draggingStartPos.y);
updateSelection();
}
function selection_mouseDown(event) {
selectionArea = { x: event.clientX, y: event.clientY, width: 0, height: 0 }
draggingStartPos = { x: event.clientX, y: event.clientY };
isDragging = true;
updateSelection();
}
function selection_mouseMove(event) {
if (!isDragging) return;
setSelectionSizeFromMouse(event);
}
function selection_mouseUp(event) {
setSelectionSizeFromMouse(event);
isDragging = false;
overlay.removeEventListener('mousedown', selection_mouseDown);
overlay.removeEventListener('mousemove', selection_mouseMove);
overlay.removeEventListener('mouseup', selection_mouseUp);
document.body.removeChild(overlay);
document.body.removeChild(selection);
document.body.removeChild(messageComp);
if (!selectionArea || !selectionArea.width || !selectionArea.height) return;
// Need to wait a bit before taking the screenshot to make sure
// the overlays have been removed and don't appear in the
// screenshot. 10ms is not enough.
setTimeout(() => {
const content = {
title: pageTitle(),
cropRect: selectionArea,
url: location.origin + location.pathname,
parentId: command.parentId,
};
browser_.runtime.sendMessage({
name: 'screenshotArea',
content: content,
apiBaseUrl: command.apiBaseUrl,
});
}, 100);
}
overlay.addEventListener('mousedown', selection_mouseDown);
overlay.addEventListener('mousemove', selection_mouseMove);
overlay.addEventListener('mouseup', selection_mouseUp);
return {};
} else {
throw new Error('Unknown command: ' + JSON.stringify(command));
}
}
async function execCommand(command) {
const response = await prepareCommandResponse(command);
browser_.runtime.sendMessage(response);
}
browser_.runtime.onMessage.addListener((command) => {
console.info('jopext: Got command:', command);
execCommand(command);
});
})();

View File

@@ -0,0 +1,3 @@
// Add here all the external scripts that the content script might need
// and run browserify on it to create vendor.bundle.js
const Readability = require('readability-node').Readability;

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

View File

@@ -0,0 +1,47 @@
{
"manifest_version": 2,
"name": "Joplin Web Clipper",
"version": "1.0.2",
"description": "Gets and saves content from your browser to Joplin.",
"homepage_url": "https://joplin.cozic.net",
"icons": {
"48": "icons/48.png",
"96": "icons/96.png"
},
"permissions": [
"activeTab",
"tabs",
"http://*/",
"https://*/",
"<all_urls>",
"storage"
],
"browser_action": {
"default_icon": "icons/32.png",
"default_title": "Joplin Web Clipper",
"default_popup": "popup/build/index.html"
},
"content_scripts": [
{
"matches": ["*://*/"],
"js": ["main.js"]
}
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"applications": {
"gecko": {
"id": "{8419486a-54e9-11e8-9401-ac9e17909436}"
}
}
}

View File

@@ -0,0 +1,45 @@
{
"name": "joplin-webclipper",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"fs-extra": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz",
"integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==",
"dev": true,
"requires": {
"graceful-fs": "^4.1.2",
"jsonfile": "^4.0.0",
"universalify": "^0.1.0"
}
},
"graceful-fs": {
"version": "4.1.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"dev": true
},
"jsonfile": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
"dev": true,
"requires": {
"graceful-fs": "^4.1.6"
}
},
"readability-node": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/readability-node/-/readability-node-0.1.0.tgz",
"integrity": "sha1-DUBacMLCFZRKf0qbX3UGzQWpsao="
},
"universalify": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",
"integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=",
"dev": true
}
}
}

View File

@@ -0,0 +1,17 @@
{
"name": "joplin-webclipper",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "MIT",
"dependencies": {
"readability-node": "^0.1.0"
},
"devDependencies": {
"fs-extra": "^6.0.1"
}
}

View File

@@ -0,0 +1,21 @@
# See https://help.github.com/ignore-files/ for more about ignoring files.
# dependencies
node_modules
# testing
coverage
# production
build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*

View File

@@ -0,0 +1,22 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<div id="popup-content">
<div class="button" data-action="getCompletePageHtml">Complete HTMLxx</div>
<div class="button beast">Turtle</div>
<div class="button beast">Snake</div>
<div class="button reset">Reset</div>
</div>
<div id="error-content" class="hidden">
<p>Can't beastify this web page.</p><p>Try a different page.</p>
</div>
<script src="index.js"></script>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More