You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-09-02 20:46:21 +02:00
Compare commits
84 Commits
android-v1
...
android-v1
Author | SHA1 | Date | |
---|---|---|---|
|
71078637db | ||
|
3e48992eb4 | ||
|
bdb31f2890 | ||
|
0255546ae1 | ||
|
d066350eea | ||
|
a1e3260309 | ||
|
be1f57a8a6 | ||
|
ca4dfe0f0f | ||
|
fa69957d3f | ||
|
f7203ed7e2 | ||
|
331858bd4f | ||
|
4d2c9523a3 | ||
|
4d9d84a8f3 | ||
|
ec1089870f | ||
|
dbedefc021 | ||
|
f6b0da3f5e | ||
|
85bf89fd97 | ||
|
c2a80b12f0 | ||
|
981c97cca5 | ||
|
091cbc5355 | ||
|
e5a8114887 | ||
|
4779fc6f43 | ||
|
86e7daaec4 | ||
|
cab73a26e7 | ||
|
554ddb3b51 | ||
|
3b22bdb8ae | ||
|
5fdd07679e | ||
|
69f75a1520 | ||
|
f9b7acb8b1 | ||
|
91f700ad54 | ||
|
966aca7753 | ||
|
4de8816ed5 | ||
|
bea68a1056 | ||
|
6fea7116b6 | ||
|
2955914ca5 | ||
|
fd150b5b9d | ||
|
334ffad196 | ||
|
a796a9d179 | ||
|
917dcea28a | ||
|
c901228dc5 | ||
|
da21580785 | ||
|
4d92187327 | ||
|
207d433fb3 | ||
|
ffc311d7bd | ||
|
a1e8e71359 | ||
|
7942e74dc6 | ||
|
c4e21c2b6a | ||
|
0a06aa6f9f | ||
|
f985cfa25c | ||
|
6e143aef5c | ||
|
bf16aa6192 | ||
|
d96c58d192 | ||
|
e7e0264411 | ||
|
430a11282b | ||
|
9957b2798c | ||
|
2c5b0010bf | ||
|
1e3c6ed98c | ||
|
484f290eb0 | ||
|
06ad539941 | ||
|
5b84e80ac4 | ||
|
ca0f349348 | ||
|
d79089aea3 | ||
|
03611ad5ca | ||
|
c78c1cd3cf | ||
|
55afa7b5b7 | ||
|
a6c407b62b | ||
|
21897a3cd4 | ||
|
5796dd2098 | ||
|
d050071437 | ||
|
eaf8510f49 | ||
|
6ee2595dce | ||
|
0ecf2d6d9a | ||
|
50fd075168 | ||
|
6fa76bb83a | ||
|
b175c1fc94 | ||
|
b461625518 | ||
|
3819897ba1 | ||
|
6a031857ba | ||
|
0e57b7eb46 | ||
|
e21a0ba5b7 | ||
|
78f731e616 | ||
|
f6688a65ae | ||
|
035b9c6d1a | ||
|
266ff244d9 |
Binary file not shown.
Before Width: | Height: | Size: 986 B |
BIN
Assets/AdresseSupport.png
Normal file
BIN
Assets/AdresseSupport.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.6 KiB |
BIN
Assets/AdresseTranslation.png
Normal file
BIN
Assets/AdresseTranslation.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.7 KiB |
@@ -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
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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 ""
|
||||
|
@@ -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 ""
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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 ""
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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 ""
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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 ""
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
106
CliClient/package-lock.json
generated
106
CliClient/package-lock.json
generated
@@ -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",
|
||||
|
@@ -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",
|
||||
|
@@ -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);
|
||||
|
@@ -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 = {}
|
||||
|
||||
|
7
CliClient/tests/enex_to_md/multiline_inner_text.html
Normal file
7
CliClient/tests/enex_to_md/multiline_inner_text.html
Normal 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>
|
6
CliClient/tests/enex_to_md/multiline_inner_text.md
Normal file
6
CliClient/tests/enex_to_md/multiline_inner_text.md
Normal file
@@ -0,0 +1,6 @@
|
||||
Sometimes Evernote wraps lines inside blocks
|
||||
Sometimes it doesn't wrap them
|
||||
But
|
||||
careful
|
||||
with
|
||||
pre tags
|
@@ -1,5 +1,7 @@
|
||||
def ma_fonction():
|
||||
"""
|
||||
C'est une super fonction
|
||||
"""
|
||||
pass
|
||||
```
|
||||
def ma_fonction():
|
||||
"""
|
||||
C'est une super fonction
|
||||
"""
|
||||
pass
|
||||
```
|
2
CliClient/tests/html_to_md/code_2.html
Normal file
2
CliClient/tests/html_to_md/code_2.html
Normal file
@@ -0,0 +1,2 @@
|
||||
<pre style="font-family: Menlo, Monaco, Consolas, "Courier New", 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>
|
5
CliClient/tests/html_to_md/code_2.md
Normal file
5
CliClient/tests/html_to_md/code_2.md
Normal 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
|
1
CliClient/tests/html_to_md/mathjax_block.html
Normal file
1
CliClient/tests/html_to_md/mathjax_block.html
Normal file
File diff suppressed because one or more lines are too long
5
CliClient/tests/html_to_md/mathjax_block.md
Normal file
5
CliClient/tests/html_to_md/mathjax_block.md
Normal 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}.
|
||||
$$
|
1
CliClient/tests/html_to_md/mathjax_inline.html
Normal file
1
CliClient/tests/html_to_md/mathjax_inline.html
Normal 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="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>" 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>
|
1
CliClient/tests/html_to_md/mathjax_inline.md
Normal file
1
CliClient/tests/html_to_md/mathjax_inline.md
Normal 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$.
|
@@ -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" />
|
||||
```
|
@@ -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();
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
@@ -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);
|
||||
|
@@ -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') {
|
||||
|
||||
|
@@ -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'",
|
||||
|
@@ -1,6 +1,6 @@
|
||||
.App {
|
||||
width: 400px;
|
||||
height: 600px;
|
||||
|
||||
overflow-x: hidden;
|
||||
overflow-y: hidden;
|
||||
display: flex;
|
||||
|
@@ -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>
|
||||
// );
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -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();
|
||||
|
@@ -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;";
|
||||
|
@@ -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>
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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();
|
||||
|
@@ -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,
|
||||
|
@@ -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
1
ElectronClient/app/locales/bg_BG.json
Normal file
1
ElectronClient/app/locales/bg_BG.json
Normal file
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
@@ -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
150
ElectronClient/app/package-lock.json
generated
150
ElectronClient/app/package-lock.json
generated
@@ -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",
|
||||
|
@@ -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",
|
||||
|
@@ -121,4 +121,10 @@ table td, table th {
|
||||
|
||||
:disabled {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
@media screen and (max-width:550px){
|
||||
.header .title {
|
||||
display: none;
|
||||
}
|
||||
}
|
@@ -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...
|
||||
|
24
README.md
24
README.md
@@ -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 -->
|
||||
| Language | Po File | Last translator | Percent done
|
||||
---|---|---|---|---
|
||||
 | Arabic | [ar](https://github.com/laurent22/joplin/blob/master/CliClient/locales/ar.po) | عبد الناصر سعيد (as@althobaity.com) | 91%
|
||||
 | Arabic | [ar](https://github.com/laurent22/joplin/blob/master/CliClient/locales/ar.po) | عبد الناصر سعيد (as@althobaity.com) | 90%
|
||||
 | Basque | [eu](https://github.com/laurent22/joplin/blob/master/CliClient/locales/eu.po) | juan.abasolo@ehu.eus | 51%
|
||||
 | Bulgarian | [bg_BG](https://github.com/laurent22/joplin/blob/master/CliClient/locales/bg_BG.po) | | 99%
|
||||
 | Catalan | [ca](https://github.com/laurent22/joplin/blob/master/CliClient/locales/ca.po) | jmontane, 2018 | 73%
|
||||
 | Croatian | [hr_HR](https://github.com/laurent22/joplin/blob/master/CliClient/locales/hr_HR.po) | Hrvoje Mandić (trbuhom@net.hr) | 42%
|
||||
 | Czech | [cs_CZ](https://github.com/laurent22/joplin/blob/master/CliClient/locales/cs_CZ.po) | Lukas Helebrandt (lukas@aiya.cz) | 91%
|
||||
 | 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%
|
||||
 | Deutsch | [de_DE](https://github.com/laurent22/joplin/blob/master/CliClient/locales/de_DE.po) | Michael Sonntag (ms@editorei.de) | 98%
|
||||
 | Deutsch | [de_DE](https://github.com/laurent22/joplin/blob/master/CliClient/locales/de_DE.po) | Michael Sonntag (ms@editorei.de) | 99%
|
||||
 | English (UK) | [en_GB](https://github.com/laurent22/joplin/blob/master/CliClient/locales/en_GB.po) | | 100%
|
||||
 | English (US) | [en_US](https://github.com/laurent22/joplin/blob/master/CliClient/locales/en_US.po) | | 100%
|
||||
 | Español | [es_ES](https://github.com/laurent22/joplin/blob/master/CliClient/locales/es_ES.po) | Andros Fenollosa (andros@fenollosa.email) | 98%
|
||||
 | Español | [es_ES](https://github.com/laurent22/joplin/blob/master/CliClient/locales/es_ES.po) | Andros Fenollosa (andros@fenollosa.email) | 97%
|
||||
 | Français | [fr_FR](https://github.com/laurent22/joplin/blob/master/CliClient/locales/fr_FR.po) | Laurent Cozic | 100%
|
||||
 | Galician | [gl_ES](https://github.com/laurent22/joplin/blob/master/CliClient/locales/gl_ES.po) | Marcos Lans (marcoslansgarza@gmail.com) | 65%
|
||||
 | Italiano | [it_IT](https://github.com/laurent22/joplin/blob/master/CliClient/locales/it_IT.po) | | 92%
|
||||
 | Nederlands | [nl_BE](https://github.com/laurent22/joplin/blob/master/CliClient/locales/nl_BE.po) | | 52%
|
||||
 | Italiano | [it_IT](https://github.com/laurent22/joplin/blob/master/CliClient/locales/it_IT.po) | | 98%
|
||||
 | Nederlands | [nl_BE](https://github.com/laurent22/joplin/blob/master/CliClient/locales/nl_BE.po) | | 51%
|
||||
 | Nederlands | [nl_NL](https://github.com/laurent22/joplin/blob/master/CliClient/locales/nl_NL.po) | Heimen Stoffels (vistausss@outlook.com) | 79%
|
||||
 | Norwegian | [nb_NO](https://github.com/laurent22/joplin/blob/master/CliClient/locales/nb_NO.po) | Mats Estensen (code@mxe.no) | 91%
|
||||
 | Persian | [fa](https://github.com/laurent22/joplin/blob/master/CliClient/locales/fa.po) | Mehrad Mahmoudian (mehrad@mahmoudian.me) | 49%
|
||||
|
@@ -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"
|
||||
}
|
||||
|
@@ -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>
|
||||
|
@@ -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');
|
||||
|
@@ -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
Reference in New Issue
Block a user