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

Compare commits

...

97 Commits

Author SHA1 Message Date
Laurent Cozic
f599ae065a CLI v1.0.108 2018-06-14 22:42:43 +01:00
Laurent Cozic
5bd9bf6a4e Update dependencies 2018-06-14 22:42:15 +01:00
Laurent Cozic
cb9e8d4f76 Update website 2018-06-14 18:41:57 +01:00
Laurent Cozic
f64596672e Android release v1.0.127 2018-06-14 18:23:14 +01:00
Laurent Cozic
961150b2d3 Electron release v1.0.100 2018-06-14 18:19:48 +01:00
Laurent Cozic
0cd8e1cbc0 Updated translations 2018-06-14 18:18:48 +01:00
Laurent Cozic
b503aff5e9 Clipper: v1.0.5 2018-06-14 18:17:42 +01:00
Laurent Cozic
54bde47c67 Merge pull request #607 from jmontane/patch-1
Add Catalan Translation
2018-06-14 18:16:53 +01:00
Laurent Cozic
d345f8dc13 Clipper: Fixed extension being incorrectly detected as dev mode. Improved build process. 2018-06-14 18:11:22 +00:00
Laurent Cozic
979b0c0e78 Electron: Fixed prompt dialog font 2018-06-14 09:04:58 +01:00
Laurent Cozic
13525f3327 Electron: Switched icons to Fork Awesome 2018-06-14 09:02:01 +01:00
Laurent Cozic
5d9c2c0904 Electron: Added more toolbar icons and upgraded Font Awesome 2018-06-14 08:52:12 +01:00
Laurent Cozic
c748281d86 Update website 2018-06-13 19:22:49 +01:00
Laurent Cozic
fa619eba7c Added zh_TW translation 2018-06-13 19:22:18 +01:00
Laurent Cozic
17a75f7cf5 Electron: Made checkbox button more consistent 2018-06-13 17:53:41 +01:00
Joan Montané
a74cfbfb25 Add Catalan Translation 2018-06-12 14:46:51 +02:00
Laurent Cozic
af01fed950 Electron: Added hyperlink, checkbox and code options in toolbar 2018-06-12 00:12:06 +01:00
Laurent Cozic
218b446915 Electron: Added Bold and Italic toolbar buttons 2018-06-11 23:47:44 +01:00
Laurent Cozic
a68df18cd5 Updated website 2018-06-11 22:18:34 +01:00
Laurent Cozic
f79326b2d5 Updated website 2018-06-11 22:10:04 +01:00
Laurent Cozic
b08dcdfd90 Electron: Fixes #598: Allow opening any URL with a valid protocol in an external app 2018-06-11 00:35:01 +01:00
Laurent Cozic
ced14e578f Merge branch 'master' of github.com:laurent22/joplin 2018-06-11 00:24:44 +01:00
Laurent Cozic
0528c6e970 All: Try to display more info when there is a Dropbox API error 2018-06-11 00:24:29 +01:00
Laurent Cozic
df9c1e0aeb Electron: Fixes #570: Allow opening files by right-clicking on a resource in macOS 2018-06-11 00:08:57 +01:00
Laurent Cozic
b6619b41df All: Fixes #600: Improved resuming of long sync operations so that it doesn't needlessly re-download the items from the beginning 2018-06-10 23:16:27 +01:00
Laurent Cozic
ab9675544c All: Fixes #597: Also import sub-notebooks when importing JEX data 2018-06-10 19:15:40 +01:00
Laurent Cozic
0d9f703c75 Update DE translation 2018-06-10 17:44:00 +01:00
Laurent Cozic
f6ee5dd0e7 Mobile: Display decryption progress in side bar 2018-06-10 17:43:24 +01:00
Laurent Cozic
423d880b92 Merge branch 'master' of github.com:laurent22/joplin 2018-06-10 15:18:10 +01:00
Laurent Cozic
41017b9ab8 Update website 2018-06-10 15:18:07 +01:00
Laurent Cozic
e3314c859f Merge pull request #554 from bradmcl/master
Handle Nginx DAV PROPFIND responses correctly
2018-06-10 15:11:38 +01:00
bradmcl
8f794fdbc6 Search for 404 anywhere in return status 2018-06-10 10:04:52 -04:00
Laurent Cozic
80b0773618 Update website 2018-06-10 14:18:50 +01:00
Laurent Cozic
ac848241b9 Electron release v1.0.99 2018-06-10 14:03:17 +01:00
Laurent Cozic
b4432e2efc Removed snap support 2018-06-10 14:02:55 +01:00
Laurent Cozic
52f60a2cf6 Electron release v1.0.98 2018-06-10 13:52:11 +01:00
Laurent Cozic
03c8438050 Removed broken snap package 2018-06-10 13:45:05 +01:00
Laurent Cozic
0e1c36ccf1 Electron: Fixes #601: Linux app cannot start anymore due to build error 2018-06-10 12:37:12 +01:00
Laurent Cozic
1b2b68c485 Electron: Fixes #562: Disable power saving when syncing in Linux 2018-06-10 12:19:36 +01:00
Laurent Cozic
5c36f3e78a Update translations 2018-06-10 11:54:29 +01:00
Laurent Cozic
d4ec8ae823 Merge pull request #588 from zblesk/search-display-notebook
Displaying the notebook's name in the Note toolbar when search is act…
2018-06-10 11:50:08 +01:00
Laurent Cozic
449a70d840 Merge pull request #575 from foxmask/issue572
fix #572 - Translation submenu
2018-06-10 11:41:12 +01:00
zblesk
8375030135 Reverting previous change; using disabled button for the label. 2018-06-10 11:18:02 +02:00
Laurent Cozic
e9f938b0fb Electron: Fixes #560: Drag the note that was clicked, which might be different from the note that was selected 2018-06-10 01:27:20 +01:00
Laurent Cozic
b0e57a5990 All: Fixes #557: Handle ENEX am-pm date format 2018-06-10 01:19:24 +01:00
Laurent Cozic
f47610e6fd Update website 2018-06-09 20:23:52 +01:00
Laurent Cozic
c131cb9bb8 Electron release v1.0.97 2018-06-09 20:02:00 +01:00
Laurent Cozic
023f775bd2 Merge branch 'master' of github.com:laurent22/joplin 2018-06-09 20:00:35 +01:00
Laurent Cozic
1127eb6e09 Clipper: Fixes #573: Better handling of certain code blocks 2018-06-09 20:00:26 +01:00
Ladislav Benc
0d7437c7d2 Also showing the display when browsing tags. 2018-06-06 15:18:58 +02:00
Ladislav Benc
6dbc691973 Fixing locale and making the Notebook name no longer behave like a button. 2018-06-06 14:11:46 +02:00
Laurent Cozic
fe53200a3a Added link to NixNote info 2018-06-06 00:16:21 +01:00
zblesk
c7f61271a0 Displaying the notebook's name in the Note toolbar when search is active. 2018-06-05 10:27:07 +02:00
Laurent Cozic
b826e2d97b Clipper: Fixes #569: Make clipper service available on localhost only 2018-06-01 16:44:16 +01:00
Laurent Cozic
d8ad42b04a Clipper: Take zoom into account when clipping screenshot 2018-06-01 16:12:49 +01:00
Laurent Cozic
b3ca30b8b6 Merge branch 'master' of github.com:laurent22/joplin 2018-06-01 15:50:23 +01:00
Laurent Cozic
bdd9da3d22 Clipper: More consistent REST API 2018-06-01 15:50:11 +01:00
Laurent Cozic
eb43ddc701 Merge pull request #576 from zuphilip/patch-1
Update de_DE.po
2018-05-31 11:16:40 +01:00
Philipp Zumstein
f9c65a148f Update de_DE.po 2018-05-30 19:43:10 +02:00
FoxMaSk
bd0b9dff51 fix #572 - Translation submenu 2018-05-30 19:22:07 +02:00
Laurent Cozic
3822309657 All: Auto-delete resources only after 10 days to handle some edge cases 2018-05-27 12:50:12 +01:00
Laurent Cozic
ac2ec65c81 Update ES translation 2018-05-27 12:44:41 +01:00
Laurent Cozic
c0943f1776 Merge branch 'master' of github.com:laurent22/joplin 2018-05-27 12:44:09 +01:00
Laurent Cozic
5a2ab5fae7 Mobile: Fixes #565: Translate strings in dialog 2018-05-27 12:42:31 +01:00
bradmcl
281e36fde7 Update file-api-driver-webdav.js 2018-05-26 21:06:51 -04:00
Laurent Cozic
1af1c445c6 Merge pull request #564 from fmrtn/master
Updated Spanish translation
2018-05-26 22:31:20 +01:00
Fernando
e6d2e028ad Updated Spanish translation 2018-05-26 21:01:34 +02:00
Laurent Cozic
8d25b8075d Update website 2018-05-26 17:37:17 +01:00
Laurent Cozic
58201fd6c3 Clipper: Disable incorrect detection of dev mode for Firefox extension 2018-05-26 17:37:03 +01:00
Laurent Cozic
2b624a9aed Electron release v1.0.96 2018-05-26 17:25:15 +01:00
Laurent Cozic
792fd7c50d Update translations 2018-05-26 17:25:11 +01:00
Laurent Cozic
90d37a15bd Electron: Added link to Firefox extension 2018-05-26 17:13:27 +01:00
Laurent Cozic
ef57ee803f Clipper: Fixes to get it working in Firefox 2018-05-26 16:28:55 +01:00
Laurent Cozic
e2bfb74895 Clipper: Minor improvement to screenshot usability 2018-05-26 15:53:50 +01:00
Laurent Cozic
89b486a3ee Clipper: Allow selecting a folder and fixed screenshot taking issue 2018-05-26 15:46:57 +01:00
Laurent Cozic
d6c6ef20d4 Update website 2018-05-26 12:58:44 +01:00
Laurent Cozic
6cb6e9541f Clipper: started doc 2018-05-26 12:57:14 +01:00
Laurent Cozic
a8acecb703 Clipper: Display server status in popup 2018-05-26 12:17:41 +01:00
Laurent Cozic
0938297250 Clipper: Make dev icon look different and run dev server on different port 2018-05-26 11:18:54 +01:00
Laurent Cozic
a2da2f681c Update website 2018-05-25 14:04:48 +01:00
Laurent Cozic
32477e901d Electron release v1.0.95 2018-05-25 13:31:42 +01:00
Laurent Cozic
1841c4dc11 Merge branch 'master' of github.com:laurent22/joplin 2018-05-25 13:31:27 +01:00
Laurent Cozic
f81dce3321 Merge branch 'clipper' 2018-05-25 13:31:15 +01:00
Laurent Cozic
e15f84716a Clipper: Added Clipper config screen and improved server 2018-05-25 13:30:27 +01:00
Laurent Cozic
d11ecd8fac Clipper: Better handling of clipper server detection 2018-05-25 11:18:47 +01:00
Laurent Cozic
012e70d668 Clipper: Dynamically allocate and detect clipper service port 2018-05-25 11:08:22 +01:00
Laurent Cozic
264ee4f319 Clipper: Support clipping screenshots 2018-05-25 08:51:54 +01:00
Laurent Cozic
4640d6d6e3 Clipper: Made extension compatible with Chrome and started screenshot clipping 2018-05-24 18:32:30 +01:00
Laurent Cozic
9db9d98419 Clipper: Skip style section when importing HTML 2018-05-24 13:32:43 +01:00
Laurent Cozic
f79d7b9626 Clipper: Set source URL and fixed issues with tables and urls 2018-05-24 12:44:13 +01:00
Laurent Cozic
a8da469523 Clipper: Improved download of images and conversion to resources 2018-05-23 14:25:59 +01:00
Laurent Cozic
3c5eb99c59 Clipper: Download images and convert them to resources 2018-05-23 12:14:38 +01:00
bradmcl
8dc14516d6 Handle Nginx DAV PROPFIND responses correctly
Parse the d:status field for d:propstat sections within a d:multistatus response to a DAV PROPFIND because Nginx returns 404 statuses wrapped in an overall 207
2018-05-22 21:08:14 -04:00
Laurent Cozic
7cf267254f Clipper: Improved Html To Md conversion 2018-05-22 00:54:23 +01:00
Laurent Cozic
7ed9c2770c Clipper: Improved UI and integration with main app 2018-05-20 10:19:59 +01:00
Laurent Cozic
c96a416c2c Clipper: Clean up 2018-05-16 14:21:33 +01:00
Laurent Cozic
6c5d208893 Clipper: Added first files 2018-05-16 14:16:14 +01:00
229 changed files with 35152 additions and 2899 deletions

View File

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

