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

Compare commits

...

84 Commits

Author SHA1 Message Date
Laurent Cozic
71078637db Android release v1.0.281 2019-07-14 19:56:46 +01:00
Laurent Cozic
3e48992eb4 Clipper: Disabled preview for now as too many problems with it and not so useful 2019-07-14 09:46:06 +01:00
Laurent Cozic
bdb31f2890 Mobile: Fixed issue that could slow down app when displaying large list of notes 2019-07-13 23:55:28 +01:00
Laurent Cozic
0255546ae1 Mobile: Auto-save after toggling to-do state 2019-07-13 23:49:35 +01:00
Laurent Cozic
d066350eea Electron release v1.0.161 2019-07-13 19:18:34 +01:00
Laurent Cozic
a1e3260309 Clipper: Resolves #1160: Allow importing MathJax formulas, in particular from StackExchange 2019-07-13 19:17:28 +01:00
Laurent Cozic
be1f57a8a6 Desktop: Fixes #1727: Keep back button when opening a note link from the search results 2019-07-13 17:58:59 +01:00
Laurent Cozic
ca4dfe0f0f Desktop: Fixes #1724: Improved note selection and scrolling when moving a note to a different notebook 2019-07-13 17:40:09 +01:00
Laurent Cozic
fa69957d3f Desktop, CLI: Fixes #1723: Import Evernote audio files correctly 2019-07-13 17:26:47 +01:00
Laurent Cozic
f7203ed7e2 Desktop: Fixes #1720: Fixed issue with certain commands being repeated in some cases 2019-07-13 16:57:33 +01:00
Laurent Cozic
331858bd4f Desktop: Fixes #1704: Set note title to correct size when zoom is enabled 2019-07-13 16:46:52 +01:00
Laurent Cozic
4d2c9523a3 Desktop: Fixes #1699: Hide toolbar button text when it is below a certain size 2019-07-13 16:42:57 +01:00
Laurent Cozic
4d9d84a8f3 Merge branch 'master' of github.com:laurent22/joplin 2019-07-13 15:58:06 +01:00
Laurent Cozic
ec1089870f All: Fixes #1694: When deleting resource from sync target also delete associated data blob 2019-07-13 15:57:53 +01:00
Helmut K. C. Tessarek
dbedefc021 Desktop: Fixes #1342: Add override for ACE editor shortcut Ctrl+K (#1705) 2019-07-13 14:52:32 +01:00
Kirill Goncharov
f6b0da3f5e Android: Check filesystem permission if filesystem sync target is selected (#1665)
* Android: Check filesystem permission if filesystem sync target is selected

* Android: Change permission error text, don't prevent user from saving settings
2019-07-13 14:51:54 +01:00
Laurent Cozic
85bf89fd97 Android release v1.0.279 2019-07-12 19:44:23 +01:00
Laurent Cozic
c2a80b12f0 Mobile: More rendering optimisations to make animations smoother and to allow typing fast on large notes 2019-07-12 19:36:12 +01:00
Laurent Cozic
981c97cca5 Mobile: Optimising screen rendering to make text input faster 2019-07-12 18:32:08 +01:00
Laurent Cozic
091cbc5355 Mobile: Added sync button animation; Added notebook header; Improved layout of Edit Notebook screen 2019-07-12 18:07:47 +01:00
Laurent Cozic
e5a8114887 Mobile: Added icons to left sidebar 2019-07-11 18:44:26 +01:00
Laurent Cozic
4779fc6f43 Mobile: Remove search and side menu button from config screen 2019-07-11 18:26:04 +01:00
Laurent Cozic
86e7daaec4 Mobile: Cleaned context menu and moved options and metadata to side menu bar 2019-07-11 18:23:29 +01:00
Laurent Cozic
cab73a26e7 Mobile: Adding note side menu 2019-07-11 17:43:55 +01:00
Laurent Cozic
554ddb3b51 Mobile: Grouped file attachment action under one menu 2019-07-11 17:41:13 +01:00
Laurent Cozic
3b22bdb8ae Doc: Fixed Linux install command line for website 2019-07-10 18:18:31 +01:00
Laurent Cozic
5fdd07679e All: Fix: Only log master key ID 2019-07-10 17:35:08 +01:00
Laurent Cozic
69f75a1520 Doc: Updated old links 2019-07-10 17:00:10 +01:00
Laurent Cozic
f9b7acb8b1 Merge branch 'master' of github.com:laurent22/joplin 2019-07-10 16:41:20 +01:00
Laurent Cozic
91f700ad54 Doc: Updated email addresses 2019-07-10 16:41:13 +01:00
Robert
966aca7753 Update nl_NL.po (#1709)
* Update nl_NL.po

* Added ampersands to main menu items 

for the nl-nl translation
2019-07-05 13:00:53 -04:00
Helmut K. C. Tessarek
4de8816ed5 Merge pull request #1710 from Marmo/Marmo-translation-20190705
Translation: minor fixes (de_DE)
2019-07-05 11:26:32 -04:00
Marmo
bea68a1056 Minor translation fixes (de_DE) 2019-07-05 13:54:11 +02:00
Laurent Cozic
6fea7116b6 Mobile: Removed now unneeded Welcome screen 2019-06-29 00:24:00 +01:00
Laurent Cozic
2955914ca5 Mobile: Fixes #1690 (maybe): Process less data simultaneously when building search index to prevent out of memory errors 2019-06-28 23:49:43 +01:00
Laurent Cozic
fd150b5b9d Update website 2019-06-28 16:08:50 +01:00
Laurent Cozic
334ffad196 Doc: Added link to Mastodon feed 2019-06-28 16:04:05 +01:00
Charles
a796a9d179 API: Support is_todo property to allow making a note a todo (#1688) 2019-06-28 13:46:55 +01:00
Helmut K. C. Tessarek
917dcea28a use a command to get the current branch that works with older git versions
closes #1695
2019-06-28 05:02:21 -04:00
Laurent Cozic
c901228dc5 Merge branch 'master' of github.com:laurent22/joplin 2019-06-28 00:51:14 +01:00
Laurent Cozic
da21580785 Mobile: Added 'All notes' screen; Cleaned up header bar buttons; Removed 'body' from note preview object to improve memory usage 2019-06-28 00:51:02 +01:00
Laurent Cozic
4d92187327 Mobile: Added button to fix search engine index 2019-06-28 00:48:52 +01:00
Helmut K. C. Tessarek
207d433fb3 Desktop: Improved: Show git branch and hash in About dialog (#1692)
* show git branch and hash in About dialog

This additional info will only be shown, if the code is not an official release.

An official release is calculated as follows:
- current commit has a tag
- the tag contains the version number of the package

However, the information will always be printed to the console.

* info will now always be shown in About dialog (if available)

ElectronClient/app/compile-package-info.js: added warning
ElectronClient/app/app.js: push info conditionally to the message array

* use sprintf syntax
2019-06-27 15:04:02 +01:00
Laurent Cozic
ffc311d7bd Mobile: Moved slider value to the left so that it is visible while dragging 2019-06-27 00:05:17 +01:00
Laurent Cozic
a1e8e71359 Mobile: Added auto-save 2019-06-26 23:26:26 +01:00
Laurent Cozic
7942e74dc6 Mobile: Fixed field focus logic 2019-06-26 23:21:12 +01:00
Laurent Cozic
c4e21c2b6a Mobile: Added placeholders for note title and body, and focus body by default for notes 2019-06-26 23:00:25 +01:00
Laurent Cozic
0a06aa6f9f Mobile: When inside a note, do not show side menu and search buttons 2019-06-26 22:54:09 +01:00
Laurent Cozic
f985cfa25c Mobile: Removed arrow icon as it is rendered weirdly on device 2019-06-26 18:51:12 +01:00
Laurent Cozic
6e143aef5c Android release v1.0.277 2019-06-26 18:40:43 +01:00
Laurent Cozic
bf16aa6192 All: Better logging in case of error while indexing search 2019-06-26 18:36:42 +01:00
Laurent Cozic
d96c58d192 Mobile: Edit and delete notebooks by long-pressing them, and removed context menu on note lists 2019-06-26 18:28:09 +01:00
Laurent Cozic
e7e0264411 Mobile: Improved side menu: Made button panel fixed at the bottom, and added dark overlay over right side content 2019-06-26 18:05:37 +00:00
Laurent Cozic
430a11282b Mobile: Moved 'New notebook' button to sidebar 2019-06-26 01:10:15 +01:00
Laurent Cozic
9957b2798c Mobile: Moved config menu item to button on side bar 2019-06-26 00:35:26 +01:00
Laurent Cozic
2c5b0010bf Mobile: Removed concept of Advanced Options and move tools to Config screen to clean up context menu 2019-06-26 00:13:13 +01:00
Laurent Cozic
1e3c6ed98c Desktop: When doing local search do not split query into words 2019-06-25 23:09:53 +01:00
Laurent Cozic
484f290eb0 Clipper: Improved clipping selection by removing unecessary elements 2019-06-25 22:11:12 +01:00
Helmut K. C. Tessarek
06ad539941 Clipper release v1.0.17 2019-06-23 23:23:07 -04:00
Laurent Cozic
5b84e80ac4 Clipper: Fixes #1214: Include data from form fields when clipping forms 2019-06-24 00:57:39 +01:00
Laurent Cozic
ca0f349348 Merge branch 'master' of github.com:laurent22/joplin 2019-06-24 00:00:24 +01:00
Laurent Cozic
d79089aea3 Clipper: Fixes #1682: Do not clip elements that should be hidden 2019-06-24 00:00:11 +01:00
Eugene Odeluga
03611ad5ca Desktop: For Ubuntu users, added unity to if condition for desktop icon creation (#1683) 2019-06-23 22:24:58 +01:00
Helmut K. C. Tessarek
c78c1cd3cf Clipper release v1.0.16 2019-06-23 03:06:34 -04:00
水货
55afa7b5b7 Update zh_CN.po (#1681) 2019-06-23 03:00:41 -04:00
Laurent Cozic
a6c407b62b Doc: Mentioned Goto Anything feature 2019-06-22 19:06:54 +01:00
Laurent Cozic
21897a3cd4 Clipper: Resolves #1669: Handle special case of code block used on Microsoft website 2019-06-22 18:57:41 +01:00
Laurent Cozic
5796dd2098 Update translations 2019-06-22 13:10:13 +01:00
abonte
d050071437 update it_IT.po (#1680) 2019-06-22 12:45:35 +01:00
Laurent Cozic
eaf8510f49 Doc: Added requirement for unit tests 2019-06-22 12:44:31 +01:00
Laurent Cozic
6ee2595dce Desktop: Fixes #1676: Preserve user timestamps when adding note via API 2019-06-22 12:31:04 +01:00
Laurent Cozic
0ecf2d6d9a Merge branch 'master' of github.com:laurent22/joplin 2019-06-22 11:23:35 +01:00
Laurent Cozic
50fd075168 Desktop, CLI: Fixes #1672: Fix line break issue when importing certain notes from Evernotes 2019-06-22 11:23:22 +01:00
Helmut K. C. Tessarek
6fa76bb83a fix minor typo in README.md 2019-06-21 23:58:44 -04:00
Laurent Cozic
b175c1fc94 Desktop: Resolves #1649: Cache code blocks in notes to speed up rendering 2019-06-21 08:28:59 +01:00
Caleb John
b461625518 Desktop: Fixed issue with issue with watching file on Linux (#1659)
Watch for rename events in the external editor and re-watch file
2019-06-20 00:44:51 +01:00
Laurent Cozic
3819897ba1 Merge branch 'master' of github.com:laurent22/joplin 2019-06-20 00:02:29 +01:00
Laurent Cozic
6a031857ba Desktop: Fixes #1664: Disable certain menu items when no note or multiple notes are selected, and fixed menu item to set tag 2019-06-20 00:02:13 +01:00
Laurent Cozic
0e57b7eb46 iOS v10.0.36 2019-06-19 23:22:35 +01:00
Laurent Cozic
e21a0ba5b7 Update translations 2019-06-19 23:18:24 +01:00
Laurent Cozic
78f731e616 Merge branch 'master' of github.com:laurent22/joplin 2019-06-19 23:16:45 +01:00
Laurent Cozic
f6688a65ae iOS: Fixed bug that was preventing images from displaying 2019-06-19 23:16:37 +01:00
Laurent Cozic
035b9c6d1a Android: This is now needed to build the app 2019-06-19 21:51:22 +01:00
Laurent Cozic
266ff244d9 Revert "Mobile: Added button to clear local sync state"
Can cause too many issues.

This reverts commit 6ce091f4d8.
2019-06-19 21:50:26 +01:00
166 changed files with 2332 additions and 1263 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 986 B

BIN
Assets/AdresseSupport.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

@@ -16,10 +16,12 @@ File bugs in the [Github Issue Tracker](https://github.com/laurent22/joplin/issu
Please check that your request has not already been posted in the [Github Issue Tracker](https://github.com/laurent22/joplin/issues?utf8=%E2%9C%93&q=is%3Aissue). If it has, **up-voting the issue** increases the chances it'll be noticed and implemented in the future. "+1" comments are not tracked.
As a general rule, suggestions to _improve Joplin_ should be posted first in the [Joplin Forum](https://discourse.joplinapp.org/) for discussion.
As a general rule, suggestions to *improve Joplin* should be posted first in the [Joplin Forum](https://discourse.joplinapp.org/) for discussion.
Avoid listing multiple requests in one report in the [Github Issue Tracker](https://github.com/laurent22/joplin/issues?utf8=%E2%9C%93&q=is%3Aissue). One issue per request makes it easier to track and discuss it.
Finally, when submitting a pull request, don't forget to [test your code](#unit-tests).
# Contribute to the project
## Contributing to Joplin's translation
@@ -42,3 +44,20 @@ There are only two rules, but not following them means the pull request will not
- **Please use tabs, NOT spaces.**
- **Please do not add or remove optional characters, such as spaces or colons.** Please setup your editor so that it only changes what you are working on and is not making automated changes elsewhere. The reason for this is that small white space changes make diff hard to read and can cause needless conflicts.
## Unit tests
When submitting a pull request for a new feature or bug fix, please add unit tests for your code. Unit testing GUI changes is not always possible so it is not required, but any change in a file under /lib for example should be unit tested.
The tests are under CliClient/tests. To get them running, you first need to build the CLI app:
cd CliClient
npm i
Then to run all the test units:
./run_test.sh
To run just one particular file:
./run_test.sh markdownUtils # Don't add the .js extension

View File

@@ -670,12 +670,18 @@ msgstr "مائل"
msgid "Link"
msgstr "رابط"
msgid "Code"
msgstr "رمز"
msgid "Insert Date Time"
msgstr "إدراج التاريخ والوقت"
msgid "Edit in external editor"
msgstr "التحرير في محرر خارجي"
msgid "Tags"
msgstr "وسوم"
msgid "Search in all the notes"
msgstr "البحث في كل الملاحظات"
@@ -1053,9 +1059,6 @@ msgstr "إدراج ارتباط تشعبي"
msgid "Attach file"
msgstr "إرفاق ملف"
msgid "Tags"
msgstr "وسوم"
msgid "Set alarm"
msgstr "ضبط منبّه"
@@ -1066,9 +1069,6 @@ msgstr "في: %s"
msgid "Hyperlink"
msgstr "ارتباط تشعبي"
msgid "Code"
msgstr "رمز"
msgid "Numbered List"
msgstr "قائمة مرقّمة"
@@ -1912,6 +1912,10 @@ msgstr "لا يوجد عنصر بالمعرّف %s"
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr "تطبيق Joplin على الهاتف الجوال لا يدعم حالياً هذا النوع من الربط : %s"
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "نوع صورة غير مدعوم: %s"

View File

@@ -7,16 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Joplin-CLI 1.0.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: bg_BG\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"X-Generator: Poedit 2.2.3\n"
"Last-Translator: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: bg_BG\n"
msgid "To delete a tag, untag the associated notes."
msgstr "За да изтриете таг, премахнете го от всички бележки."
@@ -689,12 +687,18 @@ msgstr "Курсив"
msgid "Link"
msgstr "Линк"
msgid "Code"
msgstr "Код"
msgid "Insert Date Time"
msgstr "Постави датата и часа"
msgid "Edit in external editor"
msgstr "Редактирай във външен редактор"
msgid "Tags"
msgstr "Тагове"
msgid "Search in all the notes"
msgstr "Търсене във всички бележки"
@@ -1084,9 +1088,6 @@ msgstr "Вкарай линк"
msgid "Attach file"
msgstr "Прикачи файл"
msgid "Tags"
msgstr "Тагове"
msgid "Set alarm"
msgstr "Задай аларма"
@@ -1097,9 +1098,6 @@ msgstr "В: %s"
msgid "Hyperlink"
msgstr "Линк"
msgid "Code"
msgstr "Код"
msgid "Numbered List"
msgstr "Номериран списък"
@@ -1962,6 +1960,10 @@ msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
"Мобилното приложение на Joplin в момента не поддържа този вид линкове: %s"
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Този тип изображения не се поддържа: %s"

View File

@@ -697,12 +697,18 @@ msgstr ""
msgid "Link"
msgstr ""
msgid "Code"
msgstr ""
msgid "Insert Date Time"
msgstr ""
msgid "Edit in external editor"
msgstr ""
msgid "Tags"
msgstr "Etiquetes"
msgid "Search in all the notes"
msgstr "Cerca a totes les notes"
@@ -1093,9 +1099,6 @@ msgstr ""
msgid "Attach file"
msgstr "Adjunta un fitxer"
msgid "Tags"
msgstr "Etiquetes"
msgid "Set alarm"
msgstr "Estableix una alarma"
@@ -1106,9 +1109,6 @@ msgstr "A: %s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
@@ -1960,6 +1960,10 @@ msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
"L'aplicació mòbil del Joplin, ara per ara, no admet aquest tipus d'enllaç: %s"
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Tipus d'imatge no admesa: %s"

View File

@@ -679,12 +679,18 @@ msgstr "Kurzíva"
msgid "Link"
msgstr "Odkaz"
msgid "Code"
msgstr "Kód"
msgid "Insert Date Time"
msgstr "Vložit datum a čas"
msgid "Edit in external editor"
msgstr "Upravit externím editorem"
msgid "Tags"
msgstr "Tagy"
msgid "Search in all the notes"
msgstr "Hledat ve všech poznámkách"
@@ -1067,9 +1073,6 @@ msgstr "Vložit odkaz"
msgid "Attach file"
msgstr "Přiložit soubor"
msgid "Tags"
msgstr "Tagy"
msgid "Set alarm"
msgstr "Nastavit alarm"
@@ -1080,9 +1083,6 @@ msgstr "%s: %s"
msgid "Hyperlink"
msgstr "Odkaz"
msgid "Code"
msgstr "Kód"
msgid "Numbered List"
msgstr "Číslovanáý seznam"
@@ -1935,6 +1935,10 @@ msgstr "Nenalezena položka s ID %s"
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr "Mobilní aplikace Joplin aktuálně nepodporuje tento typ odkazu:% s"
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Nepodporovaný formát obrázku: %s"

View File

@@ -684,12 +684,18 @@ msgstr ""
msgid "Link"
msgstr ""
msgid "Code"
msgstr ""
msgid "Insert Date Time"
msgstr ""
msgid "Edit in external editor"
msgstr ""
msgid "Tags"
msgstr "Mærker"
msgid "Search in all the notes"
msgstr "Søg i alle noter"
@@ -1070,9 +1076,6 @@ msgstr ""
msgid "Attach file"
msgstr "Vedhæft fil"
msgid "Tags"
msgstr "Mærker"
msgid "Set alarm"
msgstr "Indstil alarm"
@@ -1083,9 +1086,6 @@ msgstr "%s: %s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
@@ -1936,6 +1936,10 @@ msgstr ""
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Ulovlig billedtype: %s"

View File

@@ -597,7 +597,7 @@ msgstr ""
#, javascript-format
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
msgstr "Exportiere „%s“ ins „%s“ Format. Bitte warten..."
msgstr "Exportiere „%s“ ins „%s“-Format. Bitte warten..."
msgid "Sidebar"
msgstr "Seitenleiste"
@@ -606,14 +606,14 @@ msgid "Note list"
msgstr "Notizen-Liste"
msgid "Note title"
msgstr "Notiz Titel"
msgstr "Notiz-Titel"
msgid "Note body"
msgstr "Notiz Text"
msgstr "Notiz-Text"
#, javascript-format
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
msgstr "Importiere „%s“ ins „%s“ Format. Bitte warten..."
msgstr "Importiere „%s“ als „%s“-Format. Bitte warten..."
msgid "PDF File"
msgstr "PDF-Datei"
@@ -701,12 +701,18 @@ msgstr "Kursiv"
msgid "Link"
msgstr "Link"
msgid "Code"
msgstr "Code"
msgid "Insert Date Time"
msgstr "Datum / Uhrzeit einfügen"
msgid "Edit in external editor"
msgstr "Im externen Editor bearbeiten"
msgid "Tags"
msgstr "Schlagwörter"
msgid "Search in all the notes"
msgstr "Alle Notizen durchsuchen"
@@ -1100,9 +1106,6 @@ msgstr "Weblink einfügen"
msgid "Attach file"
msgstr "Datei anhängen"
msgid "Tags"
msgstr "Schlagwörter"
msgid "Set alarm"
msgstr "Alarm erstellen"
@@ -1113,9 +1116,6 @@ msgstr "In: %s"
msgid "Hyperlink"
msgstr "Weblink"
msgid "Code"
msgstr "Code"
msgid "Numbered List"
msgstr "Nummerierte Liste"
@@ -1983,6 +1983,10 @@ msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
"Die Joplin Handy-Applikation unterstützt derzeit diese Art von Link nicht: %s"
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Nicht unterstütztes Fotoformat: %s"

View File

@@ -610,12 +610,18 @@ msgstr ""
msgid "Link"
msgstr ""
msgid "Code"
msgstr ""
msgid "Insert Date Time"
msgstr ""
msgid "Edit in external editor"
msgstr ""
msgid "Tags"
msgstr ""
msgid "Search in all the notes"
msgstr ""
@@ -969,9 +975,6 @@ msgstr ""
msgid "Attach file"
msgstr ""
msgid "Tags"
msgstr ""
msgid "Set alarm"
msgstr ""
@@ -982,9 +985,6 @@ msgstr ""
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
@@ -1785,6 +1785,10 @@ msgstr ""
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr ""

View File

@@ -616,12 +616,18 @@ msgstr ""
msgid "Link"
msgstr ""
msgid "Code"
msgstr ""
msgid "Insert Date Time"
msgstr ""
msgid "Edit in external editor"
msgstr ""
msgid "Tags"
msgstr ""
msgid "Search in all the notes"
msgstr "Search in all notes"
@@ -987,9 +993,6 @@ msgstr ""
msgid "Attach file"
msgstr ""
msgid "Tags"
msgstr ""
msgid "Set alarm"
msgstr ""
@@ -1000,9 +1003,6 @@ msgstr ""
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
@@ -1817,6 +1817,10 @@ msgstr ""
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr ""

View File

@@ -691,12 +691,18 @@ msgstr "Cursiva"
msgid "Link"
msgstr "Enlace"
msgid "Code"
msgstr "Código"
msgid "Insert Date Time"
msgstr "Introduce fecha"
msgid "Edit in external editor"
msgstr "Editar con un editor externo"
msgid "Tags"
msgstr "Etiquetas"
msgid "Search in all the notes"
msgstr "Buscar en todas las notas"
@@ -1081,9 +1087,6 @@ msgstr "Insertar hipervínculo"
msgid "Attach file"
msgstr "Adjuntar archivo"
msgid "Tags"
msgstr "Etiquetas"
msgid "Set alarm"
msgstr "Establecer alarma"
@@ -1094,9 +1097,6 @@ msgstr "En: %s"
msgid "Hyperlink"
msgstr "Hipervínculo"
msgid "Code"
msgstr "Código"
msgid "Numbered List"
msgstr "Lista numerada"
@@ -1959,6 +1959,10 @@ 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 "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Tipo de imagen no soportado: %s"

View File

@@ -692,12 +692,18 @@ msgstr ""
msgid "Link"
msgstr ""
msgid "Code"
msgstr ""
msgid "Insert Date Time"
msgstr ""
msgid "Edit in external editor"
msgstr ""
msgid "Tags"
msgstr "Etiketak"
msgid "Search in all the notes"
msgstr "Bilatu ohar guztietan"
@@ -1079,9 +1085,6 @@ msgstr ""
msgid "Attach file"
msgstr "Erantsi fitxategia"
msgid "Tags"
msgstr "Etiketak"
msgid "Set alarm"
msgstr "Ezarri alarma"
@@ -1092,9 +1095,6 @@ msgstr "%s: %s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
@@ -1957,6 +1957,10 @@ msgstr ""
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Irudi formatua ez onartua: %s"

View File

@@ -617,12 +617,18 @@ msgstr ""
msgid "Link"
msgstr "لینک"
msgid "Code"
msgstr "کد"
msgid "Insert Date Time"
msgstr "وارد کردن تاریخ و ساعت"
msgid "Edit in external editor"
msgstr "تنظیم ویرایشگر خارجی"
msgid "Tags"
msgstr "برچسب‌ها"
msgid "Search in all the notes"
msgstr "جستجو در تمام یادداشت ها"
@@ -981,9 +987,6 @@ msgstr "وارد کردن لینک"
msgid "Attach file"
msgstr "پیوست فایل"
msgid "Tags"
msgstr "برچسب‌ها"
msgid "Set alarm"
msgstr ""
@@ -994,9 +997,6 @@ msgstr "در: %s"
msgid "Hyperlink"
msgstr "لینک"
msgid "Code"
msgstr "کد"
#, fuzzy
msgid "Numbered List"
msgstr "لیست ترتیبی"
@@ -1808,6 +1808,10 @@ msgstr ""
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr ""

View File

@@ -686,12 +686,18 @@ msgstr "Italique"
msgid "Link"
msgstr "Lien"
msgid "Code"
msgstr "Code"
msgid "Insert Date Time"
msgstr "Insérer la date et l'heure"
msgid "Edit in external editor"
msgstr "Ouvrir dans un éditeur externe"
msgid "Tags"
msgstr "Étiquettes"
msgid "Search in all the notes"
msgstr "Chercher dans toutes les notes"
@@ -1084,9 +1090,6 @@ msgstr "Insérer lien"
msgid "Attach file"
msgstr "Attacher un fichier"
msgid "Tags"
msgstr "Étiquettes"
msgid "Set alarm"
msgstr "Régler alarme"
@@ -1097,9 +1100,6 @@ msgstr "Dans : %s"
msgid "Hyperlink"
msgstr "Lien"
msgid "Code"
msgstr "Code"
msgid "Numbered List"
msgstr "Liste numérotée"
@@ -1439,9 +1439,9 @@ msgid ""
"the attachments are downloaded whether you open the note or not."
msgstr ""
"En mode \"manuel\", les ressources sont téléchargées uniquement lorsque vous "
"cliquez dessus. En mode \"auto\", elle sont téléchargée lorsque vous ouvrez "
"la note. En mode \"toujours\", toutes les ressources sont téléchargées, que "
"vous ayez ouvert la note ou pas."
"cliquez dessus. En mode \"auto\", elles sont téléchargées lorsque vous "
"ouvrez la note. En mode \"toujours\", toutes les ressources sont "
"téléchargées, que vous ayez ouvert la note ou pas."
msgid "Always"
msgstr "Toujours"
@@ -1961,6 +1961,10 @@ 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 "Links with protocol \"%s\" are not supported"
msgstr "Le schéma d'URI \"%s\" n'est pas supporté"
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Type d'image non géré : %s"

View File

@@ -684,12 +684,18 @@ msgstr ""
msgid "Link"
msgstr ""
msgid "Code"
msgstr ""
msgid "Insert Date Time"
msgstr ""
msgid "Edit in external editor"
msgstr ""
msgid "Tags"
msgstr "Etiquetas"
msgid "Search in all the notes"
msgstr "Buscar en todas as notas"
@@ -1069,9 +1075,6 @@ msgstr ""
msgid "Attach file"
msgstr "Anexar un ficheiro"
msgid "Tags"
msgstr "Etiquetas"
msgid "Set alarm"
msgstr "Estabelecer alarma"
@@ -1082,9 +1085,6 @@ msgstr "%s: %s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
@@ -1936,6 +1936,10 @@ msgstr ""
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Tipo de imaxe incompatíbel: %s"

View File

@@ -689,12 +689,18 @@ msgstr ""
msgid "Link"
msgstr ""
msgid "Code"
msgstr ""
msgid "Insert Date Time"
msgstr ""
msgid "Edit in external editor"
msgstr ""
msgid "Tags"
msgstr "Oznake"
msgid "Search in all the notes"
msgstr "Pretraži u svim bilješkama"
@@ -1064,9 +1070,6 @@ msgstr ""
msgid "Attach file"
msgstr "Priloži datoteku"
msgid "Tags"
msgstr "Oznake"
msgid "Set alarm"
msgstr "Postavi upozorenje"
@@ -1077,9 +1080,6 @@ msgstr "%s: %s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
@@ -1930,6 +1930,10 @@ msgstr ""
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Nepodržana vrsta slike: %s"

View File

@@ -692,12 +692,18 @@ msgstr "Corsivo"
msgid "Link"
msgstr "Link"
msgid "Code"
msgstr "Codice"
msgid "Insert Date Time"
msgstr "Inserisci data e ora"
msgid "Edit in external editor"
msgstr "Modifica in un editor esterno"
msgid "Tags"
msgstr "Tag"
msgid "Search in all the notes"
msgstr "Cerca in tutte le note"
@@ -729,7 +735,7 @@ msgid "Make a donation"
msgstr "Fai una donazione"
msgid "Toggle development tools"
msgstr ""
msgstr "Attiva / disattiva strumenti di sviluppo"
#, javascript-format
msgid "Open %s"
@@ -749,7 +755,7 @@ msgstr "La versione attuale è aggiornata."
#, javascript-format
msgid "%s (pre-release)"
msgstr ""
msgstr "%s (pre-rilascio)"
msgid "An update is available, do you want to download it now?"
msgstr "È disponibile un aggiornamento, vuoi scaricarlo ora?"
@@ -985,9 +991,8 @@ msgstr "Alcuni elementi non possono essere sincronizzati."
msgid "View them now"
msgstr "Mostrali ora"
#, fuzzy
msgid "One or more master keys need a password."
msgstr "Inserisci password principale:"
msgstr "Una o più chiavi master necessitano di una password."
msgid "Set the password"
msgstr "Imposta la password"
@@ -1084,9 +1089,6 @@ msgstr "Inserire collegamento ipertestuale"
msgid "Attach file"
msgstr "Allega File"
msgid "Tags"
msgstr "Tag"
msgid "Set alarm"
msgstr "Imposta Allarme"
@@ -1097,9 +1099,6 @@ msgstr "In: %s"
msgid "Hyperlink"
msgstr "Collegamento ipertestuale"
msgid "Code"
msgstr "Codice"
msgid "Numbered List"
msgstr "Elenco Numerato"
@@ -1185,18 +1184,19 @@ msgstr "Taccuini"
msgid "Decrypting items: %d/%d"
msgstr "Decrittografia Elementi: %d/%d"
#, fuzzy, javascript-format
#, javascript-format
msgid "Fetching resources: %d/%d"
msgstr "Risorse: %d/%d"
msgstr "Recupero risorse: %d/%d"
msgid "Please select where the sync status should be exported to"
msgstr ""
"Prego selezionare dove lo stato della sincronizzazione deve essere esportato"
msgid "Retry"
msgstr ""
msgstr "Riprova"
msgid "Add or remove tags"
msgstr "Aggiungi o rimuovi etichetta"
msgstr "Aggiungi o rimuovi etichette"
msgid "Duplicate"
msgstr "Duplicare"
@@ -1229,9 +1229,11 @@ msgid ""
"Type a note title to jump to it. Or type # followed by a tag name, or @ "
"followed by a notebook name."
msgstr ""
"Scrivi il titolo di una nota per saltare ad essa. Oppure digita # seguito "
"dal nome di una etichetta, oppure @ seguito dal nome di un taccuino."
msgid "Goto Anything..."
msgstr ""
msgstr "Vai a..."
#, javascript-format
msgid "Usage: %s"
@@ -1348,6 +1350,8 @@ msgstr "La sincronizzazione è già in corso. Stato: %s"
msgid ""
"Unknown item type downloaded - please upgrade Joplin to the latest version"
msgstr ""
"Tipo elemento scaricato sconosciuto - prego aggiornare Joplin all’ultima "
"versione"
msgid "Encrypted"
msgstr "Crittografato"
@@ -1391,6 +1395,9 @@ msgid ""
"to it before syncing, otherwise all files will be removed! See the FAQ for "
"more details: %s"
msgstr ""
"Attenzione: se si cambia questa posizione, accertarsi di copiare tutto il "
"contenuto prima di sincronizzare, altrimenti tutti i file saranno rimossi! "
"Vedi le FAQ per maggiori dettagli: %s"
msgid "Synchronisation target"
msgstr "Destinazione di sincronizzazione"
@@ -1424,13 +1431,16 @@ msgid "WebDAV password"
msgstr "Password WebDAV"
msgid "Attachment download behaviour"
msgstr ""
msgstr "Comportamento scaricamento allegati"
msgid ""
"In \"Manual\" mode, attachments are downloaded only when you click on them. "
"In \"Auto\", they are downloaded when you open the note. In \"Always\", all "
"the attachments are downloaded whether you open the note or not."
msgstr ""
"In modalità \"Manuale\", gli allegati sono scaricati solo quando si clicca su "
"di essi. In \"Auto\" sono scaricati quando si apre la nota. In \"Sempre\" tutti "
"gli allegati sono scaricati sia che si apra o no la nota."
msgid "Always"
msgstr "Sempre"
@@ -1442,7 +1452,7 @@ msgid "Auto"
msgstr "Auto"
msgid "Max concurrent connections"
msgstr ""
msgstr "Massimo numero di connessioni concorrenti"
msgid "Language"
msgstr "Linguaggio"
@@ -1499,7 +1509,7 @@ msgid "Enable math expressions"
msgstr "Attiva espressioni matematiche"
msgid "Enable ==mark== syntax"
msgstr ""
msgstr "Attiva sintassi ==mark=="
msgid "Enable footnotes"
msgstr "Attiva note a piè pagina"
@@ -1508,10 +1518,10 @@ msgid "Enable table of contents extension"
msgstr ""
msgid "Enable ~sub~ syntax"
msgstr ""
msgstr "Attiva sintassi ~sub~"
msgid "Enable ^sup^ syntax"
msgstr ""
msgstr "Attiva sintassi ^sup^"
msgid "Enable deflist syntax"
msgstr ""
@@ -1523,7 +1533,7 @@ msgid "Enable markdown emoji"
msgstr ""
msgid "Enable ++insert++ syntax"
msgstr ""
msgstr "Attiva sintassi ++insert++"
msgid "Enable multimarkdown table extension"
msgstr ""
@@ -1544,7 +1554,7 @@ msgstr ""
"costantemente le tue note e quindi ridurre il numero di conflitti."
msgid "Start application minimised in the tray icon"
msgstr ""
msgstr "Avvia applicazione minimizzata nell’icona del vassoio"
msgid "Global zoom percentage"
msgstr "Percentuale di zoom globale"
@@ -1567,11 +1577,11 @@ msgid "Automatically update the application"
msgstr "Aggiorna automaticamente l'applicazione"
msgid "Get pre-releases when checking for updates"
msgstr ""
msgstr "Ottieni pre-rilasci durante controllo aggiornamenti"
#, javascript-format
msgid "See the pre-release page for more details: %s"
msgstr ""
msgstr "Vedi la pagina di pre-rilascio per maggiori dettagli: %s"
msgid "Synchronisation interval"
msgstr "Intervallo di sincronizzazione"
@@ -1631,7 +1641,7 @@ msgid "%d days"
msgstr "%d giorni"
msgid "Keep note history for"
msgstr ""
msgstr "Mantieni cronologia nota per"
#, javascript-format
msgid "Invalid option value: \"%s\". Possible values are: %s."
@@ -1650,7 +1660,7 @@ msgid "Note"
msgstr "Nota"
msgid "Plugins"
msgstr ""
msgstr "Plugins"
msgid "Application"
msgstr "Applicazione"
@@ -1725,15 +1735,17 @@ msgstr "%s (%s) non può essere caricato: %s"
msgid "Item \"%s\" could not be downloaded: %s"
msgstr "Elemento \"%s\" non può essere scaricato: %s"
#, fuzzy
msgid "Items that cannot be decrypted"
msgstr "Elementi che non possono essere sincronizzati"
msgstr "Elementi che non possono essere decriptati"
msgid ""
"Joplin failed to decrypt these items multiple times, possibly because they "
"are corrupted or too large. These items will remain on the device but Joplin "
"will no longer attempt to decrypt them."
msgstr ""
"Joplin ha fallito la decriptazione di questi elementi più volte, forse "
"perché sono corrotti o troppo grandi. Questi elementi rimarranno sul "
"dispositivo, ma Joplin non proverà più a decriptarli."
msgid "Sync status (synced items / total items)"
msgstr "Stato di sincronizzazione (Elementi sincronizzati / Elementi totali)"
@@ -1828,6 +1840,9 @@ msgid ""
"Error. Please check that URL, username, password, etc. are correct and that "
"the sync target is accessible. The reported error was:"
msgstr ""
"Errore. Prego controllare che URL, nome utente, password, etc. siano corretti "
"e che la destinazione di sincronizzazione sia accessibile. L’errore "
"riportato era:"
msgid "The application has been authorised!"
msgstr "L'applicazione è stata autorizzata con successo!"
@@ -1840,6 +1855,11 @@ msgid ""
"\n"
"Please try again."
msgstr ""
"Non è stato possibile autorizzare l’applicazione:\n"
"\n"
"%s\n"
"\n"
"Riprovare prego."
#, javascript-format
msgid "Decrypted items: %s / %s"
@@ -1851,9 +1871,8 @@ msgstr "Nuovi tag:"
msgid "Type new tags or select from list"
msgstr "Digita nuovi tag o seleziona dalla lista"
#, fuzzy
msgid "More information"
msgstr "Configurazione"
msgstr "Maggiori informazioni"
msgid ""
"To work correctly, the app needs the following permissions. Please enable "
@@ -1944,6 +1963,10 @@ msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
"L'app mobile Joplin attualmente non supporta questo tipo di collegamento: %s"
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr "Collegamenti con protocollo \"%s\" non sono supportati"
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Tipo di immagine non supportata: %s"

View File

@@ -678,12 +678,18 @@ msgstr "斜体"
msgid "Link"
msgstr ""
msgid "Code"
msgstr "コード"
msgid "Insert Date Time"
msgstr "日付の入力"
msgid "Edit in external editor"
msgstr "外部エディターで編集"
msgid "Tags"
msgstr "タグ"
msgid "Search in all the notes"
msgstr "すべてのノートを検索"
@@ -1069,9 +1075,6 @@ msgstr "ハイパーリンクの挿入"
msgid "Attach file"
msgstr "ファイルを添付する"
msgid "Tags"
msgstr "タグ"
msgid "Set alarm"
msgstr "アラームをセット"
@@ -1082,9 +1085,6 @@ msgstr "内: %s"
msgid "Hyperlink"
msgstr "ハイパーリンク"
msgid "Code"
msgstr "コード"
msgid "Numbered List"
msgstr "番号つきリスト"
@@ -1938,6 +1938,10 @@ msgstr "ID %s のアイテムはありません"
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr "Joplinモバイルアプリは次のタイプのリンクをまだサポートしていません: %s"
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "サポートされていない画像の形式: %s"

View File

@@ -610,12 +610,18 @@ msgstr ""
msgid "Link"
msgstr ""
msgid "Code"
msgstr ""
msgid "Insert Date Time"
msgstr ""
msgid "Edit in external editor"
msgstr ""
msgid "Tags"
msgstr ""
msgid "Search in all the notes"
msgstr ""
@@ -969,9 +975,6 @@ msgstr ""
msgid "Attach file"
msgstr ""
msgid "Tags"
msgstr ""
msgid "Set alarm"
msgstr ""
@@ -982,9 +985,6 @@ msgstr ""
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
@@ -1785,6 +1785,10 @@ msgstr ""
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr ""

View File

@@ -675,12 +675,18 @@ msgstr "기울임"
msgid "Link"
msgstr ""
msgid "Code"
msgstr "코드"
msgid "Insert Date Time"
msgstr "날짜와 시간 입력"
msgid "Edit in external editor"
msgstr "외부 편집기에서 편집하기"
msgid "Tags"
msgstr "태그"
msgid "Search in all the notes"
msgstr "모든 노트에서 검색"
@@ -1063,9 +1069,6 @@ msgstr "하이퍼링크 삽입"
msgid "Attach file"
msgstr "파일 첨부"
msgid "Tags"
msgstr "태그"
msgid "Set alarm"
msgstr "알람 설정"
@@ -1076,9 +1079,6 @@ msgstr "내부: %s"
msgid "Hyperlink"
msgstr "하이퍼링크"
msgid "Code"
msgstr "코드"
msgid "Numbered List"
msgstr "숫자가 매겨진 목록"
@@ -1929,6 +1929,10 @@ msgstr "ID %s에 해당하는 항목이 없습니다"
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr "조플린 모바일 앱은 현재 해당 형식의 링크를 지원하지 않습니다: %s"
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "지원하지 않는 이미지 형식: %s"

View File

@@ -677,12 +677,18 @@ msgstr "Kursiv"
msgid "Link"
msgstr "Lenke"
msgid "Code"
msgstr "Kode"
msgid "Insert Date Time"
msgstr "Sett inn dato/tid"
msgid "Edit in external editor"
msgstr "Rediger i ekstern editor"
msgid "Tags"
msgstr "Merkelapper"
msgid "Search in all the notes"
msgstr "Søk i alle notater"
@@ -1066,9 +1072,6 @@ msgstr "Sett inn hyperlenke"
msgid "Attach file"
msgstr "Legg ved fil"
msgid "Tags"
msgstr "Merkelapper"
msgid "Set alarm"
msgstr "Angi alarm"
@@ -1079,9 +1082,6 @@ msgstr "I: %s"
msgid "Hyperlink"
msgstr "Hyperlenke"
msgid "Code"
msgstr "Kode"
msgid "Numbered List"
msgstr "Nummerert liste"
@@ -1934,6 +1934,10 @@ msgstr "Ingen elementer med ID %s"
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr "Joplins mobilapp støtter for tiden ikke denne type linker: %s"
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Bildetypen er ikke støttet: %s"

View File

@@ -694,12 +694,18 @@ msgstr ""
msgid "Link"
msgstr ""
msgid "Code"
msgstr ""
msgid "Insert Date Time"
msgstr ""
msgid "Edit in external editor"
msgstr ""
msgid "Tags"
msgstr "Tags"
msgid "Search in all the notes"
msgstr "Zoek in alle notities"
@@ -1083,9 +1089,6 @@ msgstr ""
msgid "Attach file"
msgstr "Voeg bestand toe"
msgid "Tags"
msgstr "Tags"
msgid "Set alarm"
msgstr "Zet melding"
@@ -1096,9 +1099,6 @@ msgstr "%s: %s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
@@ -1960,6 +1960,10 @@ msgstr ""
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Afbeeldingstype %s wordt niet ondersteund"

View File

@@ -13,8 +13,10 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.1.1\n"
"X-Generator: Poedit 2.2.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
msgid "To delete a tag, untag the associated notes."
msgstr ""
@@ -127,13 +129,12 @@ msgstr "Markeert een taak als afgerond."
msgid "Note is not a to-do: \"%s\""
msgstr "Notitie is geen taak: \"%s\""
#, fuzzy
msgid ""
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
"`status`, `decrypt-file` and `target-status`."
msgstr ""
"Beheert de E2EE-configuratie. Opdrachten zijn: `enable`, `disable`, "
"`decrypt`, `status` en `target-status`."
"`decrypt`, `status`, `decrypt-file` en `target-status`."
msgid "Enter master password:"
msgstr "Voer het hoofdwachtwoord in:"
@@ -260,13 +261,13 @@ msgid "To enter command line mode, press \":\""
msgstr "Druk op \":\" om de opdrachtregelmodus te starten."
msgid "To exit command line mode, press ESCAPE"
msgstr "Druk op Esc om de opdrachtregelmodus af te sluiten."
msgstr "Druk op Esc om de opdrachtregelmodus af te sluiten"
msgid ""
"For the list of keyboard shortcuts and config options, type `help keymap`"
msgstr ""
"Typ `help keymap` om de lijst met sneltoetsen en configuratie-opties te "
"bekijken."
"bekijken"
msgid "Imports data into Joplin."
msgstr "Importeert gegeven naar Joplin."
@@ -459,21 +460,20 @@ msgid "Starting synchronisation..."
msgstr "Bezig met starten van synchronisatie..."
msgid "Downloading resources..."
msgstr ""
msgstr "Resources downloaden…"
msgid "Cancelling... Please wait."
msgstr "Bezig met annuleren... Even geduld."
#, fuzzy
msgid ""
"<tag-command> can be \"add\", \"remove\" or \"list\" to assign or remove "
"[tag] from [note], or to list the notes associated with [tag]. The command "
"`tag list` can be used to list all the tags (use -l for long option)."
msgstr ""
"<tag-command> kan zijn \"add\", \"remove\" of \"list\" om [tag] toe te "
"<tag-command> kan \"add\", \"remove\" of \"list\" zijn om [tag] toe te "
"wijzen aan of te verwijderen uit [note] of om de met [tag] geassocieerde "
"notities op te sommen. De opdracht `tag list` kan worden gebruikt om alle "
"labels op te sommen."
"labels op te sommen (gebruik “-l” voor “long” optie)."
#, javascript-format
msgid "Invalid command: \"%s\""
@@ -587,18 +587,16 @@ msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
msgstr "Bezig met exporteren van \"%s\" in het formaat \"%s\". Even geduld..."
msgid "Sidebar"
msgstr ""
msgstr "Zijbalk"
msgid "Note list"
msgstr ""
msgstr "Notitielijst"
#, fuzzy
msgid "Note title"
msgstr "Titel van notitieboek:"
msgstr "Titel van notitie"
#, fuzzy
msgid "Note body"
msgstr "Notitieboeken"
msgstr "Inhoud van notitie"
#, javascript-format
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
@@ -635,15 +633,14 @@ msgstr "Webclipper-opties"
msgid "%s %s (%s, %s)"
msgstr "%s %s (%s, %s)"
#, fuzzy
msgid "&File"
msgstr "Bestand"
msgstr "&Bestand"
msgid "About Joplin"
msgstr "Over Joplin"
msgid "Preferences..."
msgstr ""
msgstr "Voorkeuren…"
msgid "Check for updates..."
msgstr "Controleren op updates..."
@@ -665,11 +662,10 @@ msgid "Quit"
msgstr "Afsluiten"
msgid "Close Window"
msgstr ""
msgstr "Venster afsluiten"
#, fuzzy
msgid "&Edit"
msgstr "Bewerken"
msgstr "Be&werken"
msgid "Copy"
msgstr "Kopiëren"
@@ -680,9 +676,8 @@ msgstr "Knippen"
msgid "Paste"
msgstr "Plakken"
#, fuzzy
msgid "Select all"
msgstr "Datum kiezen"
msgstr "Alles selecteren"
msgid "Bold"
msgstr "Vetgedrukt"
@@ -691,7 +686,10 @@ msgid "Italic"
msgstr "Cursief"
msgid "Link"
msgstr ""
msgstr "Koppeling"
msgid "Code"
msgstr "Code"
msgid "Insert Date Time"
msgstr "Datum en tijd invoegen"
@@ -699,16 +697,17 @@ msgstr "Datum en tijd invoegen"
msgid "Edit in external editor"
msgstr "Bewerken in externe bewerker"
msgid "Tags"
msgstr "Labels"
msgid "Search in all the notes"
msgstr "Alle notities doorzoeken"
#, fuzzy
msgid "Search in current note"
msgstr "Alle notities doorzoeken"
msgstr "Huidige notitie doorzoeken"
#, fuzzy
msgid "&View"
msgstr "Beeld"
msgstr "Beel&d"
msgid "Toggle sidebar"
msgstr "Zijbalk tonen/verbergen"
@@ -716,17 +715,14 @@ msgstr "Zijbalk tonen/verbergen"
msgid "Toggle editor layout"
msgstr "Bewerkindeling tonen/verbergen"
#, fuzzy
msgid "Focus"
msgstr "Inhoud focussen"
msgstr "Focus"
#, fuzzy
msgid "&Tools"
msgstr "Hulpmiddelen"
msgstr "E&xtra"
#, fuzzy
msgid "&Help"
msgstr "Hulp"
msgstr "&Help"
msgid "Website and documentation"
msgstr "Website en documentatie"
@@ -735,7 +731,7 @@ msgid "Make a donation"
msgstr "Doneren"
msgid "Toggle development tools"
msgstr ""
msgstr "Wissel ontwikkelhulpmiddelen"
#, javascript-format
msgid "Open %s"
@@ -755,18 +751,18 @@ msgstr "De huidige versie is up-to-date."
#, javascript-format
msgid "%s (pre-release)"
msgstr ""
msgstr "%s (pre-release)"
msgid "An update is available, do you want to download it now?"
msgstr "Er is een update beschikbaar. Wil je deze nu downloaden?"
#, javascript-format
msgid "Your version: %s"
msgstr ""
msgstr "Jouw versie: %s"
#, javascript-format
msgid "New version: %s"
msgstr ""
msgstr "Nieuwe versie: %s"
msgid "Yes"
msgstr "Ja"
@@ -775,7 +771,7 @@ msgid "No"
msgstr "Nee"
msgid "Token has been copied to the clipboard!"
msgstr ""
msgstr "Token is naar het klembord gekopieerd!"
msgid "The web clipper service is enabled and set to auto-start."
msgstr "De webclipper-dienst is ingeschakeld en wordt automatisch opgestart."
@@ -826,20 +822,21 @@ msgstr "Stap 2: Installeer de extensie"
msgid "Download and install the relevant extension for your browser:"
msgstr "Download en installeer de bijbehorende extensie in je browser:"
#, fuzzy
msgid "Advanced options"
msgstr "Geavanceerde opties tonen"
msgstr "Geavanceerde opties"
msgid "Authorisation token:"
msgstr ""
msgstr "Autorisatie-token:"
msgid "Copy token"
msgstr ""
msgstr "Kopieer token"
msgid ""
"This authorisation token is only needed to allow third-party applications to "
"access Joplin."
msgstr ""
"Dit autorisatie-token is alleen nodig om applicaties van derden toegang te "
"geven tot Joplin."
#, javascript-format
msgid "Notes and settings are stored in: %s"
@@ -849,7 +846,7 @@ msgid "Check synchronisation configuration"
msgstr "Synchronisatieconfiguratie controleren"
msgid "Browse..."
msgstr ""
msgstr "Bladeren…"
msgid "Apply"
msgstr "Toepassen"
@@ -945,9 +942,8 @@ msgstr "Status"
msgid "Encryption is:"
msgstr "Gebruikte versleuteling:"
#, fuzzy
msgid "Usage"
msgstr "Gebruik: %s"
msgstr "Gebruik"
msgid "Back"
msgstr "Terug"
@@ -992,9 +988,8 @@ msgstr "Sommige items kunnen niet worden gesynchroniseerd."
msgid "View them now"
msgstr "Items tonen"
#, fuzzy
msgid "One or more master keys need a password."
msgstr "Voer het hoofdwachtwoord in:"
msgstr "Een of meer hoofdsleutels vereist een wachtwoord."
msgid "Set the password"
msgstr "Wachtwoord instellen"
@@ -1011,37 +1006,38 @@ msgstr ""
"\"Nieuw notitieboek\"."
msgid "Location"
msgstr ""
msgstr "Locatie"
msgid "URL"
msgstr ""
msgstr "URL"
#, fuzzy
msgid "Note History"
msgstr "Notitieboeken"
msgstr "Notitiegeschiedenis"
msgid "Previous versions of this note"
msgstr ""
msgstr "Vorige versies van deze notitie"
msgid "Note properties"
msgstr ""
msgstr "Eigenschappen van notitie"
#, javascript-format
msgid "The note \"%s\" has been successfully restored to the notebook \"%s\"."
msgstr ""
msgstr "De notitie “%s” is succesvol hersteld naar notitieboek “%s”."
#, fuzzy
msgid "This note has no history"
msgstr "Deze notitie is bewerkt:"
msgstr "Deze notitie heeft geen geschiedenis"
msgid "Restore"
msgstr ""
msgstr "Herstel"
#, javascript-format
msgid ""
"Click \"%s\" to restore the note. It will be copied in the notebook named "
"\"%s\". The current version of the note will not be replaced or modified."
msgstr ""
"Klik “%s” om de notitie te herstellen. Het wordt gekopieerd naar het "
"notitieboek genaamd “%s”. De huidige versie van de notitie wordt niet "
"vervangen of aangepast."
msgid "Open..."
msgstr "Openen..."
@@ -1060,7 +1056,7 @@ msgid "Copy Link Address"
msgstr "Linkadres kopiëren"
msgid "This attachment is not downloaded or not decrypted yet."
msgstr ""
msgstr "Deze bijlage is niet gedownload of nog niet ontsleuteld."
#, javascript-format
msgid "Unsupported link or message: %s"
@@ -1076,6 +1072,8 @@ msgstr ""
msgid "Only one note can be printed or exported to PDF at a time."
msgstr ""
"Slechts één notitie kan gelijktijdig worden afgedrukt of geëxporteerd naar "
"PDF."
msgid "strong text"
msgstr "vetgedrukte tekst"
@@ -1092,9 +1090,6 @@ msgstr "Hyperlink invoegen"
msgid "Attach file"
msgstr "Bestand bijvoegen"
msgid "Tags"
msgstr "Labels"
msgid "Set alarm"
msgstr "Alarm instellen"
@@ -1105,9 +1100,6 @@ msgstr "In: %s"
msgid "Hyperlink"
msgstr "Hyperlink"
msgid "Code"
msgstr "Code"
msgid "Numbered List"
msgstr "Genummerde lijst"
@@ -1163,21 +1155,23 @@ msgstr "Versleutelopties"
msgid "Clipper Options"
msgstr "Webclipperopties"
#, fuzzy, javascript-format
#, javascript-format
msgid ""
"Delete notebook \"%s\"?\n"
"\n"
"All notes and sub-notebooks within this notebook will also be deleted."
msgstr ""
"Notitieboek verwijderen? Alle notities en sub-notitieboeken worden eveneens "
"Notitieboek “%s” verwijderen?\n"
"\n"
"Alle notities en sub-notitieboeken in dit notitieboek worden eveneens "
"verwijderd."
#, fuzzy, javascript-format
#, javascript-format
msgid "Remove tag \"%s\" from all notes?"
msgstr "Wil je dit label verwijderen van alle notities?"
msgstr "Label “%s” verwijderen van alle notities?"
msgid "Remove this search from the sidebar?"
msgstr "Wil je deze zoekopdracht verwijderen uit de zijbalk?"
msgstr "Deze zoekopdracht verwijderen uit de zijbalk?"
msgid "Delete"
msgstr "Verwijderen"
@@ -1192,15 +1186,15 @@ msgstr "Notitieboeken"
msgid "Decrypting items: %d/%d"
msgstr "Bezig met ontsleutelen van items: %d/%d"
#, fuzzy, javascript-format
#, javascript-format
msgid "Fetching resources: %d/%d"
msgstr "Bronnen: %d/%d"
msgstr "Bronnen ophalen: %d/%d"
msgid "Please select where the sync status should be exported to"
msgstr "Kies waar de synchronisatiestatus naar moet worden geëxporteerd"
msgid "Retry"
msgstr ""
msgstr "Opnieuw proberen"
msgid "Add or remove tags"
msgstr "Labels toevoegen of verwijderen"
@@ -1215,32 +1209,32 @@ msgstr "%s - kopiëren"
msgid "Switch between note and to-do type"
msgstr "Schakelen tussen notitie en taak"
#, fuzzy
msgid "Switch to note type"
msgstr "Schakelen tussen notitie en taak"
msgstr "Overschakelen naar notitie-type"
#, fuzzy
msgid "Switch to to-do type"
msgstr "Schakelen tussen notitie en taak"
msgstr "Overschakelen naar todo-type"
msgid "Copy Markdown link"
msgstr "Markdownlink kopiëren"
#, fuzzy, javascript-format
#, javascript-format
msgid "Delete note \"%s\"?"
msgstr "Notities verwijderen?"
msgstr "Notitie “%s” verwijderen?"
#, fuzzy, javascript-format
#, javascript-format
msgid "Delete these %d notes?"
msgstr "Deze notities verwijderen?"
msgstr "Deze %d notities verwijderen?"
msgid ""
"Type a note title to jump to it. Or type # followed by a tag name, or @ "
"followed by a notebook name."
msgstr ""
"Typ de titel van een notitie om er naartoe te springen. Of typ # gevolgd "
"door de naam van een label, of @ gevolgd door de naam van een notitieboek."
msgid "Goto Anything..."
msgstr ""
msgstr "Ga naar alles…"
#, javascript-format
msgid "Usage: %s"
@@ -1357,6 +1351,7 @@ msgstr "De synchronisatie loopt al. Status: %s"
msgid ""
"Unknown item type downloaded - please upgrade Joplin to the latest version"
msgstr ""
"Onbekend type item gedownload - graag Joplin upgraden naar de laatste versie"
msgid "Encrypted"
msgstr "Versleuteld"
@@ -1400,6 +1395,9 @@ msgid ""
"to it before syncing, otherwise all files will be removed! See the FAQ for "
"more details: %s"
msgstr ""
"Let op: Als je deze locatie wijzigt, zorg dan dat je eerst alle inhoud hier "
"naartoe kopieert voor synchronisatie. Anders worden alle bestanden "
"verwijderd! Zie de FAQ voor meer details: %s"
msgid "Synchronisation target"
msgstr "Synchronisatiedoel"
@@ -1434,25 +1432,29 @@ msgid "WebDAV password"
msgstr "WebDAV-wachtwoord"
msgid "Attachment download behaviour"
msgstr ""
msgstr "Gedrag bijlagen downloaden"
msgid ""
"In \"Manual\" mode, attachments are downloaded only when you click on them. "
"In \"Auto\", they are downloaded when you open the note. In \"Always\", all "
"the attachments are downloaded whether you open the note or not."
msgstr ""
"In de mode “Handmatig” worden bijlagen alleen gedownload als je hen "
"aanklikt. In “Auto” worden ze gedownload zodra je de notitie opent. In "
"“Altijd” worden bijlagen altijd gedownload, of je de notitie nu opent of "
"niet."
msgid "Always"
msgstr ""
msgstr "Altijd"
msgid "Manual"
msgstr ""
msgstr "Handmatig"
msgid "Auto"
msgstr ""
msgstr "Auto"
msgid "Max concurrent connections"
msgstr ""
msgstr "Max gelijktijdige verbindingen"
msgid "Language"
msgstr "Taal"
@@ -1484,9 +1486,8 @@ msgstr "Notities sorteren op"
msgid "Reverse sort order"
msgstr "Sorteervolgorde omdraaien"
#, fuzzy
msgid "Sort notebooks by"
msgstr "Notities sorteren op"
msgstr "Notitieboeken sorteren op"
msgid "Save geo-location with notes"
msgstr "Locatie opslaan in notities"
@@ -1504,41 +1505,40 @@ msgid "When creating a new note:"
msgstr "Bij het creëren van een nieuwe notitie:"
msgid "Enable soft breaks"
msgstr ""
msgstr "Inschakelen zacht afbreken"
#, fuzzy
msgid "Enable math expressions"
msgstr "Versleuteling inschakelen"
msgstr "Inschakelen wiskundige expressies"
msgid "Enable ==mark== syntax"
msgstr ""
msgstr "Inschakelen ==mark== syntaxis"
msgid "Enable footnotes"
msgstr ""
msgstr "Inschakelen voetnoten"
msgid "Enable table of contents extension"
msgstr ""
msgstr "Inschakelen inhoudsopgave"
msgid "Enable ~sub~ syntax"
msgstr ""
msgstr "Inschakelen ~sub~ syntaxis"
msgid "Enable ^sup^ syntax"
msgstr ""
msgstr "Inschakelen ^sup^ syntaxis"
msgid "Enable deflist syntax"
msgstr ""
msgstr "Inschakelen deflist syntaxis"
msgid "Enable abbreviation syntax"
msgstr ""
msgstr "Inschakelen afkortingen syntaxis"
msgid "Enable markdown emoji"
msgstr ""
msgstr "Inschakelen markdown emoji"
msgid "Enable ++insert++ syntax"
msgstr ""
msgstr "Inschakelen ++insert++ syntaxis"
msgid "Enable multimarkdown table extension"
msgstr ""
msgstr "Inschakelen multimarkdown tabel extensie"
msgid "Show tray icon"
msgstr "Systeemvakpictogram tonen"
@@ -1551,16 +1551,18 @@ msgid ""
"this setting so that your notes are constantly being synchronised, thus "
"reducing the number of conflicts."
msgstr ""
"Dit zal Joplin toestaan in de achtergrond te werken. Het is aanbevolen deze "
"instelling in te schakelen, zodat je notities constant worden "
"gesynchroniseerd, waardoor het aantal conflicten wordt beperkt."
msgid "Start application minimised in the tray icon"
msgstr ""
msgstr "Start applicatie geminimaliseerd in het systeemvak"
msgid "Global zoom percentage"
msgstr "Globaal zoompercentage"
#, fuzzy
msgid "Editor font size"
msgstr "Lettertype van bewerker"
msgstr "Lettergrootte van bewerker"
msgid "Editor font family"
msgstr "Lettertype van bewerker"
@@ -1577,11 +1579,11 @@ msgid "Automatically update the application"
msgstr "Applicatie automatisch bijwerken"
msgid "Get pre-releases when checking for updates"
msgstr ""
msgstr "Verkrijg pre-releases bij controleren op updates"
#, javascript-format
msgid "See the pre-release page for more details: %s"
msgstr ""
msgstr "Zie de pre-release pagina voor meer details: %s"
msgid "Synchronisation interval"
msgstr "Synchronisatietussenpoos"
@@ -1630,49 +1632,44 @@ msgstr ""
msgid "Ignore TLS certificate errors"
msgstr "TLS-certificaatfouten negeren"
#, fuzzy
msgid "Enable note history"
msgstr "Versleuteling inschakelen"
msgstr "Inschakelen geschiedenis van notities"
msgid "days"
msgstr ""
msgstr "dagen"
#, javascript-format
msgid "%d days"
msgstr ""
msgstr "%d dagen"
msgid "Keep note history for"
msgstr ""
msgstr "Bewaar geschiedenis van notities voor"
#, javascript-format
msgid "Invalid option value: \"%s\". Possible values are: %s."
msgstr "Ongeldige optie: \"%s\". Geldige waarden zijn: %s."
#, fuzzy
msgid "General"
msgstr "Algemene opties"
msgstr "Algemeen"
#, fuzzy
msgid "Synchronisation"
msgstr "Synchronisatiestatus"
msgstr "Synchronisatie"
msgid "Appearance"
msgstr ""
msgstr "Verschijningsvorm"
#, fuzzy
msgid "Note"
msgstr "Notitieboeken"
msgstr "Notitie"
msgid "Plugins"
msgstr ""
msgstr "Plugins"
#, fuzzy
msgid "Application"
msgstr "Sluit de applicatie af."
msgstr "Applicatie"
#, javascript-format
msgid "The tag \"%s\" already exists. Please choose a different name."
msgstr ""
msgstr "Het label “%s” bestaat al. Kies een andere naam."
msgid "Joplin Export File"
msgstr "Joplin-exportbestand"
@@ -1686,9 +1683,8 @@ msgstr "Joplin-exportmap"
msgid "Evernote Export File"
msgstr "Evernote-exportbestand"
#, fuzzy
msgid "Json Export Directory"
msgstr "Joplin-exportmap"
msgstr "JSON-exportmap"
msgid "File"
msgstr "Bestand"
@@ -1720,7 +1716,7 @@ msgstr ""
"Geef het notitieboek op waar de notities naar moeten worden geïmporteerd."
msgid "Restored Notes"
msgstr ""
msgstr "Herstelde notities"
msgid "Items that cannot be synchronised"
msgstr "Items die niet kunnen worden gesynchroniseerd"
@@ -1734,23 +1730,25 @@ msgstr ""
"synchronisatiedoel. Als je deze items wilt vinden, moet je zoeken naar de "
"titel of ID ervan (welke hierboven tussen haakjes wordt getoond)."
#, fuzzy, javascript-format
#, javascript-format
msgid "%s (%s) could not be uploaded: %s"
msgstr "Dit bestand kan niet worden geopend: %s"
msgstr "%s (%s) kon niet worden geupload: %s"
#, fuzzy, javascript-format
#, javascript-format
msgid "Item \"%s\" could not be downloaded: %s"
msgstr "Dit bestand kan niet worden geopend: %s"
msgstr "Item “%s” kan niet worden gedownload: %s"
#, fuzzy
msgid "Items that cannot be decrypted"
msgstr "Items die niet kunnen worden gesynchroniseerd"
msgstr "Items die niet kunnen worden ontsleuteld"
msgid ""
"Joplin failed to decrypt these items multiple times, possibly because they "
"are corrupted or too large. These items will remain on the device but Joplin "
"will no longer attempt to decrypt them."
msgstr ""
"Joplin kon deze items meermaals niet ontsleutelen, mogelijk omdat ze "
"beschadigd of te groot zijn. Deze items blijven op het apparaat, maar Joplin "
"zal niet langer proberen ze te ontsleutelen."
msgid "Sync status (synced items / total items)"
msgstr ""
@@ -1787,10 +1785,10 @@ msgid "On %s: %s"
msgstr "Op %s: %s"
msgid "Permission to use camera"
msgstr ""
msgstr "Toestemming om de camera te gebruiken"
msgid "Your permission to use your camera is required."
msgstr ""
msgstr "Je toestemming om de camera te gebruiken is vereist."
msgid "There are currently no notes. Create one by clicking on the (+) button."
msgstr ""
@@ -1822,12 +1820,11 @@ msgstr "%d notities verplaatsen naar notitieboek \"%s\"?"
msgid "Press to set the decryption password."
msgstr "Druk om het ontsleutelwachtwoord in te stellen."
#, fuzzy
msgid "Clear alarm"
msgstr "Alarm instellen"
msgstr "Alarm wissen"
msgid "Save alarm"
msgstr "Alarm opslaam"
msgstr "Alarm opslaan"
msgid "Select date"
msgstr "Datum kiezen"
@@ -1838,22 +1835,21 @@ msgstr "Bevestigen"
msgid "Cancel synchronisation"
msgstr "Synchronisatie annuleren"
#, fuzzy
msgid "Checking... Please wait."
msgstr "Bezig met annuleren... Even geduld."
msgstr "Controleren Even geduld."
#, fuzzy
msgid "Success! Synchronisation configuration appears to be correct."
msgstr "Synchronisatieconfiguratie controleren"
msgstr "Succes! Configuratie van synchronisatie lijkt correct te zijn."
msgid ""
"Error. Please check that URL, username, password, etc. are correct and that "
"the sync target is accessible. The reported error was:"
msgstr ""
"Fout. Controleer of de URL, gebruikersnaam, wachtwoord, etc. kloppen en dat "
"het synchronisatiedoel toegankelijk is. De gemelde fout :"
#, fuzzy
msgid "The application has been authorised!"
msgstr "De applicatie is geautoriseerd."
msgstr "De applicatie is geautoriseerd!"
#, javascript-format
msgid ""
@@ -1863,10 +1859,15 @@ msgid ""
"\n"
"Please try again."
msgstr ""
"Kon applicatie niet autoriseren:\n"
"\n"
"%s\n"
"\n"
"Probeer opnieuw."
#, fuzzy, javascript-format
#, javascript-format
msgid "Decrypted items: %s / %s"
msgstr "Bezig met ontsleutelen van items: %d/%d"
msgstr "Ontsleutelde items: %s / %s"
msgid "New tags:"
msgstr "Nieuwe labels:"
@@ -1874,9 +1875,8 @@ msgstr "Nieuwe labels:"
msgid "Type new tags or select from list"
msgstr "Typ nieuwe labels of kies ze uit de lijst"
#, fuzzy
msgid "More information"
msgstr "Configuratie"
msgstr "Meer informatie"
msgid ""
"To work correctly, the app needs the following permissions. Please enable "
@@ -1904,17 +1904,17 @@ msgstr "Joplin-website"
#, javascript-format
msgid "Database v%s"
msgstr ""
msgstr "Database v%s"
#, fuzzy, javascript-format
#, javascript-format
msgid "FTS enabled: %d"
msgstr "Te verwijderen: %d"
msgstr "FTS ingeschakeld: %d"
msgid "Login with Dropbox"
msgstr "Inloggen met Dropbox"
msgid "Enter code here"
msgstr ""
msgstr "Code hier invoeren"
#, javascript-format
msgid "Master Key %s"
@@ -1963,13 +1963,16 @@ msgstr "Geen item met ID %s"
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr "De mobiele Joplin-app ondersteunt momenteel niet dit soort links: %s"
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr "Links met protocol “%s” worden niet ondersteund"
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Niet-ondersteunde afbeeldingssoort: %s"
#, fuzzy
msgid "Take photo"
msgstr "Foto bijvoegen"
msgstr "Foto maken"
msgid "Attach photo"
msgstr "Foto bijvoegen"
@@ -1996,7 +1999,7 @@ msgid "View on map"
msgstr "Tonen op kaart"
msgid "Go to source URL"
msgstr ""
msgstr "Ga naar bron-URL"
msgid "Edit"
msgstr "Bewerken"

View File

@@ -696,12 +696,18 @@ msgstr "Kursywa"
msgid "Link"
msgstr "Odnośnik"
msgid "Code"
msgstr "Kod"
msgid "Insert Date Time"
msgstr "Wstaw stempel czasowy"
msgid "Edit in external editor"
msgstr "Edytuj w edytorze zewnętrznym"
msgid "Tags"
msgstr "Znaczniki"
msgid "Search in all the notes"
msgstr "Wyszukaj we wszystkich notatkach"
@@ -1088,9 +1094,6 @@ msgstr "Wstaw Hyperlink"
msgid "Attach file"
msgstr "Załącz plik"
msgid "Tags"
msgstr "Znaczniki"
msgid "Set alarm"
msgstr "Ustaw powiadomienie"
@@ -1101,9 +1104,6 @@ msgstr "W: %s"
msgid "Hyperlink"
msgstr "Hyperlink"
msgid "Code"
msgstr "Kod"
msgid "Numbered List"
msgstr "Lista numerowana"
@@ -1970,6 +1970,10 @@ msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
"Aplikacja mobilna Joplin nie wspiera aktualnie odnośników tego typu: %s"
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Niewspierany typ obrazu: %s"

View File

@@ -684,12 +684,18 @@ msgstr "Itálico"
msgid "Link"
msgstr "Link"
msgid "Code"
msgstr "Código"
msgid "Insert Date Time"
msgstr "Inserir Data e Hora"
msgid "Edit in external editor"
msgstr "Editar com editor externo"
msgid "Tags"
msgstr "Tags"
msgid "Search in all the notes"
msgstr "Pesquisar em todas as notas"
@@ -1072,9 +1078,6 @@ msgstr "Inserir Hiperlink"
msgid "Attach file"
msgstr "Anexar arquivo"
msgid "Tags"
msgstr "Tags"
msgid "Set alarm"
msgstr "Definir alarme"
@@ -1085,9 +1088,6 @@ msgstr "Em: %s"
msgid "Hyperlink"
msgstr "Hiperlink"
msgid "Code"
msgstr "Código"
msgid "Numbered List"
msgstr "Lista numerada"
@@ -1947,6 +1947,10 @@ msgstr "Nenhum item com ID %s"
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr "O app mobile do Joplin não suporta, atualmente, esse tipo de link: %s"
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Tipo de imagem não suportada: %s"

View File

@@ -628,12 +628,18 @@ msgstr ""
msgid "Link"
msgstr ""
msgid "Code"
msgstr "Cod"
msgid "Insert Date Time"
msgstr ""
msgid "Edit in external editor"
msgstr "Editați într-un editor extern"
msgid "Tags"
msgstr "Etichete"
msgid "Search in all the notes"
msgstr "Căutați în toate notițele"
@@ -995,9 +1001,6 @@ msgstr "Introduceți hyperlink"
msgid "Attach file"
msgstr "Atașați fișier"
msgid "Tags"
msgstr "Etichete"
msgid "Set alarm"
msgstr "Setați alarma"
@@ -1008,9 +1011,6 @@ msgstr "În: %s"
msgid "Hyperlink"
msgstr "Hyperlink"
msgid "Code"
msgstr "Cod"
msgid "Numbered List"
msgstr "Listă numerotată"
@@ -1826,6 +1826,10 @@ msgstr "Niciun item cu ID-ul %s"
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr ""

View File

@@ -690,12 +690,18 @@ msgstr "Наклонный"
msgid "Link"
msgstr "Ссылка"
msgid "Code"
msgstr "Код"
msgid "Insert Date Time"
msgstr "Вставить дату и время"
msgid "Edit in external editor"
msgstr "Редактировать во внешнем редакторе"
msgid "Tags"
msgstr "Метки"
msgid "Search in all the notes"
msgstr "Поиск во всех заметках"
@@ -1080,9 +1086,6 @@ msgstr "Вставить гиперссылку"
msgid "Attach file"
msgstr "Прикрепить файл"
msgid "Tags"
msgstr "Метки"
msgid "Set alarm"
msgstr "Установить напоминание"
@@ -1093,9 +1096,6 @@ msgstr "В: %s"
msgid "Hyperlink"
msgstr "Гиперссылка"
msgid "Code"
msgstr "Код"
msgid "Numbered List"
msgstr "Нумерованный список"
@@ -1953,6 +1953,10 @@ msgstr ""
"Мобильное приложение Joplin в настоящее время не поддерживает этот тип "
"ссылки: %s"
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Неподдерживаемый формат изображения: %s"

View File

@@ -690,12 +690,18 @@ msgstr ""
msgid "Link"
msgstr ""
msgid "Code"
msgstr ""
msgid "Insert Date Time"
msgstr ""
msgid "Edit in external editor"
msgstr ""
msgid "Tags"
msgstr "Oznake"
msgid "Search in all the notes"
msgstr "Išči znotraj vseh zabeležk"
@@ -1083,9 +1089,6 @@ msgstr ""
msgid "Attach file"
msgstr "Pripni datoteko"
msgid "Tags"
msgstr "Oznake"
msgid "Set alarm"
msgstr "Nastavi alarm"
@@ -1096,9 +1099,6 @@ msgstr "%s: %s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
@@ -1951,6 +1951,10 @@ msgstr ""
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Nepodprt tip slike: %s"

View File

@@ -693,12 +693,18 @@ msgstr "Kursiv"
msgid "Link"
msgstr "Länk"
msgid "Code"
msgstr "Kod"
msgid "Insert Date Time"
msgstr "Infoga datumtid"
msgid "Edit in external editor"
msgstr "Redigera i extern redigerare"
msgid "Tags"
msgstr "Taggar"
msgid "Search in all the notes"
msgstr "Sök i alla anteckningarna"
@@ -1088,9 +1094,6 @@ msgstr "Infoga hyperlänk"
msgid "Attach file"
msgstr "Bifoga fil"
msgid "Tags"
msgstr "Taggar"
msgid "Set alarm"
msgstr "Sätt alarm"
@@ -1101,9 +1104,6 @@ msgstr "I: %s"
msgid "Hyperlink"
msgstr "Hyperlänk"
msgid "Code"
msgstr "Kod"
msgid "Numbered List"
msgstr "Numrerad lista"
@@ -1965,6 +1965,10 @@ msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
"Den mobila appen Joplin stöder för närvarande inte denna typ av länk: %s"
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Bildstorlek som inte stöds: %s"

View File

@@ -660,12 +660,18 @@ msgstr "İtalik"
msgid "Link"
msgstr "Bağlantı"
msgid "Code"
msgstr "Kod"
msgid "Insert Date Time"
msgstr "Tarih Ekle"
msgid "Edit in external editor"
msgstr "Başka editörde düzenle"
msgid "Tags"
msgstr "Etiketler"
msgid "Search in all the notes"
msgstr "Tüm notlarda ara"
@@ -1058,9 +1064,6 @@ msgstr "Köprü ekle"
msgid "Attach file"
msgstr "Dosya ekle"
msgid "Tags"
msgstr "Etiketler"
msgid "Set alarm"
msgstr "Alarm kur"
@@ -1071,9 +1074,6 @@ msgstr "İçinde: %s"
msgid "Hyperlink"
msgstr "Köprü"
msgid "Code"
msgstr "Kod"
msgid "Numbered List"
msgstr "Numaralı liste"
@@ -1926,6 +1926,10 @@ msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr ""
"Joplin mobil uygulaması şu anda bu tür bir bağlantıyı desteklemiyor: %s"
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "Desteklenmeyen resim türü: %s"

View File

@@ -14,6 +14,8 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.1\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
msgid "To delete a tag, untag the associated notes."
msgstr "移除相关笔记的标签后才可删除此标签。"
@@ -22,7 +24,7 @@ msgid "Please select the note or notebook to be deleted first."
msgstr "请先选择需要删除的笔记或笔记本。"
msgid "Press Ctrl+D or type \"exit\" to exit the application"
msgstr "按 Ctrl+D 或输入 \"exit\" 退出程序"
msgstr "按 Ctrl+D 或输入exit退出程序"
#, javascript-format
msgid "More than one item match \"%s\". Please narrow down your query."
@@ -55,7 +57,7 @@ msgstr "不存在该命令:%s"
#, javascript-format
msgid "The command \"%s\" is only available in GUI mode"
msgstr "命令 \"%s\" 仅在GUI模式下可用"
msgstr "命令“%s”仅在 GUI 模式下可用"
msgid "Cannot change encrypted item"
msgstr "无法更改加密项目"
@@ -80,7 +82,7 @@ msgstr "将选定文件添加到笔记中。"
#, javascript-format
msgid "Cannot find \"%s\"."
msgstr "无法找到 \"%s\"。"
msgstr "无法找到“%s”。"
msgid "Displays the given note."
msgstr "显示选定笔记。"
@@ -119,7 +121,7 @@ msgstr "标记待办事项为完成。"
#, javascript-format
msgid "Note is not a to-do: \"%s\""
msgstr "笔记非待办事项:\"%s\""
msgstr "笔记非待办事项:“%s”"
msgid ""
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
@@ -237,7 +239,7 @@ msgid ""
msgstr "通过方向键与 page up/down 键来滚动列表与文本区域(包含此控制台)。"
msgid "To maximise/minimise the console, press \"tc\"."
msgstr "按 \"TC\" 最大化/最小化控制台。"
msgstr "按“TC”最大化/最小化控制台。"
msgid "To enter command line mode, press \":\""
msgstr "按“:”键进入命令行模式"
@@ -314,7 +316,7 @@ msgstr ""
"待办事项。"
msgid "Either \"text\" or \"json\""
msgstr "\"text\" 或 \"json\""
msgstr "text”或“json"
msgid ""
"Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, "
@@ -418,8 +420,8 @@ msgid ""
"taking place, you may delete the lock file at \"%s\" and resume the "
"operation."
msgstr ""
"锁定文件已被保存。如果您确认当前未在进行任何同步,可删除锁定文件 \"%s\" 后继"
"续上一部操作。"
"锁定文件已被保存。如果您确认当前未在进行任何同步,可删除锁定文件“%s”后继续上"
"一部操作。"
#, javascript-format
msgid "Synchronisation target: %s (%s)"
@@ -442,13 +444,13 @@ msgid ""
"[tag] from [note], or to list the notes associated with [tag]. The command "
"`tag list` can be used to list all the tags (use -l for long option)."
msgstr ""
"<tag-command> 可以是 \"add\"、\"remove\" 或者 \"list\", 用于从 [note] 中赋值"
"或删除 [tag],或者列出与 [tag] 相关的笔记。`tag list` 命令可以用于列出所有的"
"标签(对于过长选项请使用 -l 参数)。"
"<tag-command> 可以是“add”、“remove”或者“list, 用于从 [note] 中赋值或删除 "
"[tag],或者列出与 [tag] 相关的笔记。`tag list` 命令可以用于列出所有的标签(对"
"于过长选项请使用 -l 参数)。"
#, javascript-format
msgid "Invalid command: \"%s\""
msgstr "无效命令:\"%s\""
msgstr "无效命令:“%s”"
msgid ""
"<todo-command> can either be \"toggle\" or \"clear\". Use \"toggle\" to "
@@ -456,9 +458,9 @@ msgid ""
"target is a regular note it will be converted to a to-do). Use \"clear\" to "
"convert the to-do back to a regular note."
msgstr ""
"<todo-command> 可以是 \"toggle\" 或者 \"clear\"。使用 \"toggle\" 命令来切换待"
"办事项的完成状态(若目标为普通笔记则将会转换成待办事项)。使用 \"clear\" 命令"
"来把待办事项转换到普通笔记。"
"<todo-command> 可以是toggle”或者“clear。使用toggle命令来切换待办事项的完"
"成状态(若目标为普通笔记则将会转换成待办事项)。使用clear”命令来把待办事项转"
"换到普通笔记。"
msgid "Marks a to-do as non-completed."
msgstr "标记待办事项为未完成。"
@@ -513,9 +515,9 @@ msgid ""
"any files outside this directory nor to any other personal data. No data "
"will be shared with any third party."
msgstr ""
"请在浏览器中打开以下链接激活该应用程序。该应用会建立 \"Apps/Joplin\" 文件目"
"录,并只会读写该目录中的文件。它没有任何权限访问此目录以外的任何文件或个人信"
"息。也不会与第三方分享任何数据。"
"请在浏览器中打开以下链接激活该应用程序。该应用会建立Apps/Joplin”文件目录,并"
"只会读写该目录中的文件。它没有任何权限访问此目录以外的任何文件或个人信息。也"
"不会与第三方分享任何数据。"
msgid "Search:"
msgstr "搜索:"
@@ -545,7 +547,7 @@ msgstr ""
#, javascript-format
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
msgstr "从 \"%s\" 导出,导出格式为 \"%s\"。请稍等…"
msgstr "从“%s”导出,导出格式为“%s”。请稍等…"
msgid "Sidebar"
msgstr "边栏"
@@ -561,7 +563,7 @@ msgstr "笔记正文"
#, javascript-format
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
msgstr "从 \"%s\" 导入,导入格式为 \"%s\" 。请稍等…"
msgstr "从“%s”导入,导入格式为“%s”。请稍等…"
msgid "PDF File"
msgstr "PDF 文件"
@@ -649,12 +651,18 @@ msgstr "斜体"
msgid "Link"
msgstr "链接"
msgid "Code"
msgstr "代码"
msgid "Insert Date Time"
msgstr "插入时间"
msgid "Edit in external editor"
msgstr "在外部编辑器中打开"
msgid "Tags"
msgstr "标签"
msgid "Search in all the notes"
msgstr "在所有笔记内搜索"
@@ -686,7 +694,7 @@ msgid "Make a donation"
msgstr "捐赠"
msgid "Toggle development tools"
msgstr ""
msgstr "切换开发者工具"
#, javascript-format
msgid "Open %s"
@@ -893,7 +901,7 @@ msgstr "返回"
#, javascript-format
msgid ""
"New notebook \"%s\" will be created and file \"%s\" will be imported into it"
msgstr "将新建的笔记本“%s”,并将文件 \"%s\" 导入其中"
msgstr "将新建的笔记本“%s”,并将文件“%s”导入其中"
msgid "Please create a notebook first."
msgstr "请先创建笔记本。"
@@ -928,19 +936,18 @@ msgstr "一些项目无法被同步。"
msgid "View them now"
msgstr "立刻查看"
#, fuzzy
msgid "One or more master keys need a password."
msgstr "输入主密码:"
msgstr "一个或多个主密钥需要密码。"
msgid "Set the password"
msgstr "设置密码"
msgid "No notes in here. Create one by clicking on \"New note\"."
msgstr "此处没有任何笔记。点击\"新建笔记\"创建。"
msgstr "此处没有任何笔记。点击新建笔记创建。"
msgid ""
"There is currently no notebook. Create one by clicking on \"New notebook\"."
msgstr "此处没有任何笔记本。点击\"新建笔记本\"创建。"
msgstr "此处没有任何笔记本。点击新建笔记本创建。"
msgid "Location"
msgstr "位置"
@@ -959,7 +966,7 @@ msgstr "笔记属性"
#, javascript-format
msgid "The note \"%s\" has been successfully restored to the notebook \"%s\"."
msgstr "笔记\"%s\"已成功恢复到笔记本\"%s\"中。"
msgstr "笔记“%s”已成功恢复到笔记本“%s”中。"
msgid "This note has no history"
msgstr "此笔记没有历史记录"
@@ -972,8 +979,8 @@ msgid ""
"Click \"%s\" to restore the note. It will be copied in the notebook named "
"\"%s\". The current version of the note will not be replaced or modified."
msgstr ""
"单击 \"%s\" 以恢复笔记。它将会被复制到名为 \"%s\" 的笔记本中。笔记的当前版本"
"不会被替换或修改。"
"单击“%s”以恢复笔记。它将会被复制到名为“%s”的笔记本中。笔记的当前版本不会被替"
"换或修改。"
msgid "Open..."
msgstr "打开…"
@@ -1022,9 +1029,6 @@ msgstr "插入超链接"
msgid "Attach file"
msgstr "附加文件"
msgid "Tags"
msgstr "标签"
msgid "Set alarm"
msgstr "设置提醒"
@@ -1035,9 +1039,6 @@ msgstr "在: %s"
msgid "Hyperlink"
msgstr "超链接"
msgid "Code"
msgstr "代码"
msgid "Numbered List"
msgstr "有序列表"
@@ -1131,7 +1132,7 @@ msgid "Please select where the sync status should be exported to"
msgstr "请选择同步状态的导出位置"
msgid "Retry"
msgstr ""
msgstr "重试"
msgid "Add or remove tags"
msgstr "添加或删除标签"
@@ -1306,7 +1307,7 @@ msgstr "无法移动笔记本到该位置"
#, javascript-format
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
msgstr "笔记本无法被命名为 \"%s\",这个标题被留作他用。"
msgstr "笔记本无法被命名为“%s”,这个标题被留作他用。"
msgid "created date"
msgstr "创建日期"
@@ -1362,25 +1363,27 @@ msgid "WebDAV password"
msgstr "WebDAV 密码"
msgid "Attachment download behaviour"
msgstr ""
msgstr "附件下载行为"
msgid ""
"In \"Manual\" mode, attachments are downloaded only when you click on them. "
"In \"Auto\", they are downloaded when you open the note. In \"Always\", all "
"the attachments are downloaded whether you open the note or not."
msgstr ""
"在“手动”模式下,只有单击附件时才会下载它们。在“自动”中,当你打开笔记时,它们"
"就会被下载下来。在“总是”中,无论你是否打开笔记,所有的附件都会被下载。"
msgid "Always"
msgstr ""
msgstr "总是"
msgid "Manual"
msgstr ""
msgstr "手动"
msgid "Auto"
msgstr ""
msgstr "自动"
msgid "Max concurrent connections"
msgstr ""
msgstr "最大并发连接数"
msgid "Language"
msgstr "语言"
@@ -1564,11 +1567,11 @@ msgid "%d days"
msgstr ""
msgid "Keep note history for"
msgstr ""
msgstr "保留笔记历史记录"
#, javascript-format
msgid "Invalid option value: \"%s\". Possible values are: %s."
msgstr "无效的选项值:\"%s\"。可用值有:%s。"
msgstr "无效的选项值:“%s”。可用值有:%s。"
msgid "General"
msgstr "通用选项"
@@ -1590,7 +1593,7 @@ msgstr "应用程序"
#, javascript-format
msgid "The tag \"%s\" already exists. Please choose a different name."
msgstr "标签 \"%s\" 已存在。请选择一个不同的名称。"
msgstr "标签“%s”已存在。请选择一个不同的名称。"
msgid "Joplin Export File"
msgstr "Joplin 导出文件"
@@ -1615,7 +1618,7 @@ msgstr "文件目录"
#, javascript-format
msgid "Cannot load \"%s\" module for format \"%s\""
msgstr "无法加载 \"%s\" 模块用于读取 \"%s\" 格式"
msgstr "无法加载“%s”模块用于读取“%s”格式"
#, javascript-format
msgid "Please specify import format for %s"
@@ -1625,7 +1628,7 @@ msgstr "请指定 %s 的导入格式"
msgid ""
"This item is currently encrypted: %s \"%s\". Please wait for all items to be "
"decrypted and try again."
msgstr "该项目当前已加密:%s \"%s\"。请等待所有项目解密后再重试。"
msgstr "该项目当前已加密:%s“%s”。请等待所有项目解密后再重试。"
msgid "There is no data to export."
msgstr "没有可导出的数据。"
@@ -1653,17 +1656,18 @@ msgstr "%s (%s) 无法上传到:%s"
#, javascript-format
msgid "Item \"%s\" could not be downloaded: %s"
msgstr "项目 \"%s\" 无法从 %s 中下载"
msgstr "项目“%s”无法从 %s 中下载"
#, fuzzy
msgid "Items that cannot be decrypted"
msgstr "无法同步项目"
msgstr "无法解密的项目"
msgid ""
"Joplin failed to decrypt these items multiple times, possibly because they "
"are corrupted or too large. These items will remain on the device but Joplin "
"will no longer attempt to decrypt them."
msgstr ""
"Joplin 多次解密这些项目均已失败,可能是它们太大或已经损坏导致的。这些项目会保"
"留再设备上,但 Joplin 不会再尝试对它们进行解密。"
msgid "Sync status (synced items / total items)"
msgstr "同步状态(已同步项目/项目总数)"
@@ -1787,9 +1791,8 @@ msgstr "新建标签:"
msgid "Type new tags or select from list"
msgstr "输入新的标签或从列表中选择"
#, fuzzy
msgid "More information"
msgstr "配置"
msgstr "更多信息"
msgid ""
"To work correctly, the app needs the following permissions. Please enable "
@@ -1873,6 +1876,10 @@ msgstr "没有 ID 为 %s 的项"
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr "Joplin 手机应用目前不支持这种类型的链接:%s"
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr "不支持“%s”协议链接"
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "不支持的图片格式:%s"

View File

@@ -656,12 +656,18 @@ msgstr "斜體"
msgid "Link"
msgstr ""
msgid "Code"
msgstr "引言"
msgid "Insert Date Time"
msgstr "插入日期時間"
msgid "Edit in external editor"
msgstr "使用外部編輯器編輯"
msgid "Tags"
msgstr "標籤"
msgid "Search in all the notes"
msgstr "在所有記事中搜尋"
@@ -1036,9 +1042,6 @@ msgstr "插入超連結"
msgid "Attach file"
msgstr "附加檔案"
msgid "Tags"
msgstr "標籤"
msgid "Set alarm"
msgstr "設置提醒"
@@ -1049,9 +1052,6 @@ msgstr "在: %s"
msgid "Hyperlink"
msgstr "超連結"
msgid "Code"
msgstr "引言"
msgid "Numbered List"
msgstr "編號清單"
@@ -1887,6 +1887,10 @@ msgstr "沒有 ID 為 %s 的項目"
msgid "The Joplin mobile app does not currently support this type of link: %s"
msgstr "Joplin 移動應用程式暫時不支援此類型的連結: %s"
#, javascript-format
msgid "Links with protocol \"%s\" are not supported"
msgstr ""
#, javascript-format
msgid "Unsupported image type: %s"
msgstr "不支援的圖像類型: %s"

View File

@@ -29,16 +29,16 @@
},
"dependencies": {
"acorn": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz",
"integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA=="
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.0.tgz",
"integrity": "sha512-8oe72N3WPMjA+2zVG71Ia0nXZ8DpQH+QyyHO+p06jT8eg8FGG3FbcUIi8KziHlAfheJQZeoqbvq1mQSQHXKYLw=="
}
}
},
"acorn-walk": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz",
"integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw=="
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz",
"integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA=="
},
"ajv": {
"version": "5.5.2",
@@ -165,6 +165,11 @@
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
"atob": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
},
"aws-sign2": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
@@ -453,17 +458,35 @@
}
}
},
"css": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
"integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
"requires": {
"inherits": "^2.0.3",
"source-map": "^0.6.1",
"source-map-resolve": "^0.5.2",
"urix": "^0.1.0"
},
"dependencies": {
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
}
}
},
"cssom": {
"version": "0.3.6",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.6.tgz",
"integrity": "sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A=="
"version": "0.3.8",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
"integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
},
"cssstyle": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.2.tgz",
"integrity": "sha512-43wY3kl1CVQSvL7wUY1qXkxVGkStjpkDmVjiIKX8R97uhajy8Bybay78uOtqvh7Q5GK75dNPfW0geWjE6qQQow==",
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.3.0.tgz",
"integrity": "sha512-wXsoRfsRfsLVNaVzoKdqvEmK/5PFaEXNspVT22Ots6K/cnJdpoDKuQFw+qlMiXnmaif1OgeC466X1zISgAOcGg==",
"requires": {
"cssom": "0.3.x"
"cssom": "~0.3.6"
}
},
"cwise-compiler": {
@@ -517,6 +540,11 @@
"ms": "2.0.0"
}
},
"decode-uri-component": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
},
"decompress-response": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
@@ -1437,10 +1465,11 @@
"dev": true
},
"joplin-turndown": {
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/joplin-turndown/-/joplin-turndown-4.0.12.tgz",
"integrity": "sha512-HlxkcIiNFSMLBvYktoXqLLHFGuwQYlcPclo0Peeatw3cPe6iFqSsEgEGY/0bYM/fubA/zpPULrJcjST99BO9wQ==",
"version": "4.0.17",
"resolved": "https://registry.npmjs.org/joplin-turndown/-/joplin-turndown-4.0.17.tgz",
"integrity": "sha512-57mw92ZOKoR77YBLUkauN1xNq1xlxOm2KaPty/jlYrkEyGotUBBvq46a6wXh6d3aM4CccGuwymSge18/9IoB3A==",
"requires": {
"css": "^2.2.4",
"html-entities": "^1.2.1",
"jsdom": "^11.9.0"
}
@@ -1500,9 +1529,9 @@
},
"dependencies": {
"ajv": {
"version": "6.10.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
"integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
"version": "6.10.1",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.1.tgz",
"integrity": "sha512-w1YQaVGNC6t2UCPjEawK/vo/dG8OOrVtUmhBT1uJJYxbl5kU2Tj3v6LGqBcsysN1yhuCStJCCA3GqdvKY8sqXQ==",
"requires": {
"fast-deep-equal": "^2.0.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -1614,9 +1643,9 @@
}
},
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
"integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg=="
},
"uuid": {
"version": "3.3.2",
@@ -2420,9 +2449,9 @@
},
"dependencies": {
"lodash": {
"version": "4.17.11",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
"version": "4.17.14",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz",
"integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw=="
}
}
},
@@ -2441,6 +2470,11 @@
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
},
"resolve-url": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
"integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
},
"retry": {
"version": "0.10.1",
"resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz",
@@ -2598,6 +2632,23 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
},
"source-map-resolve": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
"integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
"requires": {
"atob": "^2.1.1",
"decode-uri-component": "^0.2.0",
"resolve-url": "^0.2.1",
"source-map-url": "^0.4.0",
"urix": "^0.1.0"
}
},
"source-map-url": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
"integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
},
"split-skip": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/split-skip/-/split-skip-0.0.2.tgz",
@@ -3114,6 +3165,11 @@
}
}
},
"urix": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
"integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
},
"url-parse": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz",