1610
CliClient/locales/ca.po Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -614,6 +614,12 @@ msgstr "Vyjmout"
msgid "Paste"
msgstr "Vložit"
msgid "Bold"
msgstr ""
msgid "Italic"
msgstr ""
msgid "Search in all the notes"
msgstr "Hledat ve všech poznámkách"
@@ -632,6 +638,9 @@ msgstr "Nástroje"
msgid "Synchronisation status"
msgstr "Stav synchronizace"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr "Nastavení šifrování"
@@ -682,6 +691,49 @@ msgstr "Ano"
msgid "No"
msgstr "Ne"
msgid "The web clipper service is enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Stav: %s."
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"This service allows the browser extension to communicate with Joplin. When "
"enabling it your firewall may ask you to give permission to Joplin to listen "
"to a particular port."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
msgid "Check synchronisation configuration"
msgstr "Zkontrolujte nastavení synchronizace"
@@ -853,6 +905,10 @@ msgstr "Nemáte žádný zápisník. Vytvořte jeden kliknutím na \"Nový zápi
msgid "Open..."
msgstr "Otevřít..."
#, fuzzy, javascript-format
msgid "This file could not be opened: %s"
msgstr "Nebylo možné uložit zápisník: %s"
msgid "Save as..."
msgstr "Uložit jako..."
@@ -869,6 +925,15 @@ msgid ""
"note."
msgstr "Tato poznámka je prázdný. Klikněte na \"%s\" pro otevření editoru."
msgid "strong text"
msgstr ""
msgid "emphasized text"
msgstr ""
msgid "Insert Hyperlink"
msgstr ""
msgid "Attach file"
msgstr "Přiložit soubor"
@@ -878,6 +943,31 @@ msgstr "Tagy"
msgid "Set alarm"
msgstr "Nastavit alarm"
#, fuzzy, javascript-format
msgid "In: %s"
msgstr "%s: %s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
msgid "Bulleted List"
msgstr ""
msgid "Checkbox"
msgstr ""
msgid "Heading"
msgstr ""
msgid "Horizontal Rule"
msgstr ""
msgid "to-do"
msgstr "to-do"
@@ -909,6 +999,10 @@ msgstr "Stav synchronizace"
msgid "Encryption Options"
msgstr "Nastavení šifrování"
#, fuzzy
msgid "Clipper Options"
msgstr "Obecná nastavení"
msgid "Remove this tag from all the notes?"
msgstr "Odebrat tento tag ze všech poznámek?"
@@ -1061,6 +1155,18 @@ msgstr "Zápisník s tímto názvem již existuje: \"%s\""
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
msgstr "Zápisník se nemůže jmenovat \"%s\", tento název je rezervován."
#, fuzzy
msgid "title"
msgstr "Bez názvu"
#, fuzzy
msgid "updated date"
msgstr "Upraveno: %d."
#, fuzzy
msgid "created date"
msgstr "Vytvořeno: %d."
msgid "Untitled"
msgstr "Bez názvu"
@@ -1328,6 +1434,10 @@ msgstr "Přesunout poznámky %d do zápisníku \"%s\"?"
msgid "Press to set the decryption password."
msgstr "Stiskněte pro zadání hesla k dešifrování."
#, fuzzy
msgid "Save alarm"
msgstr "Nastavit alarm"
msgid "Select date"
msgstr "Vybrat datum"
@@ -1337,6 +1447,10 @@ msgstr "Potvrdit"
msgid "Cancel synchronisation"
msgstr "Zrušit synchronizaci"
#, fuzzy, javascript-format
msgid "Decrypting items: %d/%d"
msgstr "Získané položky: %d/%d."
msgid "New tags:"
msgstr "Nové tagy:"

View File

@@ -619,6 +619,12 @@ msgstr "Klip"
msgid "Paste"
msgstr "Indsæt"
msgid "Bold"
msgstr ""
msgid "Italic"
msgstr ""
msgid "Search in all the notes"
msgstr "Søg i alle noter"
@@ -637,6 +643,9 @@ msgstr "Værktøjer"
msgid "Synchronisation status"
msgstr "Synkroniserings status"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr "Krypterings muligheder"
@@ -687,6 +696,49 @@ msgstr "Ja"
msgid "No"
msgstr "Nej"
msgid "The web clipper service is enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Tilstand: %s."
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"This service allows the browser extension to communicate with Joplin. When "
"enabling it your firewall may ask you to give permission to Joplin to listen "
"to a particular port."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
msgid "Check synchronisation configuration"
msgstr "Check synkroniserings Indstillinger"
@@ -862,6 +914,10 @@ msgstr "Der er ingen notesbog. Opret en ved at klikke på \"Ny Notesbog\"."
msgid "Open..."
msgstr "Åben..."
#, fuzzy, javascript-format
msgid "This file could not be opened: %s"
msgstr "Notesbogen kan ikke gemmes: %s"
msgid "Save as..."
msgstr "Gem som..."
@@ -878,6 +934,15 @@ msgid ""
"note."
msgstr "Denne note er tom. Klik på \"%s\" for at starte editor og rette noten."
msgid "strong text"
msgstr ""
msgid "emphasized text"
msgstr ""
msgid "Insert Hyperlink"
msgstr ""
msgid "Attach file"
msgstr "Vedhæft fil"
@@ -887,6 +952,31 @@ msgstr "Mærker"
msgid "Set alarm"
msgstr "Indstil alarm"
#, fuzzy, javascript-format
msgid "In: %s"
msgstr "%s: %s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
msgid "Bulleted List"
msgstr ""
msgid "Checkbox"
msgstr ""
msgid "Heading"
msgstr ""
msgid "Horizontal Rule"
msgstr ""
msgid "to-do"
msgstr "opgave"
@@ -918,6 +1008,10 @@ msgstr "Synkroniserings status"
msgid "Encryption Options"
msgstr "Krypterings indstillinger"
#, fuzzy
msgid "Clipper Options"
msgstr "Generelle indstillinger"
msgid "Remove this tag from all the notes?"
msgstr "Slet denne markering fra alle noter?"
@@ -1070,6 +1164,18 @@ msgstr "En notesbog bruger allerede dette navn: \"%s\""
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
msgstr "Notesbøger kan ikke få navnet \"%s\", da det er en beskyttet titel."
#, fuzzy
msgid "title"
msgstr "Samlet"
#, fuzzy
msgid "updated date"
msgstr "Opdateret %d."
#, fuzzy
msgid "created date"
msgstr "Oprettet: %d."
msgid "Untitled"
msgstr "Samlet"
@@ -1337,6 +1443,10 @@ msgstr "Flyt %d noter til notesbogen \"%s\"?"
msgid "Press to set the decryption password."
msgstr "Klik for at gemme dekrypterings kodeord."
#, fuzzy
msgid "Save alarm"
msgstr "Indstil alarm"
msgid "Select date"
msgstr "Vælg dato"
@@ -1346,6 +1456,10 @@ msgstr "Bekræft"
msgid "Cancel synchronisation"
msgstr "Afbryd synkronisering"
#, fuzzy, javascript-format
msgid "Decrypting items: %d/%d"
msgstr "Hentede emner: %d/%d."
msgid "New tags:"
msgstr "Nye tags:"

View File

@@ -271,8 +271,8 @@ msgstr "Um den Kommandozeilen Modus zu beenden, drücke ESCAPE"
msgid ""
"For the list of keyboard shortcuts and config options, type `help keymap`"
msgstr ""
"Um die komplette Liste aller verfügbaren Tastenkürzeln anzuzeigen, tippe "
"`help keymap` ein"
"Um die komplette Liste aller verfügbaren Tastenkürzeln und "
"Konfigurationseinstellungen anzuzeigen, tippe `help keymap` ein"
msgid "Imports data into Joplin."
msgstr "Importiert Daten in Joplin."
@@ -379,12 +379,12 @@ msgstr "Löscht das ausgewählte Notizbuch."
msgid "Deletes the notebook without asking for confirmation."
msgstr "Löscht das Notizbuch, ohne nach einer Bestätigung zu fragen."
#, fuzzy
msgid ""
"Delete notebook? All notes and sub-notebooks within this notebook will also "
"be deleted."
msgstr ""
"Notizbuch wirklich löschen? Alle Notizen darin werden ebenfalls gelöscht."
"Notizbuch wirklich löschen? Alle Notizen und Unternotizen darin werden "
"ebenfalls gelöscht."
msgid "Deletes the notes matching <note-pattern>."
msgstr "Löscht die Notizen, die mit <note-pattern> übereinstimmen."
@@ -643,6 +643,12 @@ msgstr "Ausschneiden"
msgid "Paste"
msgstr "Einfügen"
msgid "Bold"
msgstr ""
msgid "Italic"
msgstr ""
msgid "Search in all the notes"
msgstr "Alle Notizen durchsuchen"
@@ -661,8 +667,11 @@ msgstr "Werkzeuge"
msgid "Synchronisation status"
msgstr "Status der Synchronisation"
msgid "Web clipper options"
msgstr "Web Clipper Optionen"
msgid "Encryption options"
msgstr "Verschlüsselung"
msgstr "Verschlüsselungsoptionen"
msgid "General Options"
msgstr "Allgemeine Einstellungen"
@@ -711,6 +720,58 @@ msgstr "Ja"
msgid "No"
msgstr "Nein"
#, fuzzy
msgid "The web clipper service is enabled and set to auto-start."
msgstr ""
"Der Web Clipper Service ist bereits aktiviert und auf Autostart eingestellt."
#, javascript-format
msgid "Status: Started on port %d"
msgstr "Status: Gestartet auf Port %d"
#, javascript-format
msgid "Status: %s"
msgstr "Status: %s"
msgid "Disable Web Clipper Service"
msgstr "Web Clipper Service deaktivieren"
msgid "The web clipper service is not enabled."
msgstr "Der Web Clipper Service ist nicht aktiviert."
msgid "Enable Web Clipper Service"
msgstr "Web Clipper Service aktivieren"
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
"Joplin Web Clipper erlaubt im Browser das Speichern von Webseiten und "
"Screenshots nach Joplin."
msgid "In order to use the web clipper, you need to do the following:"
msgstr "Um den Web Clipper zu benutzen, musst du folgendes machen:"
msgid "Step 1: Enable the clipper service"
msgstr "Schritt 1: Clipper Service aktivieren"
msgid ""
"This service allows the browser extension to communicate with Joplin. When "
"enabling it your firewall may ask you to give permission to Joplin to listen "
"to a particular port."
msgstr ""
"Dieser Service erlaubt es der Browser-Erweiterung mit Joplin zu "
"kommunizieren. Beim Aktivieren kann deine Firewall dich nach der Erlaubnis "
"bitten, dass Joplin auf einen bestimmten Port mithört."
msgid "Step 2: Install the extension"
msgstr "Schritt 2: Erweiterung installieren"
msgid "Download and install the relevant extension for your browser:"
msgstr ""
"Lade die entsprechende Erweiterung für deinen Browser herunter und "
"installiere sie:"
msgid "Check synchronisation configuration"
msgstr "Überprüfen der Synchronisationseinstellungen"
@@ -835,9 +896,8 @@ msgstr "Trenne jede Markierung mit einem Komma."
msgid "Rename notebook:"
msgstr "Notizbuch umbenennen:"
#, fuzzy
msgid "Rename tag:"
msgstr "Umbenennen"
msgstr "Markierung umbenennen:"
msgid "Set alarm:"
msgstr "Alarm erstellen:"
@@ -866,9 +926,8 @@ msgstr "Markierungen hinzufügen oder entfernen"
msgid "Switch between note and to-do type"
msgstr "Zwischen Notiz und To-Do Typ wechseln"
#, fuzzy
msgid "Copy Markdown link"
msgstr "Markdown"
msgstr "Markdown-Link kopieren"
msgid "Delete"
msgstr "Löschen"
@@ -890,11 +949,15 @@ msgstr ""
msgid "Open..."
msgstr "Öffne..."
#, fuzzy, javascript-format
msgid "This file could not be opened: %s"
msgstr "Dieses Notizbuch konnte nicht gespeichert werden: %s"
msgid "Save as..."
msgstr "Sichern unter..."
msgid "Copy path to clipboard"
msgstr ""
msgstr "Pfad in Zwischenablage kopieren"
#, javascript-format
msgid "Unsupported link or message: %s"
@@ -908,6 +971,15 @@ msgstr ""
"Diese Notiz hat keinen Inhalt. Klicke auf „%s“ um den Editor zu aktivieren "
"und die Notiz zu bearbeiten."
msgid "strong text"
msgstr ""
msgid "emphasized text"
msgstr ""
msgid "Insert Hyperlink"
msgstr ""
msgid "Attach file"
msgstr "Datei anhängen"
@@ -917,6 +989,31 @@ msgstr "Markierungen"
msgid "Set alarm"
msgstr "Alarm erstellen"
#, fuzzy, javascript-format
msgid "In: %s"
msgstr "%s: %s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
msgid "Bulleted List"
msgstr ""
msgid "Checkbox"
msgstr ""
msgid "Heading"
msgstr ""
msgid "Horizontal Rule"
msgstr ""
msgid "to-do"
msgstr "To-Do"
@@ -934,7 +1031,7 @@ msgid "Clear"
msgstr "Leeren"
msgid "OneDrive Login"
msgstr "OneDrive Login"
msgstr "OneDrive Anmeldung"
msgid "Dropbox Login"
msgstr "Dropbox Anmeldung"
@@ -948,6 +1045,9 @@ msgstr "Synchronisations Status"
msgid "Encryption Options"
msgstr "Verschlüsselungsoptionen"
msgid "Clipper Options"
msgstr "Clipper Einstellungen"
msgid "Remove this tag from all the notes?"
msgstr "Diese Markierung von allen Notizen entfernen?"
@@ -1089,9 +1189,8 @@ msgstr "Verschlüsselte Objekte können nicht verändert werden"
msgid "Conflicts"
msgstr "Konflikte"
#, fuzzy
msgid "Cannot move notebook to this location"
msgstr "Kann Notiz nicht zu Notizbuch \"%s\" verschieben"
msgstr "Kann Notizbuch nicht an diesen Ort verschieben"
#, javascript-format
msgid "A notebook with this title already exists: \"%s\""
@@ -1102,6 +1201,18 @@ msgid "Notebooks cannot be named \"%s\", which is a reserved title."
msgstr ""
"Notizbuch kann nicht \"%s\" genannt werden. Dies ist ein reservierter Titel."
#, fuzzy
msgid "title"
msgstr "Unbenannt"
#, fuzzy
msgid "updated date"
msgstr "Aktualisiert: %d."
#, fuzzy
msgid "created date"
msgstr "Erstellt: %d."
msgid "Untitled"
msgstr "Unbenannt"
@@ -1148,9 +1259,8 @@ msgstr "Dunkel"
msgid "Uncompleted to-dos on top"
msgstr "Zeige unvollständige To-Dos an oberster Stelle"
#, fuzzy
msgid "Show completed to-dos"
msgstr "Zeige unvollständige To-Dos an oberster Stelle"
msgstr "Abgeschlossene ToDos anzeigen"
msgid "Sort notes by"
msgstr "Sortiere Notizen nach"
@@ -1185,13 +1295,13 @@ msgstr "Zoomstufe der Benutzeroberfläche"
msgid "Editor font family"
msgstr "Editor Schriftenfamilie"
#, fuzzy
msgid ""
"This must be *monospace* font or it will not work properly. If the font is "
"incorrect or empty, it will default to a generic monospace font."
msgstr ""
"Der Name der Schrift wird nicht überprüft. Ist dieser inkorrekt oder leer "
"wird eine generische Monospace Schrift verwendet."
"Dies muss eine *Monospace* Schriftart sein, sonst funktioniert es nicht "
"richtig. Wenn die Schriftart falsch oder leer ist, wird eine "
"voreingestellte, generische Monospace-Schriftart verwendet."
msgid "Automatically update the application"
msgstr "Die Applikation automatisch aktualisieren"
@@ -1374,6 +1484,9 @@ msgstr "%d Notizen in das Notizbuch \"%s\" verschieben?"
msgid "Press to set the decryption password."
msgstr "Tippe hier, um das Entschlüsselungspasswort festzulegen."
msgid "Save alarm"
msgstr "Alarm speichern"
msgid "Select date"
msgstr "Datum auswählen"
@@ -1383,6 +1496,10 @@ msgstr "Bestätigen"
msgid "Cancel synchronisation"
msgstr "Synchronisation abbrechen"
#, fuzzy, javascript-format
msgid "Decrypting items: %d/%d"
msgstr "Geladene Objekte: %d/%d."
msgid "New tags:"
msgstr "Neue Markierungen:"
@@ -1393,17 +1510,23 @@ msgid ""
"To work correctly, the app needs the following permissions. Please enable "
"them in your phone settings, in Apps > Joplin > Permissions"
msgstr ""
"Um korrekt arbeiten zu können, benötigt die Anwendung die folgenden "
"Berechtigungen. Bitte aktiviere diese in deinen Telefoneinstellungen, unter "
"Apps > Joplin > Berechtigungen"
msgid ""
"- Storage: to allow attaching files to notes and to enable filesystem "
"synchronisation."
msgstr ""
"- Speicher: um das Anhängen von Dateien an Notizen und die Synchronisation "
"des Dateisystems zu ermöglichen."
msgid "- Camera: to allow taking a picture and attaching it to a note."
msgstr ""
msgstr "- Kamera: um ein Bild aufzunehmen und an eine Notiz anzuhängen."
msgid "- Location: to allow attaching geo-location information to a note."
msgstr ""
"- Standort: zum Anhängen von Geolokalisierungsinformationen an eine Notiz."
msgid "Joplin website"
msgstr "Website von Joplin"
@@ -1452,11 +1575,12 @@ msgstr "Änderungen verwerfen"
#, javascript-format
msgid "No item with ID %s"
msgstr ""
msgstr "Kein Element mit ID %s"
#, javascript-format
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 "Unsupported image type: %s"
@@ -1469,7 +1593,7 @@ msgid "Attach any file"
msgstr "Beliebige Datei anhängen"
msgid "Share"
msgstr ""
msgstr "Teilen"
msgid "Convert to note"
msgstr "In eine Notiz umwandeln"

View File

@@ -552,6 +552,12 @@ msgstr ""
msgid "Paste"
msgstr ""
msgid "Bold"
msgstr ""
msgid "Italic"
msgstr ""
msgid "Search in all the notes"
msgstr ""
@@ -570,6 +576,9 @@ msgstr ""
msgid "Synchronisation status"
msgstr ""
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr ""
@@ -620,6 +629,49 @@ msgstr ""
msgid "No"
msgstr ""
msgid "The web clipper service is enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, javascript-format
msgid "Status: %s"
msgstr ""
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"This service allows the browser extension to communicate with Joplin. When "
"enabling it your firewall may ask you to give permission to Joplin to listen "
"to a particular port."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
msgid "Check synchronisation configuration"
msgstr ""
@@ -777,6 +829,10 @@ msgstr ""
msgid "Open..."
msgstr ""
#, javascript-format
msgid "This file could not be opened: %s"
msgstr ""
msgid "Save as..."
msgstr ""
@@ -793,6 +849,15 @@ msgid ""
"note."
msgstr ""
msgid "strong text"
msgstr ""
msgid "emphasized text"
msgstr ""
msgid "Insert Hyperlink"
msgstr ""
msgid "Attach file"
msgstr ""
@@ -802,6 +867,31 @@ msgstr ""
msgid "Set alarm"
msgstr ""
#, javascript-format
msgid "In: %s"
msgstr ""
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
msgid "Bulleted List"
msgstr ""
msgid "Checkbox"
msgstr ""
msgid "Heading"
msgstr ""
msgid "Horizontal Rule"
msgstr ""
msgid "to-do"
msgstr ""
@@ -833,6 +923,9 @@ msgstr ""
msgid "Encryption Options"
msgstr ""
msgid "Clipper Options"
msgstr ""
msgid "Remove this tag from all the notes?"
msgstr ""
@@ -976,6 +1069,15 @@ msgstr ""
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
msgstr ""
msgid "title"
msgstr ""
msgid "updated date"
msgstr ""
msgid "created date"
msgstr ""
msgid "Untitled"
msgstr ""
@@ -1228,6 +1330,9 @@ msgstr ""
msgid "Press to set the decryption password."
msgstr ""
msgid "Save alarm"
msgstr ""
msgid "Select date"
msgstr ""
@@ -1237,6 +1342,10 @@ msgstr ""
msgid "Cancel synchronisation"
msgstr ""
#, javascript-format
msgid "Decrypting items: %d/%d"
msgstr ""
msgid "New tags:"
msgstr ""

View File

@@ -628,6 +628,12 @@ msgstr "Cortar"
msgid "Paste"
msgstr "Pegar"
msgid "Bold"
msgstr ""
msgid "Italic"
msgstr ""
msgid "Search in all the notes"
msgstr "Buscar en todas las notas"
@@ -646,6 +652,9 @@ msgstr "Herramientas"
msgid "Synchronisation status"
msgstr "Estado de la sincronización"
msgid "Web clipper options"
msgstr "Opciones de recorte web"
msgid "Encryption options"
msgstr "Opciones de cifrado"
@@ -696,6 +705,57 @@ msgstr "Sí"
msgid "No"
msgstr "No"
#, fuzzy
msgid "The web clipper service is enabled and set to auto-start."
msgstr ""
"El servicio de recorte web está habilitado y configurado para inicie "
"automaticamente"
#, javascript-format
msgid "Status: Started on port %d"
msgstr "Estado: Iniciado en el puerto %d"
#, javascript-format
msgid "Status: %s"
msgstr "Estado: %s"
msgid "Disable Web Clipper Service"
msgstr "Deshabilitar el servicio de recorte web"
msgid "The web clipper service is not enabled."
msgstr "El servicio de recorte web no está habilitado."
msgid "Enable Web Clipper Service"
msgstr "Habilitar el servicio de recorte web"
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
"El recorte web de Joplin permite guardar páginas web y capturas de pantalla "
"desde su navegador."
msgid "In order to use the web clipper, you need to do the following:"
msgstr "Para utilizar el recorte web, necesita hacer lo siguiente:"
msgid "Step 1: Enable the clipper service"
msgstr "Paso 1: Habilitar el servicio de recorte"
msgid ""
"This service allows the browser extension to communicate with Joplin. When "
"enabling it your firewall may ask you to give permission to Joplin to listen "
"to a particular port."
msgstr ""
"Este servicio permite a la extensión del navegador comunicarse con Joplin. "
"Cuando la habilite su cortafuegos puede solicitar permisos para que Joplin "
"escuche en un puerto concreto."
msgid "Step 2: Install the extension"
msgstr "Paso 2: Instalar la extensión"
msgid "Download and install the relevant extension for your browser:"
msgstr "Descargar e instalar para su navegador:"
msgid "Check synchronisation configuration"
msgstr "Comprobar sincronización"
@@ -819,9 +879,8 @@ msgstr "Separar cada etiqueta por una coma."
msgid "Rename notebook:"
msgstr "Renombrar libreta:"
#, fuzzy
msgid "Rename tag:"
msgstr "Renombrar"
msgstr "Renombrar etiqueta:"
msgid "Set alarm:"
msgstr "Ajustar alarma:"
@@ -869,11 +928,15 @@ msgstr "No hay ninguna libreta. Cree una pulsando en «Libreta nueva»."
msgid "Open..."
msgstr "Abrir..."
#, fuzzy, javascript-format
msgid "This file could not be opened: %s"
msgstr "No se ha podido guardar esta libreta: %s"
msgid "Save as..."
msgstr "Guardar como..."
msgid "Copy path to clipboard"
msgstr ""
msgstr "Copiar la ruta en el portapapeles"
#, javascript-format
msgid "Unsupported link or message: %s"
@@ -887,6 +950,15 @@ msgstr ""
"Esta nota no tiene contenido. Pulse en \"%s\" para cambiar al editor y "
"editar la nota."
msgid "strong text"
msgstr ""
msgid "emphasized text"
msgstr ""
msgid "Insert Hyperlink"
msgstr ""
msgid "Attach file"
msgstr "Adjuntar archivo"
@@ -896,6 +968,31 @@ msgstr "Etiquetas"
msgid "Set alarm"
msgstr "Establecer alarma"
#, fuzzy, javascript-format
msgid "In: %s"
msgstr "%s: %s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
msgid "Bulleted List"
msgstr ""
msgid "Checkbox"
msgstr ""
msgid "Heading"
msgstr ""
msgid "Horizontal Rule"
msgstr ""
msgid "to-do"
msgstr "lista de tareas"
@@ -927,6 +1024,9 @@ msgstr "Estado de la sincronización"
msgid "Encryption Options"
msgstr "Opciones de cifrado"
msgid "Clipper Options"
msgstr "Opciones de recorte"
msgid "Remove this tag from all the notes?"
msgstr "¿Desea eliminar esta etiqueta de todas las notas?"
@@ -1079,6 +1179,18 @@ msgid "Notebooks cannot be named \"%s\", which is a reserved title."
msgstr ""
"No se puede usar el nombre «%s» para una libreta; es un título reservado."
#, fuzzy
msgid "title"
msgstr "Sin título"
#, fuzzy
msgid "updated date"
msgstr "Actualizado: %d."
#, fuzzy
msgid "created date"
msgstr "Creado: %d."
msgid "Untitled"
msgstr "Sin título"
@@ -1124,9 +1236,8 @@ msgstr "Oscuro"
msgid "Uncompleted to-dos on top"
msgstr "Mostrar tareas incompletas al inicio de las listas"
#, fuzzy
msgid "Show completed to-dos"
msgstr "Mostrar tareas incompletas al inicio de las listas"
msgstr "Mostrar tareas completadas"
msgid "Sort notes by"
msgstr "Ordenar notas por"
@@ -1161,13 +1272,13 @@ msgstr "Establecer el porcentaje de aumento de la aplicación"
msgid "Editor font family"
msgstr "Fuente del editor"
#, fuzzy
msgid ""
"This must be *monospace* font or it will not work properly. If the font is "
"incorrect or empty, it will default to a generic monospace font."
msgstr ""
"El nombre de la fuente no se comprobado. Si es incorrecto o está vacío, se "
"utilizará una fuente genérica monoespaciada."
"Esta debe ser una fuente *monoespaciada* o no funcionará correctamente. Si "
"la fuente es incorrecta o vacía, se configurará una fuente monoespaciada "
"genérica."
msgid "Automatically update the application"
msgstr "Actualizar la aplicación automáticamente"
@@ -1347,6 +1458,10 @@ msgstr "¿Desea mover %d notas a libreta «%s»?"
msgid "Press to set the decryption password."
msgstr "Presione para establecer la contraseña de descifrado."
#, fuzzy
msgid "Save alarm"
msgstr "Establecer alarma"
msgid "Select date"
msgstr "Seleccione fecha"
@@ -1356,6 +1471,10 @@ msgstr "Confirmar"
msgid "Cancel synchronisation"
msgstr "Cancelar sincronización"
#, fuzzy, javascript-format
msgid "Decrypting items: %d/%d"
msgstr "Elementos obtenidos: %d/%d."
msgid "New tags:"
msgstr "Nuevas etiquetas:"
@@ -1366,17 +1485,24 @@ msgid ""
"To work correctly, the app needs the following permissions. Please enable "
"them in your phone settings, in Apps > Joplin > Permissions"
msgstr ""
"Para funcionar correctamente, la aplicación necesita los siguientes "
"permisos. Por favor habilitelos en su teléfono, en Aplicaciones > Joplin > "
"Permisos"
msgid ""
"- Storage: to allow attaching files to notes and to enable filesystem "
"synchronisation."
msgstr ""
"- Almacenamiento: Permite adjuntar archivos a las notas y habilitar la "
"sincronización del sistema de ficheros."
msgid "- Camera: to allow taking a picture and attaching it to a note."
msgstr ""
msgstr "- Cámara: permite tomar fotografías y adjuntarlas en una nota."
msgid "- Location: to allow attaching geo-location information to a note."
msgstr ""
"- Localización: permite adjuntar la información de geolocalización en la "
"nota."
msgid "Joplin website"
msgstr "Sitio web de Joplin"
@@ -1443,7 +1569,7 @@ msgid "Attach any file"
msgstr "Adjuntar cualquier archivo"
msgid "Share"
msgstr ""
msgstr "Compartir"
msgid "Convert to note"
msgstr "Convertir a nota"