View File

@@ -43,7 +43,7 @@
"html-minifier": "^3.5.15",
"image-data-uri": "^2.0.0",
"image-type": "^3.0.0",
"joplin-turndown": "^4.0.12",
"joplin-turndown": "^4.0.17",
"joplin-turndown-plugin-gfm": "^1.0.8",
"jssha": "^2.3.0",
"levenshtein": "^1.0.5",

View File

@@ -35,7 +35,7 @@ describe('EnexToMd', function() {
const htmlPath = basePath + '/' + htmlFilename;
const mdPath = basePath + '/' + filename(htmlFilename) + '.md';
// if (htmlFilename !== 'list5.html') continue;
// if (htmlFilename !== 'multiline_inner_text.html') continue;
const html = await shim.fsDriver().readFile(htmlPath);
let expectedMd = await shim.fsDriver().readFile(mdPath);

View File

@@ -37,7 +37,7 @@ describe('HtmlToMd', function() {
const htmlPath = basePath + '/' + htmlFilename;
const mdPath = basePath + '/' + filename(htmlFilename) + '.md';
// if (htmlFilename !== 'anchor_local.html') continue;
// if (htmlFilename !== 'mathjax_block.html') continue;
const htmlToMdOptions = {}

View File

@@ -0,0 +1,7 @@
<div>Sometimes Evernote
wraps lines inside blocks</div>
<div>Sometimes it doesn't wrap them</div>
<pre>But
careful
with
pre tags</pre>

View File

@@ -0,0 +1,6 @@
Sometimes Evernote wraps lines inside blocks
Sometimes it doesn't wrap them
But
careful
with
pre tags

View File

@@ -1,5 +1,7 @@
def ma_fonction():
"""
C'est une super fonction
"""
pass
```
def ma_fonction():
"""
C'est une super fonction
"""
pass
```

View File

@@ -0,0 +1,2 @@
<pre style="font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace;"><strong><font color="#008080">thatsCode();</font></strong></pre>
<pre>thatsJustPre(); // In that case we do not have enough info to know if it is a codeblock or not, so we leave it as plain text</pre>

View File

@@ -0,0 +1,5 @@
```
thatsCode();
```
thatsJustPre(); // In that case we do not have enough info to know if it is a codeblock or not, so we leave it as plain text

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,5 @@
_Block formulas_ are surrounded by double dollar signs. For example, `$$x = \frac{-b \pm \sqrt{b^2 - 4ac} }{2a}$$` renders, _on a separate line_, as
$$
x = \frac{-b \pm \sqrt{b^2 - 4ac} }{2a}.
$$

View File

@@ -0,0 +1 @@
<p><em>Inline formulas</em> are surrounded by single dollar signs. For example, <code>$f(x) = ax^2 + bx + c$</code> renders as <span class="MathJax_Preview" style="color: inherit;"></span><span class="MathJax" id="MathJax-Element-2-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;><mi>f</mi><mo stretchy=&quot;false&quot;>(</mo><mi>x</mi><mo stretchy=&quot;false&quot;>)</mo><mo>=</mo><mi>a</mi><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><mi>b</mi><mi>x</mi><mo>+</mo><mi>c</mi></math>" role="presentation"><nobr aria-hidden="true"><span class="math" id="MathJax-Span-26" style="width: 9.372em; display: inline-block;"><span style="display: inline-block; position: relative; width: 8.408em; height: 0px; font-size: 111%;"><span style="position: absolute; clip: rect(1.562em, 1008.39em, 2.95em, -1000em); top: -2.583em; left: 0em;"><span class="mrow" id="MathJax-Span-27"><span class="mi" id="MathJax-Span-28" style="font-family: STIXGeneral; font-style: italic;">𝑓<span style="display: inline-block; overflow: hidden; height: 1px; width: 0.06em;"></span></span><span class="mo" id="MathJax-Span-29" style="font-family: STIXGeneral;">(</span><span class="mi" id="MathJax-Span-30" style="font-family: STIXGeneral; font-style: italic;">𝑥</span><span class="mo" id="MathJax-Span-31" style="font-family: STIXGeneral;">)</span><span class="mo" id="MathJax-Span-32" style="font-family: STIXGeneral; padding-left: 0.313em;">=</span><span class="mi" id="MathJax-Span-33" style="font-family: STIXGeneral; font-style: italic; padding-left: 0.313em;">𝑎</span><span class="msubsup" id="MathJax-Span-34"><span style="display: inline-block; position: relative; width: 0.979em; height: 0px;"><span style="position: absolute; clip: rect(3.403em, 1000.51em, 4.213em, -1000em); top: -4.024em; left: 0em;"><span class="mi" id="MathJax-Span-35" style="font-family: STIXGeneral; font-style: italic;">𝑥</span><span style="display: inline-block; width: 0px; height: 4.024em;"></span></span><span style="position: absolute; top: -4.387em; left: 0.55em;"><span class="mn" id="MathJax-Span-36" style="font-size: 70.7%; font-family: STIXGeneral;">2</span><span style="display: inline-block; width: 0px; height: 4.024em;"></span></span></span></span><span class="mo" id="MathJax-Span-37" style="font-family: STIXGeneral; padding-left: 0.25em;">+</span><span class="mi" id="MathJax-Span-38" style="font-family: STIXGeneral; font-style: italic; padding-left: 0.25em;">𝑏</span><span class="mi" id="MathJax-Span-39" style="font-family: STIXGeneral; font-style: italic;">𝑥</span><span class="mo" id="MathJax-Span-40" style="font-family: STIXGeneral; padding-left: 0.25em;">+</span><span class="mi" id="MathJax-Span-41" style="font-family: STIXGeneral; font-style: italic; padding-left: 0.25em;">𝑐</span></span><span style="display: inline-block; width: 0px; height: 2.583em;"></span></span></span><span style="display: inline-block; overflow: hidden; vertical-align: -0.274em; border-left: 0px solid; width: 0px; height: 1.274em;"></span></span></nobr><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>f</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mi>a</mi><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><mi>b</mi><mi>x</mi><mo>+</mo><mi>c</mi></math></span></span><script type="math/tex" id="MathJax-Element-2">f(x)=ax^2+bx+c</script>.</p>

View File

@@ -0,0 +1 @@
_Inline formulas_ are surrounded by single dollar signs. For example, `$f(x) = ax^2 + bx + c$` renders as $f(x)=ax^2+bx+c$.

View File

@@ -6,4 +6,6 @@ Some text, not an image, so it should remain escaped:
But this is code so it can be unescaped:
<img src="http://test.com/image.png" />
```
<img src="http://test.com/image.png" />
```

View File

@@ -5,9 +5,10 @@ const { fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synch
const markdownUtils = require('lib/markdownUtils.js');
const Api = require('lib/services/rest/Api');
const Folder = require('lib/models/Folder');
const Resource = require('lib/models/Resource');
const Note = require('lib/models/Note');
const Tag = require('lib/models/Tag');
const Resource = require('lib/models/Resource');
const { shim } = require('lib/shim');
jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
@@ -156,6 +157,25 @@ describe('services_rest_Api', function() {
done();
});
it('should preserve user timestamps when creating notes', async (done) => {
let response = null;
const f = await Folder.save({ title: "mon carnet" });
const updatedTime = Date.now() - 1000;
const createdTime = Date.now() - 10000;
response = await api.route('POST', 'notes', null, JSON.stringify({
parent_id: f.id,
user_updated_time: updatedTime,
user_created_time: createdTime,
}));
expect(response.user_updated_time).toBe(updatedTime);
expect(response.user_created_time).toBe(createdTime);
done();
});
it('should create notes with supplied ID', async (done) => {
let response = null;
const f = await Folder.save({ title: "mon carnet" });
@@ -170,6 +190,39 @@ describe('services_rest_Api', function() {
done();
});
it('should create todos', async (done) => {
let response = null;
const f = await Folder.save({ title: "stuff to do" });
response = await api.route('POST', 'notes', null, JSON.stringify({
title: 'testing',
parent_id: f.id,
is_todo: 1
}));
expect(response.is_todo).toBe(1);
response = await api.route('POST', 'notes', null, JSON.stringify({
title: 'testing 2',
parent_id: f.id,
is_todo: 0
}));
expect(response.is_todo).toBe(0);
response = await api.route('POST', 'notes', null, JSON.stringify({
title: 'testing 3',
parent_id: f.id,
}));
expect(response.is_todo).toBeUndefined();
response = await api.route('POST', 'notes', null, JSON.stringify({
title: 'testing 4',
parent_id: f.id,
is_todo: '1'
}));
expect(response.is_todo).toBe(1);
done();
});
it('should create folders with supplied ID', async (done) => {
const response = await api.route('POST', 'folders', null, JSON.stringify({
id: '12345678123456781234567812345678',
@@ -200,6 +253,28 @@ describe('services_rest_Api', function() {
done();
});
it('should delete resources', async (done) => {
let response = null;
const f = await Folder.save({ title: "mon carnet" });
response = await api.route('POST', 'notes', null, JSON.stringify({
title: 'testing image',
parent_id: f.id,
image_data_url: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUeNoAyAA3/wFwtO3K6gUB/vz2+Prw9fj/+/r+/wBZKAAExOgF4/MC9ff+MRH6Ui4E+/0Bqc/zutj6AgT+/Pz7+vv7++nu82c4DlMqCvLs8goA/gL8/fz09fb59vXa6vzZ6vjT5fbn6voD/fwC8vX4UiT9Zi//APHyAP8ACgUBAPv5APz7BPj2+DIaC2o3E+3o6ywaC5fT6gD6/QD9/QEVf9kD+/dcLQgJA/7v8vqfwOf18wA1IAIEVycAyt//v9XvAPv7APz8LhoIAPz9Ri4OAgwARgx4W/6fVeEAAAAASUVORK5CYII="
}));
const resource = (await Resource.all())[0];
const filePath = Resource.fullPath(resource);
expect(await shim.fsDriver().exists(filePath)).toBe(true);
await api.route('DELETE', 'resources/' + resource.id);
expect(await shim.fsDriver().exists(filePath)).toBe(false);
expect(!(await Resource.load(resource.id))).toBe(true);
done();
});
it('should create notes from HTML', async (done) => {
let response = null;
const f = await Folder.save({ title: "mon carnet" });
@@ -297,4 +372,4 @@ describe('services_rest_Api', function() {
done();
});
});
});

View File

@@ -947,6 +947,9 @@ describe('Synchronizer', function() {
await synchronizer().start();
expect((await remoteNotesFoldersResources()).length).toBe(2);
const remoteBlob = await fileApi().stat('.resource/' + resource1.id);
expect(!remoteBlob).toBe(true);
await switchClient(1);
expect(await shim.fsDriver().exists(resourcePath1)).toBe(true);

View File

@@ -87,20 +87,31 @@
}
// Cleans up element by removing all its invisible children (which we don't want to render as Markdown)
// And hard-code the image dimensions so that the information can be used by the clipper server to
// display them at the right sizes in the notes.
function cleanUpElement(element, imageSizes) {
const childNodes = element.childNodes;
for (let i = 0; i < childNodes.length; i++) {
for (let i = childNodes.length - 1; i >= 0; i--) {
const node = childNodes[i];
const nodeName = node.nodeName.toLowerCase();
let isVisible = node.nodeType === 1 ? window.getComputedStyle(node).display !== 'none' : true;
if (isVisible && ['input', 'textarea', 'script', 'noscript', 'style', 'select', 'option', 'button'].indexOf(node.nodeName.toLowerCase()) >= 0) isVisible = false;
const isHidden = node && node.classList && node.classList.contains('joplin-clipper-hidden');
if (!isVisible) {
if (isHidden) {
element.removeChild(node);
} else {
if (node.nodeName.toLowerCase() === 'img') {
// If the data-joplin-clipper-value has been set earlier, create a new DIV element
// to replace the input or text area, so that it can be exported.
if (node.getAttribute && node.getAttribute('data-joplin-clipper-value')) {
const div = document.createElement('div');
div.innerText = node.getAttribute('data-joplin-clipper-value');
node.parentNode.insertBefore(div, node.nextSibling);
element.removeChild(node);
}
if (nodeName === 'img') {
node.src = absoluteUrl(node.src);
const imageSize = imageSizes[node.src];
if (imageSize) {
@@ -114,6 +125,75 @@
}
}
// When we clone the document before cleaning it, we lose some of the information that might have been set via CSS or
// JavaScript, in particular whether an element was hidden or not. This function pre-process the document by
// adding a "joplin-clipper-hidden" class to all currently hidden elements in the current document.
// This class is then used in cleanUpElement() on the cloned document to find an element should be visible or not.
function preProcessDocument(element) {
const childNodes = element.childNodes;
for (let i = 0; i < childNodes.length; i++) {
const node = childNodes[i];
const nodeName = node.nodeName.toLowerCase();
let isVisible = node.nodeType === 1 ? window.getComputedStyle(node).display !== 'none' : true;
if (isVisible && ['script', 'noscript', 'style', 'select', 'option', 'button'].indexOf(nodeName) >= 0) isVisible = false;
// If it's a text input or a textarea and it has a value, save
// that value to data-joplin-clipper-value. This is then used
// when cleaning up the document to export the value.
if (['input', 'textarea'].indexOf(nodeName) >= 0) {
isVisible = !!node.value;
if (nodeName === 'input' && node.getAttribute('type') !== 'text') isVisible = false;
if (isVisible) node.setAttribute('data-joplin-clipper-value', node.value);
}
if (nodeName === 'script') {
const a = node.getAttribute('type');
if (a && a.toLowerCase().indexOf('math/tex') >= 0) isVisible = true;
}
if (!isVisible) {
node.classList.add('joplin-clipper-hidden');
} else {
preProcessDocument(node);
}
}
}
// This sets the PRE elements computed style to the style attribute, so that
// the info can be exported and later processed by the htmlToMd converter
// to detect code blocks.
function hardcodePreStyles(doc) {
const preElements = doc.getElementsByTagName('pre');
for (const preElement of preElements) {
const fontFamily = getComputedStyle(preElement).getPropertyValue('font-family');
const fontFamilyArray = fontFamily.split(',').map(f => f.toLowerCase().trim());
if (fontFamilyArray.indexOf('monospace') >= 0) {
preElement.style.fontFamily = fontFamily;
}
}
}
// Given a document, return a <style> tag that contains all the styles
// required to render the page. Not currently used but could be as an
// option to clip pages as HTML.
function getStyleTag(doc) {
const styleText = [];
for (var i=0; i<doc.styleSheets.length; i++) {
try {
var sheet = doc.styleSheets[i];
for (const cssRule of sheet.cssRules) {
styleText.push(cssRule.cssText);
}
} catch (error) {
console.warn(error);
}
}
return '<style>' + styleText.join('\n') + '</style>';
}
function documentForReadability() {
// Readability directly change the passed document so clone it so as
// to preserve the original web page.
@@ -180,6 +260,10 @@
} else if (command.name === "completePageHtml") {
hardcodePreStyles(document);
preProcessDocument(document);
// Because cleanUpElement is going to modify the DOM and remove elements we don't want to work
// directly on the document, so we make a copy of it first.
const cleanDocument = document.body.cloneNode(true);
const imageSizes = getImageSizes(document, true);
cleanUpElement(cleanDocument, imageSizes);
@@ -187,10 +271,14 @@
} else if (command.name === "selectedHtml") {
const range = window.getSelection().getRangeAt(0);
const container = document.createElement('div');
container.appendChild(range.cloneContents());
return clippedContentResponse(pageTitle(), container.innerHTML, getImageSizes(document), getAnchorNames(document));
hardcodePreStyles(document);
preProcessDocument(document);
const range = window.getSelection().getRangeAt(0);
const container = document.createElement('div');
container.appendChild(range.cloneContents());
const imageSizes = getImageSizes(document, true);
cleanUpElement(container, imageSizes);
return clippedContentResponse(pageTitle(), container.innerHTML, getImageSizes(document), getAnchorNames(document));
} else if (command.name === 'screenshot') {

View File

@@ -1,7 +1,7 @@
{
"manifest_version": 2,
"name": "Joplin Web Clipper [DEV]",
"version": "1.0.15",
"version": "1.0.17",
"description": "Capture and save web pages and screenshots from your browser to Joplin.",
"homepage_url": "https://joplinapp.org",
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",

View File

@@ -1,6 +1,6 @@
.App {
width: 400px;
height: 600px;
overflow-x: hidden;
overflow-y: hidden;
display: flex;

View File

@@ -16,6 +16,8 @@ class PreviewComponent extends React.PureComponent {
}
componentDidMount() {
if (!this.bodyRef.current) return;
// Because the text size is made twice smaller with CSS, we need
// to also reduce the size of the images
const imgs = this.bodyRef.current.getElementsByTagName('img');
@@ -28,14 +30,22 @@ class PreviewComponent extends React.PureComponent {
render() {
return (
<div className="Preview">
<a className={"Confirm Button"} onClick={this.props.onConfirmClick}>Confirm</a>
<h2>Preview:</h2>
<h2>Title:</h2>
<input className={"Title"} value={this.props.title} onChange={this.props.onTitleChange}/>
<div className={"BodyWrapper"}>
<div className={"Body"} ref={this.bodyRef} dangerouslySetInnerHTML={{__html: this.props.body_html}}></div>
</div>
<a className={"Confirm Button"} onClick={this.props.onConfirmClick}>Confirm</a>
</div>
);
// return (
// <div className="Preview">
// <a className={"Confirm Button"} onClick={this.props.onConfirmClick}>Confirm</a>
// <h2>Preview:</h2>
// <input className={"Title"} value={this.props.title} onChange={this.props.onTitleChange}/>
// <div className={"BodyWrapper"}>
// <div className={"Body"} ref={this.bodyRef} dangerouslySetInnerHTML={{__html: this.props.body_html}}></div>
// </div>
// </div>
// );
}
}

View File

@@ -239,6 +239,10 @@ class Application extends BaseApplication {
Setting.setValue('sidebarVisibility', newState.sidebarVisibility);
}
if (action.type.indexOf('NOTE_SELECT') === 0 || action.type.indexOf('FOLDER_SELECT') === 0) {
this.updateMenuItemStates();
}
return result;
}
@@ -508,12 +512,20 @@ class Application extends BaseApplication {
function _showAbout() {
const p = packageInfo;
let gitInfo = '';
if ("git" in p) {
gitInfo = _('Revision: %s (%s)', p.git.hash, p.git.branch);
}
let message = [
p.description,
'',
'Copyright © 2016-2019 Laurent Cozic',
_('%s %s (%s, %s)', p.name, p.version, Setting.value('env'), process.platform),
];
if (!!gitInfo) {
message.push("\n" + gitInfo);
console.info(gitInfo);
}
bridge().showInfoMessageBox(message.join('\n'), {
icon: bridge().electronApp().buildDir() + '/icons/32x32.png',
});
@@ -618,20 +630,25 @@ class Application extends BaseApplication {
const rootMenus = {
edit: {
id: 'edit',
label: _('&Edit'),
submenu: [{
id: 'edit:copy',
label: _('Copy'),
role: 'copy',
accelerator: 'CommandOrControl+C',
}, {
id: 'edit:cut',
label: _('Cut'),
role: 'cut',
accelerator: 'CommandOrControl+X',
}, {
id: 'edit:paste',
label: _('Paste'),
role: 'paste',
accelerator: 'CommandOrControl+V',
}, {
id: 'edit:selectAll',
label: _('Select all'),
role: 'selectall',
accelerator: 'CommandOrControl+A',
@@ -639,6 +656,7 @@ class Application extends BaseApplication {
type: 'separator',
screens: ['Main'],
}, {
id: 'edit:bold',
label: _('Bold'),
screens: ['Main'],
accelerator: 'CommandOrControl+B',
@@ -649,6 +667,7 @@ class Application extends BaseApplication {
});
},
}, {
id: 'edit:italic',
label: _('Italic'),
screens: ['Main'],
accelerator: 'CommandOrControl+I',
@@ -659,6 +678,7 @@ class Application extends BaseApplication {
});
},
}, {
id: 'edit:link',
label: _('Link'),
screens: ['Main'],
accelerator: 'CommandOrControl+K',
@@ -669,6 +689,7 @@ class Application extends BaseApplication {
});
},
}, {
id: 'edit:code',
label: _('Code'),
screens: ['Main'],
accelerator: 'CommandOrControl+`',
@@ -682,6 +703,7 @@ class Application extends BaseApplication {
type: 'separator',
screens: ['Main'],
}, {
id: 'edit:insertDateTime',
label: _('Insert Date Time'),
screens: ['Main'],
accelerator: 'CommandOrControl+Shift+T',
@@ -695,6 +717,7 @@ class Application extends BaseApplication {
type: 'separator',
screens: ['Main'],
}, {
id: 'edit:commandStartExternalEditing',
label: _('Edit in external editor'),
screens: ['Main'],
accelerator: 'CommandOrControl+E',
@@ -705,29 +728,36 @@ class Application extends BaseApplication {
});
},
}, {
id: 'edit:setTags',
label: _('Tags'),
screens: ['Main'],
accelerator: 'CommandOrControl+Alt+T',
click: () => {
const selectedNoteIds = this.store().getState().selectedNoteIds;
if (selectedNoteIds.length !== 1) return;
this.dispatch({
type: 'WINDOW_COMMAND',
name: 'setTags',
noteId: selectedNoteIds[0],
});
},
}, {
type: 'separator',
screens: ['Main'],
}, {
id: 'edit:focusSearch',
label: _('Search in all the notes'),
screens: ['Main'],
accelerator: shim.isMac() ? 'Shift+Command+F' : 'F6',
click: () => {
this.dispatch({
type: 'WINDOW_COMMAND',
name: 'focus_search',
name: 'focusSearch',
});
},
}, {
id: 'edit:showLocalSearch',
label: _('Search in current note'),
screens: ['Main'],
accelerator: 'CommandOrControl+F',
@@ -924,6 +954,19 @@ class Application extends BaseApplication {
this.lastMenuScreen_ = screen;
}
updateMenuItemStates() {
if (!this.lastMenuScreen_) return;
if (!this.store()) return;
const selectedNoteIds = this.store().getState().selectedNoteIds;
for (const itemId of ['copy', 'paste', 'cut', 'selectAll', 'bold', 'italic', 'link', 'code', 'insertDateTime', 'commandStartExternalEditing', 'setTags', 'showLocalSearch']) {
const menuItem = Menu.getApplicationMenu().getMenuItemById('edit:' + itemId);
if (!menuItem) continue;
menuItem.enabled = selectedNoteIds.length === 1;
}
}
updateTray() {
const app = bridge().electronApp();
@@ -1092,6 +1135,8 @@ class Application extends BaseApplication {
RevisionService.instance().runInBackground();
this.updateMenuItemStates();
// Make it available to the console window - useful to call revisionService.collectRevisions()
window.revisionService = RevisionService.instance();
window.migrationService = MigrationService.instance();

View File

@@ -1,4 +1,5 @@
const fs = require('fs-extra');
const execSync = require('child_process').execSync;
// Electron Builder strip off certain important keys from package.json, which we need, in particular build.appId
// so this script is used to preserve the keys that we need.
@@ -16,6 +17,19 @@ const appId = packageInfo.build.appId;
delete packageInfo.build;
packageInfo.build = { appId: appId };
let branch;
let hash;
try {
branch = execSync('git rev-parse --abbrev-ref HEAD').toString().trim();
hash = execSync('git log --pretty="%h" -1').toString().trim();
}
catch(err) {
console.warn("Could not get git info", err);
}
if (typeof branch !== 'undefined' && typeof hash !== 'undefined') {
packageInfo.git = { branch: branch, hash: hash };
}
let fileContent = "// Auto-generated by compile-package-info.js\n// Do not change directly\nconst packageInfo = " + JSON.stringify(packageInfo, null, 4) + ';';
fileContent += "\n";
fileContent += "module.exports = packageInfo;";

View File

@@ -96,7 +96,7 @@ class HeaderComponent extends React.Component {
let commandProcessed = true;
if (command.name === 'focus_search' && this.searchElement_) {
if (command.name === 'focusSearch' && this.searchElement_) {
this.searchElement_.focus();
} else {
commandProcessed = false;
@@ -137,14 +137,17 @@ class HeaderComponent extends React.Component {
opacity: isEnabled ? 1 : 0.4,
});
const title = options.title ? options.title : '';
return <a
className={classes.join(' ')}
style={finalStyle}
key={key}
href="#"
title={title}
onClick={() => { if (isEnabled) options.onClick() }}
>
{icon}{options.title ? options.title : ''}
{icon}<span className="title">{title}</span>
</a>
}

View File

@@ -52,7 +52,7 @@ class ItemList extends React.Component {
makeItemIndexVisible(itemIndex) {
const top = Math.min(this.props.items.length - 1, this.state.topItemIndex + 1);
const bottom = Math.max(0, this.state.bottomItemIndex - 1)
const bottom = Math.max(0, this.state.bottomItemIndex)
if (itemIndex >= top && itemIndex <= bottom) return;

View File

@@ -94,17 +94,15 @@ class MainScreenComponent extends React.Component {
if (command.name === 'newNote') {
if (!this.props.folders.length) {
bridge().showErrorMessageBox(_('Please create a notebook first.'));
return;
} else {
await createNewNote(null, false);
}
await createNewNote(null, false);
} else if (command.name === 'newTodo') {
if (!this.props.folders.length) {
bridge().showErrorMessageBox(_('Please create a notebook first'));
return;
} else {
await createNewNote(null, true);
}
await createNewNote(null, true);
} else if (command.name === 'newNotebook') {
this.setState({
promptOptions: {
@@ -153,47 +151,47 @@ class MainScreenComponent extends React.Component {
});
} else if (command.name === 'renameFolder') {
const folder = await Folder.load(command.id);
if (!folder) return;
this.setState({
promptOptions: {
label: _('Rename notebook:'),
value: folder.title,
onClose: async (answer) => {
if (answer !== null) {
try {
folder.title = answer;
await Folder.save(folder, { fields: ['title'], userSideValidation: true });
} catch (error) {
bridge().showErrorMessageBox(error.message);
if (folder) {
this.setState({
promptOptions: {
label: _('Rename notebook:'),
value: folder.title,
onClose: async (answer) => {
if (answer !== null) {
try {
folder.title = answer;
await Folder.save(folder, { fields: ['title'], userSideValidation: true });
} catch (error) {
bridge().showErrorMessageBox(error.message);
}
}
this.setState({ promptOptions: null });
}
this.setState({ promptOptions: null });
}
},
});
},
});
}
} else if (command.name === 'renameTag') {
const tag = await Tag.load(command.id);
if(!tag) return;
this.setState({
promptOptions: {
label: _('Rename tag:'),
value: tag.title,
onClose: async (answer) => {
if (answer !== null) {
try {
tag.title = answer;
await Tag.save(tag, { fields: ['title'], userSideValidation: true });
} catch (error) {
bridge().showErrorMessageBox(error.message);
if (tag) {
this.setState({
promptOptions: {
label: _('Rename tag:'),
value: tag.title,
onClose: async (answer) => {
if (answer !== null) {
try {
tag.title = answer;
await Tag.save(tag, { fields: ['title'], userSideValidation: true });
} catch (error) {
bridge().showErrorMessageBox(error.message);
}
}
this.setState({promptOptions: null });
}
this.setState({promptOptions: null });
}
}
})
})
}
} else if (command.name === 'search') {
if (!this.searchId_) this.searchId_ = uuid.create();

View File

@@ -62,8 +62,6 @@ class NoteTextComponent extends React.Component {
this.state = {
note: null,
noteMetadata: '',
showNoteMetadata: false,
folder: null,
lastSavedNote: null,
isLoading: true,
@@ -644,10 +642,6 @@ class NoteTextComponent extends React.Component {
return false;
}
refreshNoteMetadata(force = null) {
return shared.refreshNoteMetadata(this, force);
}
async noteRevisionViewer_onBack() {
this.setState({ showRevisions: false });
@@ -666,10 +660,6 @@ class NoteTextComponent extends React.Component {
this.scheduleSave();
}
showMetadata_onPress() {
shared.showMetadata_onPress(this);
}
async webview_ipcMessage(event) {
const msg = event.channel ? event.channel : '';
const args = event.args;
@@ -863,7 +853,7 @@ class NoteTextComponent extends React.Component {
this.editor_.editor.renderer.on('afterRender', this.onAfterEditorRender_);
const cancelledKeys = [];
const letters = ['F', 'T', 'P', 'Q', 'L', ',', 'G'];
const letters = ['F', 'T', 'P', 'Q', 'L', ',', 'G', 'K'];
for (let i = 0; i < letters.length; i++) {
const l = letters[i];
cancelledKeys.push('Ctrl+' + l);
@@ -954,6 +944,7 @@ class NoteTextComponent extends React.Component {
postMessageSyntax: 'ipcProxySendToHost',
userCss: options.useCustomCss ? this.props.customCss : '',
resources: await shared.attachedResources(bodyToRender),
codeHighlightCacheKey: this.state.note ? this.state.note.id : null,
};
let bodyHtml = '';
@@ -1701,6 +1692,7 @@ class NoteTextComponent extends React.Component {
backgroundColor: theme.backgroundColor,
border: '1px solid',
borderColor: theme.dividerColor,
fontSize: theme.fontSize,
};
const toolbarStyle = {
@@ -1794,6 +1786,7 @@ class NoteTextComponent extends React.Component {
accuracy: 'partially',
}]
markerOptions.selectedIndex = this.state.localSearch.selectedIndex;
markerOptions.separateWordSearch = false;
} else {
const search = BaseModel.byId(this.props.searches, this.props.selectedSearchId);
if (search) {
@@ -1917,7 +1910,6 @@ const mapStateToProps = (state) => {
itemType: state.selectedItemType,
folders: state.folders,
theme: state.settings.theme,
showAdvancedOptions: state.settings.showAdvancedOptions,
syncStarted: state.syncStarted,
newNote: state.newNote,
windowCommand: state.windowCommand,

View File

@@ -205,15 +205,19 @@
elementIndex++;
}
const markKeywordOptions = {
each: onEachElement,
};
if ('separateWordSearch' in options) markKeywordOptions.separateWordSearch = options.separateWordSearch;
for (let i = 0; i < keywords.length; i++) {
let keyword = keywords[i];
markJsUtils.markKeyword(mark_, keyword, {
pregQuote: pregQuote,
replaceRegexDiacritics: replaceRegexDiacritics,
}, {
each: onEachElement,
});
}, markKeywordOptions);
}
ipcProxySendToHost('setMarkerCount', elementIndex);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,7 @@
var locales = {};
locales['en_GB'] = require('./en_GB.json');
locales['ar'] = require('./ar.json');
locales['bg_BG'] = require('./bg_BG.json');
locales['ca'] = require('./ca.json');
locales['cs_CZ'] = require('./cs_CZ.json');
locales['da_DK'] = require('./da_DK.json');

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,6 @@
{
"name": "Joplin",
"version": "1.0.160",
"version": "1.0.161",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -168,16 +168,16 @@
},
"dependencies": {
"acorn": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz",
"integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA=="
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.0.tgz",
"integrity": "sha512-8oe72N3WPMjA+2zVG71Ia0nXZ8DpQH+QyyHO+p06jT8eg8FGG3FbcUIi8KziHlAfheJQZeoqbvq1mQSQHXKYLw=="
}
}
},
"acorn-walk": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz",
"integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw=="
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz",
"integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA=="
},
"ajv": {
"version": "6.5.0",
@@ -434,6 +434,11 @@
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
"atob": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
},
"aws-sign2": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
@@ -559,13 +564,15 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
"dev": true
"dev": true,
"optional": true
},
"is-glob": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
"dev": true,
"optional": true,
"requires": {
"is-extglob": "^1.0.0"
}
@@ -1639,17 +1646,35 @@
"integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=",
"dev": true
},
"css": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
"integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
"requires": {
"inherits": "^2.0.3",
"source-map": "^0.6.1",
"source-map-resolve": "^0.5.2",
"urix": "^0.1.0"
},
"dependencies": {
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
}
}
},
"cssom": {
"version": "0.3.6",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.6.tgz",
"integrity": "sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A=="
"version": "0.3.8",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
"integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
},
"cssstyle": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.2.tgz",
"integrity": "sha512-43wY3kl1CVQSvL7wUY1qXkxVGkStjpkDmVjiIKX8R97uhajy8Bybay78uOtqvh7Q5GK75dNPfW0geWjE6qQQow==",
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.3.0.tgz",
"integrity": "sha512-wXsoRfsRfsLVNaVzoKdqvEmK/5PFaEXNspVT22Ots6K/cnJdpoDKuQFw+qlMiXnmaif1OgeC466X1zISgAOcGg==",
"requires": {
"cssom": "0.3.x"
"cssom": "~0.3.6"
}
},
"csstype": {
@@ -2601,7 +2626,8 @@
"version": "2.1.1",
"resolved": false,
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
"dev": true
"dev": true,
"optional": true
},
"aproba": {
"version": "1.2.0",
@@ -2625,13 +2651,15 @@
"version": "1.0.0",
"resolved": false,
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
"dev": true,
"optional": true
},
"brace-expansion": {
"version": "1.1.11",
"resolved": false,
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -2648,19 +2676,22 @@
"version": "1.1.0",
"resolved": false,
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
"dev": true
"dev": true,
"optional": true
},
"concat-map": {
"version": "0.0.1",
"resolved": false,
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"dev": true
"dev": true,
"optional": true
},
"console-control-strings": {
"version": "1.1.0",
"resolved": false,
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
"dev": true
"dev": true,
"optional": true
},
"core-util-is": {
"version": "1.0.2",
@@ -2791,7 +2822,8 @@
"version": "2.0.3",
"resolved": false,
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"dev": true
"dev": true,
"optional": true
},
"ini": {
"version": "1.3.5",
@@ -2805,6 +2837,7 @@
"resolved": false,
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"dev": true,
"optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@@ -2821,6 +2854,7 @@
"resolved": false,
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@@ -2829,13 +2863,15 @@
"version": "0.0.8",
"resolved": false,
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
"dev": true
"dev": true,
"optional": true
},
"minipass": {
"version": "2.2.4",
"resolved": false,
"integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==",
"dev": true,
"optional": true,
"requires": {
"safe-buffer": "^5.1.1",
"yallist": "^3.0.0"
@@ -2856,6 +2892,7 @@
"resolved": false,
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"dev": true,
"optional": true,
"requires": {
"minimist": "0.0.8"
}
@@ -2944,7 +2981,8 @@
"version": "1.0.1",
"resolved": false,
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
"dev": true
"dev": true,
"optional": true
},
"object-assign": {
"version": "4.1.1",
@@ -2958,6 +2996,7 @@
"resolved": false,
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true,
"optional": true,
"requires": {
"wrappy": "1"
}
@@ -3053,7 +3092,8 @@
"version": "5.1.1",
"resolved": false,
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
"dev": true
"dev": true,
"optional": true
},
"safer-buffer": {
"version": "2.1.2",
@@ -3095,6 +3135,7 @@
"resolved": false,
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"dev": true,
"optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@@ -3116,6 +3157,7 @@
"resolved": false,
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
@@ -3164,13 +3206,15 @@
"version": "1.0.2",
"resolved": false,
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
"dev": true,
"optional": true
},
"yallist": {
"version": "3.0.2",
"resolved": false,
"integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=",
"dev": true
"dev": true,
"optional": true
}
}
},
@@ -3271,13 +3315,15 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
"dev": true
"dev": true,
"optional": true
},
"is-glob": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
"dev": true,
"optional": true,
"requires": {
"is-extglob": "^1.0.0"
}
@@ -3752,10 +3798,11 @@
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
},
"joplin-turndown": {
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/joplin-turndown/-/joplin-turndown-4.0.12.tgz",
"integrity": "sha512-HlxkcIiNFSMLBvYktoXqLLHFGuwQYlcPclo0Peeatw3cPe6iFqSsEgEGY/0bYM/fubA/zpPULrJcjST99BO9wQ==",
"version": "4.0.17",
"resolved": "https://registry.npmjs.org/joplin-turndown/-/joplin-turndown-4.0.17.tgz",
"integrity": "sha512-57mw92ZOKoR77YBLUkauN1xNq1xlxOm2KaPty/jlYrkEyGotUBBvq46a6wXh6d3aM4CccGuwymSge18/9IoB3A==",
"requires": {
"css": "^2.2.4",
"html-entities": "^1.2.1",
"jsdom": "^11.9.0"
}
@@ -4547,6 +4594,7 @@
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
"integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
"dev": true,
"optional": true,
"requires": {
"remove-trailing-separator": "^1.0.1"
}
@@ -4910,7 +4958,8 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
"dev": true
"dev": true,
"optional": true
},
"is-glob": {
"version": "2.0.1",
@@ -5550,13 +5599,15 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
"integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
"dev": true
"dev": true,
"optional": true
},
"repeat-element": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
"integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
"dev": true
"dev": true,
"optional": true
},
"repeat-string": {
"version": "1.6.1",
@@ -5610,9 +5661,9 @@
},
"dependencies": {
"lodash": {
"version": "4.17.11",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
"version": "4.17.14",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz",
"integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw=="
}
}
},
@@ -5656,6 +5707,11 @@
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
"integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
},
"resolve-url": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
"integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
},
"restore-cursor": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
@@ -5843,6 +5899,18 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
},
"source-map-resolve": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
"integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
"requires": {
"atob": "^2.1.1",
"decode-uri-component": "^0.2.0",
"resolve-url": "^0.2.1",
"source-map-url": "^0.4.0",
"urix": "^0.1.0"
}
},
"source-map-support": {
"version": "0.4.18",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
@@ -5852,6 +5920,11 @@
"source-map": "^0.5.6"
}
},
"source-map-url": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
"integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
},
"spawn-rx": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/spawn-rx/-/spawn-rx-3.0.0.tgz",
@@ -6408,6 +6481,11 @@
"punycode": "^2.1.0"
}
},
"urix": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
"integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
},
"url-parse": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.4.tgz",

View File

@@ -1,6 +1,6 @@
{
"name": "Joplin",
"version": "1.0.160",
"version": "1.0.161",
"description": "Joplin for Desktop",
"main": "main.js",
"scripts": {
@@ -101,7 +101,7 @@
"highlight.js": "^9.15.6",
"html-entities": "^1.2.1",
"image-type": "^3.0.0",
"joplin-turndown": "^4.0.12",
"joplin-turndown": "^4.0.17",
"joplin-turndown-plugin-gfm": "^1.0.8",
"jssha": "^2.3.1",
"katex": "^0.10.0",

View File

@@ -121,4 +121,10 @@ table td, table th {
:disabled {
opacity: 0.6;
}
@media screen and (max-width:550px){
.header .title {
display: none;
}
}

View File

@@ -71,7 +71,7 @@ if [[ ! -e ~/.joplin/VERSION ]] || [[ $(< ~/.joplin/VERSION) != "$version" ]]; t
# Create icon for Gnome
echo 'Create Desktop icon.'
if [[ $desktop =~ .*gnome.*|.*kde.*|.*xfce.*|.*mate.*|.*lxqt.* ]]
if [[ $desktop =~ .*gnome.*|.*kde.*|.*xfce.*|.*mate.*|.*lxqt.*|.*unity.* ]]
then
: "${TMPDIR:=/tmp}"
# This command extracts to squashfs-root by default and can't be changed...

View File

@@ -8,7 +8,7 @@ Notes exported from Evernote via .enex files [can be imported](#importing) into
The notes can be [synchronised](#synchronisation) with various cloud services including [Nextcloud](https://nextcloud.com/), Dropbox, OneDrive, WebDAV or the file system (for example with a network directory). When synchronising the notes, notebooks, tags and other metadata are saved to plain text files which can be easily inspected, backed up and moved around.
The application is available for Windows, Linux, macOS, Android and iOS (the terminal app also work on FreeBSD). A [Web Clipper](https://github.com/laurent22/joplin/blob/master/readme/clipper.md), to save web pages and screenshots from your browser, is also available for [Firefox](https://addons.mozilla.org/en-US/firefox/addon/joplin-web-clipper/) and [Chrome](https://chrome.google.com/webstore/detail/joplin-web-clipper/alofnhikmmkdbbbgpnglcpdollgjjfek?hl=en-GB).
The application is available for Windows, Linux, macOS, Android and iOS (the terminal app also works on FreeBSD). A [Web Clipper](https://github.com/laurent22/joplin/blob/master/readme/clipper.md), to save web pages and screenshots from your browser, is also available for [Firefox](https://addons.mozilla.org/en-US/firefox/addon/joplin-web-clipper/) and [Chrome](https://chrome.google.com/webstore/detail/joplin-web-clipper/alofnhikmmkdbbbgpnglcpdollgjjfek?hl=en-GB).
<div class="top-screenshot"><img src="https://joplinapp.org/images/AllClients.jpg" style="max-width: 100%; max-height: 35em;"></div>
@@ -28,7 +28,7 @@ Linux | <a href='https://github.com/laurent22/joplin/releases/download/
Operating System | Download | Alt. Download
-----------------|----------|----------------
Android | <a href='https://play.google.com/store/apps/details?id=net.cozic.joplin&utm_source=GitHub&utm_campaign=README&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' height="40px" src='https://joplinapp.org/images/BadgeAndroid.png'/></a> | or [Download APK File](https://github.com/laurent22/joplin-android/releases/download/android-v1.0.276/joplin-v1.0.276.apk)
Android | <a href='https://play.google.com/store/apps/details?id=net.cozic.joplin&utm_source=GitHub&utm_campaign=README&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' height="40px" src='https://joplinapp.org/images/BadgeAndroid.png'/></a> | or [Download APK File](https://github.com/laurent22/joplin-android/releases/download/android-v1.0.281/joplin-v1.0.281.apk)
iOS | <a href='https://itunes.apple.com/us/app/joplin/id1315599797'><img alt='Get it on the App Store' height="40px" src='https://joplinapp.org/images/BadgeIOS.png'/></a> | -
## Terminal application
@@ -84,6 +84,7 @@ The Web Clipper is a browser extension that allows you to save web pages and scr
- Import Enex files (Evernote export format) and Markdown files.
- Export JEX files (Joplin Export format) and raw files.
- Support notes, to-dos, tags and notebooks.
- Goto Anything feature.
- Sort notes by multiple criteria - title, updated time, etc.
- Support for alarms (notifications) in mobile and desktop applications.
- Offline first, so the entire data is always available on the device even without an internet connection.
@@ -329,6 +330,10 @@ Field restricted | Add either `title:` or `body:` before a note to restrict your
Notes are sorted by "relevance". Currently it means the notes that contain the requested terms the most times are on top. For queries with multiple terms, it also matter how close to each others are the terms. This is a bit experimental so if you notice a search query that returns unexpected results, please report it in the forum, providing as much details as possible to replicate the issue.
# Goto Anything
In the desktop application, press Ctrl+G or Cmd+G and type the title of a note to jump directly to it. You can also type `#` followed by a tag or `@` followed by a notebook title.
# Donations
Donations to Joplin support the development of the project. Developing quality applications mostly takes time, but there are also some expenses, such as digital certificates to sign the applications, app store fees, hosting, etc. Most of all, your donation will make it possible to keep up the current development standard.
@@ -341,7 +346,7 @@ Please see the [donation page](https://joplinapp.org/donate/) for information on
- Also see here for information about [the latest releases and general news](https://discourse.joplinapp.org/c/news).
- For bug reports and feature requests, go to the [GitHub Issue Tracker](https://github.com/laurent22/joplin/issues).
- The latest news are posted [on the Patreon page](https://www.patreon.com/joplin).
- You can also follow us on [the Twitter feed](https://twitter.com/joplinapp).
- You can also follow us on <a rel="me" href="https://mastodon.social/@joplinapp">the Mastodon feed</a> or [the Twitter feed](https://twitter.com/joplinapp).
# Contributing
@@ -354,7 +359,7 @@ Joplin is currently available in the languages below. If you would like to contr
- [Download Poedit](https://poedit.net/), the translation editor, and install it.
- [Download the file to be translated](https://raw.githubusercontent.com/laurent22/joplin/master/CliClient/locales/joplin.pot).
- In Poedit, open this .pot file, go into the Catalog menu and click Configuration. Change "Country" and "Language" to your own country and language.
- From then you can translate the file. Once it is done, please either [open a pull request](https://github.com/laurent22/joplin/pulls) or send the file to [this address](https://raw.githubusercontent.com/laurent22/joplin/master/Assets/Adresse.png).
- From then you can translate the file. Once it is done, please either [open a pull request](https://github.com/laurent22/joplin/pulls) or send the file to [this address](https://raw.githubusercontent.com/laurent22/joplin/master/Assets/AdresseTranslation.png).
This translation will apply to the three applications - desktop, mobile and terminal.
@@ -365,20 +370,21 @@ Current translations:
<!-- LOCALE-TABLE-AUTO-GENERATED -->
&nbsp; | Language | Po File | Last translator | Percent done
---|---|---|---|---
![](https://joplinapp.org/images/flags/country-4x3/arableague.png) | Arabic | [ar](https://github.com/laurent22/joplin/blob/master/CliClient/locales/ar.po) | عبد الناصر سعيد (as@althobaity.com) | 91%
![](https://joplinapp.org/images/flags/country-4x3/arableague.png) | Arabic | [ar](https://github.com/laurent22/joplin/blob/master/CliClient/locales/ar.po) | عبد الناصر سعيد (as@althobaity.com) | 90%
![](https://joplinapp.org/images/flags/es/basque_country.png) | Basque | [eu](https://github.com/laurent22/joplin/blob/master/CliClient/locales/eu.po) | juan.abasolo@ehu.eus | 51%
![](https://joplinapp.org/images/flags/country-4x3/bg.png) | Bulgarian | [bg_BG](https://github.com/laurent22/joplin/blob/master/CliClient/locales/bg_BG.po) | | 99%
![](https://joplinapp.org/images/flags/es/catalonia.png) | Catalan | [ca](https://github.com/laurent22/joplin/blob/master/CliClient/locales/ca.po) | jmontane, 2018 | 73%
![](https://joplinapp.org/images/flags/country-4x3/hr.png) | Croatian | [hr_HR](https://github.com/laurent22/joplin/blob/master/CliClient/locales/hr_HR.po) | Hrvoje Mandić (trbuhom@net.hr) | 42%
![](https://joplinapp.org/images/flags/country-4x3/cz.png) | Czech | [cs_CZ](https://github.com/laurent22/joplin/blob/master/CliClient/locales/cs_CZ.po) | Lukas Helebrandt (lukas@aiya.cz) | 91%
![](https://joplinapp.org/images/flags/country-4x3/dk.png) | Dansk | [da_DK](https://github.com/laurent22/joplin/blob/master/CliClient/locales/da_DK.po) | Morten Juhl-Johansen Zölde-Fejér (mjjzf@syntaktisk. | 66%
![](https://joplinapp.org/images/flags/country-4x3/de.png) | Deutsch | [de_DE](https://github.com/laurent22/joplin/blob/master/CliClient/locales/de_DE.po) | Michael Sonntag (ms@editorei.de) | 98%
![](https://joplinapp.org/images/flags/country-4x3/de.png) | Deutsch | [de_DE](https://github.com/laurent22/joplin/blob/master/CliClient/locales/de_DE.po) | Michael Sonntag (ms@editorei.de) | 99%
![](https://joplinapp.org/images/flags/country-4x3/gb.png) | English (UK) | [en_GB](https://github.com/laurent22/joplin/blob/master/CliClient/locales/en_GB.po) | | 100%
![](https://joplinapp.org/images/flags/country-4x3/us.png) | English (US) | [en_US](https://github.com/laurent22/joplin/blob/master/CliClient/locales/en_US.po) | | 100%
![](https://joplinapp.org/images/flags/country-4x3/es.png) | Español | [es_ES](https://github.com/laurent22/joplin/blob/master/CliClient/locales/es_ES.po) | Andros Fenollosa (andros@fenollosa.email) | 98%
![](https://joplinapp.org/images/flags/country-4x3/es.png) | Español | [es_ES](https://github.com/laurent22/joplin/blob/master/CliClient/locales/es_ES.po) | Andros Fenollosa (andros@fenollosa.email) | 97%
![](https://joplinapp.org/images/flags/country-4x3/fr.png) | Français | [fr_FR](https://github.com/laurent22/joplin/blob/master/CliClient/locales/fr_FR.po) | Laurent Cozic | 100%
![](https://joplinapp.org/images/flags/es/galicia.png) | Galician | [gl_ES](https://github.com/laurent22/joplin/blob/master/CliClient/locales/gl_ES.po) | Marcos Lans (marcoslansgarza@gmail.com) | 65%
![](https://joplinapp.org/images/flags/country-4x3/it.png) | Italiano | [it_IT](https://github.com/laurent22/joplin/blob/master/CliClient/locales/it_IT.po) | | 92%
![](https://joplinapp.org/images/flags/country-4x3/be.png) | Nederlands | [nl_BE](https://github.com/laurent22/joplin/blob/master/CliClient/locales/nl_BE.po) | | 52%
![](https://joplinapp.org/images/flags/country-4x3/it.png) | Italiano | [it_IT](https://github.com/laurent22/joplin/blob/master/CliClient/locales/it_IT.po) | | 98%
![](https://joplinapp.org/images/flags/country-4x3/be.png) | Nederlands | [nl_BE](https://github.com/laurent22/joplin/blob/master/CliClient/locales/nl_BE.po) | | 51%
![](https://joplinapp.org/images/flags/country-4x3/nl.png) | Nederlands | [nl_NL](https://github.com/laurent22/joplin/blob/master/CliClient/locales/nl_NL.po) | Heimen Stoffels (vistausss@outlook.com) | 79%
![](https://joplinapp.org/images/flags/country-4x3/no.png) | Norwegian | [nb_NO](https://github.com/laurent22/joplin/blob/master/CliClient/locales/nb_NO.po) | Mats Estensen (code@mxe.no) | 91%
![](https://joplinapp.org/images/flags/country-4x3/ir.png) | Persian | [fa](https://github.com/laurent22/joplin/blob/master/CliClient/locales/fa.po) | Mehrad Mahmoudian (mehrad@mahmoudian.me) | 49%

View File

@@ -94,8 +94,8 @@ android {
applicationId "net.cozic.joplin"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 2097512
versionName "1.0.276"
versionCode 2097517
versionName "1.0.281"
ndk {
abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}

View File

@@ -17,11 +17,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>10.0.35</string>
<string>10.0.36</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>35</string>
<string>36</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAppTransportSecurity</key>

View File

@@ -8,6 +8,7 @@ class HtmlToMd {
const turndown = new TurndownService({
headingStyle: 'atx',
anchorNames: options.anchorNames ? options.anchorNames.map(n => n.trim().toLowerCase()) : [],
codeBlockStyle: 'fenced',
})
turndown.use(turndownPluginGfm)
turndown.remove('script');

View File

@@ -22,7 +22,7 @@ const hljs = require('highlight.js');
const markdownItAnchor = require('markdown-it-anchor');
// The keys must match the corresponding entry in Setting.js
const plugins = {
mark: {module: require('markdown-it-mark')},
mark: {module: require('markdown-it-mark')},
footnote: {module: require('markdown-it-footnote')},
sub: {module: require('markdown-it-sub')},
sup: {module: require('markdown-it-sup')},
@@ -43,6 +43,9 @@ class MdToHtml {
this.resourceBaseUrl_ = ('resourceBaseUrl' in options) ? options.resourceBaseUrl : null;
this.cachedOutputs_ = {};
this.lastCodeHighlightCacheKey_ = null;
this.cachedHighlightedCode_ = {};
}
render(body, style, options = null) {
@@ -51,6 +54,15 @@ class MdToHtml {
if (!options.paddingBottom) options.paddingBottom = '0';
if (!options.highlightedKeywords) options.highlightedKeywords = [];
// The "codeHighlightCacheKey" option indicates what set of cached object should be
// associated with this particular Markdown body. It is only used to allow us to
// clear the cache whenever switching to a different note.
// If "codeHighlightCacheKey" is not specified, code highlighting won't be cached.
if (options.codeHighlightCacheKey !== this.lastCodeHighlightCacheKey_ || !options.codeHighlightCacheKey) {
this.cachedHighlightedCode_ = {};
this.lastCodeHighlightCacheKey_ = options.codeHighlightCacheKey;
}
const breaks_ = Setting.value('markdown.softbreaks') ? false : true;
const cacheKey = md5(escape(body + JSON.stringify(options) + JSON.stringify(style)));
@@ -67,14 +79,21 @@ class MdToHtml {
breaks: breaks_,
linkify: true,
html: true,
highlight: function(str, lang) {
highlight: (str, lang) => {
try {
let hlCode = '';
if (lang && hljs.getLanguage(lang)) {
hlCode = hljs.highlight(lang, str, true).value;
const cacheKey = md5(str + '_' + lang);
if (options.codeHighlightCacheKey && this.cachedHighlightedCode_[cacheKey]) {
hlCode = this.cachedHighlightedCode_[cacheKey];
} else {
hlCode = hljs.highlightAuto(str).value;
if (lang && hljs.getLanguage(lang)) {
hlCode = hljs.highlight(lang, str, true).value;
} else {
hlCode = hljs.highlightAuto(str).value;
}
this.cachedHighlightedCode_[cacheKey] = hlCode;
}
if (shim.isReactNative()) {
@@ -124,15 +143,13 @@ class MdToHtml {
markdownIt.use(rules.checkbox(context, ruleOptions));
markdownIt.use(rules.link_open(context, ruleOptions));
markdownIt.use(rules.html_image(context, ruleOptions));
if (Setting.value('markdown.plugin.katex'))
markdownIt.use(rules.katex(context, ruleOptions));
if (Setting.value('markdown.plugin.katex')) markdownIt.use(rules.katex(context, ruleOptions));
markdownIt.use(rules.highlight_keywords(context, ruleOptions));
markdownIt.use(rules.code_inline(context, ruleOptions));
markdownIt.use(markdownItAnchor)
for (let key in plugins) {
if (Setting.value('markdown.plugin.' + key))
markdownIt.use(plugins[key].module, plugins[key].options);
if (Setting.value('markdown.plugin.' + key)) markdownIt.use(plugins[key].module, plugins[key].options);
}
setupLinkify(markdownIt);

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