View File

@@ -627,6 +627,12 @@ msgstr "Moztu"
msgid "Paste"
msgstr "Itsatsi"
msgid "Bold"
msgstr ""
msgid "Italic"
msgstr ""
msgid "Search in all the notes"
msgstr "Bilatu ohar guztietan"
@@ -645,6 +651,9 @@ msgstr "Tresnak"
msgid "Synchronisation status"
msgstr "Sinkronizazioaren egoera"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr "Zifratzeko aukerak"
@@ -697,6 +706,49 @@ msgstr ""
msgid "No"
msgstr "E"
msgid "The web clipper service is enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Egoera: \"%s\"."
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"This service allows the browser extension to communicate with Joplin. When "
"enabling it your firewall may ask you to give permission to Joplin to listen "
"to a particular port."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
#, fuzzy
msgid "Check synchronisation configuration"
msgstr "Sinkronizazioa utzi"
@@ -871,6 +923,10 @@ msgstr "Momentuz ez dago koadernorik. Sortu bat \"Koaderno berria\" sakatuta."
msgid "Open..."
msgstr ""
#, fuzzy, javascript-format
msgid "This file could not be opened: %s"
msgstr "Koadernoa ezin gorde daiteke: %s"
#, fuzzy
msgid "Save as..."
msgstr "Gorde aldaketak"
@@ -888,6 +944,15 @@ msgid ""
"note."
msgstr ""
msgid "strong text"
msgstr ""
msgid "emphasized text"
msgstr ""
msgid "Insert Hyperlink"
msgstr ""
msgid "Attach file"
msgstr "Erantsi fitxategia"
@@ -897,6 +962,31 @@ msgstr "Etiketak"
msgid "Set alarm"
msgstr "Ezarri alarma"
#, fuzzy, javascript-format
msgid "In: %s"
msgstr "%s: %s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
msgid "Bulleted List"
msgstr ""
msgid "Checkbox"
msgstr ""
msgid "Heading"
msgstr ""
msgid "Horizontal Rule"
msgstr ""
#, fuzzy
msgid "to-do"
msgstr "Zeregin berria"
@@ -931,6 +1021,10 @@ msgstr "Sinkronizazioaren egoera"
msgid "Encryption Options"
msgstr "Zifratzeko aukerak"
#, fuzzy
msgid "Clipper Options"
msgstr "Ezarpenak"
msgid "Remove this tag from all the notes?"
msgstr "Kendu etiketa hori ohar guztietatik?"
@@ -1086,6 +1180,18 @@ msgid "Notebooks cannot be named \"%s\", which is a reserved title."
msgstr ""
"Koadernoak ezin izendatu daitezke \"%s\", izen hori Joplinek gordeta dauka"
#, fuzzy
msgid "title"
msgstr "Titulu gabekoa"
#, fuzzy
msgid "updated date"
msgstr "Eguneratuta: %d."
#, fuzzy
msgid "created date"
msgstr "Sortuta: %d."
msgid "Untitled"
msgstr "Titulu gabekoa"
@@ -1358,6 +1464,10 @@ msgstr "Mugitu %d oharrak \"%s\" koadernora?"
msgid "Press to set the decryption password."
msgstr "Sakatu deszifratze pasahitza ezartzeko."
#, fuzzy
msgid "Save alarm"
msgstr "Ezarri alarma"
msgid "Select date"
msgstr "Data aukeratu"
@@ -1367,6 +1477,10 @@ msgstr "Baieztatu"
msgid "Cancel synchronisation"
msgstr "Sinkronizazioa utzi"
#, fuzzy, javascript-format
msgid "Decrypting items: %d/%d"
msgstr "Itemak eskuratuta: %d%d."
msgid "New tags:"
msgstr ""

View File

@@ -14,8 +14,6 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.3\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
msgid "To delete a tag, untag the associated notes."
msgstr "Pour supprimer une vignette, enlever là des notes associées."
@@ -629,6 +627,12 @@ msgstr "Couper"
msgid "Paste"
msgstr "Coller"
msgid "Bold"
msgstr ""
msgid "Italic"
msgstr ""
msgid "Search in all the notes"
msgstr "Chercher dans toutes les notes"
@@ -647,6 +651,9 @@ msgstr "Outils"
msgid "Synchronisation status"
msgstr "État de la synchronisation"
msgid "Web clipper options"
msgstr "Options du Web Clipper"
msgid "Encryption options"
msgstr "Options de cryptage"
@@ -698,6 +705,56 @@ msgstr "Oui"
msgid "No"
msgstr "Non"
msgid "The web clipper service is enabled and set to auto-start."
msgstr "Le service du Web Clipper est activé et démarrera automatiquement."
#, javascript-format
msgid "Status: Started on port %d"
msgstr "État : Commencé sur le port %d"
#, javascript-format
msgid "Status: %s"
msgstr "État : %s"
msgid "Disable Web Clipper Service"
msgstr "Désactiver le service du Web Clipper"
msgid "The web clipper service is not enabled."
msgstr "Le service du Web Clipper n'est pas activé."
msgid "Enable Web Clipper Service"
msgstr "Activer le service du Web Clipper"
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
"Le Web Clipper permet de sauver des pages web et des captures d'écran depuis "
"votre navigateur vers Joplin."
msgid "In order to use the web clipper, you need to do the following:"
msgstr "Pour utiliser le Web Clipper, veuillez suivre ces instructions :"
msgid "Step 1: Enable the clipper service"
msgstr "Étape 1 : Activez le service du Web Clipper"
msgid ""
"This service allows the browser extension to communicate with Joplin. When "
"enabling it your firewall may ask you to give permission to Joplin to listen "
"to a particular port."
msgstr ""
"Le service permet au module complémentaire de communiquer avec Joplin. "
"Lorsque vous aller l'activer, il se pourrait que votre pare feu vous demande "
"d'autoriser l'application Joplin."
msgid "Step 2: Install the extension"
msgstr "Étape 2 : Installez le module complémentaire"
msgid "Download and install the relevant extension for your browser:"
msgstr ""
"Téléchargez et installez le module complémentaire correspondant à votre "
"navigateur :"
msgid "Check synchronisation configuration"
msgstr "Vérifier config synchronisation"
@@ -877,6 +934,10 @@ msgstr ""
msgid "Open..."
msgstr "Ouvrir..."
#, fuzzy, javascript-format
msgid "This file could not be opened: %s"
msgstr "Ce carnet n'a pas pu être sauvegardé : %s"
msgid "Save as..."
msgstr "Enregistrer sous..."
@@ -895,6 +956,15 @@ msgstr ""
"Cette note n'a pas de contenu. Cliquer sur \"%s\" pour basculer vers "
"l'éditeur et éditer cette note."
msgid "strong text"
msgstr ""
msgid "emphasized text"
msgstr ""
msgid "Insert Hyperlink"
msgstr ""
msgid "Attach file"
msgstr "Attacher un fichier"
@@ -904,6 +974,31 @@ msgstr "Étiquettes"
msgid "Set alarm"
msgstr "Régler alarme"
#, javascript-format
msgid "In: %s"
msgstr "Dans : %s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
msgid "Bulleted List"
msgstr ""
msgid "Checkbox"
msgstr ""
msgid "Heading"
msgstr ""
msgid "Horizontal Rule"
msgstr ""
msgid "to-do"
msgstr "tâche"
@@ -935,6 +1030,9 @@ msgstr "État de la synchronisation"
msgid "Encryption Options"
msgstr "Options de cryptage"
msgid "Clipper Options"
msgstr "Options du Web Clipper"
msgid "Remove this tag from all the notes?"
msgstr "Enlever cette étiquette de toutes les notes ?"
@@ -1087,6 +1185,15 @@ msgstr "Un carnet avec ce titre existe déjà : \"%s\""
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
msgstr "Les carnets ne peuvent être nommés \"%s\" car c'est un nom réservé."
msgid "title"
msgstr "titre"
msgid "updated date"
msgstr "Date modification"
msgid "created date"
msgstr "Date création"
msgid "Untitled"
msgstr "Sans titre"
@@ -1356,6 +1463,9 @@ msgstr "Déplacer %d notes vers carnet \"%s\" ?"
msgid "Press to set the decryption password."
msgstr "Définir mot de passe de synchronisation."
msgid "Save alarm"
msgstr "Enregistrer alarme"
msgid "Select date"
msgstr "Sélectionner date"
@@ -1365,6 +1475,10 @@ msgstr "Confirmer"
msgid "Cancel synchronisation"
msgstr "Annuler synchronisation"
#, fuzzy, javascript-format
msgid "Decrypting items: %d/%d"
msgstr "Téléchargés : %d/%d."
msgid "New tags:"
msgstr "Nouvelles étiquettes :"

View File

@@ -619,6 +619,12 @@ msgstr "Cortar"
msgid "Paste"
msgstr "Pegar"
msgid "Bold"
msgstr ""
msgid "Italic"
msgstr ""
msgid "Search in all the notes"
msgstr "Buscar en todas as notas"
@@ -637,6 +643,9 @@ msgstr "Ferramentas"
msgid "Synchronisation status"
msgstr "Estado da sincronización"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr "Opcións de cifrado"
@@ -687,6 +696,49 @@ msgstr "Si"
msgid "No"
msgstr "Non"
msgid "The web clipper service is enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Estado: %s."
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"This service allows the browser extension to communicate with Joplin. When "
"enabling it your firewall may ask you to give permission to Joplin to listen "
"to a particular port."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
msgid "Check synchronisation configuration"
msgstr "Comprobar a configuración da sincronización"
@@ -859,6 +911,10 @@ msgstr "Este no é un caderno. Cree un, premendo en «Novo caderno»."
msgid "Open..."
msgstr "Abrir…"
#, fuzzy, javascript-format
msgid "This file could not be opened: %s"
msgstr "Non foi posíbel gardar o caderno: %s"
msgid "Save as..."
msgstr "Gardar como…"
@@ -877,6 +933,15 @@ msgstr ""
"Esta nota non ten contido. Prema en «%s» para ir ao editor e modificar a "
"nota."
msgid "strong text"
msgstr ""
msgid "emphasized text"
msgstr ""
msgid "Insert Hyperlink"
msgstr ""
msgid "Attach file"
msgstr "Anexar un ficheiro"
@@ -886,6 +951,31 @@ msgstr "Etiquetas"
msgid "Set alarm"
msgstr "Estabelecer alarma"
#, fuzzy, javascript-format
msgid "In: %s"
msgstr "%s: %s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
msgid "Bulleted List"
msgstr ""
msgid "Checkbox"
msgstr ""
msgid "Heading"
msgstr ""
msgid "Horizontal Rule"
msgstr ""
msgid "to-do"
msgstr "tarefas pendentes"
@@ -917,6 +1007,10 @@ msgstr "Estado da sincronización"
msgid "Encryption Options"
msgstr "Opcións de cifrado"
#, fuzzy
msgid "Clipper Options"
msgstr "Opcións xerais"
msgid "Remove this tag from all the notes?"
msgstr "Desexa eliminar esta etiqueta de todas as notas?"
@@ -1069,6 +1163,18 @@ msgstr "Xa existe un caderno con ese título: «%s»"
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
msgstr "Os cadernos non poden levar o nome «%s» porque é un título reservado."
#, fuzzy
msgid "title"
msgstr "Sen título"
#, fuzzy
msgid "updated date"
msgstr "Actualizado: %d."
#, fuzzy
msgid "created date"
msgstr "Creado: %d."
msgid "Untitled"
msgstr "Sen título"
@@ -1336,6 +1442,10 @@ msgstr "Mover %d notas para o caderno \"%s\"?"
msgid "Press to set the decryption password."
msgstr "Prema para estabelecer o contrasinal de descifrado."
#, fuzzy
msgid "Save alarm"
msgstr "Estabelecer alarma"
msgid "Select date"
msgstr "Seleccionar data"
@@ -1345,6 +1455,10 @@ msgstr "Confirmar"
msgid "Cancel synchronisation"
msgstr "Cancelar sincronización"
#, fuzzy, javascript-format
msgid "Decrypting items: %d/%d"
msgstr "Elementos obtidos: %d/%d."
msgid "New tags:"
msgstr "Etiquetas novas:"

View File

@@ -625,6 +625,12 @@ msgstr "Izreži"
msgid "Paste"
msgstr "Zalijepi"
msgid "Bold"
msgstr ""
msgid "Italic"
msgstr ""
msgid "Search in all the notes"
msgstr "Pretraži u svim bilješkama"
@@ -643,6 +649,9 @@ msgstr "Alati"
msgid "Synchronisation status"
msgstr "Status sinkronizacije"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr ""
@@ -696,6 +705,49 @@ msgstr ""
msgid "No"
msgstr "N"
msgid "The web clipper service is enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Stanje: \"%s\"."
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"This service allows the browser extension to communicate with Joplin. When "
"enabling it your firewall may ask you to give permission to Joplin to listen "
"to a particular port."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
#, fuzzy
msgid "Check synchronisation configuration"
msgstr "Prekini sinkronizaciju"
@@ -859,6 +911,10 @@ msgstr "Ovdje nema bilježnica. Stvori novu pritiskom na \"Nova bilježnica\"."
msgid "Open..."
msgstr ""
#, fuzzy, javascript-format
msgid "This file could not be opened: %s"
msgstr "Bilježnicu nije moguće snimiti: %s"
#, fuzzy
msgid "Save as..."
msgstr "Spremi promjene"
@@ -876,6 +932,15 @@ msgid ""
"note."
msgstr ""
msgid "strong text"
msgstr ""
msgid "emphasized text"
msgstr ""
msgid "Insert Hyperlink"
msgstr ""
msgid "Attach file"
msgstr "Priloži datoteku"
@@ -885,6 +950,31 @@ msgstr "Oznake"
msgid "Set alarm"
msgstr "Postavi upozorenje"
#, fuzzy, javascript-format
msgid "In: %s"
msgstr "%s: %s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
msgid "Bulleted List"
msgstr ""
msgid "Checkbox"
msgstr ""
msgid "Heading"
msgstr ""
msgid "Horizontal Rule"
msgstr ""
#, fuzzy
msgid "to-do"
msgstr "Novi zadatak"
@@ -918,6 +1008,10 @@ msgstr "Status Sinkronizacije"
msgid "Encryption Options"
msgstr ""
#, fuzzy
msgid "Clipper Options"
msgstr "Opcije"
msgid "Remove this tag from all the notes?"
msgstr "Makni ovu oznaku iz svih bilješki?"
@@ -1069,6 +1163,18 @@ msgstr "Bilježnica s ovim naslovom već postoji: \"%s\""
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
msgstr "Naslov \"%s\" je rezerviran i ne može se koristiti."
#, fuzzy
msgid "title"
msgstr "Nenaslovljen"
#, fuzzy
msgid "updated date"
msgstr "Ažurirano: %d."
#, fuzzy
msgid "created date"
msgstr "Stvoreno: %d."
msgid "Untitled"
msgstr "Nenaslovljen"
@@ -1334,6 +1440,10 @@ msgstr "Premjesti %d bilješke u bilježnicu \"%s\"?"
msgid "Press to set the decryption password."
msgstr ""
#, fuzzy
msgid "Save alarm"
msgstr "Postavi upozorenje"
msgid "Select date"
msgstr "Odaberi datum"
@@ -1343,6 +1453,10 @@ msgstr "Potvrdi"
msgid "Cancel synchronisation"
msgstr "Prekini sinkronizaciju"
#, fuzzy, javascript-format
msgid "Decrypting items: %d/%d"
msgstr "Stvorene lokalne stavke: %d."
msgid "New tags:"
msgstr ""

View File

@@ -610,6 +610,12 @@ msgstr "Taglia"
msgid "Paste"
msgstr "Incolla"
msgid "Bold"
msgstr ""
msgid "Italic"
msgstr ""
msgid "Search in all the notes"
msgstr "Cerca in tutte le note"
@@ -628,6 +634,9 @@ msgstr "Strumenti"
msgid "Synchronisation status"
msgstr "Stato di sincronizzazione"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr ""
@@ -681,6 +690,49 @@ msgstr ""
msgid "No"
msgstr "N"
msgid "The web clipper service is enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Stato: \"%s\"."
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"This service allows the browser extension to communicate with Joplin. When "
"enabling it your firewall may ask you to give permission to Joplin to listen "
"to a particular port."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
#, fuzzy
msgid "Check synchronisation configuration"
msgstr "Cancella la sincronizzazione"
@@ -845,6 +897,10 @@ msgstr "Al momento non ci sono note. Creane una cliccando sul bottone (+)."
msgid "Open..."
msgstr ""
#, fuzzy, javascript-format
msgid "This file could not be opened: %s"
msgstr "Il blocco note non può essere salvato: %s"
#, fuzzy
msgid "Save as..."
msgstr "Salva i cambiamenti"
@@ -862,6 +918,15 @@ msgid ""
"note."
msgstr ""
msgid "strong text"
msgstr ""
msgid "emphasized text"
msgstr ""
msgid "Insert Hyperlink"
msgstr ""
msgid "Attach file"
msgstr "Allega file"
@@ -871,6 +936,31 @@ msgstr "Etichette"
msgid "Set alarm"
msgstr "Imposta allarme"
#, fuzzy, javascript-format
msgid "In: %s"
msgstr "%s: %s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
msgid "Bulleted List"
msgstr ""
msgid "Checkbox"
msgstr ""
msgid "Heading"
msgstr ""
msgid "Horizontal Rule"
msgstr ""
#, fuzzy
msgid "to-do"
msgstr "Nuova attività"
@@ -904,6 +994,10 @@ msgstr "Stato della Sincronizzazione"
msgid "Encryption Options"
msgstr ""
#, fuzzy
msgid "Clipper Options"
msgstr "Opzioni"
msgid "Remove this tag from all the notes?"
msgstr "Rimuovere questa etichetta da tutte le note?"
@@ -1058,6 +1152,18 @@ msgstr "Esiste già un blocco note col titolo \"%s\""
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
msgstr "I blocchi non possono essere chiamati \"%s\". È un titolo riservato."
#, fuzzy
msgid "title"
msgstr "Senza titolo"
#, fuzzy
msgid "updated date"
msgstr "Aggiornato: %d."
#, fuzzy
msgid "created date"
msgstr "Creato: %d."
msgid "Untitled"
msgstr "Senza titolo"
@@ -1323,6 +1429,10 @@ msgstr "Spostare le note %d sul blocco note \"%s\"?"
msgid "Press to set the decryption password."
msgstr ""
#, fuzzy
msgid "Save alarm"
msgstr "Imposta allarme"
msgid "Select date"
msgstr "Seleziona la data"
@@ -1332,6 +1442,10 @@ msgstr "Conferma"
msgid "Cancel synchronisation"
msgstr "Cancella la sincronizzazione"
#, fuzzy, javascript-format
msgid "Decrypting items: %d/%d"
msgstr "Elementi locali creati: %d."
msgid "New tags:"
msgstr ""

View File

@@ -612,6 +612,12 @@ msgstr "切り取り"
msgid "Paste"
msgstr "貼り付け"
msgid "Bold"
msgstr ""
msgid "Italic"
msgstr ""
msgid "Search in all the notes"
msgstr "すべてのノートを検索"
@@ -630,6 +636,9 @@ msgstr "ツール"
msgid "Synchronisation status"
msgstr "同期状況"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr ""
@@ -682,6 +691,49 @@ msgstr ""
msgid "No"
msgstr ""
msgid "The web clipper service is enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "状態: \"%s\"。"
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"This service allows the browser extension to communicate with Joplin. When "
"enabling it your firewall may ask you to give permission to Joplin to listen "
"to a particular port."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
#, fuzzy
msgid "Check synchronisation configuration"
msgstr "同期の中止"
@@ -849,6 +901,10 @@ msgstr "ノートブックがありません。新しいノートブックを作
msgid "Open..."
msgstr ""
#, fuzzy, javascript-format
msgid "This file could not be opened: %s"
msgstr "ノートブックは保存できませんでした:%s"
#, fuzzy
msgid "Save as..."
msgstr "変更を保存"
@@ -866,6 +922,15 @@ msgid ""
"note."
msgstr ""
msgid "strong text"
msgstr ""
msgid "emphasized text"
msgstr ""
msgid "Insert Hyperlink"
msgstr ""
msgid "Attach file"
msgstr "ファイルを添付"
@@ -875,6 +940,31 @@ msgstr "タグ"
msgid "Set alarm"
msgstr "アラームをセット"
#, javascript-format
msgid "In: %s"
msgstr ""
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
msgid "Bulleted List"
msgstr ""
msgid "Checkbox"
msgstr ""
msgid "Heading"
msgstr ""
msgid "Horizontal Rule"
msgstr ""
#, fuzzy
msgid "to-do"
msgstr "新しいToDo"
@@ -908,6 +998,10 @@ msgstr "同期状況"
msgid "Encryption Options"
msgstr ""
#, fuzzy
msgid "Clipper Options"
msgstr "オプション"
msgid "Remove this tag from all the notes?"
msgstr "すべてのノートからこのタグを削除しますか?"
@@ -1063,6 +1157,18 @@ msgstr ""
"\"%s\"と言う名前はシステムで使用するために予約済みです。名前の変更が出来ませ"
"ん。"
#, fuzzy
msgid "title"
msgstr "名称未設定"
#, fuzzy
msgid "updated date"
msgstr "アップデートしました:%d"
#, fuzzy
msgid "created date"
msgstr "作成しました:%d"
msgid "Untitled"
msgstr "名称未設定"
@@ -1328,6 +1434,10 @@ msgstr "%d個のノートを\"%s\"に移動しますか?"
msgid "Press to set the decryption password."
msgstr ""
#, fuzzy
msgid "Save alarm"
msgstr "アラームをセット"
msgid "Select date"
msgstr "日付の選択"
@@ -1337,6 +1447,10 @@ msgstr "確認"
msgid "Cancel synchronisation"
msgstr "同期の中止"
#, fuzzy, javascript-format
msgid "Decrypting items: %d/%d"
msgstr "ローカルアイテムの作成: %d."
msgid "New tags:"
msgstr ""

View File

@@ -552,6 +552,12 @@ msgstr ""
msgid "Paste"
msgstr ""
msgid "Bold"
msgstr ""
msgid "Italic"
msgstr ""
msgid "Search in all the notes"
msgstr ""
@@ -570,6 +576,9 @@ msgstr ""
msgid "Synchronisation status"
msgstr ""
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr ""
@@ -620,6 +629,49 @@ msgstr ""
msgid "No"
msgstr ""
msgid "The web clipper service is enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, javascript-format
msgid "Status: %s"
msgstr ""
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"This service allows the browser extension to communicate with Joplin. When "
"enabling it your firewall may ask you to give permission to Joplin to listen "
"to a particular port."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
msgid "Check synchronisation configuration"
msgstr ""
@@ -777,6 +829,10 @@ msgstr ""
msgid "Open..."
msgstr ""
#, javascript-format
msgid "This file could not be opened: %s"
msgstr ""
msgid "Save as..."
msgstr ""
@@ -793,6 +849,15 @@ msgid ""
"note."
msgstr ""
msgid "strong text"
msgstr ""
msgid "emphasized text"
msgstr ""
msgid "Insert Hyperlink"
msgstr ""
msgid "Attach file"
msgstr ""
@@ -802,6 +867,31 @@ msgstr ""
msgid "Set alarm"
msgstr ""
#, javascript-format
msgid "In: %s"
msgstr ""
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
msgid "Bulleted List"
msgstr ""
msgid "Checkbox"
msgstr ""
msgid "Heading"
msgstr ""
msgid "Horizontal Rule"
msgstr ""
msgid "to-do"
msgstr ""
@@ -833,6 +923,9 @@ msgstr ""
msgid "Encryption Options"
msgstr ""
msgid "Clipper Options"
msgstr ""
msgid "Remove this tag from all the notes?"
msgstr ""
@@ -976,6 +1069,15 @@ msgstr ""
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
msgstr ""
msgid "title"
msgstr ""
msgid "updated date"
msgstr ""
msgid "created date"
msgstr ""
msgid "Untitled"
msgstr ""
@@ -1228,6 +1330,9 @@ msgstr ""
msgid "Press to set the decryption password."
msgstr ""
msgid "Save alarm"
msgstr ""
msgid "Select date"
msgstr ""
@@ -1237,6 +1342,10 @@ msgstr ""
msgid "Cancel synchronisation"
msgstr ""
#, javascript-format
msgid "Decrypting items: %d/%d"
msgstr ""
msgid "New tags:"
msgstr ""

View File

@@ -629,6 +629,12 @@ msgstr "Knip"
msgid "Paste"
msgstr "Plak"
msgid "Bold"
msgstr ""
msgid "Italic"
msgstr ""
msgid "Search in all the notes"
msgstr "Zoek in alle notities"
@@ -647,6 +653,9 @@ msgstr "Tools"
msgid "Synchronisation status"
msgstr "Synchronisatie status"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr "Versleutelopties"
@@ -699,6 +708,49 @@ msgstr ""
msgid "No"
msgstr "N"
msgid "The web clipper service is enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Status: \"%s\""
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"This service allows the browser extension to communicate with Joplin. When "
"enabling it your firewall may ask you to give permission to Joplin to listen "
"to a particular port."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
#, fuzzy
msgid "Check synchronisation configuration"
msgstr "Annuleer synchronisatie"
@@ -875,6 +927,10 @@ msgstr ""
msgid "Open..."
msgstr ""
#, fuzzy, javascript-format
msgid "This file could not be opened: %s"
msgstr "Het notitieboek kon niet opgeslaan worden: %s"
#, fuzzy
msgid "Save as..."
msgstr "Sla wijzigingen op"
@@ -892,6 +948,15 @@ msgid ""
"note."
msgstr ""
msgid "strong text"
msgstr ""
msgid "emphasized text"
msgstr ""
msgid "Insert Hyperlink"
msgstr ""
msgid "Attach file"
msgstr "Voeg bestand toe"
@@ -901,6 +966,31 @@ msgstr "Tags"
msgid "Set alarm"
msgstr "Zet melding"
#, fuzzy, javascript-format
msgid "In: %s"
msgstr "%s: %s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
msgid "Bulleted List"
msgstr ""
msgid "Checkbox"
msgstr ""
msgid "Heading"
msgstr ""
msgid "Horizontal Rule"
msgstr ""
#, fuzzy
msgid "to-do"
msgstr "Nieuwe to-do"
@@ -934,6 +1024,10 @@ msgstr "Synchronisatie status"
msgid "Encryption Options"
msgstr "Versleutelopties"
#, fuzzy
msgid "Clipper Options"
msgstr "Algemene opties"
msgid "Remove this tag from all the notes?"
msgstr "Deze tag verwijderen van alle notities?"
@@ -1089,6 +1183,18 @@ msgstr ""
"Notitieboeken kunnen niet \"%s\" genoemd worden, dit is een gereserveerd "
"woord."
#, fuzzy
msgid "title"
msgstr "Untitled"
#, fuzzy
msgid "updated date"
msgstr "Bijgewerkt: %d."
#, fuzzy
msgid "created date"
msgstr "Aangemaakt: %d."
msgid "Untitled"
msgstr "Untitled"
@@ -1360,6 +1466,10 @@ msgstr "Verplaats %d notities naar notitieboek \"%s\"?"
msgid "Press to set the decryption password."
msgstr "Klik om het decryptie wachtwoord in te stellen"
#, fuzzy
msgid "Save alarm"
msgstr "Zet melding"
msgid "Select date"
msgstr "Selecteer datum"
@@ -1369,6 +1479,10 @@ msgstr "Bevestig"
msgid "Cancel synchronisation"
msgstr "Annuleer synchronisatie"
#, fuzzy, javascript-format
msgid "Decrypting items: %d/%d"
msgstr "Opgehaalde items: %d/%d."
msgid "New tags:"
msgstr ""

View File

@@ -626,6 +626,12 @@ msgstr "Cortar"
msgid "Paste"
msgstr "Colar"
msgid "Bold"
msgstr ""
msgid "Italic"
msgstr ""
msgid "Search in all the notes"
msgstr "Pesquisar em todas as notas"
@@ -644,6 +650,9 @@ msgstr "Ferramentas"
msgid "Synchronisation status"
msgstr "Status de sincronização"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr "Opções de Encriptação"
@@ -694,6 +703,49 @@ msgstr "Sim"
msgid "No"
msgstr "Não"
msgid "The web clipper service is enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Estado: \"%s\"."
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"This service allows the browser extension to communicate with Joplin. When "
"enabling it your firewall may ask you to give permission to Joplin to listen "
"to a particular port."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
msgid "Check synchronisation configuration"
msgstr "Verificar a configuração da sincronização"
@@ -869,6 +921,10 @@ msgstr "Atualmente, não há cadernos. Crie um, clicando em \"Novo caderno\"."
msgid "Open..."
msgstr "Abrir..."
#, fuzzy, javascript-format
msgid "This file could not be opened: %s"
msgstr "O caderno não pôde ser salvo: %s"
msgid "Save as..."
msgstr "Salvar como..."
@@ -887,6 +943,15 @@ msgstr ""
"Esta nota não possui conteúdo. Clique em \"%s\" para alternar para o editor, "
"e edite a nota."
msgid "strong text"
msgstr ""
msgid "emphasized text"
msgstr ""
msgid "Insert Hyperlink"
msgstr ""
msgid "Attach file"
msgstr "Anexar arquivo"
@@ -896,6 +961,31 @@ msgstr "Tags"
msgid "Set alarm"
msgstr "Definir alarme"
#, fuzzy, javascript-format
msgid "In: %s"
msgstr "%s: %s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
msgid "Bulleted List"
msgstr ""
msgid "Checkbox"
msgstr ""
msgid "Heading"
msgstr ""
msgid "Horizontal Rule"
msgstr ""
msgid "to-do"
msgstr "tarefa"
@@ -927,6 +1017,10 @@ msgstr "Status de sincronização"
msgid "Encryption Options"
msgstr "Opções de Encriptação"
#, fuzzy
msgid "Clipper Options"
msgstr "Opções Gerais"
msgid "Remove this tag from all the notes?"
msgstr "Remover esta tag de todas as notas?"
@@ -1082,6 +1176,18 @@ msgid "Notebooks cannot be named \"%s\", which is a reserved title."
msgstr ""
"Os cadernos não podem ser nomeados como\"%s\", que é um título reservado."
#, fuzzy
msgid "title"
msgstr "Sem título"
#, fuzzy
msgid "updated date"
msgstr "Atualizado: %d."
#, fuzzy
msgid "created date"
msgstr "Criado: %d."
msgid "Untitled"
msgstr "Sem título"
@@ -1350,6 +1456,10 @@ msgstr "Mover %d notas para o caderno \"%s\"?"
msgid "Press to set the decryption password."
msgstr "Pressione para configurar a senha de decriptação."
#, fuzzy
msgid "Save alarm"
msgstr "Definir alarme"
msgid "Select date"
msgstr "Selecionar data"
@@ -1359,6 +1469,10 @@ msgstr "Confirmar"
msgid "Cancel synchronisation"
msgstr "Cancelar sincronização"
#, fuzzy, javascript-format
msgid "Decrypting items: %d/%d"
msgstr "Itens pesquisados: %d/%d."
msgid "New tags:"
msgstr "Novas tags:"

View File

@@ -626,6 +626,12 @@ msgstr "Вырезать"
msgid "Paste"
msgstr "Вставить"
msgid "Bold"
msgstr ""
msgid "Italic"
msgstr ""
msgid "Search in all the notes"
msgstr "Поиск во всех заметках"
@@ -644,6 +650,9 @@ msgstr "Инструменты"
msgid "Synchronisation status"
msgstr "Статус синхронизации"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr "Настройки шифрования"
@@ -694,6 +703,49 @@ msgstr "Да"
msgid "No"
msgstr "Нет"
msgid "The web clipper service is enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "Статус: «%s»."
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"This service allows the browser extension to communicate with Joplin. When "
"enabling it your firewall may ask you to give permission to Joplin to listen "
"to a particular port."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
msgid "Check synchronisation configuration"
msgstr "Проверить настройки синхронизации"
@@ -869,6 +921,10 @@ msgstr "Сейчас здесь нет блокнотов. Создайте но
msgid "Open..."
msgstr "Открыть..."
#, fuzzy, javascript-format
msgid "This file could not be opened: %s"
msgstr "Не удалось сохранить блокнот: %s"
msgid "Save as..."
msgstr "Сохранить как..."
@@ -887,6 +943,15 @@ msgstr ""
"Заметка пуста. Нажмите на «%s», чтобы переключиться в редактор и "
"отредактировать её."
msgid "strong text"
msgstr ""
msgid "emphasized text"
msgstr ""
msgid "Insert Hyperlink"
msgstr ""
msgid "Attach file"
msgstr "Прикрепить файл"
@@ -896,6 +961,31 @@ msgstr "Теги"
msgid "Set alarm"
msgstr "Установить напоминание"
#, fuzzy, javascript-format
msgid "In: %s"
msgstr "%s: %s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
msgid "Bulleted List"
msgstr ""
msgid "Checkbox"
msgstr ""
msgid "Heading"
msgstr ""
msgid "Horizontal Rule"
msgstr ""
msgid "to-do"
msgstr "задача"
@@ -927,6 +1017,10 @@ msgstr "Статус синхронизации"
msgid "Encryption Options"
msgstr "Настройки шифрования"
#, fuzzy
msgid "Clipper Options"
msgstr "Основные настройки"
msgid "Remove this tag from all the notes?"
msgstr "Убрать этот тег со всех заметок?"
@@ -1079,6 +1173,18 @@ msgstr "Блокнот с таким названием уже существу
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
msgstr "Блокнот не может быть назван «%s», это зарезервированное название."
#, fuzzy
msgid "title"
msgstr "Без имени"
#, fuzzy
msgid "updated date"
msgstr "Обновлено: %d."
#, fuzzy
msgid "created date"
msgstr "Создано: %d."
msgid "Untitled"
msgstr "Без имени"
@@ -1347,6 +1453,10 @@ msgstr "Переместить %d заметок в блокнот «%s»?"
msgid "Press to set the decryption password."
msgstr "Нажмите, чтобы установить пароль для расшифровки."
#, fuzzy
msgid "Save alarm"
msgstr "Установить напоминание"
msgid "Select date"
msgstr "Выбрать дату"
@@ -1356,6 +1466,10 @@ msgstr "Подтвердить"
msgid "Cancel synchronisation"
msgstr "Отменить синхронизацию"
#, fuzzy, javascript-format
msgid "Decrypting items: %d/%d"
msgstr "Получено элементов: %d/%d."
msgid "New tags:"
msgstr ""

1603
CliClient/locales/sl_SI.po Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -592,6 +592,12 @@ msgstr "剪切"
msgid "Paste"
msgstr "粘贴"
msgid "Bold"
msgstr ""
msgid "Italic"
msgstr ""
msgid "Search in all the notes"
msgstr "在所有笔记内搜索"
@@ -610,6 +616,9 @@ msgstr "工具"
msgid "Synchronisation status"
msgstr "同步状态"
msgid "Web clipper options"
msgstr ""
msgid "Encryption options"
msgstr "加密选项"
@@ -660,6 +669,49 @@ msgstr "是"
msgid "No"
msgstr "否"
msgid "The web clipper service is enabled and set to auto-start."
msgstr ""
#, javascript-format
msgid "Status: Started on port %d"
msgstr ""
#, fuzzy, javascript-format
msgid "Status: %s"
msgstr "状态:\"%s\"。"
msgid "Disable Web Clipper Service"
msgstr ""
msgid "The web clipper service is not enabled."
msgstr ""
msgid "Enable Web Clipper Service"
msgstr ""
msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
msgid "In order to use the web clipper, you need to do the following:"
msgstr ""
msgid "Step 1: Enable the clipper service"
msgstr ""
msgid ""
"This service allows the browser extension to communicate with Joplin. When "
"enabling it your firewall may ask you to give permission to Joplin to listen "
"to a particular port."
msgstr ""
msgid "Step 2: Install the extension"
msgstr ""
msgid "Download and install the relevant extension for your browser:"
msgstr ""
msgid "Check synchronisation configuration"
msgstr "检查同步配置"
@@ -828,6 +880,10 @@ msgstr "此处没有任何笔记本。点击\"新笔记本\"创建。"
msgid "Open..."
msgstr "打开…"
#, fuzzy, javascript-format
msgid "This file could not be opened: %s"
msgstr "此笔记本无法保存:%s"
msgid "Save as..."
msgstr "另存为…"
@@ -844,6 +900,15 @@ msgid ""
"note."
msgstr "此笔记没有任何内容。点击 \"%s\" 切换至编辑器并编辑笔记。"
msgid "strong text"
msgstr ""
msgid "emphasized text"
msgstr ""
msgid "Insert Hyperlink"
msgstr ""
msgid "Attach file"
msgstr "附加文件"
@@ -853,6 +918,31 @@ msgstr "标签"
msgid "Set alarm"
msgstr "设置提醒"
#, fuzzy, javascript-format
msgid "In: %s"
msgstr "%s:%s"
msgid "Hyperlink"
msgstr ""
msgid "Code"
msgstr ""
msgid "Numbered List"
msgstr ""
msgid "Bulleted List"
msgstr ""
msgid "Checkbox"
msgstr ""
msgid "Heading"
msgstr ""
msgid "Horizontal Rule"
msgstr ""
msgid "to-do"
msgstr "待办事项"
@@ -884,6 +974,10 @@ msgstr "同步状态"
msgid "Encryption Options"
msgstr "加密选项"
#, fuzzy
msgid "Clipper Options"
msgstr "通用选项"
msgid "Remove this tag from all the notes?"
msgstr "从所有笔记中删除此标签?"
@@ -1033,6 +1127,18 @@ msgstr "以此标题命名的笔记本已存在:\"%s\""
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
msgstr "笔记本无法被命名为\"%s\",此标题为保留标题。"
#, fuzzy
msgid "title"
msgstr "无标题"
#, fuzzy
msgid "updated date"
msgstr "已更新:%d条。"
#, fuzzy
msgid "created date"
msgstr "已创建:%d条。"
msgid "Untitled"
msgstr "无标题"
@@ -1293,6 +1399,10 @@ msgstr "移动%d条笔记至笔记本\"%s\"?"
msgid "Press to set the decryption password."
msgstr "按键将设置解密密码。"
#, fuzzy
msgid "Save alarm"
msgstr "设置提醒"
msgid "Select date"
msgstr "选择日期"
@@ -1302,6 +1412,10 @@ msgstr "确认"
msgid "Cancel synchronisation"
msgstr "取消同步"
#, fuzzy, javascript-format
msgid "Decrypting items: %d/%d"
msgstr "已提取项目:%d/%d."
msgid "New tags:"
msgstr ""

1490
CliClient/locales/zh_TW.po Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,27 @@
{
"name": "joplin",
"version": "1.0.107",
"version": "1.0.108",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"abab": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
"integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4="
},
"acorn": {
"version": "5.5.3",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz",
"integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ=="
},
"acorn-globals": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz",
"integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==",
"requires": {
"acorn": "^5.0.0"
}
},
"ajv": {
"version": "5.5.2",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
@@ -33,6 +51,11 @@
"resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz",
"integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU="
},
"array-equal": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
"integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM="
},
"asap": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
@@ -64,6 +87,11 @@
}
}
},
"async-limiter": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
"integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="
},
"async-mutex": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.1.3.tgz",
@@ -122,6 +150,11 @@
"concat-map": "0.0.1"
}
},
"browser-process-hrtime": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz",
"integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44="
},
"camel-case": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
@@ -277,6 +310,19 @@
}
}
},
"cssom": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz",
"integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs="
},
"cssstyle": {
"version": "0.2.37",
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
"integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
"requires": {
"cssom": "0.3.x"
}
},
"cwise-compiler": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/cwise-compiler/-/cwise-compiler-1.1.3.tgz",
@@ -298,6 +344,16 @@
"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-0.0.3.tgz",
"integrity": "sha1-GK6XmmoMqZSwYlhTkW0mYruuCxo="
},
"data-urls": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.0.0.tgz",
"integrity": "sha512-ai40PPQR0Fn1lD2PPie79CibnlMN2AYiDhwFX/rZHVsxbs5kNJSjegqXIprhouGXlRdEnfybva7kqRGnB6mypA==",
"requires": {
"abab": "^1.0.4",
"whatwg-mimetype": "^2.0.0",
"whatwg-url": "^6.4.0"
}
},
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -329,6 +385,14 @@
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-0.2.0.tgz",
"integrity": "sha1-R/31ZzSKF+wl/L8LnkRjSKdvn7U="
},
"domexception": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
"integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==",
"requires": {
"webidl-conversions": "^4.0.2"
}
},
"ecc-jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
@@ -393,11 +457,51 @@
"iconv-lite": "~0.4.13"
}
},
"es6-promise-pool": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/es6-promise-pool/-/es6-promise-pool-2.5.0.tgz",
"integrity": "sha1-FHxhKza0fxBQJ/nSv1SlmKmdnMs="
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
"escodegen": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz",
"integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==",
"requires": {
"esprima": "^3.1.3",
"estraverse": "^4.2.0",
"esutils": "^2.0.2",
"optionator": "^0.8.1",
"source-map": "~0.6.1"
},
"dependencies": {
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"optional": true
}
}
},
"esprima": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
"integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM="
},
"estraverse": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
"integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM="
},
"esutils": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
"integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
},
"exit": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
@@ -424,6 +528,11 @@
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
},
"fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
},
"fault": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/fault/-/fault-1.0.2.tgz",
@@ -432,6 +541,11 @@
"format": "^0.2.2"
}
},
"file-type": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz",
"integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU="
},
"follow-redirects": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.2.5.tgz",
@@ -610,6 +724,14 @@
"resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz",
"integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA=="
},
"html-encoding-sniffer": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
"integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
"requires": {
"whatwg-encoding": "^1.0.1"
}
},
"html-entities": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
@@ -644,6 +766,14 @@
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
"integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
},
"image-type": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/image-type/-/image-type-3.0.0.tgz",
"integrity": "sha1-FQKvMTX5BuEiyHfDHpSve3qRRsU=",
"requires": {
"file-type": "^4.1.0"
}
},
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -773,6 +903,19 @@
"integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=",
"dev": true
},
"joplin-turndown": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/joplin-turndown/-/joplin-turndown-4.0.3.tgz",
"integrity": "sha512-WbAXje8wq4/ZLNtPDUFBEtG5zKEbz7Wth5N3vB4Nw7k+PUs3mMF49LVEPP7Kc6H4Ui671qdjpSShvdsmiLY2gA==",
"requires": {
"jsdom": "^11.9.0"
}
},
"joplin-turndown-plugin-gfm": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/joplin-turndown-plugin-gfm/-/joplin-turndown-plugin-gfm-1.0.2.tgz",
"integrity": "sha512-GRXmjHFrEyUnXOYzOZvUGGtKxPm5LuK98+73ZADqQYdGzMWp/o8Qx22YYAeIBsOV2WtVsRxe2IpUGBG4foSRyQ=="
},
"jpeg-js": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.1.2.tgz",
@@ -789,6 +932,39 @@
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
"optional": true
},
"jsdom": {
"version": "11.10.0",
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.10.0.tgz",
"integrity": "sha512-x5No5FpJgBg3j5aBwA8ka6eGuS5IxbC8FOkmyccKvObtFT0bDMict/LOxINZsZGZSfGdNomLZ/qRV9Bpq/GIBA==",
"requires": {
"abab": "^1.0.4",
"acorn": "^5.3.0",
"acorn-globals": "^4.1.0",
"array-equal": "^1.0.0",
"cssom": ">= 0.3.2 < 0.4.0",
"cssstyle": ">= 0.2.37 < 0.3.0",
"data-urls": "^1.0.0",
"domexception": "^1.0.0",
"escodegen": "^1.9.0",
"html-encoding-sniffer": "^1.0.2",
"left-pad": "^1.2.0",
"nwmatcher": "^1.4.3",
"parse5": "4.0.0",
"pn": "^1.1.0",
"request": "^2.83.0",
"request-promise-native": "^1.0.5",
"sax": "^1.2.4",
"symbol-tree": "^3.2.2",
"tough-cookie": "^2.3.3",
"w3c-hr-time": "^1.0.1",
"webidl-conversions": "^4.0.2",
"whatwg-encoding": "^1.0.3",
"whatwg-mimetype": "^2.1.0",
"whatwg-url": "^6.4.0",
"ws": "^4.0.0",
"xml-name-validator": "^3.0.0"
}
},
"json-schema": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
@@ -828,11 +1004,25 @@
"resolved": "https://registry.npmjs.org/jssha/-/jssha-2.3.1.tgz",
"integrity": "sha1-FHshJTaQNcpLL30hDcU58Amz3po="
},
"left-pad": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz",
"integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA=="
},
"levenshtein": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/levenshtein/-/levenshtein-1.0.5.tgz",
"integrity": "sha1-ORFzepy1baNF0Aj1V4LG8TiXm6M="
},
"levn": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
"integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
"requires": {
"prelude-ls": "~1.1.2",
"type-check": "~0.3.2"
}
},
"lodash": {
"version": "4.17.4",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
@@ -843,6 +1033,11 @@
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.4.tgz",
"integrity": "sha1-3MHXVS4VCgZABzupyzHXDwMpUOc="
},
"lodash.sortby": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
"integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg="
},
"lodash.toarray": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz",
@@ -1028,6 +1223,11 @@
"pify": "^3.0.0"
}
},
"nwmatcher": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz",
"integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ=="
},
"oauth-sign": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
@@ -1051,6 +1251,26 @@
"wrappy": "1"
}
},
"optionator": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
"integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
"requires": {
"deep-is": "~0.1.3",
"fast-levenshtein": "~2.0.4",
"levn": "~0.3.0",
"prelude-ls": "~1.1.2",
"type-check": "~0.3.2",
"wordwrap": "~1.0.0"
},
"dependencies": {
"deep-is": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
}
}
},
"param-case": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
@@ -1067,6 +1287,11 @@
"data-uri-to-buffer": "0.0.3"
}
},
"parse5": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz",
"integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA=="
},
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
@@ -1083,11 +1308,21 @@
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
},
"pn": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz",
"integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA=="
},
"pngjs": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-2.3.1.tgz",
"integrity": "sha1-EdHhK5y2TWPjDBQ6Mw9MH1Z9qF8="
},
"prelude-ls": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
"integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
},
"process-nextick-args": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
@@ -1144,6 +1379,15 @@
"resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz",
"integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs="
},
"read-chunk": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-2.1.0.tgz",
"integrity": "sha1-agTAkoAF7Z1C4aasVgDhnLx/9lU=",
"requires": {
"pify": "^3.0.0",
"safe-buffer": "^5.1.1"
}
},
"readable-stream": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
@@ -1203,6 +1447,24 @@
"uuid": "^3.1.0"
}
},
"request-promise-core": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz",
"integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=",
"requires": {
"lodash": "^4.13.1"
}
},
"request-promise-native": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz",
"integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=",
"requires": {
"request-promise-core": "1.1.1",
"stealthy-require": "^1.1.0",
"tough-cookie": ">=2.3.3"
}
},
"requires-port": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
@@ -2037,6 +2299,11 @@
"tweetnacl": "~0.14.0"
}
},
"stealthy-require": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
"integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks="
},
"strict-uri-encode": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
@@ -2107,6 +2374,11 @@
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz",
"integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0="
},
"symbol-tree": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz",
"integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY="
},
"tar": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/tar/-/tar-4.4.0.tgz",
@@ -2167,7 +2439,6 @@
"requires": {
"chalk": "^2.1.0",
"emphasize": "^1.5.0",
"node-emoji": "git+https://github.com/laurent22/node-emoji.git#9fa01eac463e94dde1316ef8c53089eeef4973b5",
"slice-ansi": "^1.0.0",
"string-width": "^2.1.1",
"terminal-kit": "^1.13.11",
@@ -2176,7 +2447,7 @@
"dependencies": {
"node-emoji": {
"version": "git+https://github.com/laurent22/node-emoji.git#9fa01eac463e94dde1316ef8c53089eeef4973b5",
"from": "git+https://github.com/laurent22/node-emoji.git",
"from": "git+https://github.com/laurent22/node-emoji.git#9fa01eac463e94dde1316ef8c53089eeef4973b5",
"requires": {
"lodash.toarray": "^4.4.0"
}
@@ -2191,6 +2462,21 @@
"punycode": "^1.4.1"
}
},
"tr46": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
"integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
"requires": {
"punycode": "^2.1.0"
},
"dependencies": {
"punycode": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz",
"integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0="
}
}
},
"tree-kit": {
"version": "0.5.26",
"resolved": "https://registry.npmjs.org/tree-kit/-/tree-kit-0.5.26.tgz",
@@ -2210,6 +2496,14 @@
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
"optional": true
},
"type-check": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
"integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
"requires": {
"prelude-ls": "~1.1.2"
}
},
"uglify-js": {
"version": "3.3.25",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.25.tgz",
@@ -2285,11 +2579,52 @@
"extsprintf": "^1.2.0"
}
},
"w3c-hr-time": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz",
"integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=",
"requires": {
"browser-process-hrtime": "^0.1.2"
}
},
"webidl-conversions": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
"integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="
},
"whatwg-encoding": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz",
"integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==",
"requires": {
"iconv-lite": "0.4.19"
}
},
"whatwg-mimetype": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz",
"integrity": "sha512-FKxhYLytBQiUKjkYteN71fAUA3g6KpNXoho1isLiLSB3N1G4F35Q5vUxWfKFhBwi5IWF27VE6WxhrnnC+m0Mew=="
},
"whatwg-url": {
"version": "6.4.1",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.1.tgz",
"integrity": "sha512-FwygsxsXx27x6XXuExA/ox3Ktwcbf+OAvrKmLulotDAiO1Q6ixchPFaHYsis2zZBZSJTR0+dR+JVtf7MlbqZjw==",
"requires": {
"lodash.sortby": "^4.7.0",
"tr46": "^1.0.1",
"webidl-conversions": "^4.0.2"
}
},
"word-wrap": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
"integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
},
"wordwrap": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
},
"wrap-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz",
@@ -2304,6 +2639,20 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"ws": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz",
"integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==",
"requires": {
"async-limiter": "~1.0.0",
"safe-buffer": "~5.1.0"
}
},
"xml-name-validator": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
"integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw=="
},
"xml2js": {
"version": "0.4.19",
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",

View File

@@ -19,7 +19,7 @@
],
"owner": "Laurent Cozic"
},
"version": "1.0.107",
"version": "1.0.108",
"bin": {
"joplin": "./main.js"
},
@@ -31,11 +31,15 @@
"async-mutex": "^0.1.3",
"base-64": "^0.1.0",
"compare-version": "^0.1.2",
"es6-promise-pool": "^2.5.0",
"follow-redirects": "^1.2.4",
"form-data": "^2.1.4",
"fs-extra": "^5.0.0",
"html-entities": "^1.2.1",
"html-minifier": "^3.5.15",
"image-type": "^3.0.0",
"joplin-turndown": "^4.0.3",
"joplin-turndown-plugin-gfm": "^1.0.2",
"jssha": "^2.3.0",
"levenshtein": "^1.0.5",
"lodash": "^4.17.4",
@@ -48,6 +52,7 @@
"promise": "^7.1.1",
"proper-lockfile": "^2.0.1",
"query-string": "4.3.4",
"read-chunk": "^2.1.0",
"redux": "^3.7.2",
"sax": "^1.2.2",
"server-destroy": "^1.0.1",

View File

@@ -1,4 +1,5 @@
#!/bin/bash
START_DIR="$(pwd)"
ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
BUILD_DIR="$ROOT_DIR/tests-build"
TEST_FILE="$1"
@@ -13,11 +14,22 @@ if [[ $TEST_FILE != "" ]]; then
exit
fi
(cd "$ROOT_DIR" && npm test tests-build/synchronizer.js)
(cd "$ROOT_DIR" && npm test tests-build/encryption.js)
(cd "$ROOT_DIR" && npm test tests-build/ArrayUtils.js)
(cd "$ROOT_DIR" && npm test tests-build/models_Setting.js)
(cd "$ROOT_DIR" && npm test tests-build/models_Note.js)
(cd "$ROOT_DIR" && npm test tests-build/models_Folder.js)
(cd "$ROOT_DIR" && npm test tests-build/services_InteropService.js)
(cd "$ROOT_DIR" && npm test tests-build/HtmlToMd.js)
function finish {
cd "$START_DIR"
}
trap finish EXIT
cd "$ROOT_DIR"
npm test tests-build/ArrayUtils.js
npm test tests-build/encryption.js
npm test tests-build/EnexToMd.js
npm test tests-build/HtmlToMd.js
npm test tests-build/markdownUtils.js
npm test tests-build/models_Folder.js
npm test tests-build/models_Note.js
npm test tests-build/models_Setting.js
npm test tests-build/services_InteropService.js
npm test tests-build/services_ResourceService.js
npm test tests-build/synchronizer.js
npm test tests-build/urlUtils.js

View File

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

View File

@@ -7,6 +7,7 @@ const Folder = require('lib/models/Folder.js');
const Note = require('lib/models/Note.js');
const BaseModel = require('lib/BaseModel.js');
const { shim } = require('lib/shim');
const HtmlToMd = require('lib/HtmlToMd');
const { enexXmlToMd } = require('lib/import-enex-md-gen.js');
jasmine.DEFAULT_TIMEOUT_INTERVAL = 60 * 60 * 1000; // Can run for a while since everything is in the same test unit
@@ -23,9 +24,10 @@ describe('HtmlToMd', function() {
done();
});
it('should convert from HTML to Markdown', asyncTest(async () => {
it('should convert from Html to Markdown', asyncTest(async () => {
const basePath = __dirname + '/html_to_md';
const files = await shim.fsDriver().readDirStats(basePath);
const htmlToMd = new HtmlToMd();
for (let i = 0; i < files.length; i++) {
const htmlFilename = files[i].path;
@@ -34,17 +36,19 @@ describe('HtmlToMd', function() {
const htmlPath = basePath + '/' + htmlFilename;
const mdPath = basePath + '/' + filename(htmlFilename) + '.md';
// if (htmlFilename !== 'text2.html') continue;
// if (htmlFilename !== 'code_1.html') continue;
const html = await shim.fsDriver().readFile(htmlPath);
const expectedMd = await shim.fsDriver().readFile(mdPath);
const actualMd = await enexXmlToMd('<div>' + html + '</div>', []);
const actualMd = await htmlToMd.parse('<div>' + html + '</div>', []);
if (actualMd !== expectedMd) {
console.info('');
console.info('Error converting file: ' + htmlFilename);
console.info('--------------------------------- Got:');
console.info(actualMd);
console.info('--------------------------------- Raw:');
console.info(actualMd.split('\n'));
console.info('--------------------------------- Expected:');
console.info(expectedMd.split('\n'));

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,8 @@
<div>
<table><tbody><tr><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">def</span> ma_fonction<span style="color: black;">(</span><span style="color: black;">)</span>:
<span style="color: #483d8b;">"""
C'est une super fonction
"""</span>
<span style="color: #ff7700;font-weight:bold;">pass</span></pre></td></tr></tbody></table>
</div>

View File

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

View File

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

View File

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

View File

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

File diff suppressed because one or more lines are too long

View File

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -13,6 +13,8 @@ const ArrayUtils = require('lib/ArrayUtils');
const ObjectUtils = require('lib/ObjectUtils');
const { shim } = require('lib/shim.js');
jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
process.on('unhandledRejection', (reason, p) => {
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
});
@@ -249,6 +251,41 @@ describe('services_InteropService', function() {
expect(folder2.title).toBe('folder1');
}));
it('should export and import folder and its sub-folders', asyncTest(async () => {
const service = new InteropService();
const filePath = exportDir() + '/test.jex';
let folder1 = await Folder.save({ title: "folder1" });
let folder2 = await Folder.save({ title: "folder2", parent_id: folder1.id });
let folder3 = await Folder.save({ title: "folder3", parent_id: folder2.id });
let folder4 = await Folder.save({ title: "folder4", parent_id: folder2.id });
let note1 = await Note.save({ title: 'ma note', parent_id: folder4.id });
await service.export({ path: filePath, sourceFolderIds: [folder1.id] });
await Note.delete(note1.id);
await Folder.delete(folder1.id);
await Folder.delete(folder2.id);
await Folder.delete(folder3.id);
await Folder.delete(folder4.id);
await service.import({ path: filePath });
expect(await Note.count()).toBe(1);
expect(await Folder.count()).toBe(4);
let folder1_2 = await Folder.loadByTitle('folder1');
let folder2_2 = await Folder.loadByTitle('folder2');
let folder3_2 = await Folder.loadByTitle('folder3');
let folder4_2 = await Folder.loadByTitle('folder4');
let note1_2 = await Note.loadByTitle('ma note');
expect(folder2_2.parent_id).toBe(folder1_2.id);
expect(folder3_2.parent_id).toBe(folder2_2.id);
expect(folder4_2.parent_id).toBe(folder2_2.id);
expect(note1_2.parent_id).toBe(folder4_2.id);
}));
it('should export and import links to notes', asyncTest(async () => {
const service = new InteropService();
const filePath = exportDir() + '/test.jex';

View File

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

View File

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

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

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

View File

@@ -0,0 +1,79 @@
let browser_ = null;
let browserName_ = null;
if (typeof browser !== 'undefined') {
browser_ = browser;
browserSupportsPromises_ = true;
browserName_ = 'firefox';
} else if (typeof chrome !== 'undefined') {
browser_ = chrome;
browserSupportsPromises_ = false;
browserName_ = 'chrome';
}
let env_ = null;
// Make this function global so that it can be accessed
// from the popup too.
// https://stackoverflow.com/questions/6323184/communication-between-background-page-and-popup-page-in-a-chrome-extension
window.joplinEnv = function() {
if (env_) return env_;
const manifest = browser_.runtime.getManifest();
env_ = manifest.name.indexOf('[DEV]') >= 0 ? 'dev' : 'prod';
return env_;
}
async function browserCaptureVisibleTabs(windowId, options) {
if (browserSupportsPromises_) return browser_.tabs.captureVisibleTab(windowId, { format: 'jpeg' });
return new Promise((resolve, reject) => {
browser_.tabs.captureVisibleTab(windowId, { format: 'jpeg' }, (image) => {
resolve(image);
});
});
}
async function browserGetZoom(tabId) {
if (browserSupportsPromises_) return browser_.tabs.getZoom(tabId);
return new Promise((resolve, reject) => {
browser_.tabs.getZoom(tabId, (zoom) => {
resolve(zoom);
});
});
}
browser_.runtime.onInstalled.addListener(function(details) {
if (window.joplinEnv() === 'dev') {
browser_.browserAction.setIcon({
path: 'icons/32-dev.png',
});
}
});
browser_.runtime.onMessage.addListener(async (command) => {
if (command.name === 'screenshotArea') {
const zoom = await browserGetZoom();
const imageDataUrl = await browserCaptureVisibleTabs(null, { format: 'jpeg' });
content = Object.assign({}, command.content);
content.image_data_url = imageDataUrl;
const newArea = Object.assign({}, command.content.crop_rect);
newArea.x *= zoom;
newArea.y *= zoom;
newArea.width *= zoom;
newArea.height *= zoom;
content.crop_rect = newArea;
fetch(command.api_base_url + "/notes", {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(content)
});
}
});

View File

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

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

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

View File

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

View File

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

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,25 @@
{
"name": "joplin-webclipper-popup",
"version": "0.1.0",
"private": true,
"homepage": ".",
"dependencies": {
"react": "^16.3.2",
"react-dom": "^16.3.2",
"react-redux": "^5.0.7",
"react-scripts": "1.1.4",
"redux": "^4.0.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject",
"watch": "cra-build-watch",
"postinstall": "node scripts/postinstall.js"
},
"devDependencies": {
"cra-build-watch": "^1.0.1",
"fs-extra": "^6.0.1"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -0,0 +1,40 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="#000000">
<!--
manifest.json provides metadata used when your web app is added to the
homescreen on Android. See https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json">
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>React App</title>
</head>
<body>
<noscript>
You need to enable JavaScript to run this app.
</noscript>
<div id="root"></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.
To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
</body>
</html>

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