From 63cb9b4968420f1f58e303686111478b6b677ba0 Mon Sep 17 00:00:00 2001 From: rtmkrlv Date: Sat, 6 Jan 2018 14:33:32 +0200 Subject: [PATCH 01/86] Updated Russian translation Added translation of new strings and small corrections --- CliClient/locales/ru_RU.po | 48 ++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/CliClient/locales/ru_RU.po b/CliClient/locales/ru_RU.po index bc75a529dc..304d3a679d 100644 --- a/CliClient/locales/ru_RU.po +++ b/CliClient/locales/ru_RU.po @@ -13,9 +13,11 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.4\n" +"X-Generator: Poedit 2.0.5\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" msgid "Give focus to next pane" msgstr "Переключиться на следующую панель" @@ -575,7 +577,7 @@ msgid "Quit" msgstr "Выход" msgid "Edit" -msgstr "Редактировать" +msgstr "Правка" msgid "Copy" msgstr "Копировать" @@ -629,6 +631,9 @@ msgid "" "re-synchronised and sent unencrypted to the sync target. Do you wish to " "continue?" msgstr "" +"Отключение шифрования означает, что *все* ваши заметки и вложения будут " +"пересинхронизированы и отправлены в расшифрованном виде к цели " +"синхронизации. Желаете продолжить?" msgid "" "Enabling encryption means *all* your notes and attachments are going to be " @@ -636,18 +641,23 @@ msgid "" "password as, for security purposes, this will be the *only* way to decrypt " "the data! To enable encryption, please enter your password below." msgstr "" +"Включение шифрования означает, что *все* ваши заметки и вложения будут " +"пересинхронизированы и отправлены в зашифрованном виде к цели синхронизации. " +"Не теряйте пароль, так как в целях безопасности *только* с его помощью можно " +"будет расшифровать данные! Чтобы включить шифрование, введите ваш пароль " +"ниже." msgid "Disable encryption" -msgstr "" +msgstr "Отключить шифрование" msgid "Enable encryption" -msgstr "" +msgstr "Включить шифрование" msgid "Master Keys" -msgstr "" +msgstr "Мастер-ключи" msgid "Active" -msgstr "" +msgstr "Активен" msgid "ID" msgstr "ID" @@ -656,35 +666,38 @@ msgid "Source" msgstr "Источник" msgid "Created" -msgstr "Создана" +msgstr "Создан" msgid "Updated" -msgstr "Обновлена" +msgstr "Обновлён" msgid "Password" -msgstr "" +msgstr "Пароль" msgid "Password OK" -msgstr "" +msgstr "Пароль OK" msgid "" "Note: Only one master key is going to be used for encryption (the one marked " "as \"active\"). Any of the keys might be used for decryption, depending on " "how the notes or notebooks were originally encrypted." msgstr "" +"Внимание: Для шифрования может быть использован только один мастер-ключ " +"(отмеченный как «активный»). Для расшифровки может использоваться любой из " +"ключей, в зависимости от того, как изначально были зашифрованы заметки или " +"блокноты." msgid "Status" msgstr "Статус" msgid "Encryption is:" -msgstr "" +msgstr "Шифрование:" -#, fuzzy msgid "Enabled" -msgstr "Отключена" +msgstr "Включено" msgid "Disabled" -msgstr "Отключена" +msgstr "Отключено" msgid "Back" msgstr "Назад" @@ -730,12 +743,11 @@ msgstr "Некоторые элементы не могут быть синхр msgid "View them now" msgstr "Просмотреть их сейчас" -#, fuzzy msgid "Some items cannot be decrypted." -msgstr "Некоторые элементы не могут быть синхронизированы." +msgstr "Некоторые элементы не могут быть расшифрованы." msgid "Set the password" -msgstr "" +msgstr "Установить пароль" msgid "Add or remove tags" msgstr "Добавить или удалить теги" @@ -782,7 +794,7 @@ msgid "Synchronisation Status" msgstr "Статус синхронизации" msgid "Encryption Options" -msgstr "" +msgstr "Настройки шифрования" msgid "Remove this tag from all the notes?" msgstr "Убрать этот тег со всех заметок?" From 44bf51824412c00492b5a7e3620916b82973c02a Mon Sep 17 00:00:00 2001 From: rtmkrlv Date: Sat, 6 Jan 2018 14:36:37 +0200 Subject: [PATCH 02/86] Revert "Updated Russian translation" This reverts commit 63cb9b4968420f1f58e303686111478b6b677ba0. --- CliClient/locales/ru_RU.po | 48 ++++++++++++++------------------------ 1 file changed, 18 insertions(+), 30 deletions(-) diff --git a/CliClient/locales/ru_RU.po b/CliClient/locales/ru_RU.po index 304d3a679d..bc75a529dc 100644 --- a/CliClient/locales/ru_RU.po +++ b/CliClient/locales/ru_RU.po @@ -13,11 +13,9 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.5\n" +"X-Generator: Poedit 2.0.4\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"POT-Creation-Date: \n" -"PO-Revision-Date: \n" msgid "Give focus to next pane" msgstr "Переключиться на следующую панель" @@ -577,7 +575,7 @@ msgid "Quit" msgstr "Выход" msgid "Edit" -msgstr "Правка" +msgstr "Редактировать" msgid "Copy" msgstr "Копировать" @@ -631,9 +629,6 @@ msgid "" "re-synchronised and sent unencrypted to the sync target. Do you wish to " "continue?" msgstr "" -"Отключение шифрования означает, что *все* ваши заметки и вложения будут " -"пересинхронизированы и отправлены в расшифрованном виде к цели " -"синхронизации. Желаете продолжить?" msgid "" "Enabling encryption means *all* your notes and attachments are going to be " @@ -641,23 +636,18 @@ msgid "" "password as, for security purposes, this will be the *only* way to decrypt " "the data! To enable encryption, please enter your password below." msgstr "" -"Включение шифрования означает, что *все* ваши заметки и вложения будут " -"пересинхронизированы и отправлены в зашифрованном виде к цели синхронизации. " -"Не теряйте пароль, так как в целях безопасности *только* с его помощью можно " -"будет расшифровать данные! Чтобы включить шифрование, введите ваш пароль " -"ниже." msgid "Disable encryption" -msgstr "Отключить шифрование" +msgstr "" msgid "Enable encryption" -msgstr "Включить шифрование" +msgstr "" msgid "Master Keys" -msgstr "Мастер-ключи" +msgstr "" msgid "Active" -msgstr "Активен" +msgstr "" msgid "ID" msgstr "ID" @@ -666,38 +656,35 @@ msgid "Source" msgstr "Источник" msgid "Created" -msgstr "Создан" +msgstr "Создана" msgid "Updated" -msgstr "Обновлён" +msgstr "Обновлена" msgid "Password" -msgstr "Пароль" +msgstr "" msgid "Password OK" -msgstr "Пароль OK" +msgstr "" msgid "" "Note: Only one master key is going to be used for encryption (the one marked " "as \"active\"). Any of the keys might be used for decryption, depending on " "how the notes or notebooks were originally encrypted." msgstr "" -"Внимание: Для шифрования может быть использован только один мастер-ключ " -"(отмеченный как «активный»). Для расшифровки может использоваться любой из " -"ключей, в зависимости от того, как изначально были зашифрованы заметки или " -"блокноты." msgid "Status" msgstr "Статус" msgid "Encryption is:" -msgstr "Шифрование:" +msgstr "" +#, fuzzy msgid "Enabled" -msgstr "Включено" +msgstr "Отключена" msgid "Disabled" -msgstr "Отключено" +msgstr "Отключена" msgid "Back" msgstr "Назад" @@ -743,11 +730,12 @@ msgstr "Некоторые элементы не могут быть синхр msgid "View them now" msgstr "Просмотреть их сейчас" +#, fuzzy msgid "Some items cannot be decrypted." -msgstr "Некоторые элементы не могут быть расшифрованы." +msgstr "Некоторые элементы не могут быть синхронизированы." msgid "Set the password" -msgstr "Установить пароль" +msgstr "" msgid "Add or remove tags" msgstr "Добавить или удалить теги" @@ -794,7 +782,7 @@ msgid "Synchronisation Status" msgstr "Статус синхронизации" msgid "Encryption Options" -msgstr "Настройки шифрования" +msgstr "" msgid "Remove this tag from all the notes?" msgstr "Убрать этот тег со всех заметок?" From 122ab83a843dc2e503bd073142d96b862bf12fe8 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Mon, 5 Mar 2018 18:21:42 +0000 Subject: [PATCH 03/86] Android: Fix when downloading many encrypted items --- ReactNativeClient/index.ios.js | 50 +------------------ .../lib/services/DecryptionWorker.js | 4 +- Tools/update-homebrew.js | 2 +- 3 files changed, 5 insertions(+), 51 deletions(-) diff --git a/ReactNativeClient/index.ios.js b/ReactNativeClient/index.ios.js index 7d03ea719b..d0e4f551bf 100644 --- a/ReactNativeClient/index.ios.js +++ b/ReactNativeClient/index.ios.js @@ -1,51 +1,3 @@ const { main } = require('./main.js'); -main(); - -// const React = require('react'); const Component = React.Component; -// import { -// AppRegistry, -// StyleSheet, -// Text, -// View -// } from 'react-native'; - -// module.exports = default class Joplin extends Component {; -// render() { -// return ( -// -// -// Welcome to React Native! -// -// -// To get started, edit index.ios.js -// -// -// Press Cmd+R to reload,{'\n'} -// Cmd+D or shake for dev menu -// -// -// ); -// } -// } - -// const styles = StyleSheet.create({ -// container: { -// flex: 1, -// justifyContent: 'center', -// alignItems: 'center', -// backgroundColor: '#F5FCFF', -// }, -// welcome: { -// fontSize: 20, -// textAlign: 'center', -// margin: 10, -// }, -// instructions: { -// textAlign: 'center', -// color: '#333333', -// marginBottom: 5, -// }, -// }); - -// AppRegistry.registerComponent('Joplin', () => Joplin); +main(); \ No newline at end of file diff --git a/ReactNativeClient/lib/services/DecryptionWorker.js b/ReactNativeClient/lib/services/DecryptionWorker.js index f7e261e9aa..2381a91521 100644 --- a/ReactNativeClient/lib/services/DecryptionWorker.js +++ b/ReactNativeClient/lib/services/DecryptionWorker.js @@ -80,7 +80,9 @@ class DecryptionWorker { // } const ItemClass = BaseItem.itemClass(item); - this.logger().info('DecryptionWorker: decrypting: ' + item.id + ' (' + ItemClass.tableName() + ')'); + + // Don't log in production as it results in many messages when importing many items + // this.logger().info('DecryptionWorker: decrypting: ' + item.id + ' (' + ItemClass.tableName() + ')'); try { await ItemClass.decrypt(item); } catch (error) { diff --git a/Tools/update-homebrew.js b/Tools/update-homebrew.js index ef2f8fe1d2..c5f1987e7c 100644 --- a/Tools/update-homebrew.js +++ b/Tools/update-homebrew.js @@ -18,7 +18,7 @@ async function main() { console.info('URL = ' + url); console.info('SHA256 = ' + sha256); console.info(''); - console.info('brew bump-formula-pr --strict joplin --url=' + url + ' --sha256=' + sha256); + console.info('brew update && brew bump-formula-pr --strict joplin --url=' + url + ' --sha256=' + sha256); } main().catch((error) => { From 5014914dc9776fccfc9088433c59ccaaba5c3e03 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Mon, 5 Mar 2018 18:23:11 +0000 Subject: [PATCH 04/86] Android release v1.0.104 --- README.md | 2 +- ReactNativeClient/android/app/build.gradle | 4 ++-- docs/index.html | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 59d5e30690..3f77458e1c 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Linux | Get it on Google Play | or [Download APK File](https://github.com/laurent22/joplin-android/releases/download/android-v1.0.103/joplin-v1.0.103.apk) +Android | Get it on Google Play | or [Download APK File](https://github.com/laurent22/joplin-android/releases/download/android-v1.0.104/joplin-v1.0.104.apk) iOS | Get it on the App Store | - ## Terminal application diff --git a/ReactNativeClient/android/app/build.gradle b/ReactNativeClient/android/app/build.gradle index b34fba7b04..5d0c4f2b60 100644 --- a/ReactNativeClient/android/app/build.gradle +++ b/ReactNativeClient/android/app/build.gradle @@ -90,8 +90,8 @@ android { applicationId "net.cozic.joplin" minSdkVersion 16 targetSdkVersion 22 - versionCode 2097281 - versionName "1.0.103" + versionCode 2097282 + versionName "1.0.104" ndk { abiFilters "armeabi-v7a", "x86" } diff --git a/docs/index.html b/docs/index.html index a741859f86..5e53951a98 100644 --- a/docs/index.html +++ b/docs/index.html @@ -247,7 +247,7 @@ Android Get it on Google Play -or Download APK File +or Download APK File iOS @@ -406,14 +406,14 @@ $$ Croatian hr_HR -Hrvoje Mandić trbuhom@net.hr +Hrvoje Mandić trbuhom@net.hr 66% Deutsch de_DE -Tobias Strobel git@strobeltobias.de +Tobias Strobel git@strobeltobias.de 83% @@ -427,7 +427,7 @@ $$ Español es_ES -Fernando Martín f@mrtn.es +Fernando Martín f@mrtn.es 93% @@ -462,14 +462,14 @@ $$ Русский ru_RU -Artyom Karlov artyom.karlov@gmail.com +Artyom Karlov artyom.karlov@gmail.com 85% 中文 (简体) zh_CN -RCJacH RCJacH@outlook.com +RCJacH RCJacH@outlook.com 68% From e52d17b39a80dda3191a49021f9d055afba8a757 Mon Sep 17 00:00:00 2001 From: Alex Devero Date: Tue, 6 Mar 2018 08:42:29 +0100 Subject: [PATCH 05/86] Add build instructions for Windows --- BUILD.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/BUILD.md b/BUILD.md index 2ded1155a8..1067a08de9 100644 --- a/BUILD.md +++ b/BUILD.md @@ -8,7 +8,7 @@ brew install yarn node echo 'export PATH="/usr/local/opt/gettext/bin:$PATH"' >> ~/.bash_profile source ~/.bash_profile - + If you get a node-gyp related error you might need to manually install it: `npm install -g node-gyp` ## Linux and Windows (WSL) dependencies @@ -43,6 +43,17 @@ That will create the executable file in the `dist` directory. From `/ElectronClient` you can also run `run.sh` to run the app for testing. +## Building Electron application on Windows + +``` +cd Tools +npm install +cd ..\ElectronClient\app +xcopy /C /I /H /R /Y /S ..\..\ReactNativeClient\lib lib +npm install +yarn dist +``` + # Building the Mobile application First you need to setup React Native to build projects with native code. For this, follow the instructions on the [Get Started](https://facebook.github.io/react-native/docs/getting-started.html) tutorial, in the "Building Projects with Native Code" tab. From 4509919c22aa4ff81389a32e91fec4102f255d4f Mon Sep 17 00:00:00 2001 From: Fernando Date: Wed, 7 Mar 2018 17:04:10 +0100 Subject: [PATCH 06/86] Updated Spanish translation --- CliClient/locales/es_ES.po | 56 +++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/CliClient/locales/es_ES.po b/CliClient/locales/es_ES.po index e193a408d3..048dcbbbb8 100644 --- a/CliClient/locales/es_ES.po +++ b/CliClient/locales/es_ES.po @@ -16,6 +16,8 @@ msgstr "" "X-Generator: Poedit 1.8.11\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-SourceCharset: UTF-8\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" msgid "To delete a tag, untag the associated notes." msgstr "Desmarque las notas asociadas para eliminar una etiqueta." @@ -188,7 +190,6 @@ msgstr "La nota ha sido guardada." msgid "Exits the application." msgstr "Sale de la aplicación." -#, fuzzy msgid "" "Exports Joplin data to the given path. By default, it will export the " "complete database including notebooks, notes, tags and resources." @@ -196,9 +197,9 @@ msgstr "" "Exporta datos de Joplin al directorio indicado. Por defecto, se exportará la " "base de datos completa incluyendo libretas, notas, etiquetas y recursos." -#, fuzzy, javascript-format +#, javascript-format msgid "Destination format: %s" -msgstr "Formato de fecha" +msgstr "Formato de destino: %s" msgid "Exports only the given note." msgstr "Exporta únicamente la nota indicada." @@ -266,11 +267,11 @@ msgstr "" "Para una lista de los atajos de teclado disponibles, escriba `help keymap`" msgid "Imports data into Joplin." -msgstr "" +msgstr "Importa los datos en Joplin." -#, fuzzy, javascript-format +#, javascript-format msgid "Source format: %s" -msgstr "El comando no existe: %s" +msgstr "Formato de origen: %s" msgid "Do not ask for confirmation." msgstr "No requiere confirmación." @@ -563,17 +564,17 @@ msgstr "" #, javascript-format msgid "Exporting to \"%s\" as \"%s\" format. Please wait..." -msgstr "" +msgstr "Exportando el formato de \"%s\" a \"%s\". Por favor espere..." msgid "File" msgstr "Archivo" msgid "Directory" -msgstr "" +msgstr "Directorio" #, javascript-format msgid "Importing from \"%s\" as \"%s\" format. Please wait..." -msgstr "" +msgstr "Importando el formato de \"%s\" a \"%s\". Por favor espere..." msgid "New note" msgstr "Nueva nota" @@ -587,9 +588,8 @@ msgstr "Nueva libreta" msgid "Import" msgstr "Importar" -#, fuzzy msgid "Export" -msgstr "Importar" +msgstr "Exportar" #, javascript-format msgid "Hide %s" @@ -859,6 +859,8 @@ msgid "" "This note has no content. Click on \"%s\" to toggle the editor and edit the " "note." msgstr "" +"Esta nota no tiene contenido. Pulse en \"%s\" para cambiar al editor y " +"editar la nota." msgid "to-do" msgstr "lista de tareas" @@ -1069,16 +1071,14 @@ msgstr "Claro" msgid "Dark" msgstr "Oscuro" -#, fuzzy msgid "Uncompleted to-dos on top" msgstr "Mostrar tareas incompletas al inicio de las listas" msgid "Sort notes by" -msgstr "" +msgstr "Ordenar notas por" -#, fuzzy msgid "Reverse sort order" -msgstr "Invierte el orden." +msgstr "Invierte el orden" msgid "Save geo-location with notes" msgstr "Guardar geolocalización en las notas" @@ -1098,17 +1098,18 @@ msgstr "Cuando se crear una nota nueva:" msgid "Show tray icon" msgstr "Mostrar icono en la bandeja" -#, fuzzy msgid "Global zoom percentage" msgstr "Establecer el porcentaje de aumento de la aplicación" msgid "Editor font family" -msgstr "" +msgstr "Fuente del editor" msgid "" "The font name will not be checked. If 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." msgid "Automatically update the application" msgstr "Actualizar la aplicación automáticamente" @@ -1174,40 +1175,39 @@ msgstr "Contraseña de WebDAV" msgid "Invalid option value: \"%s\". Possible values are: %s." msgstr "Opción inválida: «%s». Los valores posibles son: %s." -#, fuzzy msgid "Joplin Export File" -msgstr "Archivos exportados de Evernote" +msgstr "Archivo de exportación de Joplin" msgid "Markdown" -msgstr "" +msgstr "Markdown" msgid "Joplin Export Directory" -msgstr "" +msgstr "Directorio para exportar de Joplin" -#, fuzzy msgid "Evernote Export File" -msgstr "Archivos exportados de Evernote" +msgstr "Archivo exportado de Evernote" #, javascript-format msgid "Cannot load \"%s\" module for format \"%s\"" -msgstr "" +msgstr "No se puede cargar el módulo \"%s\" para el formato \"%s\"" #, javascript-format msgid "Please specify import format for %s" -msgstr "" +msgstr "Por favor especifique el formato para importar de %s" #, javascript-format msgid "" "This item is currently encrypted: %s \"%s\". Please wait for all items to be " "decrypted and try again." msgstr "" +"El elemento se encuentra cifrado: %s \"%s\". Por favor espere a que todos " +"los elementos estén descifrados y pruebe de nuevo." msgid "There is no data to export." -msgstr "" +msgstr "No hay datos para exportar." -#, fuzzy msgid "Please specify the notebook where the notes should be imported to." -msgstr "Seleccione a dónde se debería exportar el estado de sincronización" +msgstr "Por favor especifique la libreta donde las notas deben ser importadas." msgid "Items that cannot be synchronised" msgstr "Elementos que no se pueden sincronizar" From 7753f3f8420f55b4657ffa0a77b45cbec8d2ea22 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Wed, 7 Mar 2018 17:35:11 +0000 Subject: [PATCH 07/86] Minor tweaks --- README.md | 6 ++++-- .../components/shared/encryption-config-shared.js | 4 +++- docs/index.html | 15 ++++++++------- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 3f77458e1c..a6b306ca3d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Joplin -Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified either from the applications directly or from your own text editor. The notes are in [Markdown format](https://daringfireball.net/projects/markdown/basics). +Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified either from the applications directly or from your own text editor. The notes are in [Markdown format](#markdown). Notes exported from Evernote via .enex files [can be imported](#importing) into Joplin, including the formatted content (which is converted to Markdown), resources (images, attachments, etc.) and complete metadata (geolocation, updated time, created time, etc.). Plain Markdown files can also be imported. @@ -20,7 +20,7 @@ Operating System | Download -----------------|-------- Windows | Get it on Windows macOS | Get it on macOS -Linux | Get it on macOS +Linux | Get it on Linux ## Mobile applications @@ -243,6 +243,8 @@ Current translations: # License +MIT License + Copyright (c) 2016-2018 Laurent Cozic Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/ReactNativeClient/lib/components/shared/encryption-config-shared.js b/ReactNativeClient/lib/components/shared/encryption-config-shared.js index ad57ddc6a1..e55ca6a31b 100644 --- a/ReactNativeClient/lib/components/shared/encryption-config-shared.js +++ b/ReactNativeClient/lib/components/shared/encryption-config-shared.js @@ -63,7 +63,9 @@ shared.checkPasswords = async function(comp) { shared.decryptedStatText = function(comp) { const stats = comp.state.stats; - return _('Decrypted items: %s / %s', stats.encrypted !== null ? (stats.total - stats.encrypted) : '-', stats.total !== null ? stats.total : '-'); + const doneCount = stats.encrypted !== null ? (stats.total - stats.encrypted) : '-'; + const totalCount = stats.total !== null ? stats.total : '-'; + return _('Decrypted items: %s / %s', doneCount, totalCount); } shared.onSavePasswordClick = function(comp, mk) { diff --git a/docs/index.html b/docs/index.html index 5e53951a98..b794e7c9bb 100644 --- a/docs/index.html +++ b/docs/index.html @@ -203,7 +203,7 @@
-

Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified either from the applications directly or from your own text editor. The notes are in Markdown format.

+

Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified either from the applications directly or from your own text editor. The notes are in Markdown format.

Notes exported from Evernote via .enex files can be imported into Joplin, including the formatted content (which is converted to Markdown), resources (images, attachments, etc.) and complete metadata (geolocation, updated time, created time, etc.). Plain Markdown files can also be imported.

The notes can be synchronised with various targets including Nextcloud, the file system (for example with a network directory) or with Microsoft OneDrive. When synchronising the notes, notebooks, tags and other metadata are saved to plain text files which can be easily inspected, backed up and moved around.

The UI of the terminal client is built on top of the great terminal-kit library, the desktop client using Electron, and the Android client front end is done using React Native.

@@ -230,7 +230,7 @@ Linux -Get it on macOS +Get it on Linux @@ -406,14 +406,14 @@ $$ Croatian hr_HR -Hrvoje Mandić trbuhom@net.hr +Hrvoje Mandić trbuhom@net.hr 66% Deutsch de_DE -Tobias Strobel git@strobeltobias.de +Tobias Strobel git@strobeltobias.de 83% @@ -427,7 +427,7 @@ $$ Español es_ES -Fernando Martín f@mrtn.es +Fernando Martín f@mrtn.es 93% @@ -462,14 +462,14 @@ $$ Русский ru_RU -Artyom Karlov artyom.karlov@gmail.com +Artyom Karlov artyom.karlov@gmail.com 85% 中文 (简体) zh_CN -RCJacH RCJacH@outlook.com +RCJacH RCJacH@outlook.com 68% @@ -488,6 +488,7 @@ $$
  • While the mobile can sync and load tags, it is not currently possible to create new ones. The desktop and terminal apps can create, delete and edit tags.
  • License

    +

    MIT License

    Copyright (c) 2016-2018 Laurent Cozic

    Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

    From c804e9f54160bfb1e4576bbf3e28cd726aa109bd Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Wed, 7 Mar 2018 17:39:45 +0000 Subject: [PATCH 08/86] CLI: Fixes #268: Improve error message for invalid flags --- ReactNativeClient/lib/BaseApplication.js | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/ReactNativeClient/lib/BaseApplication.js b/ReactNativeClient/lib/BaseApplication.js index ed4b16a245..ce5ff91383 100644 --- a/ReactNativeClient/lib/BaseApplication.js +++ b/ReactNativeClient/lib/BaseApplication.js @@ -21,6 +21,7 @@ const { shim } = require('lib/shim.js'); const { _, setLocale, defaultLocale, closestSupportedLocale } = require('lib/locale.js'); const os = require('os'); const fs = require('fs-extra'); +const JoplinError = require('lib/JoplinError'); const EventEmitter = require('events'); const SyncTargetRegistry = require('lib/SyncTargetRegistry.js'); const SyncTargetFilesystem = require('lib/SyncTargetFilesystem.js'); @@ -95,14 +96,14 @@ class BaseApplication { let nextArg = argv.length >= 2 ? argv[1] : null; if (arg == '--profile') { - if (!nextArg) throw new Error(_('Usage: %s', '--profile ')); + if (!nextArg) throw new JoplinError(_('Usage: %s', '--profile '), 'flagError'); matched.profileDir = nextArg; argv.splice(0, 2); continue; } if (arg == '--env') { - if (!nextArg) throw new Error(_('Usage: %s', '--env ')); + if (!nextArg) throw new JoplinError(_('Usage: %s', '--env '), 'flagError'); matched.env = nextArg; argv.splice(0, 2); continue; @@ -133,14 +134,14 @@ class BaseApplication { } if (arg == '--log-level') { - if (!nextArg) throw new Error(_('Usage: %s', '--log-level ')); + if (!nextArg) throw new JoplinError(_('Usage: %s', '--log-level '), 'flagError'); matched.logLevel = Logger.levelStringToId(nextArg); argv.splice(0, 2); continue; } if (arg.length && arg[0] == '-') { - throw new Error(_('Unknown flag: %s', arg)); + throw new JoplinError(_('Unknown flag: %s', arg), 'flagError'); } else { break; } @@ -358,7 +359,18 @@ class BaseApplication { } async start(argv) { - let startFlags = await this.handleStartFlags_(argv); + let startFlags = null; + + try { + startFlags = await this.handleStartFlags_(argv); + } catch (error) { + if (error.code == 'flagError') { + console.info(error.message); + console.info(_('Type `joplin help` for usage information.')); + process.exit(1); + } + throw error; + } argv = startFlags.argv; let initArgs = startFlags.matched; From 82e99ca658987a2beb517b12eaf94532bcd0c2e5 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Wed, 7 Mar 2018 19:11:55 +0000 Subject: [PATCH 09/86] All: Better handling of startup errors --- CliClient/app/main.js | 11 +++++++++-- ElectronClient/app/ElectronAppWrapper.js | 6 +++++- ElectronClient/app/app.js | 4 ++-- ElectronClient/app/main-html.js | 20 +++++++++++++------- ReactNativeClient/lib/BaseApplication.js | 13 +------------ 5 files changed, 30 insertions(+), 24 deletions(-) diff --git a/CliClient/app/main.js b/CliClient/app/main.js index 0ec931df5d..958314e7dd 100644 --- a/CliClient/app/main.js +++ b/CliClient/app/main.js @@ -87,6 +87,13 @@ process.stdout.on('error', function( err ) { application.start(process.argv).catch((error) => { - console.error(_('Fatal error:')); - console.error(error); + if (error.code == 'flagError') { + console.error(error.message); + console.error(_('Type `joplin help` for usage information.')); + } else { + console.error(_('Fatal error:')); + console.error(error); + } + + process.exit(1); }); \ No newline at end of file diff --git a/ElectronClient/app/ElectronAppWrapper.js b/ElectronClient/app/ElectronAppWrapper.js index 855f69fa94..718a887fbd 100644 --- a/ElectronClient/app/ElectronAppWrapper.js +++ b/ElectronClient/app/ElectronAppWrapper.js @@ -110,10 +110,14 @@ class ElectronAppWrapper { }); } - async exit() { + async quit() { this.electronApp_.quit(); } + exit(errorCode = 0) { + this.electronApp_.exit(errorCode); + } + trayShown() { return !!this.tray_; } diff --git a/ElectronClient/app/app.js b/ElectronClient/app/app.js index bd8a87b701..d7172bd7f8 100644 --- a/ElectronClient/app/app.js +++ b/ElectronClient/app/app.js @@ -342,7 +342,7 @@ class Application extends BaseApplication { }, { label: _('Quit'), accelerator: 'CommandOrControl+Q', - click: () => { bridge().electronApp().exit() } + click: () => { bridge().electronApp().quit() } }] }, { label: _('Edit'), @@ -518,7 +518,7 @@ class Application extends BaseApplication { const contextMenu = Menu.buildFromTemplate([ { label: _('Open %s', app.electronApp().getName()), click: () => { app.window().show(); } }, { type: 'separator' }, - { label: _('Exit'), click: () => { app.exit() } }, + { label: _('Exit'), click: () => { app.quit() } }, ]) app.createTray(contextMenu); } diff --git a/ElectronClient/app/main-html.js b/ElectronClient/app/main-html.js index 3a15d4ef77..d127c883d9 100644 --- a/ElectronClient/app/main-html.js +++ b/ElectronClient/app/main-html.js @@ -64,11 +64,17 @@ document.addEventListener('click', (event) => event.preventDefault()); app().start(bridge().processArgv()).then(() => { require('./gui/Root.min.js'); }).catch((error) => { - // If something goes wrong at this stage we don't have a console or a log file - // so display the error in a message box. - let msg = ['Fatal error:', error.message]; - if (error.fileName) msg.push(error.fileName); - if (error.lineNumber) msg.push(error.lineNumber); - if (error.stack) msg.push(error.stack); - bridge().showErrorMessageBox(msg.join('\n')); + if (error.code == 'flagError') { + bridge().showErrorMessageBox(error.message); + } else { + // If something goes wrong at this stage we don't have a console or a log file + // so display the error in a message box. + let msg = ['Fatal error:', error.message]; + if (error.fileName) msg.push(error.fileName); + if (error.lineNumber) msg.push(error.lineNumber); + if (error.stack) msg.push(error.stack); + bridge().showErrorMessageBox(msg.join('\n')); + } + + bridge().electronApp().exit(1); }); \ No newline at end of file diff --git a/ReactNativeClient/lib/BaseApplication.js b/ReactNativeClient/lib/BaseApplication.js index ce5ff91383..103e064848 100644 --- a/ReactNativeClient/lib/BaseApplication.js +++ b/ReactNativeClient/lib/BaseApplication.js @@ -359,18 +359,7 @@ class BaseApplication { } async start(argv) { - let startFlags = null; - - try { - startFlags = await this.handleStartFlags_(argv); - } catch (error) { - if (error.code == 'flagError') { - console.info(error.message); - console.info(_('Type `joplin help` for usage information.')); - process.exit(1); - } - throw error; - } + let startFlags = await this.handleStartFlags_(argv); argv = startFlags.argv; let initArgs = startFlags.matched; From 3c973144c4d939f5c11f614161537b96a47f6bac Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 9 Mar 2018 08:18:02 +0000 Subject: [PATCH 10/86] Added image --- docs/images/PayPalDonate.png | Bin 0 -> 13427 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/PayPalDonate.png diff --git a/docs/images/PayPalDonate.png b/docs/images/PayPalDonate.png new file mode 100644 index 0000000000000000000000000000000000000000..7b5190990b8d96df59ce30c751b8b3ba41d1df85 GIT binary patch literal 13427 zcmaKTWl$a6wk_`N65QS0VdGA42)dDtvvK#}?k+)sySr;}cZY=F8uaD6_nvd#k9S^I zb@iI7<``3Jb=9oyNHrB%R3suK2nYyNc{zZ_-{<__8;Af00Rb6`YSi^tAas@1b^YvU z>FQw$wt$cTI+|IK%iEh;S!h_80==BaErcN;ps7Hbx~{s)N`mH&_N=D==&*X)JN-pN zKnRO@I+>c=TDX#%Sy+J_L?|yidnw65KoLqE9%XiACn*bSkeoNz;x5 z*!nApP+GgXItj9|d3boRdT_Big00v%1Ox=w*g4raIa&T{u()_RxSD#hIJi*#iveKa zVh#p5xq=)W$p2w9HFI=x6`}m=>3@e{@APk42bcdz)8B-#d73)0aj>%g6VksFm6iYh zs`mE()^>5#u=rnp|DVJznqE#8Y#J6Wj&5M{zlF1;`p1-$pcL4`)YTEJ>F8+puPmxr zJGwf$SUWnAOG%N_E1Q~w9R86R{tKY2EGX~b;%e$(ZXpj4q5Mn13IYKI`8Z{GczI+5 zxTGbyI5?!aBm~&m0ld7NTwLq`X-;0Le_;WR=5F>D4zB;g0{<5)@gK4O^n$(9U&{as zFv#5kCYu)W&f{A|7+`S`~0)~ci;XM z{@wW&4u9Jn{I{=5em7)6K(HUn10*y(*Uer(KE$BAA+VuIAdz$K_mH3mFC9M!b=$w& zKz=J=9gFKNzyLhi1;A@Z6MUil3|#woO#d)>`Ym>13nyb2^>}F3j6oa6ioXBtd*>o_ z5r5zlJQZ`$>&`hmFmP3z>Ej~=V4cc6*xOQuLgdGY(z@+CT6bl9KEHiqlopfA@S zY%}?TgE1Ut6a*ow$r>^^7fnHXL&BOlkpBp<_7T3r)Me&OgTKC{kGGC-X74HI`?Cti1&Z#!d^|78 z!r`gJV3BGk46G)m+V;P?Jnjrm${tD*P|@Wxo0_=p^dm6sWxnS-$}qaW2SsO+#LAmM z+c5h>Ag{Kfe2_U>>Ed~217-dY< z?2iZc0UtEj;^u>`7zIWT>02VQL4xoQg7u%#P;55W2Jpuw;siUBx_+1M!4T?zw<;WOKdY}aB zAH_#WJcF;W_*rD>Y@xVGyHF3e6<~HD&;(+g@98xD)c|g2{DmF@t6}$o&Bx>P+Fih( zXOfR_4@?*gao1|r)1A7owAwy1^ks4j-xbGQ3hUkOScwfX-CtldH2i>%zCNeo{QgQ1 z+vo!mSpda}qh}+6K&iDhXclX8eYnrs2*qaRE#wcZNN(eYP?mI4xC!cAN4XEfFA>9z z`yAgl8wZq+md-b6hwnu`QQ3R9UrdIzCayl#UArtPRtA*UrU~Mt$|T$f5qiB}V5L;V zY*7^~kU6snRNuw4Aj{Du{2)z2O<3py$Kzjidg|EZoP#VU#4;q|N;M$coE&o~qzb1+ z<>*r-7+2Y{7YN>A}|)qI`60OPq#fp`ftE2d@bcZ4nCp@_;(phWay*V1%tn!Vd-D zCv->=3%9_tUK)+~?$M7c$W+YudX*70ZUs*~%hv0B#E>Ue`8%JpT<})n*ZfDF5%i`M zf+&^7$B9_l^lSjNEC;2ayVCGpAwuj9Xf`Kdiiu29)th^4wZ4i6W{i{qwezOC&_T0gHIWSe)bH5Ip)cI zcArD2;rv)hzuNbrNk&a$$YD8e11FvK)Yw!81MNxK{oeP4;PNIP30RdLO!?hjF?5wQ zvskbPrdzNR^d_Qamw%a@9ve&sKue6y=@^6 z_Xl5>Jp@rcGYfi;$efEeAn%1tgMuS*uJl_alr077{C3Z8NJU%0X>uT&AN2 z?DLT$^lsl`DSb-KCW21*r(w)LMzLL5){s;3n13t;%(%{wdlfTLV$Xp2p3vp*Ko z4q(g4jq)S8;E;g=L?T-z3I;hBOfs!5Uq@u?qX*XjUD=U{2_Ag$Fv@bO zL*3h_hAEP|>nY6?cJiexSYo^<`M0S%l0MhHEVMK97fB0C9Gu+M_=fNEbWX?IPU<_2vy7BZL1>VaSP5aT{l!wj2X zam`_X7`H)Bb}GyhDX|)tV58USVh07ETzbKoI`!?$dJV*l3zGsQle9JP)DZh)D1ZF7 zG?)}k3jR}p;68W8Fl4)jKVQru7-Y?!l`l=C-7JudTOXUP>E{a9bKDW@p)WTh?CkYbe8m@x3I3F5RRnn zXas67+FxBv@-b#**pU@d2qATJcAj=Rx0KDUUK0un`>7oTjg(r7+*|FcLZok+q;6%dzZz|+d^aQ3Xdn7HrOpK=;XaQB7 zx$NURm*wM@y66N}HmtLoj*{m0KNmkwqYk8nae%0qE;$7P%46c9XEf$omr@<&W~9(* z;l#~!&d9v19Y#og5w;hE>k5eiS&CQWL65r+TQ)x~(^-*-XQj-u2M7u%SjAvXb`(sC z+6J!pIwP3F)zG`H#IGc)WdY_$OHr}+5wcz1Ti`;Jm1C=yT8fr5vrBE1^-Jz!v~3Mw zmF-xp6>W;FajP_oF=0Zb#nsU;VIVQx1uuVetz~ZM>8{u}TYdmNEVsKJkAHl;ePlnr zAG9~+brera&y0BYkAQKBgy5#TQq@yC$GnBcnI7P)Rg5PHYnG&QIX{I3I$KRf9|*#u z3Wn({x0yJFDsY(!Hqt2e9@d)9`;Q&Y@{LO-TLW`IGpAsOX(MC&^jtaVa&}q=WYp&; z8$m7xYmkO5`A=j%w9G{=Z{qtC%tB#rQzKY-))jNZRSwGIm>Rc)dvfYy)?$y?zT01(Zj_jd33F2O8d>?E~iI65N7ZE3Yd3M~U|I?g8Id(NcO_cleE3c=8R z>iPVk^P?e_M|Le z`Ml5(F#4RksSuc1EjQm$L@A(pXc9S>S2o$EAr8wh;KENG;5^NRH3@CK(dD^ZJvDdK z3Rah|szF%y%G@+EDW~htp5-*Se~xm*zCKF==~ z{q7;|@MV>$ugTpF@j3FS7a9BlH^=1?GOL5%Ub}W4ueN7u@ygZ+Q}_&58?b?Sy(0Z+ zzh@zewpoxC@ z{06x5x-36L(LYYnMQ8HaMzS*#q~OV_Cbh@byi%D^ggxpX?yTYvv=; zx1U9yBpsC7Vbm55E|PVl@b!qiSI9oOOqj1$1v$CsTn%vsDKAU|Et5ET^BSj=Lx!6w zOfpb9IH~lYO_&N&{q0x+mDx|mK#)VW2sAhlXHESn;T1YhLwf9iPI=j(Kj4!F&Es$^ zl2sd;?sx?nGI2#+oq;wcCYV1cjRmFV!=Xo22@X4@R;U)Sb75(?y2ux;H-a-&Il@5F zGPm?DMj63TNkyT%T7;98XFt1C z{82G(k(AP)eV7yMVzMkMI^|_^CyTa=VCn&LmLNgfuUh(*_Ry77l46lD2&D;H4~1&>6bhWZQ|88LX&m2>2hns0`G zs|?^MlBzK6+JOsaeM~=V!r__2O01#_a6~71l;q4u@WRmNlSq0HAQJzZ*aPIn*Nxxv zY$pi)v)l%&WCPYKN=0b?`1Z6F&@AJS0sFrqGdegB>**R!9p7>i30~B(mM|o19iFiZ-voC< z5Fy)gbb_|uMZZ_#<7xX}REXB%En4@i{9Lqi?td?UdvupEY24qw;iKF=I|%!g1&>2+ zLm!tFH6`5m)$66n!|*Bh>8(ENBFmPz-|Di}r^DPUp5d#?9e)4-EvDH%A#39#vb1wo zM31|^k;ZIcYZ!SPtmie(L*Tztp(keM(IUKMze8xd!oRK8Fje?-8kglxjC^H#1U4x; zN8$saZ@U>nM?H7X@lqLz4-ruwfujow5-U$4#k!c1a(0nCzM>k|;0#&T$p*gCOtyf_ z-md`9W~1CpB1e+2fC`VkJWv{gNHGwRf&c*#!z&DfJTYNY_|pBO(Z_w}V(ahJFQw&W zW^>KwF>g!c@%1F&_tvdn@7aZ+B6wIUsghd9kfwe9J>b)N9a;|48XW2`q^Wp{r`sYt zGSv(;hZ%h*-sfN5PCvIX=L(5W&STakM5mWmDmopLOYj?I( zv0i#PIxW;j()6{kL40|n>71c$DJc~81qEgb!RW%@l;Cp=lYP3X@o*S+STc6r%m)sy zD)5~7XO_bJW;$KKUY!Jp(1T=n)oL@S#{s!g+GKE3YP$?QCaAB_Uqs<1&({s;{lPHf zALmba0pS6heLhPz_R3o)b}ak8Tm`$*8{j5$dGSUky3hC>JG1~0d%2kuZj0gMU6a@! z_Wt@_h%5IePN*n1)ky5>;)>0fICCwDRe$253xAvF9;cM`{3<0&4a;kE;=XyOiPcy8 z*hz-zE`Y93^iENE0|nE zDBT6wZL{&m;fMfN64_QGEH9HT$+diD>qrfN&c`jD0QL&8SZ38C8$UZivwitsF zxjdE2^BM_BH9|BvY{lY;H039%Yc2^eKXErU|9M9!gtv}@^_*?-XQ(}AIfAY&Uy9Fb z8{%At!6hWiWjqGGCI$n4B9b=gSiiHNBF(AYtln3~BPm0VrAnL>y>*f3h0%Y4l;fuo zMf`r=86X7Qkd4bNIzX_KSveXtWJ@iP&w5Qjw>7V1{o;^K6ZTbZa53z7qVgE!uuDg< z*w~l+GCyJ7Oo)ga^PX;m(LtT;HMCNGwY89__~gkp zCimcsYaqpD$j&?HXZ-$nk46_Gg@b2uqqUs?!L$IIJ>6 z9{H#D*i5M?A*e3AmC$IVt5)fhehBgpXaX=YAO6e|O8&5}FSEn1e3xzj`gqW21L_`A zemb-2k+uyYASgfSo`yI+;a;8GC8Ec#At{EiEjN?tElE8oWSN&$svq)v`-<*(=#JvcG z7SJN7r$KHz*DrS1&38?60Nfw8XBRaqbDfI!`siUp9f-T%h;n+iW6s+#{Y|xkbvY9x zXQ~+Fvjsipc`CJZb0HroJ=2GoVvJj-hWoP0L5$@4b)%zWu&Nm+54!>$j!5UgpXGMWrl%bR08|URZzM z{$`QMTn^V>%EkfUaXXrc3=Yrt!ES%&UbjJ_`_PV`e{8hMFu z#hcMNU)1IO&W6^;*9yBiBl`fkwukoU4vYLHzn3_zA77y#D;C7iiho^ET>_`%Nd&Fy z3!TTO*hvoInl&VH5cOprL0n2dyHdE7IpV1g5`Jkc#cGmBJFSUZs67KK>f_fFZEwYujTIUC`Q??u(9Mf^B$BO10g_etWeW*`J<3WnT=YH>8@ei6;`6 zvXmdtZ2P{$M4Hd{!u=Ov-zEyW|9s$)J{lIjj9+}oJ^K*F9&_TCM<*_xjOJ3Yo6s#d2_eoUq4S3Q``o) zjyh1shM|q~y*YFeqK9iPDQIFk)u}}XpKqouG5*a~AWLhAs0S2pvceg9eC0CON9m{0 zYTEGuDL^Mp9KFCG@#c#Q)vpI;p?x2-OKO6u+tRW|dw<^=J)9Ct%=gsRfO)sWrv8YF zg9HMjgX?5qvRc%HOU3!#Z-bEPabSr=YoO(1y+7Tua#M#;XPX@*S$)erK@R#R{InmnM!yj|K=ZUL6jL)Ue911OXcp#Sy-8d=U z9j4U|*>Hm8q9Xml;QeB1CR=1?qy}oimbauFN0aOnK=lKs(>ptqvH!)#VRVH+W-r4! zWXND4DM=HCw5#7{#Ss39vlG7b`V6^|PjJfIcZO0(G-_gZ1sh~bUUI`aNVvJLmBqI4 z1`w7-v6f9iH#Eh$TvE%dr>tBKUR71thB6yZp6eylw(wbBzPR>;HXR~=Y3CRU>uFN} zmwev*;uBWER9`*Dq^T8%-qKTwZJ*G^Zb|OW8*2q1rp~boiQtV8urPNalWCCv5Ra?J z>Z%jOHXz$5k38HUC8~+AU`?|Cx+Lu&Dp=2|7&J}4Fw6O~{JCqKVW;;psa$_J+X$D8 zyo+Uw%vCZ6?9C5i4||4vJt0)^cKL8F-Vxqjj7zOsd5>1Q#T!_d2~j&ok3}R*<=@i8 z9b#J4lZ-0bx8mU7pcnG{^bMY7-`9`7=o_We9kQF-T*4kGB1+?0H#If&LnLj;LPLSy zAu7G@*_g+(PWMaetnCzi&W0lf9cC;legnB`1$+?JB=oogQMaob&+`ZjU83!_ad772 z7Sc>(2>~uycv)%5ez!8?%&e@CDrN6J)?u^Q@&;R*-kWT3c@MJW#qUBpV&|R;(bKNt zf-o_kPovTC?0JRjGb1^z`;>9PyDj!ZlY5bs3$8s6F-$JWyPoE}KF93(ZfIG5T^ie2M6fzNg zv9E@k%9SqaeoOHViJ~~TWU{|@gT4!;h9ku*sFEDqlRLktDz6avJ|5^^z59$2IU_fq z=MN8hJdAQNfv+YCI0Vhp>1Qt5Bb=Q_%>N`Pq!Pvu^voxtrckCLZnm+cr($g0>~Xrr zUqsEmLla1)kDvmvDE)|>KJ(d)vyQeO6TKenl-P+eIJ}$d>2|pa9nWO@hR}m%b!Bq# z9`_MtUb*eWAr3_SGyQPYlcGZxjaCg@ES32NEgZ#d|na~wj+}CBkNtx zwOTCjWir-h`?lTLCF;}UV|c4y%o%UrCnq17qRwI)kK9ThaKh7y(Zy5PV02zx$!bI= zS{rF=n5%23ut_UlJJSo@FOjrC38Aa){v1|B`v+#T(uB&>Q_?T+wD$vt8_Ai?TLcP> z<3S!VM11tl^c4_DpHIw=(qxy0BqF6nno5V}heGD@cA-7ig~rIU}m z$LYIR6&bi-Dd1du$tt5mF1i}(zYfUFvRSP1Lqtt|3GRuWPbz+XCORs)6PP=-9WIG3 z<>d?Qw4LYVRUqe&U7t_>o!BQ{hj)aOf(=LylJs08)uTD2o zea*J35{PV=StfrNVAyEcd_X6eI=>t0Kf(h$T7Gd(J!Blm)se4hQ+PH``aqc7P7Rb* zFWLB1ThL|xU?Bwz?l zb)gv1*kc-`1}qUMn1dh?^~NO0fvR#Hr4DX7_tgfiLXc3Q_0x|_D_dGi&6^!3I~Bi3 zsXDk!`pA&{<8Fh~ z4-JfURCd<1pwjp$fG#@g59Mh_vbC3)vIPdoNRMbaC}~QUBRY|EPno;y(4d9bX!G57 zsR1+1FTza&w$JtDb+IM8+=sSGlnm5h;;kP$wzo~+za2{~6k%@9w2{MI7z0Tp&Vy8^ zV-0+JW?B}{CfGrOoIH4mIBbV_3nQc8U%55orTtt~m+`xpTJy~v7mwW;^DV+L{f)DYdl}$ zrn$UgMZqHa3HS-H#ilzH=kB#i=hW~sU-;g5c;|;*#Grx`hDAg^Y+`W_b0{nzsptH5 zHSUBk{&4!>?n?1!N;T4``i$PB-WI+NK^VOE4}Z8=z%c~eRjH#o{xUA45uuEaF| zWTCUG2mg3zfNH+;1&|p>jOXLH` z@N=JWzIPN64!0L|@NPd|=O+IKXdq+6;;xVXNh}KoWjKiI{uCej<^qwwj3L-fJ@=z_ zylJV54gDvpo!^tRAybZpqzDl}RX*{|bZ|JS!KSNMRF8&|VtBni|E$YIe*|~SKhgw| zf|No@#k71H0z-=@50jkHu4cMA^$FG*QcEVUeIckY->S|kqmG9dM4 zKT_hCpvb1$@;DjP0$CSfU1EkJCq%-ZIm!cgMB!7Q$kRj8T(#iV1R-U+)MY4#oMY;e z5M8~VupG(JN+1L``Y6r^Matg-=dksXsSdZ1gs`K>ZTRNbwWj;@t@LHj3d<{bhA7hn zLBlRY@ls7~d0w{PMjEG{JlW>yDX*zv;@Jq46v!h^L-wcCTOt+NP;~Lovz_nPb;5_o1^k{JXedoeh@v@XsArp%>qU6XM3r zekWM-C;__{zWy=KVMOSl!FpbyGIup)Qlz9b8O4KNbtliw-@+#@nja=0 zO5T1^zs=4GXNpyuKYqaz^K*>&tcAd#b2B78`l$#9DaduYuQ;iEn(7aH;B!O(0L{ylJvBkT{{1dT{_ruy^XJ?Y#m17H$zUyCKDZiX z9C=O7^IIs;?mj+HR;j3U;#eTS`yKNBC2{f7R=}zm+)Q-c&0LiZRbDa;<{Fxh3bVYY z&3KhzIT!lOaY)d69{Brer{bBA!8z50*-+zR$|^W#!nfQ-VWo^&@t04tKH4lJYm-yN zd^N0sT|o^TZmJvNY$T9d#kwp7s#^X;K^rADH3G=XH9^4#zm!4aB&o=OtP6H$e9^^pGL9>+=;s52e70-)jk< zUWN}}EqH}p_wOh$fWo@E!^EBr?sK;VIkAc&7|6ypygq7KB;su)(*Ep6JC?wvDR5Fr(Y^J?d~PwUSwn-_?Yn zubdvuDV7;V*w8!@gCZ9IhPSJY{iK^5fqotOe*L9gM`~1FgI_Bf3hOX(NFcVB-}Qlj z<0paK+ON*QY@pBJi}dP1)_imlydgta^FyIWNgdC7Mp$-hB!jJ8Aq!&jw3m|Q|*Jsm_u{< z8Dk!RstukoiUWj7r-%?sN>V9dQxwyVC>YDH&#g_9(>+6fSj{jRyB{2L$^c&`#gqY* zrrJr+a-2{|reR#1d_3Iu?-YiT{I+{BSdUl3y#eF*B(Eq}aa%QuI58h96YgmvC;x^0 zz6dc(GJ;lg*$|-;*}_vFITe*p7t*i|LAjtcL-1U)9@4)2`{&@F0Ll_^2KJpV^s0hC z$}(>cqaHZD;A%q}&AK}tLf$>C(WS8!oG1%QDafjEZOw%7a)mO1Z#`K#pHDh_z^+e! zUKOPI(s~Ft==p$dk4e9Ql*dzzyOk2i!IHsw(&7ewC>5OfNWGrm(xT`cl}P$u2X-}8 z&B<~7BPYS-d47oNDz#WDv&Xho!zC+w=lQt8mLF76uU$H^e?XM;d6`-WM>*Mjp-UM2 z)O9vO^p`n6(25{!4pdxO5(#Lgx(l#pgyv^bI zUjugd%XuD#Rs79Nmqi?TwD@`Yk-}3gJyoZ4mAJfo%HONKS~W3T1yTzVA4|Fxno$;w zl*V3ON4pRgbd2Oevtzb7%4!g_h0-ij*H%=G(-~_?WV%_#FIQcYAg>u!@|6wQi~$8{(-g(sb00&h%|64pN%4hv+41x^R>kv9+#U4yN$$L^lcC zmc+Z$5=mj^CzQBNt8!+~OJ#xG8vw90a}a|zLQdNxc|ylUV7hEKa@C~l=jV)zzNAIccI}gX~C9qKQCkP*KwTEFBw5`V&@mj)ayzVn6Y{1 z`qpEM7@rhYL;Rsh?KaQGDNZvRf5vvitB?q7-t+SDSwPK&QUEnXaWSwGr^U|eb=cib z9#8eX^Ez2L^Aln*Y|Lde7EYhrylh4EZRgt6wOE%YkxXTt+b-zWfF9mKjwQ6$OLoc zg!{=iS67!i;#{|=p?M4v8y`f-ty~}kq7P!j$Pc2#y?I!c>CxtC=Q_KMsGKzypd{)+ z&h^LAC#fG+lj`RO(HW=onz>36ZWA1yGA+TUwm#MR^pjFcVUu-3523Oz2sx81;=n*$ zzWHPmq_c<$Vu34H^ufu@a2m?oqx^Io+k(qZ-J3xHyR|wb14*&rRhm71Bi&F%#XQN4 z^0RBXR`#mx{2*xql|or3a%~mTFb)w(3oMc6ngbS{o9rp8>z!PCHq@4@M!ySDtw2IQ zDChPrytO}ArbQx{L?#kO9A5gRH1}Hq^BSrLL69L9l(4NRgB{Jbn7CVn;n z67wMLe#WVHL#cW0!My4>hpTy_SylbGmQ&4EJiYYMpj4+^>k%pZL!lWn0fvgQB zvEHsF!z$~FdT6wq_=e#*dhgoadHHLdd_aXVnE1SCk1mnsL?00fN}v1@%-S{Bp`g>m zq=EKEg03)WzV10bnWhgSuU#dCe3|Za|&xps_wu%u(LxHb{Wv% z7U-XAQ0S=1KGfVh+!ae_aWh4*AWe&hx}WI@AR-M=M?K<=K}ubrpzhGuh>ffEP55F+ z#db+d7sk}}@gAPtk$3c~*#bl&W~?9mFcGd<1o(2Z)Up6t%k@K@h4y!fU7*@@ahu`ZN3n zbmj#s93>H%aj-3^`7ah;jCe42H-euaOa*E9tG~Y|bY|1GEl#kIC4cFZiH?AJ8hu`98jhib=y280u<;$Q*VIg<|qa5ZIp!BolZ$aj<=m#>hGT)+duBZVu>66IrlmLuc_O= eUkBVgugHcflKm*iOMU Date: Fri, 9 Mar 2018 08:30:36 +0000 Subject: [PATCH 11/86] Added donate page --- README_donate.md | 23 +++++++++++++++++++++++ docs/images/BitcoinQr.png | Bin 0 -> 6196 bytes docs/index.html | 10 +++++----- 3 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 README_donate.md create mode 100644 docs/images/BitcoinQr.png diff --git a/README_donate.md b/README_donate.md new file mode 100644 index 0000000000..7cc77cc141 --- /dev/null +++ b/README_donate.md @@ -0,0 +1,23 @@ +# Support Joplin development + +Donations to Joplin support the development of the project. Developing quality applications mostly takes time, but there are also some expenses, such as digital certificates to sign the applications, app store fees, hosting, etc. Most of all your donation will make it possible to keep up the current development standard. + +There are various ways to send a donation: + +## Paypal + + + +## Bitcoin + +1P8TJvvJ7oHGneWuwSXN3DMBd7gYxCUQjc + +![](https://raw.githubusercontent.com/laurent22/joplin/master/docs/images/BitcoinQr.png) + +## Other way to support the development + +There are other ways to support the development of Joplin: + +- Consider rating the app on [Google Play](https://play.google.com/store/apps/details?id=net.cozic.joplin&utm_source=GitHub&utm_campaign=README&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1) or [App Store](https://itunes.apple.com/us/app/joplin/id1315599797). +- [Create of update a translation](http://joplin.cozic.net/#localisation). +- Help with the [documentation](https://github.com/laurent22/joplin). \ No newline at end of file diff --git a/docs/images/BitcoinQr.png b/docs/images/BitcoinQr.png new file mode 100644 index 0000000000000000000000000000000000000000..b4af549fa82d75256f2f17d379719b9bf24180c3 GIT binary patch literal 6196 zcmdT}e@vA389(b_L(1rK4J@+N)LMu#1dKT(MsIeO*6?dp!%)JH!!kzTKqR}WAWVc= z%Gi=w0@kx+V+zgC9JL(l5YQ7f(2a$fkOO96ScWFt0+d`2!DFB2dG0;Vwg1#E(f)z= z-ur&<{XXC4`8=QJ^E_7lG~pG$RjXI2R4Tt+ukPH9&tCl9{Ej#Nz4W&?eu`A7Bs)EQU&(z+PP!z;WXQ+ zfw$Iu_;cYYk>paKrJ}9gWLFzn z{o<0VeR8AXlNV~z`g_X@HtWKITOL%T=B-o@W?F{h)q|ytbw%%w1;x`ktuAon3jNe@ ztD8-XuYn9pr78}tg}TOjSlhc8u*G^s75WHl>6kiR_pWLF$Jgx#}lu9 z^4kJk!PSqV_x*}KE84J$hV7VX$|$(mZfYNc1y}HyVc9>G8FVJN<$6V%V~?r*PKq^U z`cOi^7(QW^p|u7F$+YZWTyGtj37ZN#3cJ#z zUB!pWunhO{yVQdTcr|>gk}IFwP}tDJr;E_(vn=~LBq2Bqo!lpvt}5DUVGK@yP3ukO zO=JLWV*hb+0be0peH+b@Fpk5Ta+4hzm=eITV%` z#E@-t4o&U})SUn-2Pp++e6~z?l{Nc&5}}D)k2#rbvlUUPC$Q zkyrn;nAu4+NC#O1Xfr_*84v&PCnd zY@k#gwTv#UTe|A}L-&B-#TnpqhRplh{U6k9uenXx+CKfcwztewcDGCXvW*zsFRQKYovS5sy)_|AVw-@E=xE%TLGxObWdBjYT=+1 zpw|#FHv@#wL-5gjNP=z+Xp=cmyoXnBLbbs|;>D$&^;6e?ebmC32@euF3%G2cdktGE zk8P3a)$B7F8-LdRJn9|jJC>rBns-MuCC8a#8qcdq7Q%$q z9FZgXe%~qG87`C^bW4O5Ro)R}p!J%@Mk-ml zf}*qx|B(;a9drwpK?;%-8~yj?E6#9ZSi&+3>72glaC6df+P+OaTGntl$Ei*4OWBeE za3w5nLCqNs2kjPgKB@tzIoQ8h@I*}!lOgp-RF0m6N6zr2HJUd`;SrME-42kfZu(8v z2j8Y!)abYy8s^;fjp4Qxbc{^ zwQanfWHm~xBnj>WGtE>(Wsn}{^#-a`oH&qDxC54fXu6IPOT8Pfhnoq18Z7QAk(%#1G?QNT2)9M7ySP&g%PSUQ<1^5iMV~g5cm5FhP{jmxjlD!E z?ru4;Fr@46M~-iM`cXF&xeiT!r(IV7$7p-W7HSz;PtbWrf8F^#^`H|<(Z<41sx#bG z8f1@&OI|odR*>t&Y(&GMw+2D$lJb0)WZNTb;%9Wv4{5;Xt>vVa-P|pOy)le=_ z(lLd$M^_sL-2Env2mmR7k*ilyeo=sJE%7J&O$@#Wlz@7O3${#@M_0mTy)+|&nyi}LnpKB8SZLR(I#5c4Rgl@W8KgR8GCUA@>y4sclhgg`=PX- z`-6y?c;Mp>(U9&W8tprBdfWFEAAUUp_@y*ym0~2I*}6Qklae6AP2f!CmWJiIACWkZ za512z)L_`ydX|TWO!YJyz!pdj#*GXC1zo+^b*(n5E%{n2MbXv&_`yI1;SlK z2BHdJpMHYKpVSBL0&g=pQ~ja`a5(dI`_H;~s5I`Q;E+K|rWLQMW=CQ)*2MqmVk`l4(0n z2Th1hA0BhD38alH=;R;c>|*%*N9m=Tmz)b_E#BF4v7ztL{|Tsey_~S~;!7Fj{{<5m B=)V8} literal 0 HcmV?d00001 diff --git a/docs/index.html b/docs/index.html index b794e7c9bb..deb249efb1 100644 --- a/docs/index.html +++ b/docs/index.html @@ -406,14 +406,14 @@ $$ Croatian hr_HR -Hrvoje Mandić trbuhom@net.hr +Hrvoje Mandić trbuhom@net.hr 66% Deutsch de_DE -Tobias Strobel git@strobeltobias.de +Tobias Strobel git@strobeltobias.de 83% @@ -427,7 +427,7 @@ $$ Español es_ES -Fernando Martín f@mrtn.es +Fernando Martín f@mrtn.es 93% @@ -462,14 +462,14 @@ $$ Русский ru_RU -Artyom Karlov artyom.karlov@gmail.com +Artyom Karlov artyom.karlov@gmail.com 85% 中文 (简体) zh_CN -RCJacH RCJacH@outlook.com +RCJacH RCJacH@outlook.com 68% From 003c4c4e2683b0e6c8ecb9ca0778a18ff311e08a Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 9 Mar 2018 08:47:21 +0000 Subject: [PATCH 12/86] Moved readme files to own folder --- CONTRIBUTING.md | 2 +- README_faq.md | 4 ---- Tools/build-website.js | 8 ++++---- docs/index.html | 10 +++++----- README_debugging.md => readme/debugging.md | 0 README_desktop.md => readme/desktop.md | 0 README_donate.md => readme/donate.md | 0 README_e2ee.md => readme/e2ee.md | 0 readme/faq.md | 11 +++++++++++ README_spec.md => readme/spec.md | 0 README_terminal.md => readme/terminal.md | 0 11 files changed, 21 insertions(+), 14 deletions(-) delete mode 100644 README_faq.md rename README_debugging.md => readme/debugging.md (100%) rename README_desktop.md => readme/desktop.md (100%) rename README_donate.md => readme/donate.md (100%) rename README_e2ee.md => readme/e2ee.md (100%) create mode 100644 readme/faq.md rename README_spec.md => readme/spec.md (100%) rename README_terminal.md => readme/terminal.md (100%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6bc9f976e4..751078ab29 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Reporting a bug -Please check first that it [has not already been reported](https://github.com/laurent22/joplin/issues?utf8=%E2%9C%93&q=is%3Aissue). Also consider [enabling debug mode](https://github.com/laurent22/joplin/blob/master/README_debugging.md) before reporting the issue so that you can provide as much details as possible to help fix it. +Please check first that it [has not already been reported](https://github.com/laurent22/joplin/issues?utf8=%E2%9C%93&q=is%3Aissue). Also consider [enabling debug mode](https://github.com/laurent22/joplin/blob/master/readme/debugging.md) before reporting the issue so that you can provide as much details as possible to help fix it. If possible, **please provide a screenshot**. A screenshot showing the problem is often more useful than a paragraph describing it as it can make it immediately clear what the issue is. diff --git a/README_faq.md b/README_faq.md deleted file mode 100644 index a0bde9d52e..0000000000 --- a/README_faq.md +++ /dev/null @@ -1,4 +0,0 @@ -# When I open a note in vim, the cursor is not visible - -It seems to be due to the setting `set term=ansi` in .vimrc. Removing it should fix the issue. See https://github.com/laurent22/joplin/issues/147 for more information. - diff --git a/Tools/build-website.js b/Tools/build-website.js index 07c1381c9e..094ea7a860 100644 --- a/Tools/build-website.js +++ b/Tools/build-website.js @@ -305,16 +305,16 @@ async function main() { selectedHome: 'selected', }); - renderFileToHtml(rootDir + '/README_terminal.md', rootDir + '/docs/terminal/index.html', { + renderFileToHtml(rootDir + '/readme/terminal.md', rootDir + '/docs/terminal/index.html', { selectedTerminal: 'selected', }); - renderFileToHtml(rootDir + '/README_desktop.md', rootDir + '/docs/desktop/index.html', { + renderFileToHtml(rootDir + '/readme/desktop.md', rootDir + '/docs/desktop/index.html', { selectedDesktop: 'selected', }); - renderFileToHtml(rootDir + '/README_e2ee.md', rootDir + '/docs/help/e2ee.html', {}); - renderFileToHtml(rootDir + '/README_spec.md', rootDir + '/docs/help/spec.html', {}); + renderFileToHtml(rootDir + '/readme/e2ee.md', rootDir + '/docs/help/e2ee.html', {}); + renderFileToHtml(rootDir + '/readme/spec.md', rootDir + '/docs/help/spec.html', {}); } diff --git a/docs/index.html b/docs/index.html index deb249efb1..09f559b03e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -406,14 +406,14 @@ $$ Croatian hr_HR -Hrvoje Mandić trbuhom@net.hr +Hrvoje Mandić trbuhom@net.hr 66% Deutsch de_DE -Tobias Strobel git@strobeltobias.de +Tobias Strobel git@strobeltobias.de 83% @@ -427,7 +427,7 @@ $$ Español es_ES -Fernando Martín f@mrtn.es +Fernando Martín f@mrtn.es 93% @@ -462,14 +462,14 @@ $$ Русский ru_RU -Artyom Karlov artyom.karlov@gmail.com +Artyom Karlov artyom.karlov@gmail.com 85% 中文 (简体) zh_CN -RCJacH RCJacH@outlook.com +RCJacH RCJacH@outlook.com 68% diff --git a/README_debugging.md b/readme/debugging.md similarity index 100% rename from README_debugging.md rename to readme/debugging.md diff --git a/README_desktop.md b/readme/desktop.md similarity index 100% rename from README_desktop.md rename to readme/desktop.md diff --git a/README_donate.md b/readme/donate.md similarity index 100% rename from README_donate.md rename to readme/donate.md diff --git a/README_e2ee.md b/readme/e2ee.md similarity index 100% rename from README_e2ee.md rename to readme/e2ee.md diff --git a/readme/faq.md b/readme/faq.md new file mode 100644 index 0000000000..93b54d7ca6 --- /dev/null +++ b/readme/faq.md @@ -0,0 +1,11 @@ +# When I open a note in vim, the cursor is not visible + +It seems to be due to the setting `set term=ansi` in .vimrc. Removing it should fix the issue. See https://github.com/laurent22/joplin/issues/147 for more information. + +# Is it possible to use real file and folder names in the sync target? + +Unfortunately it is not possible. Joplin synchronises with file systems using an open format however it does not mean the sync files are meant to be user-editable. The format is designed to be performant and reliable, not user friendly (it cannot be both), and that cannot be changed. Joplin sync directory is basically just a database. + +# Why is it named Joplin? + +The name comes from the composer and pianist [Scott Joplin](https://en.wikipedia.org/wiki/Scott_Joplin), which I often listen to. His name is also easy to remember and type so it fell like a good choice. And, to quote a user on Hacker News, "though Scott Joplin's ragtime musical style has a lot in common with some very informal music, his own approach was more educated, sophisticated, and precise. Every note was in its place for a reason, and he was known to prefer his pieces to be performed exactly as written. So you could say that compared to the people who came before him, his notes were more organized". \ No newline at end of file diff --git a/README_spec.md b/readme/spec.md similarity index 100% rename from README_spec.md rename to readme/spec.md diff --git a/README_terminal.md b/readme/terminal.md similarity index 100% rename from README_terminal.md rename to readme/terminal.md From 083ab0c7882c8b0eb6ba156709dc6e983c3d66c9 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 9 Mar 2018 08:53:26 +0000 Subject: [PATCH 13/86] Updated website --- README.md | 6 + Tools/build-website.js | 1 + docs/donate.html | 244 +++++++++++++++++++++++++++++++++++++++++ docs/index.html | 13 ++- readme/donate.md | 2 +- 5 files changed, 260 insertions(+), 6 deletions(-) create mode 100644 docs/donate.html diff --git a/README.md b/README.md index a6b306ca3d..a8d83df002 100644 --- a/README.md +++ b/README.md @@ -200,6 +200,12 @@ Checkboxes can be added like so: The checkboxes can then be ticked in the mobile and desktop applications. +# Donations + +Donations to Joplin support the development of the project. Developing quality applications mostly takes time, but there are also some expenses, such as digital certificates to sign the applications, app store fees, hosting, etc. Most of all, your donation will make it possible to keep up the current development standard. + +Please see the [donation page](http://joplin.cozic.net/donate/) for information on how to support the development of Joplin. + # Contributing Please see the guide for information on how to contribute to the development of Joplin: https://github.com/laurent22/joplin/blob/master/CONTRIBUTING.md diff --git a/Tools/build-website.js b/Tools/build-website.js index 094ea7a860..ba91a81daa 100644 --- a/Tools/build-website.js +++ b/Tools/build-website.js @@ -315,6 +315,7 @@ async function main() { renderFileToHtml(rootDir + '/readme/e2ee.md', rootDir + '/docs/help/e2ee.html', {}); renderFileToHtml(rootDir + '/readme/spec.md', rootDir + '/docs/help/spec.html', {}); + renderFileToHtml(rootDir + '/readme/donate.md', rootDir + '/docs/donate.html', {}); } diff --git a/docs/donate.html b/docs/donate.html new file mode 100644 index 0000000000..acda42d0f9 --- /dev/null +++ b/docs/donate.html @@ -0,0 +1,244 @@ + + + + Joplin - an open source note taking and to-do application with synchronisation capabilities + + + + + + + + + + + + +
    + +
    + +

    oplin

    +

    An open source note taking and to-do application with synchronisation capabilities.

    +
    + + + +
    +

    Support Joplin development

    +

    Donations to Joplin support the development of the project. Developing quality applications mostly takes time, but there are also some expenses, such as digital certificates to sign the applications, app store fees, hosting, etc. Most of all, your donation will make it possible to keep up the current development standard.

    +

    There are various ways to send a donation:

    +

    Paypal

    +

    +

    Bitcoin

    +

    1P8TJvvJ7oHGneWuwSXN3DMBd7gYxCUQjc

    +

    +

    Other way to support the development

    +

    There are other ways to support the development of Joplin:

    + + + + + + diff --git a/docs/index.html b/docs/index.html index 09f559b03e..99b2de5bee 100644 --- a/docs/index.html +++ b/docs/index.html @@ -370,6 +370,9 @@ $$ - [ ] Rice - [ ] Eggs

    The checkboxes can then be ticked in the mobile and desktop applications.

    +

    Donations

    +

    Donations to Joplin support the development of the project. Developing quality applications mostly takes time, but there are also some expenses, such as digital certificates to sign the applications, app store fees, hosting, etc. Most of all, your donation will make it possible to keep up the current development standard.

    +

    Please see the donation page for information on how to support the development of Joplin.

    Contributing

    Please see the guide for information on how to contribute to the development of Joplin: https://github.com/laurent22/joplin/blob/master/CONTRIBUTING.md

    Localisation

    @@ -406,14 +409,14 @@ $$ Croatian hr_HR -Hrvoje Mandić trbuhom@net.hr +Hrvoje Mandić trbuhom@net.hr 66% Deutsch de_DE -Tobias Strobel git@strobeltobias.de +Tobias Strobel git@strobeltobias.de 83% @@ -427,7 +430,7 @@ $$ Español es_ES -Fernando Martín f@mrtn.es +Fernando Martín f@mrtn.es 93% @@ -462,14 +465,14 @@ $$ Русский ru_RU -Artyom Karlov artyom.karlov@gmail.com +Artyom Karlov artyom.karlov@gmail.com 85% 中文 (简体) zh_CN -RCJacH RCJacH@outlook.com +RCJacH RCJacH@outlook.com 68% diff --git a/readme/donate.md b/readme/donate.md index 7cc77cc141..c4207ac424 100644 --- a/readme/donate.md +++ b/readme/donate.md @@ -1,6 +1,6 @@ # Support Joplin development -Donations to Joplin support the development of the project. Developing quality applications mostly takes time, but there are also some expenses, such as digital certificates to sign the applications, app store fees, hosting, etc. Most of all your donation will make it possible to keep up the current development standard. +Donations to Joplin support the development of the project. Developing quality applications mostly takes time, but there are also some expenses, such as digital certificates to sign the applications, app store fees, hosting, etc. Most of all, your donation will make it possible to keep up the current development standard. There are various ways to send a donation: From 32791f502ea1fba381e05e89a117681e1be8ca2e Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 9 Mar 2018 08:57:34 +0000 Subject: [PATCH 14/86] More consistent links --- Tools/build-website.js | 6 +++--- docs/{donate.html => donate/index.html} | 0 docs/help/{e2ee.html => e2ee/index.html} | 0 docs/help/{spec.html => spec/index.html} | 0 4 files changed, 3 insertions(+), 3 deletions(-) rename docs/{donate.html => donate/index.html} (100%) rename docs/help/{e2ee.html => e2ee/index.html} (100%) rename docs/help/{spec.html => spec/index.html} (100%) diff --git a/Tools/build-website.js b/Tools/build-website.js index ba91a81daa..5a55499d1b 100644 --- a/Tools/build-website.js +++ b/Tools/build-website.js @@ -313,9 +313,9 @@ async function main() { selectedDesktop: 'selected', }); - renderFileToHtml(rootDir + '/readme/e2ee.md', rootDir + '/docs/help/e2ee.html', {}); - renderFileToHtml(rootDir + '/readme/spec.md', rootDir + '/docs/help/spec.html', {}); - renderFileToHtml(rootDir + '/readme/donate.md', rootDir + '/docs/donate.html', {}); + renderFileToHtml(rootDir + '/readme/e2ee.md', rootDir + '/docs/help/e2ee/index.html', {}); + renderFileToHtml(rootDir + '/readme/spec.md', rootDir + '/docs/help/spec/index.html', {}); + renderFileToHtml(rootDir + '/readme/donate.md', rootDir + '/docs/donate/index.html', {}); } diff --git a/docs/donate.html b/docs/donate/index.html similarity index 100% rename from docs/donate.html rename to docs/donate/index.html diff --git a/docs/help/e2ee.html b/docs/help/e2ee/index.html similarity index 100% rename from docs/help/e2ee.html rename to docs/help/e2ee/index.html diff --git a/docs/help/spec.html b/docs/help/spec/index.html similarity index 100% rename from docs/help/spec.html rename to docs/help/spec/index.html From d114d14e87ed5170294afda9af189c012039900b Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 9 Mar 2018 09:09:13 +0000 Subject: [PATCH 15/86] Added donation links --- ElectronClient/app/app.js | 6 + .../lib/components/screens/config.js | 10 +- ReactNativeClient/package-lock.json | 796 ++++++++++++++++++ 3 files changed, 811 insertions(+), 1 deletion(-) diff --git a/ElectronClient/app/app.js b/ElectronClient/app/app.js index d7172bd7f8..7db2a51b6b 100644 --- a/ElectronClient/app/app.js +++ b/ElectronClient/app/app.js @@ -448,11 +448,17 @@ class Application extends BaseApplication { label: _('Website and documentation'), accelerator: 'F1', click () { bridge().openExternal('http://joplin.cozic.net') } + }, { + label: _('Make a donation'), + click () { bridge().openExternal('http://joplin.cozic.net/donate') } }, { label: _('Check for updates...'), click: () => { bridge().checkForUpdates(false, bridge().window(), this.checkForUpdateLoggerPath()); } + }, { + type: 'separator', + screens: ['Main'], }, { label: _('About Joplin'), click: () => { diff --git a/ReactNativeClient/lib/components/screens/config.js b/ReactNativeClient/lib/components/screens/config.js index b964074413..4ea8b5ea54 100644 --- a/ReactNativeClient/lib/components/screens/config.js +++ b/ReactNativeClient/lib/components/screens/config.js @@ -200,11 +200,19 @@ class ConfigScreenComponent extends BaseScreenComponent { ); } + + settingComps.push( + + { Linking.openURL('http://joplin.cozic.net/donate/') }}> + {_('Make a donation')} + + + ); settingComps.push( { Linking.openURL('http://joplin.cozic.net/') }}> - Joplin Website + {_('Joplin website')} ); diff --git a/ReactNativeClient/package-lock.json b/ReactNativeClient/package-lock.json index dbeabe6b08..34659157b7 100644 --- a/ReactNativeClient/package-lock.json +++ b/ReactNativeClient/package-lock.json @@ -2125,6 +2125,795 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "fsevents": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", + "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "optional": true, + "requires": { + "nan": "2.9.2", + "node-pre-gyp": "0.6.39" + }, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.39", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "1.0.2", + "hawk": "3.1.3", + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "bundled": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + } + } + }, "gauge": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz", @@ -4044,6 +4833,12 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, + "nan": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.9.2.tgz", + "integrity": "sha512-ltW65co7f3PQWBDbqVvaU1WtFJUsNW7sWWm4HINhbMQIyVyzIeyZ8toX5TC5eeooE6piZoaEh4cZkueSKG3KYw==", + "optional": true + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -5408,6 +6203,7 @@ "anymatch": "1.3.2", "exec-sh": "0.2.1", "fb-watchman": "2.0.0", + "fsevents": "1.1.3", "minimatch": "3.0.4", "minimist": "1.2.0", "walker": "1.0.7", From 570b5856ba6cdcb4cd5c517e1caa08e0a83ea51f Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 9 Mar 2018 09:11:13 +0000 Subject: [PATCH 16/86] Updated translations --- CliClient/locales/de_DE.po | 11 +++++++++++ CliClient/locales/en_GB.po | 9 +++++++++ CliClient/locales/es_ES.po | 13 +++++++++++-- CliClient/locales/eu.po | 11 +++++++++++ CliClient/locales/fr_FR.po | 9 +++++++++ CliClient/locales/hr_HR.po | 11 +++++++++++ CliClient/locales/it_IT.po | 11 +++++++++++ CliClient/locales/ja_JP.po | 11 +++++++++++ CliClient/locales/joplin.pot | 9 +++++++++ CliClient/locales/nl_BE.po | 11 +++++++++++ CliClient/locales/pt_BR.po | 11 +++++++++++ CliClient/locales/ru_RU.po | 11 +++++++++++ CliClient/locales/zh_CN.po | 11 +++++++++++ ElectronClient/app/locales/de_DE.json | 2 +- ElectronClient/app/locales/en_GB.json | 2 +- ElectronClient/app/locales/es_ES.json | 2 +- ElectronClient/app/locales/eu.json | 2 +- ElectronClient/app/locales/fr_FR.json | 2 +- ElectronClient/app/locales/hr_HR.json | 2 +- ElectronClient/app/locales/it_IT.json | 2 +- ElectronClient/app/locales/ja_JP.json | 2 +- ElectronClient/app/locales/nl_BE.json | 2 +- ElectronClient/app/locales/pt_BR.json | 2 +- ElectronClient/app/locales/ru_RU.json | 2 +- ElectronClient/app/locales/zh_CN.json | 2 +- README.md | 16 ++++++++-------- ReactNativeClient/locales/de_DE.json | 2 +- ReactNativeClient/locales/en_GB.json | 2 +- ReactNativeClient/locales/es_ES.json | 2 +- ReactNativeClient/locales/eu.json | 2 +- ReactNativeClient/locales/fr_FR.json | 2 +- ReactNativeClient/locales/hr_HR.json | 2 +- ReactNativeClient/locales/it_IT.json | 2 +- ReactNativeClient/locales/ja_JP.json | 2 +- ReactNativeClient/locales/nl_BE.json | 2 +- ReactNativeClient/locales/pt_BR.json | 2 +- ReactNativeClient/locales/ru_RU.json | 2 +- ReactNativeClient/locales/zh_CN.json | 2 +- docs/index.html | 26 +++++++++++++------------- 39 files changed, 182 insertions(+), 47 deletions(-) diff --git a/CliClient/locales/de_DE.po b/CliClient/locales/de_DE.po index 4824c1a8dc..da38df8212 100644 --- a/CliClient/locales/de_DE.po +++ b/CliClient/locales/de_DE.po @@ -520,6 +520,10 @@ msgstr "Standard: %s" msgid "Possible keys/values:" msgstr "Mögliche Werte:" +#, fuzzy +msgid "Type `joplin help` for usage information." +msgstr "Zeigt die Nutzungsstatistik an." + msgid "Fatal error:" msgstr "Schwerwiegender Fehler:" @@ -650,6 +654,10 @@ msgstr "Hilfe" msgid "Website and documentation" msgstr "Webseite und Dokumentation" +#, fuzzy +msgid "Make a donation" +msgstr "Webseite und Dokumentation" + msgid "Check for updates..." msgstr "" @@ -1329,6 +1337,9 @@ msgstr "Bestätigen" msgid "Cancel synchronisation" msgstr "Synchronisation abbrechen" +msgid "Joplin website" +msgstr "" + #, javascript-format msgid "Master Key %s" msgstr "Hauptschlüssel %s" diff --git a/CliClient/locales/en_GB.po b/CliClient/locales/en_GB.po index 9094cf9e36..7b9446040b 100644 --- a/CliClient/locales/en_GB.po +++ b/CliClient/locales/en_GB.po @@ -449,6 +449,9 @@ msgstr "" msgid "Possible keys/values:" msgstr "" +msgid "Type `joplin help` for usage information." +msgstr "" + msgid "Fatal error:" msgstr "" @@ -561,6 +564,9 @@ msgstr "" msgid "Website and documentation" msgstr "" +msgid "Make a donation" +msgstr "" + msgid "Check for updates..." msgstr "" @@ -1178,6 +1184,9 @@ msgstr "" msgid "Cancel synchronisation" msgstr "" +msgid "Joplin website" +msgstr "" + #, javascript-format msgid "Master Key %s" msgstr "" diff --git a/CliClient/locales/es_ES.po b/CliClient/locales/es_ES.po index 048dcbbbb8..1804b194e5 100644 --- a/CliClient/locales/es_ES.po +++ b/CliClient/locales/es_ES.po @@ -16,8 +16,6 @@ msgstr "" "X-Generator: Poedit 1.8.11\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-SourceCharset: UTF-8\n" -"POT-Creation-Date: \n" -"PO-Revision-Date: \n" msgid "To delete a tag, untag the associated notes." msgstr "Desmarque las notas asociadas para eliminar una etiqueta." @@ -507,6 +505,10 @@ msgstr "Por defecto: %s" msgid "Possible keys/values:" msgstr "Claves/valores posbiles:" +#, fuzzy +msgid "Type `joplin help` for usage information." +msgstr "Muestra información de uso." + msgid "Fatal error:" msgstr "Error fatal:" @@ -637,6 +639,10 @@ msgstr "Ayuda" msgid "Website and documentation" msgstr "Sitio web y documentación" +#, fuzzy +msgid "Make a donation" +msgstr "Sitio web y documentación" + msgid "Check for updates..." msgstr "Comprobar actualizaciones..." @@ -1295,6 +1301,9 @@ msgstr "Confirmar" msgid "Cancel synchronisation" msgstr "Cancelar sincronización" +msgid "Joplin website" +msgstr "" + #, javascript-format msgid "Master Key %s" msgstr "Clave maestra %s" diff --git a/CliClient/locales/eu.po b/CliClient/locales/eu.po index 0d3af8785f..c9c7cfd648 100644 --- a/CliClient/locales/eu.po +++ b/CliClient/locales/eu.po @@ -503,6 +503,10 @@ msgstr "Lehenetsia: %s" msgid "Possible keys/values:" msgstr "Litezkeen balioak:" +#, fuzzy +msgid "Type `joplin help` for usage information." +msgstr "Erakutsi erabilera datuak." + msgid "Fatal error:" msgstr "Aio! Agur! :_( " @@ -632,6 +636,10 @@ msgstr "Laguntza" msgid "Website and documentation" msgstr "Web orria eta dokumentazioa (en)" +#, fuzzy +msgid "Make a donation" +msgstr "Web orria eta dokumentazioa (en)" + msgid "Check for updates..." msgstr "" @@ -1299,6 +1307,9 @@ msgstr "Baieztatu" msgid "Cancel synchronisation" msgstr "Sinkronizazioa utzi" +msgid "Joplin website" +msgstr "" + #, javascript-format msgid "Master Key %s" msgstr "Pasahitz Nagusia %s" diff --git a/CliClient/locales/fr_FR.po b/CliClient/locales/fr_FR.po index 13baeb63e0..a5be63cfb7 100644 --- a/CliClient/locales/fr_FR.po +++ b/CliClient/locales/fr_FR.po @@ -504,6 +504,9 @@ msgstr "Défaut : %s" msgid "Possible keys/values:" msgstr "Clefs/Valeurs possibles :" +msgid "Type `joplin help` for usage information." +msgstr "Tapez `Joplin help` pour afficher l'aide." + msgid "Fatal error:" msgstr "Erreur fatale :" @@ -632,6 +635,9 @@ msgstr "Aide" msgid "Website and documentation" msgstr "Documentation en ligne" +msgid "Make a donation" +msgstr "Faire un don" + msgid "Check for updates..." msgstr "Vérifier les mises à jour..." @@ -1300,6 +1306,9 @@ msgstr "Confirmer" msgid "Cancel synchronisation" msgstr "Annuler synchronisation" +msgid "Joplin website" +msgstr "Site web de Joplin" + #, javascript-format msgid "Master Key %s" msgstr "Clef maître %s" diff --git a/CliClient/locales/hr_HR.po b/CliClient/locales/hr_HR.po index e90da2ecbf..692cbc6bd7 100644 --- a/CliClient/locales/hr_HR.po +++ b/CliClient/locales/hr_HR.po @@ -510,6 +510,10 @@ msgstr "Default: %s" msgid "Possible keys/values:" msgstr "Mogući ključevi/vrijednosti:" +#, fuzzy +msgid "Type `joplin help` for usage information." +msgstr "Prikazuje informacije o korištenju." + msgid "Fatal error:" msgstr "Fatalna greška:" @@ -635,6 +639,10 @@ msgstr "Pomoć" msgid "Website and documentation" msgstr "Website i dokumentacija" +#, fuzzy +msgid "Make a donation" +msgstr "Website i dokumentacija" + msgid "Check for updates..." msgstr "" @@ -1279,6 +1287,9 @@ msgstr "Potvrdi" msgid "Cancel synchronisation" msgstr "Prekini sinkronizaciju" +msgid "Joplin website" +msgstr "" + #, javascript-format msgid "Master Key %s" msgstr "" diff --git a/CliClient/locales/it_IT.po b/CliClient/locales/it_IT.po index 283cfa4e35..0a746ad8fc 100644 --- a/CliClient/locales/it_IT.po +++ b/CliClient/locales/it_IT.po @@ -496,6 +496,10 @@ msgstr "Predefinito: %s" msgid "Possible keys/values:" msgstr "Chiave/valore possibili:" +#, fuzzy +msgid "Type `joplin help` for usage information." +msgstr "Mostra le informazioni di utilizzo." + msgid "Fatal error:" msgstr "Errore fatale:" @@ -617,6 +621,10 @@ msgstr "Aiuto" msgid "Website and documentation" msgstr "Sito web e documentazione" +#, fuzzy +msgid "Make a donation" +msgstr "Sito web e documentazione" + msgid "Check for updates..." msgstr "" @@ -1265,6 +1273,9 @@ msgstr "Conferma" msgid "Cancel synchronisation" msgstr "Cancella la sincronizzazione" +msgid "Joplin website" +msgstr "" + #, javascript-format msgid "Master Key %s" msgstr "" diff --git a/CliClient/locales/ja_JP.po b/CliClient/locales/ja_JP.po index 9f24160822..bba9f6d151 100644 --- a/CliClient/locales/ja_JP.po +++ b/CliClient/locales/ja_JP.po @@ -492,6 +492,10 @@ msgstr "規定値: %s" msgid "Possible keys/values:" msgstr "取り得るキーバリュー: " +#, fuzzy +msgid "Type `joplin help` for usage information." +msgstr "使い方を表示する。" + msgid "Fatal error:" msgstr "致命的なエラー: " @@ -618,6 +622,10 @@ msgstr "ヘルプ" msgid "Website and documentation" msgstr "Webサイトとドキュメント" +#, fuzzy +msgid "Make a donation" +msgstr "Webサイトとドキュメント" + msgid "Check for updates..." msgstr "" @@ -1269,6 +1277,9 @@ msgstr "確認" msgid "Cancel synchronisation" msgstr "同期の中止" +msgid "Joplin website" +msgstr "" + #, javascript-format msgid "Master Key %s" msgstr "" diff --git a/CliClient/locales/joplin.pot b/CliClient/locales/joplin.pot index 9094cf9e36..7b9446040b 100644 --- a/CliClient/locales/joplin.pot +++ b/CliClient/locales/joplin.pot @@ -449,6 +449,9 @@ msgstr "" msgid "Possible keys/values:" msgstr "" +msgid "Type `joplin help` for usage information." +msgstr "" + msgid "Fatal error:" msgstr "" @@ -561,6 +564,9 @@ msgstr "" msgid "Website and documentation" msgstr "" +msgid "Make a donation" +msgstr "" + msgid "Check for updates..." msgstr "" @@ -1178,6 +1184,9 @@ msgstr "" msgid "Cancel synchronisation" msgstr "" +msgid "Joplin website" +msgstr "" + #, javascript-format msgid "Master Key %s" msgstr "" diff --git a/CliClient/locales/nl_BE.po b/CliClient/locales/nl_BE.po index c0ab31e18c..7ef10a0ec8 100644 --- a/CliClient/locales/nl_BE.po +++ b/CliClient/locales/nl_BE.po @@ -505,6 +505,10 @@ msgstr "Standaard: %s" msgid "Possible keys/values:" msgstr "Mogelijke sleutels/waarden:" +#, fuzzy +msgid "Type `joplin help` for usage information." +msgstr "Toont gebruiksinformatie." + msgid "Fatal error:" msgstr "Fatale fout:" @@ -634,6 +638,10 @@ msgstr "Help" msgid "Website and documentation" msgstr "Website en documentatie" +#, fuzzy +msgid "Make a donation" +msgstr "Website en documentatie" + msgid "Check for updates..." msgstr "" @@ -1301,6 +1309,9 @@ msgstr "Bevestig" msgid "Cancel synchronisation" msgstr "Annuleer synchronisatie" +msgid "Joplin website" +msgstr "" + #, javascript-format msgid "Master Key %s" msgstr "Hoofdsleutel: %s" diff --git a/CliClient/locales/pt_BR.po b/CliClient/locales/pt_BR.po index 6f729cd1eb..702b09a04a 100644 --- a/CliClient/locales/pt_BR.po +++ b/CliClient/locales/pt_BR.po @@ -493,6 +493,10 @@ msgstr "Padrão: %s" msgid "Possible keys/values:" msgstr "Possíveis chaves/valores:" +#, fuzzy +msgid "Type `joplin help` for usage information." +msgstr "Exibe informações de uso." + msgid "Fatal error:" msgstr "Erro fatal:" @@ -614,6 +618,10 @@ msgstr "Ajuda" msgid "Website and documentation" msgstr "Website e documentação" +#, fuzzy +msgid "Make a donation" +msgstr "Website e documentação" + msgid "Check for updates..." msgstr "" @@ -1266,6 +1274,9 @@ msgstr "Confirmar" msgid "Cancel synchronisation" msgstr "Cancelar sincronização" +msgid "Joplin website" +msgstr "" + #, javascript-format msgid "Master Key %s" msgstr "" diff --git a/CliClient/locales/ru_RU.po b/CliClient/locales/ru_RU.po index b66e247bb5..046913eb6a 100644 --- a/CliClient/locales/ru_RU.po +++ b/CliClient/locales/ru_RU.po @@ -507,6 +507,10 @@ msgstr "По умолчанию: %s" msgid "Possible keys/values:" msgstr "Возможные ключи/значения:" +#, fuzzy +msgid "Type `joplin help` for usage information." +msgstr "Выводит информацию об использовании." + msgid "Fatal error:" msgstr "Фатальная ошибка:" @@ -636,6 +640,10 @@ msgstr "Помощь" msgid "Website and documentation" msgstr "Сайт и документация" +#, fuzzy +msgid "Make a donation" +msgstr "Сайт и документация" + msgid "Check for updates..." msgstr "Проверить обновления..." @@ -1300,6 +1308,9 @@ msgstr "Подтвердить" msgid "Cancel synchronisation" msgstr "Отменить синхронизацию" +msgid "Joplin website" +msgstr "" + #, javascript-format msgid "Master Key %s" msgstr "Мастер-ключ %s" diff --git a/CliClient/locales/zh_CN.po b/CliClient/locales/zh_CN.po index a22be0ed3c..a1a145d51d 100644 --- a/CliClient/locales/zh_CN.po +++ b/CliClient/locales/zh_CN.po @@ -471,6 +471,10 @@ msgstr "默认值: %s" msgid "Possible keys/values:" msgstr "可用键/值:" +#, fuzzy +msgid "Type `joplin help` for usage information." +msgstr "显示使用信息。" + msgid "Fatal error:" msgstr "严重错误:" @@ -588,6 +592,10 @@ msgstr "帮助" msgid "Website and documentation" msgstr "网站与文档" +#, fuzzy +msgid "Make a donation" +msgstr "网站与文档" + msgid "Check for updates..." msgstr "" @@ -1229,6 +1237,9 @@ msgstr "确认" msgid "Cancel synchronisation" msgstr "取消同步" +msgid "Joplin website" +msgstr "" + #, javascript-format msgid "Master Key %s" msgstr "" diff --git a/ElectronClient/app/locales/de_DE.json b/ElectronClient/app/locales/de_DE.json index 4cd74951d0..58bd2dae42 100644 --- a/ElectronClient/app/locales/de_DE.json +++ b/ElectronClient/app/locales/de_DE.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Hebe die Markierungen zugehöriger Notizen auf, um eine Markierung zu löschen.","Please select the note or notebook to be deleted first.":"Wähle bitte zuerst eine Notiz oder ein Notizbuch aus, das gelöscht werden soll.","Press Ctrl+D or type \"exit\" to exit the application":"Drücke Strg+D oder tippe \"exit\", um das Programm zu verlassen","More than one item match \"%s\". Please narrow down your query.":"Mehr als eine Notiz stimmt mit \"%s\" überein. Bitte schränke deine Suche ein.","No notebook selected.":"Kein Notizbuch ausgewählt.","No notebook has been specified.":"Kein Notizbuch wurde angegeben.","Y":"J","n":"n","N":"N","y":"j","Cancelling background synchronisation... Please wait.":"Breche Hintergrund-Synchronisation ab... Bitte warten.","No such command: %s":"Ungültiger Befehl: %s","The command \"%s\" is only available in GUI mode":"Der Befehl \"%s\" ist nur im GUI Modus verfügbar","Cannot change encrypted item":"Kann verschlüsseltes Objekt nicht ändern","Missing required argument: %s":"Fehlendes benötigtes Argument: %s","%s: %s":"%s: %s","Your choice: ":"Deine Auswahl: ","Invalid answer: %s":"Ungültige Antwort: %s","Attaches the given file to the note.":"Hängt die ausgewählte Datei an die Notiz an.","Cannot find \"%s\".":"Kann \"%s\" nicht finden.","Displays the given note.":"Zeigt die jeweilige Notiz an.","Displays the complete information about note.":"Zeigt alle Informationen über die Notiz an.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Zeigt an oder stellt einen Optionswert. Wenn kein [Wert] angegeben ist, wird der Wert vom gegebenen [Namen] angezeigt. Wenn weder [Name] noch [Wert] gegeben sind, wird eine Liste der momentanen Konfiguration angezeigt.","Also displays unset and hidden config variables.":"Zeigt auch nicht angegebene oder versteckte Konfigurationsvariablen an.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Dupliziert die Notizen die mit übereinstimmen zu [Notizbuch]. Wenn kein Notizbuch angegeben ist, wird die Notiz in das momentane Notizbuch kopiert.","Marks a to-do as done.":"Markiert ein To-Do als abgeschlossen.","Note is not a to-do: \"%s\"":"Notiz ist kein To-Do: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Verwaltet die E2EE-Konfiguration. Die Befehle sind `enable`, `disable`, `decrypt`, `status` und `target-status`.","Enter master password:":"Master-Passwort eingeben:","Operation cancelled":"Vorgang abgebrochen","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Entschlüsselung starten.... Warte bitte, da es einige Minuten dauern kann, je nachdem, wie viel es zu entschlüsseln gibt.","Completed decryption.":"Entschlüsselung abgeschlossen.","Enabled":"Aktiviert","Disabled":"Deaktiviert","Encryption is: %s":"Die Verschlüsselung ist: %s","Edit note.":"Notiz bearbeiten.","No text editor is defined. Please set it using `config editor `":"Kein Textverarbeitungsprogramm angegeben. Bitte lege eines mit `config editor ` fest","No active notebook.":"Kein aktives Notizbuch.","Note does not exist: \"%s\". Create it?":"Notiz \"%s\" existiert nicht. Soll sie erstellt werden?","Starting to edit note. Close the editor to get back to the prompt.":"Beginne die Notiz zu bearbeiten. Schließe das Textverarbeitungsprogramm, um zurück zum Terminal zu gelangen.","Error opening note in editor: %s":"Fehler beim Öffnen der Notiz im Editor: %s","Note has been saved.":"Die Notiz wurde gespeichert.","Exits the application.":"Schließt das Programm.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exportiert nur die angegebene Notiz.","Exports only the given notebook.":"Exportiert nur das angegebene Notizbuch.","Displays a geolocation URL for the note.":"Zeigt die Standort-URL der Notiz an.","Displays usage information.":"Zeigt die Nutzungsstatistik an.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Tastenkürzel sind im CLI Modus nicht verfügbar.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Tippe `help [Befehl]` für weitere Informationen über einen Befehl; oder tippe `help all` für die vollständigen Informationen zur Befehlsverwendung.","The possible commands are:":"Mögliche Befehle sind:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In jedem Befehl können Notizen oder Notizbücher durch ihren Titel oder ihre ID spezifiziert werden, oder durch die Abkürzung `$n` oder `$b` um entweder das momentan ausgewählte Notizbuch oder die momentan ausgewählte Notiz zu wählen. `$c` kann benutzt werden, um auf die momentane Auswahl zu verweisen.","To move from one pane to another, press Tab or Shift+Tab.":"Um ein von einem Fenster zu einem anderen zu wechseln, drücke Tab oder Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Benutze die Pfeiltasten und Bild hoch/runter um durch Listen und Texte zu scrollen (inklusive diesem Terminal).","To maximise/minimise the console, press \"TC\".":"Um das Terminal zu maximieren/minimieren, drücke \"TC\".","To enter command line mode, press \":\"":"Um den Kommandozeilen Modus aufzurufen, drücke \":\"","To exit command line mode, press ESCAPE":"Um den Kommandozeilen Modus zu beenden, drücke ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Nicht nach einer Bestätigung fragen.","Found: %d.":"Gefunden: %d.","Created: %d.":"Erstellt: %d.","Updated: %d.":"Aktualisiert: %d.","Skipped: %d.":"Übersprungen: %d.","Resources: %d.":"Anhänge: %d.","Tagged: %d.":"Markiert: %d.","Importing notes...":"Importiere Notizen...","The notes have been imported: %s":"Die Notizen wurden importiert: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Zeigt die Notizen im momentanen Notizbuch an. Benutze `ls /` um eine Liste aller Notizbücher anzuzeigen.","Displays only the first top notes.":"Zeigt nur die ersten Notizen an.","Sorts the item by (eg. title, updated_time, created_time).":"Sortiert nach ( z.B. Titel, Bearbeitungszeitpunkt, Erstellungszeitpunkt)","Reverses the sorting order.":"Dreht die Sortierreihenfolge um.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Zeigt nur bestimmte Item Typen an. Kann `n` für Notizen sein, `t` für To-Dos, oder `nt` für Notizen und To-Dos ( z.B. zeigt `-tt` nur To-Dos an, während `-ttd` Notizen und To-Dos anzeigt).","Either \"text\" or \"json\"":"Entweder \"text\" oder \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Verwende ausführliches Listen Format. Das Format lautet: ID, NOTIZEN_ANZAHL (für Notizbuch), DATUM, TODO_BEARBEITET (für To-Dos), TITEL","Please select a notebook first.":"Bitte wähle erst ein Notizbuch aus.","Creates a new notebook.":"Erstellt ein neues Notizbuch.","Creates a new note.":"Erstellt eine neue Notiz.","Notes can only be created within a notebook.":"Notizen können nur in einem Notizbuch erstellt werden.","Creates a new to-do.":"Erstellt ein neues To-Do.","Moves the notes matching to [notebook].":"Verschiebt die Notizen, die mit übereinstimmen, zu [Notizbuch]","Renames the given (note or notebook) to .":"Benennt das angegebene ( Notiz oder Notizbuch ) zu um.","Deletes the given notebook.":"Löscht das ausgewählte Notizbuch.","Deletes the notebook without asking for confirmation.":"Löscht das Notizbuch, ohne nach einer Bestätigung zu fragen.","Delete notebook? All notes within this notebook will also be deleted.":"Notizbuch wirklich löschen? Alle Notizen darin werden ebenfalls gelöscht.","Deletes the notes matching .":"Löscht die Notizen, die mit übereinstimmen.","Deletes the notes without asking for confirmation.":"Löscht die Notizen, ohne nach einer Bestätigung zu fragen.","%d notes match this pattern. Delete them?":"%d Notizen stimmen mit diesem Muster überein. Sollen sie gelöscht werden?","Delete note?":"Notiz löschen?","Searches for the given in all the notes.":"Sucht nach dem angegebenen in allen Notizen.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Setzt die Eigenschaft der gegebenen auf den gegebenen [Wert]. Mögliche Werte sind:\n\n%s","Displays summary about the notes and notebooks.":"Zeigt eine Zusammenfassung der Notizen und Notizbücher an.","Synchronises with remote storage.":"Synchronisiert mit Remotespeicher.","Sync to provided target (defaults to sync.target config value)":"Mit dem angegebenen Ziel synchronisieren (voreingestellt auf den sync.target Optionswert)","Authentication was not completed (did not receive an authentication token).":"Authentifizierung wurde nicht abgeschlossen (keinen Authentifizierung-Token erhalten).","Not authentified with %s. Please provide any missing credentials.":"Keine Authentifizierung mit %s. Gib bitte alle fehlenden Zugangsdaten an.","Synchronisation is already in progress.":"Synchronisation wird bereits ausgeführt.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Eine Sperrdatei ist vorhanden. Wenn du dir sicher bist, dass keine Synchronisation im Gange ist, kannst du die Sperrdatei \"%s\" löschen und fortfahren.","Synchronisation target: %s (%s)":"Synchronisationsziel: %s (%s)","Cannot initialize synchroniser.":"Kann Synchronisierer nicht initialisieren.","Starting synchronisation...":"Starte Synchronisation...","Cancelling... Please wait.":"Abbrechen... Bitte warten."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" kann \"add\", \"remove\" or \"list\" sein, um eine [Markierung] zu [Notiz] zuzuweisen oder zu entfernen, oder um mit [Markierung] markierte Notizen anzuzeigen. Mit dem Befehl `tag list` können alle Markierungen angezeigt werden.","Invalid command: \"%s\"":"Ungültiger Befehl: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" kann entweder \"toggle\" oder \"clear\" sein. Benutze \"toggle\", um ein To-Do abzuschließen, oder es zu beginnen (Wenn das Ziel eine normale Notiz ist, wird diese in ein To-Do umgewandelt). Benutze \"clear\", um es zurück in ein To-Do zu verwandeln.","Marks a to-do as non-completed.":"Makiert ein To-Do als nicht-abgeschlossen.","Switches to [notebook] - all further operations will happen within this notebook.":"Wechselt zu [Notizbuch] - alle weiteren Aktionen werden in diesem Notizbuch ausgeführt.","Displays version information":"Zeigt die Versionsnummer an","%s %s (%s)":"%s %s (%s)","Enum":"Aufzählung","Type: %s.":"Typ: %s.","Possible values: %s.":"Mögliche Werte: %s.","Default: %s":"Standard: %s","Possible keys/values:":"Mögliche Werte:","Fatal error:":"Schwerwiegender Fehler:","The application has been authorised - you may now close this browser tab.":"Das Programm wurde autorisiert - Du kannst diesen Browsertab nun schließen.","The application has been successfully authorised.":"Das Programm wurde erfolgreich autorisiert.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Bitte öffne die folgende URL in deinem Browser, um das Programm zu authentifizieren. Das Programm wird einen Ordner in \"Apps/Joplin\" erstellen und wird nur in diesem Ordner schreiben und lesen. Es wird weder Zugriff auf Dateien außerhalb dieses Ordners haben, noch auf andere persönliche Daten. Es werden keine Daten mit Dritten geteilt.","Search:":"Suchen:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Willkommen bei Joplin!\n\nTippe `:help shortcuts` für eine Liste der Shortcuts oder `:help` für Nutzungsinformationen ein.\n\nUm zum Beispiel ein Notizbuch zu erstellen, drücke `mb`; um eine Notiz zu erstellen drücke `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Ein oder mehrere Objekte sind derzeit verschlüsselt und es kann erforderlich sein, ein Master-Passwort zu hinterlegen. Gib dazu bitte `e2ee decrypt` ein. Wenn du das Passwort bereits eingegeben hast, werden die verschlüsselten Objekte im Hintergrund entschlüsselt und stehen in Kürze zur Verfügung.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Datei","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Neue Notiz","New to-do":"Neues To-Do","New notebook":"Neues Notizbuch","Import":"Importieren","Export":"Export","Hide %s":"","Quit":"Verlassen","Edit":"Bearbeiten","Copy":"Kopieren","Cut":"Ausschneiden","Paste":"Einfügen","Search in all the notes":"Alle Notizen durchsuchen","View":"","Toggle editor layout":"","Tools":"Werkzeuge","Synchronisation status":"Status der Synchronisation","Encryption options":"Verschlüsselungsoptionen","General Options":"Allgemeine Einstellungen","Help":"Hilfe","Website and documentation":"Webseite und Dokumentation","Check for updates...":"","About Joplin":"Über Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Abbrechen","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Notizen und Einstellungen gespeichert in: %s","Save":"Speichern","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Durch die Deaktivierung der Verschlüsselung werden *alle* Notizen und Anhänge neu synchronisiert und unverschlüsselt an das Synchronisierungsziel gesendet. Möchtest du fortfahren?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Durch das Aktivieren der Verschlüsselung werden alle Notizen und Anhänge neu synchronisiert und verschlüsselt an das Synchronisationsziel gesendet. Achte darauf, dass du das Passwort nicht verlierst, da dies aus Sicherheitsgründen die einzige Möglichkeit ist, deine Daten zu entschlüsseln! Um die Verschlüsselung zu aktivieren, gib bitte unten dein Passwort ein.","Disable encryption":"Verschlüsselung deaktivieren","Enable encryption":"Verschlüsselung aktivieren","Master Keys":"Hauptschlüssel","Active":"Aktiv","ID":"ID","Source":"Quelle","Created":"Erstellt","Updated":"Aktualisiert","Password":"Passwort","Password OK":"Passwort OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Hinweis: Nur ein Hauptschlüssel wird für die Verschlüsselung verwendet (der als \"aktiv\" markierte). Jeder der Schlüssel kann für die Entschlüsselung verwendet werden, abhängig davon, wie die jeweiligen Notizen oder Notizbücher ursprünglich verschlüsselt wurden.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"Die Verschlüsselung ist:","Back":"Zurück","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Neues Notizbuch \"%s\" wird erstellt und die Datei \"%s\" wird hinein importiert","Please create a notebook first.":"Bitte erstelle zuerst ein Notizbuch.","Please create a notebook first":"Bitte erstelle zuerst ein Notizbuch","Notebook title:":"Notizbuch Titel:","Add or remove tags:":"Füge hinzu oder entferne Markierungen:","Separate each tag by a comma.":"Trenne jede Markierung mit einem Komma.","Rename notebook:":"Benne Notizbuch um:","Set alarm:":"Alarm erstellen:","Search":"Suchen","Layout":"Layout","Some items cannot be synchronised.":"Manche Objekte können nicht synchronisiert werden.","View them now":"Zeige sie jetzt an","Some items cannot be decrypted.":"Einige Objekte können nicht entschlüsselt werden.","Set the password":"Setze ein Passwort","Add or remove tags":"Markierungen hinzufügen oder entfernen","Switch between note and to-do type":"Zwischen Notiz und To-Do Typ wechseln","Delete":"Löschen","Delete notes?":"Notizen löschen?","No notes in here. Create one by clicking on \"New note\".":"Hier sind noch keine Notizen. Erstelle eine, indem du auf \"Neue Notiz\" drückst.","There is currently no notebook. Create one by clicking on \"New notebook\".":"Momentan existieren noch keine Notizbücher. Erstelle eines, indem du auf den (+) Knopf drückst.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Nicht unterstützter Link oder Nachricht: %s","Attach file":"Datei anhängen","Tags":"Markierungen","Set alarm":"Alarm erstellen","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Aktualisieren","Clear":"Leeren","OneDrive Login":"OneDrive Login","Options":"Optionen","Synchronisation Status":"Synchronisations Status","Encryption Options":"Verschlüsselungsoptionen","Remove this tag from all the notes?":"Diese Markierung von allen Notizen entfernen?","Remove this search from the sidebar?":"Diese Suche von der Seitenleiste entfernen?","Rename":"Umbenennen","Synchronise":"Synchronisieren","Notebooks":"Notizbücher","Searches":"Suchen","Please select where the sync status should be exported to":"Bitte wähle aus, wohin der Synchronisations Status exportiert werden soll","Usage: %s":"Nutzung: %s","Unknown flag: %s":"Unbekanntes Argument: %s","File system":"Dateisystem","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Nur für Tests)","WebDAV":"WebDAV","Unknown log level: %s":"Unbekanntes Log Level: %s","Unknown level ID: %s":"Unbekannte Level ID: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Kann Token nicht erneuern: Authentifikationsdaten nicht vorhanden. Ein Neustart der Synchronisation könnte das Problem beheben.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Konnte nicht mit OneDrive synchronisieren.\n\nDieser Fehler kommt oft vor, wenn OneDrive Business benutzt wird, das leider nicht unterstützt wird.\n\nBitte benutze stattdessen einen normalen OneDrive Account.","Cannot access %s":"Kann nicht auf %s zugreifen","Created local items: %d.":"Lokale Objekte erstellt: %d.","Updated local items: %d.":"Lokale Objekte aktualisiert: %d.","Created remote items: %d.":"Remote Objekte erstellt: %d.","Updated remote items: %d.":"Remote Objekte aktualisiert: %d.","Deleted local items: %d.":"Lokale Objekte gelöscht: %d.","Deleted remote items: %d.":"Remote Objekte gelöscht: %d.","Fetched items: %d/%d.":"Geladene Objekte: %d/%d.","State: \"%s\".":"Status: \"%s\".","Cancelling...":"Abbrechen...","Completed: %s":"Abgeschlossen: %s","Synchronisation is already in progress. State: %s":"Synchronisation ist bereits im Gange. Status: %s","Encrypted":"Verschlüsselt","Encrypted items cannot be modified":"Verschlüsselte Objekte können nicht verändert werden.","Conflicts":"Konflikte","A notebook with this title already exists: \"%s\"":"Ein Notizbuch mit diesem Titel existiert bereits : \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Notizbuch kann nicht \"%s\" genannt werden. Dies ist ein reservierter Titel.","Untitled":"Unbenannt","This note does not have geolocation information.":"Diese Notiz hat keine Standort-Informationen.","Cannot copy note to \"%s\" notebook":"Kann Notiz nicht zu Notizbuch \"%s\" kopieren","Cannot move note to \"%s\" notebook":"Kann Notiz nicht zu Notizbuch \"%s\" verschieben","Text editor":"Textverarbeitungsprogramm","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Das Textverarbeitungsprogramm, mit dem Notizen geöffnet werden. Wenn keines ausgewählt wurde, wird Joplin versuchen das standard-Textverarbeitungsprogramm zu erkennen.","Language":"Sprache","Date format":"Datumsformat","Time format":"Zeitformat","Theme":"Thema","Light":"Hell","Dark":"Dunkel","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Momentanen Standort zusammen mit Notizen speichern","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Die Applikation automatisch aktualisieren","Synchronisation interval":"Synchronisationsinterval","%d minutes":"%d Minuten","%d hour":"%d Stunde","%d hours":"%d Stunden","Show advanced options":"Erweiterte Optionen anzeigen","Synchronisation target":"Synchronisationsziel","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Das Ziel, mit dem synchronisiert werden soll. Jedes Synchronisationsziel kann zusätzliche Parameter haben, die als `sync.NUM.NAME` (alle unten dokumentiert) bezeichnet werden.","Directory to synchronise with (absolute path)":"Verzeichnis zum synchronisieren (absoluter Pfad)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Der Pfad, mit dem synchronisiert werden soll, wenn die Dateisystem-Synchronisation aktiviert ist. Siehe `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Nextcloud Benutzername","Nextcloud password":"Nextcloud Passwort","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV username","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Ungültiger Optionswert: \"%s\". Mögliche Werte sind: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Objekte können nicht synchronisiert werden","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Diese Objekte verbleiben auf dem Gerät, werden aber nicht zum Synchronisationsziel hochgeladen. Um diese Objekte zu finden, suchen Sie entweder nach dem Titel oder der ID (die oben in Klammern angezeigt wird).","Sync status (synced items / total items)":"Synchronisationsstatus (synchronisierte Objekte / gesamte Objekte)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Insgesamt: %d/%d","Conflicted: %d":"In Konflikt %d","To delete: %d":"Zu löschen: %d","Folders":"Ordner","%s: %d notes":"%s: %d Notizen","Coming alarms":"Anstehende Alarme","On %s: %s":"Auf %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Momentan existieren noch keine Notizen. Erstelle eine, indem du auf den (+) Knopf drückst.","Delete these notes?":"Sollen diese Notizen gelöscht werden?","Log":"Protokoll","Export Debug Report":"Fehlerbericht exportieren","Encryption Config":"Verschlüsselungskonfiguration","Configuration":"Konfiguration","Move to notebook...":"In Notizbuch verschieben...","Move %d notes to notebook \"%s\"?":"%d Notizen in das Notizbuch \"%s\" verschieben?","Press to set the decryption password.":"Tippe hier, um das Entschlüsselungspasswort festzulegen.","Select date":"Datum auswählen","Confirm":"Bestätigen","Cancel synchronisation":"Synchronisation abbrechen","Master Key %s":"Hauptschlüssel %s","Created: %s":"Erstellt: %s","Password:":"Passwort:","Password cannot be empty":"Passwort darf nicht leer sein","Enable":"Aktivieren","The notebook could not be saved: %s":"Dieses Notizbuch konnte nicht gespeichert werden: %s","Edit notebook":"Notizbuch bearbeiten","Show all":"","Errors only":"","This note has been modified:":"Diese Notiz wurde verändert:","Save changes":"Änderungen speichern","Discard changes":"Änderungen verwerfen","Unsupported image type: %s":"Nicht unterstütztes Fotoformat: %s","Attach photo":"Foto anhängen","Attach any file":"Beliebige Datei anhängen","Convert to note":"In eine Notiz umwandeln","Convert to todo":"In ein To-Do umwandeln","Hide metadata":"Metadaten verstecken","Show metadata":"Metadaten anzeigen","View on map":"Auf der Karte anzeigen","Delete notebook":"Notizbuch löschen","Login with OneDrive":"Mit OneDrive anmelden","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Drücke auf den (+) Knopf, um eine neue Notiz oder ein neues Notizbuch zu erstellen. Tippe auf die Seitenleiste, um auf deine existierenden Notizbücher zuzugreifen.","You currently have no notebook. Create one by clicking on (+) button.":"Du hast noch kein Notizbuch. Erstelle eines, indem du auf den (+) Knopf drückst.","Welcome":"Willkommen"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Hebe die Markierungen zugehöriger Notizen auf, um eine Markierung zu löschen.","Please select the note or notebook to be deleted first.":"Wähle bitte zuerst eine Notiz oder ein Notizbuch aus, das gelöscht werden soll.","Press Ctrl+D or type \"exit\" to exit the application":"Drücke Strg+D oder tippe \"exit\", um das Programm zu verlassen","More than one item match \"%s\". Please narrow down your query.":"Mehr als eine Notiz stimmt mit \"%s\" überein. Bitte schränke deine Suche ein.","No notebook selected.":"Kein Notizbuch ausgewählt.","No notebook has been specified.":"Kein Notizbuch wurde angegeben.","Y":"J","n":"n","N":"N","y":"j","Cancelling background synchronisation... Please wait.":"Breche Hintergrund-Synchronisation ab... Bitte warten.","No such command: %s":"Ungültiger Befehl: %s","The command \"%s\" is only available in GUI mode":"Der Befehl \"%s\" ist nur im GUI Modus verfügbar","Cannot change encrypted item":"Kann verschlüsseltes Objekt nicht ändern","Missing required argument: %s":"Fehlendes benötigtes Argument: %s","%s: %s":"%s: %s","Your choice: ":"Deine Auswahl: ","Invalid answer: %s":"Ungültige Antwort: %s","Attaches the given file to the note.":"Hängt die ausgewählte Datei an die Notiz an.","Cannot find \"%s\".":"Kann \"%s\" nicht finden.","Displays the given note.":"Zeigt die jeweilige Notiz an.","Displays the complete information about note.":"Zeigt alle Informationen über die Notiz an.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Zeigt an oder stellt einen Optionswert. Wenn kein [Wert] angegeben ist, wird der Wert vom gegebenen [Namen] angezeigt. Wenn weder [Name] noch [Wert] gegeben sind, wird eine Liste der momentanen Konfiguration angezeigt.","Also displays unset and hidden config variables.":"Zeigt auch nicht angegebene oder versteckte Konfigurationsvariablen an.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Dupliziert die Notizen die mit übereinstimmen zu [Notizbuch]. Wenn kein Notizbuch angegeben ist, wird die Notiz in das momentane Notizbuch kopiert.","Marks a to-do as done.":"Markiert ein To-Do als abgeschlossen.","Note is not a to-do: \"%s\"":"Notiz ist kein To-Do: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Verwaltet die E2EE-Konfiguration. Die Befehle sind `enable`, `disable`, `decrypt`, `status` und `target-status`.","Enter master password:":"Master-Passwort eingeben:","Operation cancelled":"Vorgang abgebrochen","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Entschlüsselung starten.... Warte bitte, da es einige Minuten dauern kann, je nachdem, wie viel es zu entschlüsseln gibt.","Completed decryption.":"Entschlüsselung abgeschlossen.","Enabled":"Aktiviert","Disabled":"Deaktiviert","Encryption is: %s":"Die Verschlüsselung ist: %s","Edit note.":"Notiz bearbeiten.","No text editor is defined. Please set it using `config editor `":"Kein Textverarbeitungsprogramm angegeben. Bitte lege eines mit `config editor ` fest","No active notebook.":"Kein aktives Notizbuch.","Note does not exist: \"%s\". Create it?":"Notiz \"%s\" existiert nicht. Soll sie erstellt werden?","Starting to edit note. Close the editor to get back to the prompt.":"Beginne die Notiz zu bearbeiten. Schließe das Textverarbeitungsprogramm, um zurück zum Terminal zu gelangen.","Error opening note in editor: %s":"Fehler beim Öffnen der Notiz im Editor: %s","Note has been saved.":"Die Notiz wurde gespeichert.","Exits the application.":"Schließt das Programm.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exportiert nur die angegebene Notiz.","Exports only the given notebook.":"Exportiert nur das angegebene Notizbuch.","Displays a geolocation URL for the note.":"Zeigt die Standort-URL der Notiz an.","Displays usage information.":"Zeigt die Nutzungsstatistik an.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Tastenkürzel sind im CLI Modus nicht verfügbar.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Tippe `help [Befehl]` für weitere Informationen über einen Befehl; oder tippe `help all` für die vollständigen Informationen zur Befehlsverwendung.","The possible commands are:":"Mögliche Befehle sind:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In jedem Befehl können Notizen oder Notizbücher durch ihren Titel oder ihre ID spezifiziert werden, oder durch die Abkürzung `$n` oder `$b` um entweder das momentan ausgewählte Notizbuch oder die momentan ausgewählte Notiz zu wählen. `$c` kann benutzt werden, um auf die momentane Auswahl zu verweisen.","To move from one pane to another, press Tab or Shift+Tab.":"Um ein von einem Fenster zu einem anderen zu wechseln, drücke Tab oder Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Benutze die Pfeiltasten und Bild hoch/runter um durch Listen und Texte zu scrollen (inklusive diesem Terminal).","To maximise/minimise the console, press \"TC\".":"Um das Terminal zu maximieren/minimieren, drücke \"TC\".","To enter command line mode, press \":\"":"Um den Kommandozeilen Modus aufzurufen, drücke \":\"","To exit command line mode, press ESCAPE":"Um den Kommandozeilen Modus zu beenden, drücke ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Nicht nach einer Bestätigung fragen.","Found: %d.":"Gefunden: %d.","Created: %d.":"Erstellt: %d.","Updated: %d.":"Aktualisiert: %d.","Skipped: %d.":"Übersprungen: %d.","Resources: %d.":"Anhänge: %d.","Tagged: %d.":"Markiert: %d.","Importing notes...":"Importiere Notizen...","The notes have been imported: %s":"Die Notizen wurden importiert: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Zeigt die Notizen im momentanen Notizbuch an. Benutze `ls /` um eine Liste aller Notizbücher anzuzeigen.","Displays only the first top notes.":"Zeigt nur die ersten Notizen an.","Sorts the item by (eg. title, updated_time, created_time).":"Sortiert nach ( z.B. Titel, Bearbeitungszeitpunkt, Erstellungszeitpunkt)","Reverses the sorting order.":"Dreht die Sortierreihenfolge um.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Zeigt nur bestimmte Item Typen an. Kann `n` für Notizen sein, `t` für To-Dos, oder `nt` für Notizen und To-Dos ( z.B. zeigt `-tt` nur To-Dos an, während `-ttd` Notizen und To-Dos anzeigt).","Either \"text\" or \"json\"":"Entweder \"text\" oder \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Verwende ausführliches Listen Format. Das Format lautet: ID, NOTIZEN_ANZAHL (für Notizbuch), DATUM, TODO_BEARBEITET (für To-Dos), TITEL","Please select a notebook first.":"Bitte wähle erst ein Notizbuch aus.","Creates a new notebook.":"Erstellt ein neues Notizbuch.","Creates a new note.":"Erstellt eine neue Notiz.","Notes can only be created within a notebook.":"Notizen können nur in einem Notizbuch erstellt werden.","Creates a new to-do.":"Erstellt ein neues To-Do.","Moves the notes matching to [notebook].":"Verschiebt die Notizen, die mit übereinstimmen, zu [Notizbuch]","Renames the given (note or notebook) to .":"Benennt das angegebene ( Notiz oder Notizbuch ) zu um.","Deletes the given notebook.":"Löscht das ausgewählte Notizbuch.","Deletes the notebook without asking for confirmation.":"Löscht das Notizbuch, ohne nach einer Bestätigung zu fragen.","Delete notebook? All notes within this notebook will also be deleted.":"Notizbuch wirklich löschen? Alle Notizen darin werden ebenfalls gelöscht.","Deletes the notes matching .":"Löscht die Notizen, die mit übereinstimmen.","Deletes the notes without asking for confirmation.":"Löscht die Notizen, ohne nach einer Bestätigung zu fragen.","%d notes match this pattern. Delete them?":"%d Notizen stimmen mit diesem Muster überein. Sollen sie gelöscht werden?","Delete note?":"Notiz löschen?","Searches for the given in all the notes.":"Sucht nach dem angegebenen in allen Notizen.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Setzt die Eigenschaft der gegebenen auf den gegebenen [Wert]. Mögliche Werte sind:\n\n%s","Displays summary about the notes and notebooks.":"Zeigt eine Zusammenfassung der Notizen und Notizbücher an.","Synchronises with remote storage.":"Synchronisiert mit Remotespeicher.","Sync to provided target (defaults to sync.target config value)":"Mit dem angegebenen Ziel synchronisieren (voreingestellt auf den sync.target Optionswert)","Authentication was not completed (did not receive an authentication token).":"Authentifizierung wurde nicht abgeschlossen (keinen Authentifizierung-Token erhalten).","Not authentified with %s. Please provide any missing credentials.":"Keine Authentifizierung mit %s. Gib bitte alle fehlenden Zugangsdaten an.","Synchronisation is already in progress.":"Synchronisation wird bereits ausgeführt.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Eine Sperrdatei ist vorhanden. Wenn du dir sicher bist, dass keine Synchronisation im Gange ist, kannst du die Sperrdatei \"%s\" löschen und fortfahren.","Synchronisation target: %s (%s)":"Synchronisationsziel: %s (%s)","Cannot initialize synchroniser.":"Kann Synchronisierer nicht initialisieren.","Starting synchronisation...":"Starte Synchronisation...","Cancelling... Please wait.":"Abbrechen... Bitte warten."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" kann \"add\", \"remove\" or \"list\" sein, um eine [Markierung] zu [Notiz] zuzuweisen oder zu entfernen, oder um mit [Markierung] markierte Notizen anzuzeigen. Mit dem Befehl `tag list` können alle Markierungen angezeigt werden.","Invalid command: \"%s\"":"Ungültiger Befehl: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" kann entweder \"toggle\" oder \"clear\" sein. Benutze \"toggle\", um ein To-Do abzuschließen, oder es zu beginnen (Wenn das Ziel eine normale Notiz ist, wird diese in ein To-Do umgewandelt). Benutze \"clear\", um es zurück in ein To-Do zu verwandeln.","Marks a to-do as non-completed.":"Makiert ein To-Do als nicht-abgeschlossen.","Switches to [notebook] - all further operations will happen within this notebook.":"Wechselt zu [Notizbuch] - alle weiteren Aktionen werden in diesem Notizbuch ausgeführt.","Displays version information":"Zeigt die Versionsnummer an","%s %s (%s)":"%s %s (%s)","Enum":"Aufzählung","Type: %s.":"Typ: %s.","Possible values: %s.":"Mögliche Werte: %s.","Default: %s":"Standard: %s","Possible keys/values:":"Mögliche Werte:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Schwerwiegender Fehler:","The application has been authorised - you may now close this browser tab.":"Das Programm wurde autorisiert - Du kannst diesen Browsertab nun schließen.","The application has been successfully authorised.":"Das Programm wurde erfolgreich autorisiert.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Bitte öffne die folgende URL in deinem Browser, um das Programm zu authentifizieren. Das Programm wird einen Ordner in \"Apps/Joplin\" erstellen und wird nur in diesem Ordner schreiben und lesen. Es wird weder Zugriff auf Dateien außerhalb dieses Ordners haben, noch auf andere persönliche Daten. Es werden keine Daten mit Dritten geteilt.","Search:":"Suchen:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Willkommen bei Joplin!\n\nTippe `:help shortcuts` für eine Liste der Shortcuts oder `:help` für Nutzungsinformationen ein.\n\nUm zum Beispiel ein Notizbuch zu erstellen, drücke `mb`; um eine Notiz zu erstellen drücke `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Ein oder mehrere Objekte sind derzeit verschlüsselt und es kann erforderlich sein, ein Master-Passwort zu hinterlegen. Gib dazu bitte `e2ee decrypt` ein. Wenn du das Passwort bereits eingegeben hast, werden die verschlüsselten Objekte im Hintergrund entschlüsselt und stehen in Kürze zur Verfügung.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Datei","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Neue Notiz","New to-do":"Neues To-Do","New notebook":"Neues Notizbuch","Import":"Importieren","Export":"Export","Hide %s":"","Quit":"Verlassen","Edit":"Bearbeiten","Copy":"Kopieren","Cut":"Ausschneiden","Paste":"Einfügen","Search in all the notes":"Alle Notizen durchsuchen","View":"","Toggle editor layout":"","Tools":"Werkzeuge","Synchronisation status":"Status der Synchronisation","Encryption options":"Verschlüsselungsoptionen","General Options":"Allgemeine Einstellungen","Help":"Hilfe","Website and documentation":"Webseite und Dokumentation","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Über Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Abbrechen","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Notizen und Einstellungen gespeichert in: %s","Save":"Speichern","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Durch die Deaktivierung der Verschlüsselung werden *alle* Notizen und Anhänge neu synchronisiert und unverschlüsselt an das Synchronisierungsziel gesendet. Möchtest du fortfahren?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Durch das Aktivieren der Verschlüsselung werden alle Notizen und Anhänge neu synchronisiert und verschlüsselt an das Synchronisationsziel gesendet. Achte darauf, dass du das Passwort nicht verlierst, da dies aus Sicherheitsgründen die einzige Möglichkeit ist, deine Daten zu entschlüsseln! Um die Verschlüsselung zu aktivieren, gib bitte unten dein Passwort ein.","Disable encryption":"Verschlüsselung deaktivieren","Enable encryption":"Verschlüsselung aktivieren","Master Keys":"Hauptschlüssel","Active":"Aktiv","ID":"ID","Source":"Quelle","Created":"Erstellt","Updated":"Aktualisiert","Password":"Passwort","Password OK":"Passwort OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Hinweis: Nur ein Hauptschlüssel wird für die Verschlüsselung verwendet (der als \"aktiv\" markierte). Jeder der Schlüssel kann für die Entschlüsselung verwendet werden, abhängig davon, wie die jeweiligen Notizen oder Notizbücher ursprünglich verschlüsselt wurden.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"Die Verschlüsselung ist:","Back":"Zurück","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Neues Notizbuch \"%s\" wird erstellt und die Datei \"%s\" wird hinein importiert","Please create a notebook first.":"Bitte erstelle zuerst ein Notizbuch.","Please create a notebook first":"Bitte erstelle zuerst ein Notizbuch","Notebook title:":"Notizbuch Titel:","Add or remove tags:":"Füge hinzu oder entferne Markierungen:","Separate each tag by a comma.":"Trenne jede Markierung mit einem Komma.","Rename notebook:":"Benne Notizbuch um:","Set alarm:":"Alarm erstellen:","Search":"Suchen","Layout":"Layout","Some items cannot be synchronised.":"Manche Objekte können nicht synchronisiert werden.","View them now":"Zeige sie jetzt an","Some items cannot be decrypted.":"Einige Objekte können nicht entschlüsselt werden.","Set the password":"Setze ein Passwort","Add or remove tags":"Markierungen hinzufügen oder entfernen","Switch between note and to-do type":"Zwischen Notiz und To-Do Typ wechseln","Delete":"Löschen","Delete notes?":"Notizen löschen?","No notes in here. Create one by clicking on \"New note\".":"Hier sind noch keine Notizen. Erstelle eine, indem du auf \"Neue Notiz\" drückst.","There is currently no notebook. Create one by clicking on \"New notebook\".":"Momentan existieren noch keine Notizbücher. Erstelle eines, indem du auf den (+) Knopf drückst.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Nicht unterstützter Link oder Nachricht: %s","Attach file":"Datei anhängen","Tags":"Markierungen","Set alarm":"Alarm erstellen","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Aktualisieren","Clear":"Leeren","OneDrive Login":"OneDrive Login","Options":"Optionen","Synchronisation Status":"Synchronisations Status","Encryption Options":"Verschlüsselungsoptionen","Remove this tag from all the notes?":"Diese Markierung von allen Notizen entfernen?","Remove this search from the sidebar?":"Diese Suche von der Seitenleiste entfernen?","Rename":"Umbenennen","Synchronise":"Synchronisieren","Notebooks":"Notizbücher","Searches":"Suchen","Please select where the sync status should be exported to":"Bitte wähle aus, wohin der Synchronisations Status exportiert werden soll","Usage: %s":"Nutzung: %s","Unknown flag: %s":"Unbekanntes Argument: %s","File system":"Dateisystem","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Nur für Tests)","WebDAV":"WebDAV","Unknown log level: %s":"Unbekanntes Log Level: %s","Unknown level ID: %s":"Unbekannte Level ID: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Kann Token nicht erneuern: Authentifikationsdaten nicht vorhanden. Ein Neustart der Synchronisation könnte das Problem beheben.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Konnte nicht mit OneDrive synchronisieren.\n\nDieser Fehler kommt oft vor, wenn OneDrive Business benutzt wird, das leider nicht unterstützt wird.\n\nBitte benutze stattdessen einen normalen OneDrive Account.","Cannot access %s":"Kann nicht auf %s zugreifen","Created local items: %d.":"Lokale Objekte erstellt: %d.","Updated local items: %d.":"Lokale Objekte aktualisiert: %d.","Created remote items: %d.":"Remote Objekte erstellt: %d.","Updated remote items: %d.":"Remote Objekte aktualisiert: %d.","Deleted local items: %d.":"Lokale Objekte gelöscht: %d.","Deleted remote items: %d.":"Remote Objekte gelöscht: %d.","Fetched items: %d/%d.":"Geladene Objekte: %d/%d.","State: \"%s\".":"Status: \"%s\".","Cancelling...":"Abbrechen...","Completed: %s":"Abgeschlossen: %s","Synchronisation is already in progress. State: %s":"Synchronisation ist bereits im Gange. Status: %s","Encrypted":"Verschlüsselt","Encrypted items cannot be modified":"Verschlüsselte Objekte können nicht verändert werden.","Conflicts":"Konflikte","A notebook with this title already exists: \"%s\"":"Ein Notizbuch mit diesem Titel existiert bereits : \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Notizbuch kann nicht \"%s\" genannt werden. Dies ist ein reservierter Titel.","Untitled":"Unbenannt","This note does not have geolocation information.":"Diese Notiz hat keine Standort-Informationen.","Cannot copy note to \"%s\" notebook":"Kann Notiz nicht zu Notizbuch \"%s\" kopieren","Cannot move note to \"%s\" notebook":"Kann Notiz nicht zu Notizbuch \"%s\" verschieben","Text editor":"Textverarbeitungsprogramm","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Das Textverarbeitungsprogramm, mit dem Notizen geöffnet werden. Wenn keines ausgewählt wurde, wird Joplin versuchen das standard-Textverarbeitungsprogramm zu erkennen.","Language":"Sprache","Date format":"Datumsformat","Time format":"Zeitformat","Theme":"Thema","Light":"Hell","Dark":"Dunkel","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Momentanen Standort zusammen mit Notizen speichern","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Die Applikation automatisch aktualisieren","Synchronisation interval":"Synchronisationsinterval","%d minutes":"%d Minuten","%d hour":"%d Stunde","%d hours":"%d Stunden","Show advanced options":"Erweiterte Optionen anzeigen","Synchronisation target":"Synchronisationsziel","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Das Ziel, mit dem synchronisiert werden soll. Jedes Synchronisationsziel kann zusätzliche Parameter haben, die als `sync.NUM.NAME` (alle unten dokumentiert) bezeichnet werden.","Directory to synchronise with (absolute path)":"Verzeichnis zum synchronisieren (absoluter Pfad)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Der Pfad, mit dem synchronisiert werden soll, wenn die Dateisystem-Synchronisation aktiviert ist. Siehe `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Nextcloud Benutzername","Nextcloud password":"Nextcloud Passwort","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV username","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Ungültiger Optionswert: \"%s\". Mögliche Werte sind: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Objekte können nicht synchronisiert werden","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Diese Objekte verbleiben auf dem Gerät, werden aber nicht zum Synchronisationsziel hochgeladen. Um diese Objekte zu finden, suchen Sie entweder nach dem Titel oder der ID (die oben in Klammern angezeigt wird).","Sync status (synced items / total items)":"Synchronisationsstatus (synchronisierte Objekte / gesamte Objekte)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Insgesamt: %d/%d","Conflicted: %d":"In Konflikt %d","To delete: %d":"Zu löschen: %d","Folders":"Ordner","%s: %d notes":"%s: %d Notizen","Coming alarms":"Anstehende Alarme","On %s: %s":"Auf %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Momentan existieren noch keine Notizen. Erstelle eine, indem du auf den (+) Knopf drückst.","Delete these notes?":"Sollen diese Notizen gelöscht werden?","Log":"Protokoll","Export Debug Report":"Fehlerbericht exportieren","Encryption Config":"Verschlüsselungskonfiguration","Configuration":"Konfiguration","Move to notebook...":"In Notizbuch verschieben...","Move %d notes to notebook \"%s\"?":"%d Notizen in das Notizbuch \"%s\" verschieben?","Press to set the decryption password.":"Tippe hier, um das Entschlüsselungspasswort festzulegen.","Select date":"Datum auswählen","Confirm":"Bestätigen","Cancel synchronisation":"Synchronisation abbrechen","Joplin website":"","Master Key %s":"Hauptschlüssel %s","Created: %s":"Erstellt: %s","Password:":"Passwort:","Password cannot be empty":"Passwort darf nicht leer sein","Enable":"Aktivieren","The notebook could not be saved: %s":"Dieses Notizbuch konnte nicht gespeichert werden: %s","Edit notebook":"Notizbuch bearbeiten","Show all":"","Errors only":"","This note has been modified:":"Diese Notiz wurde verändert:","Save changes":"Änderungen speichern","Discard changes":"Änderungen verwerfen","Unsupported image type: %s":"Nicht unterstütztes Fotoformat: %s","Attach photo":"Foto anhängen","Attach any file":"Beliebige Datei anhängen","Convert to note":"In eine Notiz umwandeln","Convert to todo":"In ein To-Do umwandeln","Hide metadata":"Metadaten verstecken","Show metadata":"Metadaten anzeigen","View on map":"Auf der Karte anzeigen","Delete notebook":"Notizbuch löschen","Login with OneDrive":"Mit OneDrive anmelden","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Drücke auf den (+) Knopf, um eine neue Notiz oder ein neues Notizbuch zu erstellen. Tippe auf die Seitenleiste, um auf deine existierenden Notizbücher zuzugreifen.","You currently have no notebook. Create one by clicking on (+) button.":"Du hast noch kein Notizbuch. Erstelle eines, indem du auf den (+) Knopf drückst.","Welcome":"Willkommen"} \ No newline at end of file diff --git a/ElectronClient/app/locales/en_GB.json b/ElectronClient/app/locales/en_GB.json index a42ad2b0e2..5e75965f47 100644 --- a/ElectronClient/app/locales/en_GB.json +++ b/ElectronClient/app/locales/en_GB.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"","Please select the note or notebook to be deleted first.":"","Press Ctrl+D or type \"exit\" to exit the application":"","More than one item match \"%s\". Please narrow down your query.":"","No notebook selected.":"","No notebook has been specified.":"","Y":"","n":"","N":"","y":"","Cancelling background synchronisation... Please wait.":"","No such command: %s":"","The command \"%s\" is only available in GUI mode":"","Cannot change encrypted item":"","Missing required argument: %s":"","%s: %s":"","Your choice: ":"","Invalid answer: %s":"","Attaches the given file to the note.":"","Cannot find \"%s\".":"","Displays the given note.":"","Displays the complete information about note.":"","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"","Also displays unset and hidden config variables.":"","%s = %s (%s)":"","%s = %s":"","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"","Marks a to-do as done.":"","Note is not a to-do: \"%s\"":"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"","Disabled":"","Encryption is: %s":"","Edit note.":"","No text editor is defined. Please set it using `config editor `":"","No active notebook.":"","Note does not exist: \"%s\". Create it?":"","Starting to edit note. Close the editor to get back to the prompt.":"","Error opening note in editor: %s":"","Note has been saved.":"","Exits the application.":"","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"","Destination format: %s":"","Exports only the given note.":"","Exports only the given notebook.":"","Displays a geolocation URL for the note.":"","Displays usage information.":"","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"","The possible commands are:":"","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"","To move from one pane to another, press Tab or Shift+Tab.":"","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"","To maximise/minimise the console, press \"TC\".":"","To enter command line mode, press \":\"":"","To exit command line mode, press ESCAPE":"","For the list of keyboard shortcuts and config options, type `help keymap`":"","Imports data into Joplin.":"","Source format: %s":"","Do not ask for confirmation.":"","Found: %d.":"","Created: %d.":"","Updated: %d.":"","Skipped: %d.":"","Resources: %d.":"","Tagged: %d.":"","Importing notes...":"","The notes have been imported: %s":"","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"","Displays only the first top notes.":"","Sorts the item by (eg. title, updated_time, created_time).":"","Reverses the sorting order.":"","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"","Either \"text\" or \"json\"":"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"","Please select a notebook first.":"","Creates a new notebook.":"","Creates a new note.":"","Notes can only be created within a notebook.":"","Creates a new to-do.":"","Moves the notes matching to [notebook].":"","Renames the given (note or notebook) to .":"","Deletes the given notebook.":"","Deletes the notebook without asking for confirmation.":"","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"","Deletes the notes without asking for confirmation.":"","%d notes match this pattern. Delete them?":"","Delete note?":"","Searches for the given in all the notes.":"","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"","Displays summary about the notes and notebooks.":"","Synchronises with remote storage.":"","Sync to provided target (defaults to sync.target config value)":"","Authentication was not completed (did not receive an authentication token).":"","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"","Synchronisation target: %s (%s)":"","Cannot initialize synchroniser.":"","Starting synchronisation...":"","Cancelling... Please wait.":""," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":"","Invalid command: \"%s\"":""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"","Marks a to-do as non-completed.":"","Switches to [notebook] - all further operations will happen within this notebook.":"","Displays version information":"","%s %s (%s)":"","Enum":"","Type: %s.":"","Possible values: %s.":"","Default: %s":"","Possible keys/values:":"","Fatal error:":"","The application has been authorised - you may now close this browser tab.":"","The application has been successfully authorised.":"","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"","Search:":"","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"","New to-do":"","New notebook":"","Import":"","Export":"","Hide %s":"","Quit":"","Edit":"","Copy":"","Cut":"","Paste":"","Search in all the notes":"","View":"","Toggle editor layout":"","Tools":"","Synchronisation status":"","Encryption options":"","General Options":"","Help":"","Website and documentation":"","Check for updates...":"","About Joplin":"","%s %s (%s, %s)":"","Open %s":"","Exit":"","OK":"","Cancel":"","Release notes:\n\n%s":"","An update is available, do you want to download it now?":"","Yes":"","No":"","Current version is up-to-date.":"","Check synchronisation configuration":"","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"","Updated":"","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"","Encryption is:":"","Back":"","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"","Please create a notebook first.":"","Please create a notebook first":"","Notebook title:":"","Add or remove tags:":"","Separate each tag by a comma.":"","Rename notebook:":"","Set alarm:":"","Search":"","Layout":"","Some items cannot be synchronised.":"","View them now":"","Some items cannot be decrypted.":"","Set the password":"","Add or remove tags":"","Switch between note and to-do type":"","Delete":"","Delete notes?":"","No notes in here. Create one by clicking on \"New note\".":"","There is currently no notebook. Create one by clicking on \"New notebook\".":"","Open...":"","Save as...":"","Unsupported link or message: %s":"","Attach file":"","Tags":"","Set alarm":"","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"","note":"","Creating new %s...":"","Refresh":"","Clear":"","OneDrive Login":"","Options":"","Synchronisation Status":"","Encryption Options":"","Remove this tag from all the notes?":"","Remove this search from the sidebar?":"","Rename":"","Synchronise":"","Notebooks":"","Searches":"","Please select where the sync status should be exported to":"","Usage: %s":"","Unknown flag: %s":"","File system":"","Nextcloud":"","OneDrive":"","OneDrive Dev (For testing only)":"","WebDAV":"","Unknown log level: %s":"","Unknown level ID: %s":"","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"","Cannot access %s":"","Created local items: %d.":"","Updated local items: %d.":"","Created remote items: %d.":"","Updated remote items: %d.":"","Deleted local items: %d.":"","Deleted remote items: %d.":"","Fetched items: %d/%d.":"","State: \"%s\".":"","Cancelling...":"","Completed: %s":"","Synchronisation is already in progress. State: %s":"","Encrypted":"","Encrypted items cannot be modified":"","Conflicts":"","A notebook with this title already exists: \"%s\"":"","Notebooks cannot be named \"%s\", which is a reserved title.":"","Untitled":"","This note does not have geolocation information.":"","Cannot copy note to \"%s\" notebook":"","Cannot move note to \"%s\" notebook":"","Text editor":"","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"","Language":"","Date format":"","Time format":"","Theme":"","Light":"","Dark":"","Uncompleted to-dos on top":"","Sort notes by":"","Reverse sort order":"","Save geo-location with notes":"","When creating a new to-do:":"","Focus title":"","Focus body":"","When creating a new note:":"","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"","Synchronisation interval":"","%d minutes":"","%d hour":"","%d hours":"","Show advanced options":"","Synchronisation target":"","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"","Joplin Export File":"","Markdown":"","Joplin Export Directory":"","Evernote Export File":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"","Items that cannot be synchronised":"","%s (%s): %s":"","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"","%s: %d/%d":"","Total: %d/%d":"","Conflicted: %d":"","To delete: %d":"","Folders":"","%s: %d notes":"","Coming alarms":"","On %s: %s":"","There are currently no notes. Create one by clicking on the (+) button.":"","Delete these notes?":"","Log":"","Export Debug Report":"","Encryption Config":"","Configuration":"","Move to notebook...":"","Move %d notes to notebook \"%s\"?":"","Press to set the decryption password.":"","Select date":"","Confirm":"","Cancel synchronisation":"","Master Key %s":"","Created: %s":"","Password:":"","Password cannot be empty":"","Enable":"","The notebook could not be saved: %s":"","Edit notebook":"","Show all":"","Errors only":"","This note has been modified:":"","Save changes":"","Discard changes":"","Unsupported image type: %s":"","Attach photo":"","Attach any file":"","Convert to note":"","Convert to todo":"","Hide metadata":"","Show metadata":"","View on map":"","Delete notebook":"","Login with OneDrive":"","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"","You currently have no notebook. Create one by clicking on (+) button.":"","Welcome":""} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"","Please select the note or notebook to be deleted first.":"","Press Ctrl+D or type \"exit\" to exit the application":"","More than one item match \"%s\". Please narrow down your query.":"","No notebook selected.":"","No notebook has been specified.":"","Y":"","n":"","N":"","y":"","Cancelling background synchronisation... Please wait.":"","No such command: %s":"","The command \"%s\" is only available in GUI mode":"","Cannot change encrypted item":"","Missing required argument: %s":"","%s: %s":"","Your choice: ":"","Invalid answer: %s":"","Attaches the given file to the note.":"","Cannot find \"%s\".":"","Displays the given note.":"","Displays the complete information about note.":"","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"","Also displays unset and hidden config variables.":"","%s = %s (%s)":"","%s = %s":"","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"","Marks a to-do as done.":"","Note is not a to-do: \"%s\"":"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"","Disabled":"","Encryption is: %s":"","Edit note.":"","No text editor is defined. Please set it using `config editor `":"","No active notebook.":"","Note does not exist: \"%s\". Create it?":"","Starting to edit note. Close the editor to get back to the prompt.":"","Error opening note in editor: %s":"","Note has been saved.":"","Exits the application.":"","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"","Destination format: %s":"","Exports only the given note.":"","Exports only the given notebook.":"","Displays a geolocation URL for the note.":"","Displays usage information.":"","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"","The possible commands are:":"","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"","To move from one pane to another, press Tab or Shift+Tab.":"","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"","To maximise/minimise the console, press \"TC\".":"","To enter command line mode, press \":\"":"","To exit command line mode, press ESCAPE":"","For the list of keyboard shortcuts and config options, type `help keymap`":"","Imports data into Joplin.":"","Source format: %s":"","Do not ask for confirmation.":"","Found: %d.":"","Created: %d.":"","Updated: %d.":"","Skipped: %d.":"","Resources: %d.":"","Tagged: %d.":"","Importing notes...":"","The notes have been imported: %s":"","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"","Displays only the first top notes.":"","Sorts the item by (eg. title, updated_time, created_time).":"","Reverses the sorting order.":"","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"","Either \"text\" or \"json\"":"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"","Please select a notebook first.":"","Creates a new notebook.":"","Creates a new note.":"","Notes can only be created within a notebook.":"","Creates a new to-do.":"","Moves the notes matching to [notebook].":"","Renames the given (note or notebook) to .":"","Deletes the given notebook.":"","Deletes the notebook without asking for confirmation.":"","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"","Deletes the notes without asking for confirmation.":"","%d notes match this pattern. Delete them?":"","Delete note?":"","Searches for the given in all the notes.":"","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"","Displays summary about the notes and notebooks.":"","Synchronises with remote storage.":"","Sync to provided target (defaults to sync.target config value)":"","Authentication was not completed (did not receive an authentication token).":"","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"","Synchronisation target: %s (%s)":"","Cannot initialize synchroniser.":"","Starting synchronisation...":"","Cancelling... Please wait.":""," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":"","Invalid command: \"%s\"":""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"","Marks a to-do as non-completed.":"","Switches to [notebook] - all further operations will happen within this notebook.":"","Displays version information":"","%s %s (%s)":"","Enum":"","Type: %s.":"","Possible values: %s.":"","Default: %s":"","Possible keys/values:":"","Type `joplin help` for usage information.":"","Fatal error:":"","The application has been authorised - you may now close this browser tab.":"","The application has been successfully authorised.":"","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"","Search:":"","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"","New to-do":"","New notebook":"","Import":"","Export":"","Hide %s":"","Quit":"","Edit":"","Copy":"","Cut":"","Paste":"","Search in all the notes":"","View":"","Toggle editor layout":"","Tools":"","Synchronisation status":"","Encryption options":"","General Options":"","Help":"","Website and documentation":"","Make a donation":"","Check for updates...":"","About Joplin":"","%s %s (%s, %s)":"","Open %s":"","Exit":"","OK":"","Cancel":"","Release notes:\n\n%s":"","An update is available, do you want to download it now?":"","Yes":"","No":"","Current version is up-to-date.":"","Check synchronisation configuration":"","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"","Updated":"","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"","Encryption is:":"","Back":"","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"","Please create a notebook first.":"","Please create a notebook first":"","Notebook title:":"","Add or remove tags:":"","Separate each tag by a comma.":"","Rename notebook:":"","Set alarm:":"","Search":"","Layout":"","Some items cannot be synchronised.":"","View them now":"","Some items cannot be decrypted.":"","Set the password":"","Add or remove tags":"","Switch between note and to-do type":"","Delete":"","Delete notes?":"","No notes in here. Create one by clicking on \"New note\".":"","There is currently no notebook. Create one by clicking on \"New notebook\".":"","Open...":"","Save as...":"","Unsupported link or message: %s":"","Attach file":"","Tags":"","Set alarm":"","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"","note":"","Creating new %s...":"","Refresh":"","Clear":"","OneDrive Login":"","Options":"","Synchronisation Status":"","Encryption Options":"","Remove this tag from all the notes?":"","Remove this search from the sidebar?":"","Rename":"","Synchronise":"","Notebooks":"","Searches":"","Please select where the sync status should be exported to":"","Usage: %s":"","Unknown flag: %s":"","File system":"","Nextcloud":"","OneDrive":"","OneDrive Dev (For testing only)":"","WebDAV":"","Unknown log level: %s":"","Unknown level ID: %s":"","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"","Cannot access %s":"","Created local items: %d.":"","Updated local items: %d.":"","Created remote items: %d.":"","Updated remote items: %d.":"","Deleted local items: %d.":"","Deleted remote items: %d.":"","Fetched items: %d/%d.":"","State: \"%s\".":"","Cancelling...":"","Completed: %s":"","Synchronisation is already in progress. State: %s":"","Encrypted":"","Encrypted items cannot be modified":"","Conflicts":"","A notebook with this title already exists: \"%s\"":"","Notebooks cannot be named \"%s\", which is a reserved title.":"","Untitled":"","This note does not have geolocation information.":"","Cannot copy note to \"%s\" notebook":"","Cannot move note to \"%s\" notebook":"","Text editor":"","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"","Language":"","Date format":"","Time format":"","Theme":"","Light":"","Dark":"","Uncompleted to-dos on top":"","Sort notes by":"","Reverse sort order":"","Save geo-location with notes":"","When creating a new to-do:":"","Focus title":"","Focus body":"","When creating a new note:":"","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"","Synchronisation interval":"","%d minutes":"","%d hour":"","%d hours":"","Show advanced options":"","Synchronisation target":"","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"","Joplin Export File":"","Markdown":"","Joplin Export Directory":"","Evernote Export File":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"","Items that cannot be synchronised":"","%s (%s): %s":"","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"","%s: %d/%d":"","Total: %d/%d":"","Conflicted: %d":"","To delete: %d":"","Folders":"","%s: %d notes":"","Coming alarms":"","On %s: %s":"","There are currently no notes. Create one by clicking on the (+) button.":"","Delete these notes?":"","Log":"","Export Debug Report":"","Encryption Config":"","Configuration":"","Move to notebook...":"","Move %d notes to notebook \"%s\"?":"","Press to set the decryption password.":"","Select date":"","Confirm":"","Cancel synchronisation":"","Joplin website":"","Master Key %s":"","Created: %s":"","Password:":"","Password cannot be empty":"","Enable":"","The notebook could not be saved: %s":"","Edit notebook":"","Show all":"","Errors only":"","This note has been modified:":"","Save changes":"","Discard changes":"","Unsupported image type: %s":"","Attach photo":"","Attach any file":"","Convert to note":"","Convert to todo":"","Hide metadata":"","Show metadata":"","View on map":"","Delete notebook":"","Login with OneDrive":"","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"","You currently have no notebook. Create one by clicking on (+) button.":"","Welcome":""} \ No newline at end of file diff --git a/ElectronClient/app/locales/es_ES.json b/ElectronClient/app/locales/es_ES.json index af502d821d..0514e56891 100644 --- a/ElectronClient/app/locales/es_ES.json +++ b/ElectronClient/app/locales/es_ES.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Desmarque las notas asociadas para eliminar una etiqueta.","Please select the note or notebook to be deleted first.":"Seleccione primero la nota o libreta que desea eliminar.","Press Ctrl+D or type \"exit\" to exit the application":"Pulse Ctrl+D o escriba «salir» para salir de la aplicación","More than one item match \"%s\". Please narrow down your query.":"Hay más de un elemento que coincide con «%s», intente mejorar su consulta.","No notebook selected.":"No se ha seleccionado ninguna libreta.","No notebook has been specified.":"Ninguna libreta fue especificada","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Cancelando sincronización de segundo plano... Por favor espere.","No such command: %s":"El comando no existe: %s","The command \"%s\" is only available in GUI mode":"El comando «%s» solamente está disponible en modo GUI","Cannot change encrypted item":"No se puede cambiar el elemento cifrado","Missing required argument: %s":"Falta un argumento requerido: %s","%s: %s":"%s: %s","Your choice: ":"Su elección: ","Invalid answer: %s":"Respuesta inválida: %s","Attaches the given file to the note.":"Adjuntar archivo a la nota.","Cannot find \"%s\".":"No se encuentra \"%s\".","Displays the given note.":"Mostrar la nota dada.","Displays the complete information about note.":"Mostrar la información completa acerca de la nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtener o configurar un valor. Si no se provee el [valor], se mostrará el valor de [nombre]. Si no se provee [nombre] ni [valor], se listará la configuración actual.","Also displays unset and hidden config variables.":"También muestra variables ocultas o no configuradas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica las notas que coincidan con en la libreta. Si no se especifica una libreta la nota se duplica en la libreta actual.","Marks a to-do as done.":"Marca una tarea como hecha.","Note is not a to-do: \"%s\"":"La nota no es una tarea: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Maneja la configuración E2EE. Comandos disponibles `enable`, `disable`, `decrypt`, `status` y `target-status`.","Enter master password:":"Introduzca la contraseña maestra:","Operation cancelled":"Operación cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando descifrado... Por favor espere, puede tardar varios minutos dependiendo de cuanto haya que descifrar.","Completed decryption.":"Descifrado completado.","Enabled":"Habilitado","Disabled":"Deshabilitado","Encryption is: %s":"El cifrado es: %s","Edit note.":"Editar una nota.","No text editor is defined. Please set it using `config editor `":"No hay editor de texto definido. Por favor configure uno usando `config editor `","No active notebook.":"No hay libreta activa.","Note does not exist: \"%s\". Create it?":"La nota no existe: \"%s\". ¿Crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Iniciando la edición de una nota. Cierre el editor para regresar al prompt.","Error opening note in editor: %s":"Error abriendo la nota en el editor: %s","Note has been saved.":"La nota ha sido guardada.","Exits the application.":"Sale de la aplicación.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exporta únicamente la nota indicada.","Exports only the given notebook.":"Exporta únicamente la libreta indicada.","Displays a geolocation URL for the note.":"Muestra la URL de la geolocalización de la nota.","Displays usage information.":"Muestra información de uso.","For information on how to customise the shortcuts please visit %s":"Para información de cómo personalizar los atajos por favor visite %s","Shortcuts are not available in CLI mode.":"Atajos no disponibles en modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Escriba `help [command]` para obtener más información sobre el comando, o escriba `help all` para obtener toda la información acerca del uso del programa.","The possible commands are:":"Los posibles comandos son:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Con cualquier comando, una nota o libreta puede ser referida por su título o ID, o utilizando atajos `$n` o `$b`, respectivamente, para la nota o libreta seleccionada. Se puede utilizar `$c` para hacer referencia al elemento seleccionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover desde un panel a otro, presione Tabulador o Mayúsuclas+Tabulador.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Para desplazar en las listas y areas de texto (incluyendo la consola) utilice las flechas y re pág/av pág.","To maximise/minimise the console, press \"TC\".":"Para maximizar/minimizar la consola, presione \"TC\".","To enter command line mode, press \":\"":"Para entrar a modo línea de comando, presione \":\"","To exit command line mode, press ESCAPE":"Para salir de modo línea de comando, presione ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Para una lista de los atajos de teclado disponibles, escriba `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"No requiere confirmación.","Found: %d.":"Encontrado: %d.","Created: %d.":"Creado: %d.","Updated: %d.":"Actualizado: %d.","Skipped: %d.":"Omitido: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Etiquetado: %d.","Importing notes...":"Importando notas...","The notes have been imported: %s":"Las notas han sido importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Muestra las notas en la libreta actual. Usa `ls /` para mostrar la lista de libretas.","Displays only the first top notes.":"Muestra las primeras notas.","Sorts the item by (eg. title, updated_time, created_time).":"Ordena los elementos por campo ( ej. title, updated_time, created_time).","Reverses the sorting order.":"Invierte el orden.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Muestra únicamente los elementos de los tipos especificados. Pueden ser `n` para notas, `t` para tareas, o `nt` para libretas y tareas (ej. `-tt` mostrará unicamente las tareas, mientras `-ttd` mostrará notas y tareas).","Either \"text\" or \"json\"":"Puede ser \"text\" o \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usar formato largo de lista. El formato es ID, NOTE_COUNT ( para libretas), DATE,TODO_CHECKED ( para tareas), TITLE","Please select a notebook first.":"Por favor seleccione la libreta.","Creates a new notebook.":"Crea una nueva libreta.","Creates a new note.":"Crea una nueva nota.","Notes can only be created within a notebook.":"Notas solamente pueden ser creadas dentro de una libreta.","Creates a new to-do.":"Crea una nueva lista de tareas.","Moves the notes matching to [notebook].":"Mueve las notas que coincidan con a la [libreta].","Renames the given (note or notebook) to .":"Renombra el elemento dado (nota o libreta) a .","Deletes the given notebook.":"Elimina la libreta dada.","Deletes the notebook without asking for confirmation.":"Elimina una libreta sin pedir confirmación.","Delete notebook? All notes within this notebook will also be deleted.":"¿Desea eliminar la libreta? Todas las notas dentro de esta libreta también serán eliminadas.","Deletes the notes matching .":"Elimina las notas que coinciden con .","Deletes the notes without asking for confirmation.":"Elimina las notas sin pedir confirmación.","%d notes match this pattern. Delete them?":"%d notas coinciden con el patrón. ¿Eliminarlas?","Delete note?":"¿Eliminar nota?","Searches for the given in all the notes.":"Buscar el patrón en todas las notas.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Asigna el valor [value] a la propiedad de la nota indicada . Propiedades disponibles:\n\n%s","Displays summary about the notes and notebooks.":"Muestra un resumen acerca de las notas y las libretas.","Synchronises with remote storage.":"Sincroniza con el almacenamiento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincroniza con el destino indicado (por defecto al valor de configuración sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticación no completada (no se recibió token de autenticación).","Not authentified with %s. Please provide any missing credentials.":"No autenticado con %s. Por favor provea las credenciales.","Synchronisation is already in progress.":"Sincronzación en progreso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ya hay un archivo de bloqueo. Si está seguro de que no hay una sincronización en curso puede eliminar el archivo de bloqueo «%s» y reanudar la operación.","Synchronisation target: %s (%s)":"Destino de la sincronización: %s (%s)","Cannot initialize synchroniser.":"No se puede inicializar sincronizador.","Starting synchronisation...":"Iniciando sincronización...","Cancelling... Please wait.":"Cancelando... Por favor espere."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" puede ser \"add\", \"remove\" o \"list\" para asignar o eliminar [tag] de [note], o para listar las notas asociadas con [tag]. El comando `tag list` puede ser usado para listar todas las etiquetas.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" puede ser \"toggle\" o \"clear\". Usa \"toggle\" para cambiar la tarea dada entre estado completado y sin completar. (Si el objetivo es una nota regular se convertirá en una tarea). Usa \"clear\" para convertir la tarea a una nota regular.","Marks a to-do as non-completed.":"Marca una tarea como no completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Cambia una [libreta] - todas las demás operaciones se realizan en ésta libreta.","Displays version information":"Muestra información de la versión","%s %s (%s)":"%s %s (%s)","Enum":"Enumeración","Type: %s.":"Tipo: %s.","Possible values: %s.":"Posibles valores: %s.","Default: %s":"Por defecto: %s","Possible keys/values:":"Claves/valores posbiles:","Fatal error:":"Error fatal:","The application has been authorised - you may now close this browser tab.":"La aplicación ha sido autorizada - ahora puede cerrar esta pestaña de su navegador.","The application has been successfully authorised.":"La aplicacion ha sido autorizada éxitosamente.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra la siguiente URL en su navegador para autenticar la aplicación. La aplicación creará un directorio en «Apps/Joplin» y solo leerá y escribirá archivos en ese directorio. No tendrá acceso a ningún archivo fuera de ese directorio ni a ningún otro archivo personal. No se compartirá información con terceros.","Search:":"Buscar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenido a Joplin.\n\nEscriba «:help shortcuts» para obtener una lista con los atajos de teclado, o simplemente «:help» para información general.\n\nPor ejemplo, para crear una libreta escriba «mb», para crear una nota escriba «mn».","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Uno o más elementos están cifrados y debe proporcionar la contraseña maestra. Para hacerlo por favor escriba `e2ee decrypt`. Si ya ha proporcionado la contraseña, los elementos están siendo descifrados en segundo plano y estarán disponibles en breve.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Archivo","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Nueva nota","New to-do":"Nueva lista de tareas","New notebook":"Nueva libreta","Import":"Importar","Export":"Export","Hide %s":"Oculta %s","Quit":"Salir","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Pegar","Search in all the notes":"Buscar en todas las notas","View":"Ver","Toggle editor layout":"Cambia el diseño del editor","Tools":"Herramientas","Synchronisation status":"Estado de la sincronización","Encryption options":"Opciones de cifrado","General Options":"Opciones generales","Help":"Ayuda","Website and documentation":"Sitio web y documentación","Check for updates...":"Comprobar actualizaciones...","About Joplin":"Acerca de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Abrir %s","Exit":"Salir","OK":"OK","Cancel":"Cancelar","Release notes:\n\n%s":"Notas de la versión:\n\n%s","An update is available, do you want to download it now?":"Hay disponible una actualización. ¿Quiere descargarla ahora?","Yes":"Sí","No":"No","Current version is up-to-date.":"La versión actual está actualizada.","Check synchronisation configuration":"Comprobar sincronización","Notes and settings are stored in: %s":"Las notas y los ajustes se guardan en: %s","Save":"Guardar","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Deshabilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán descifrados al destino. ¿Desea continuar?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Habilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán cifrados al destino. No pierda la contraseña, por cuestiones de seguridad, ¡es la *única* forma de descifrar los datos! Para habilitar el cifrado, por favor introduzca su contraseña más abajo.","Disable encryption":"Deshabilitar cifrado","Enable encryption":"Habilitar cifrado","Master Keys":"Clave maestra","Active":"Activo","ID":"ID","Source":"Origen","Created":"Creado","Updated":"Actualizado","Password":"Contraseña","Password OK":"Contraseña OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Nota: Solo una clave maestra va a ser utilizar para el cifrado (la marcada como \"activa\"). Cualquiera de las claves puede ser utilizada para descifrar, dependiendo de como fueron cifradas originalmente las notas o las libretas.","Missing Master Keys":"No se encuentra la clave maestra","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"La clave maestra con estos ID son utilizadas para descifrar algunos de tus elementos, pero la apliación no tiene acceso a ellas. Serán descargadas a través de la sincronización.","Status":"Estado","Encryption is:":"El cifrado está:","Back":"Atrás","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Se creará la nueva libreta «%s» y se importará en ella el archivo «%s»","Please create a notebook first.":"Por favor cree una libreta primero.","Please create a notebook first":"Por favor cree una libreta primero","Notebook title:":"Título de libreta:","Add or remove tags:":"Agregar o borrar etiquetas: ","Separate each tag by a comma.":"Separar cada etiqueta por una coma.","Rename notebook:":"Renombrar libreta:","Set alarm:":"Ajustar alarma:","Search":"Buscar","Layout":"Diseño","Some items cannot be synchronised.":"No se han podido sincronizar algunos de los elementos.","View them now":"Verlos ahora","Some items cannot be decrypted.":"No se han podido descifrar algunos elementos.","Set the password":"Establecer la contraseña","Add or remove tags":"Añadir o borrar etiquetas","Switch between note and to-do type":"Cambiar entre nota y lista de tareas","Delete":"Eliminar","Delete notes?":"¿Desea eliminar notas?","No notes in here. Create one by clicking on \"New note\".":"No hay ninguna nota. Cree una pulsando «Nota nueva».","There is currently no notebook. Create one by clicking on \"New notebook\".":"No hay ninguna libreta. Cree una pulsando en «Libreta nueva».","Open...":"Abrir...","Save as...":"Guardar como...","Unsupported link or message: %s":"Enlace o mensaje no soportado: %s","Attach file":"Adjuntar archivo","Tags":"Etiquetas","Set alarm":"Establecer alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"lista de tareas","note":"nota","Creating new %s...":"Creando nuevo %s...","Refresh":"Refrescar","Clear":"Limpiar","OneDrive Login":"Inicio de sesión de OneDrive","Options":"Opciones","Synchronisation Status":"Estado de la sincronización","Encryption Options":"Opciones de cifrado","Remove this tag from all the notes?":"¿Desea eliminar esta etiqueta de todas las notas?","Remove this search from the sidebar?":"¿Desea eliminar esta búsqueda de la barra lateral?","Rename":"Renombrar","Synchronise":"Sincronizar","Notebooks":"Libretas","Searches":"Búsquedas","Please select where the sync status should be exported to":"Seleccione a dónde se debería exportar el estado de sincronización","Usage: %s":"Uso: %s","Unknown flag: %s":"Etiqueta desconocida: %s","File system":"Sistema de archivos","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Solo para pruebas)","WebDAV":"WebDAV","Unknown log level: %s":"Nivel de log desconocido: %s","Unknown level ID: %s":"ID de nivel desconocido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"No se ha podido actualizar token: faltan datos de autenticación. Reiniciar la sincronización podría solucionar el problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"No se ha podido sincronizar con OneDrive.\n\nEste error suele ocurrir al utilizar OneDrive for Business. Este producto no está soportado.\n\nPodría considerar utilizar una cuenta Personal de OneDrive.","Cannot access %s":"No se ha podido acceder a %s","Created local items: %d.":"Elementos locales creados: %d.","Updated local items: %d.":"Elementos locales actualizados: %d.","Created remote items: %d.":"Elementos remotos creados: %d.","Updated remote items: %d.":"Elementos remotos actualizados: %d.","Deleted local items: %d.":"Elementos locales borrados: %d.","Deleted remote items: %d.":"Elementos remotos borrados: %d.","Fetched items: %d/%d.":"Elementos obtenidos: %d/%d.","State: \"%s\".":"Estado: «%s».","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Synchronisation is already in progress. State: %s":"La sincronización ya está en progreso. Estado: %s","Encrypted":"Cifrado","Encrypted items cannot be modified":"Los elementos cifrados no pueden ser modificados","Conflicts":"Conflictos","A notebook with this title already exists: \"%s\"":"Ya existe una libreta con este nombre: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"No se puede usar el nombre «%s» para una libreta; es un título reservado.","Untitled":"Sin título","This note does not have geolocation information.":"Esta nota no tiene informacion de geolocalización.","Cannot copy note to \"%s\" notebook":"No se ha podido copiar la nota a la libreta «%s»","Cannot move note to \"%s\" notebook":"No se ha podido mover la nota a la libreta «%s»","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"El editor que se usará para abrir una nota. Se intentará auto-detectar el editor predeterminado si no se proporciona ninguno.","Language":"Idioma","Date format":"Formato de fecha","Time format":"Formato de hora","Theme":"Tema","Light":"Claro","Dark":"Oscuro","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Guardar geolocalización en las notas","When creating a new to-do:":"Al crear una nueva lista de tareas:","Focus title":"Foco en el título","Focus body":"Foco en el cuerpo","When creating a new note:":"Cuando se crear una nota nueva:","Show tray icon":"Mostrar icono en la bandeja","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Actualizar la aplicación automáticamente","Synchronisation interval":"Intervalo de sincronización","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opciones avanzadas","Synchronisation target":"Destino de sincronización","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"El destino de la sincronización. Cada destino de la sincronización puede tener parámetros adicionales los cuales son llamados como `sync.NUM.NAME` (todos abajo documentados).","Directory to synchronise with (absolute path)":"Directorio con el que sincronizarse (ruta completa)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"La ruta a la que sincronizar cuando se activa la sincronización con sistema de archivos. Vea «sync.target».","Nextcloud WebDAV URL":"Servidor WebDAV de Nextcloud","Nextcloud username":"Usuario de Nextcloud","Nextcloud password":"Contraseña de Nextcloud","WebDAV URL":"Servidor WebDAV","WebDAV username":"Usuario de WebDAV","WebDAV password":"Contraseña de WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Opción inválida: «%s». Los valores posibles son: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Elementos que no se pueden sincronizar","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Estos elementos se mantendrán en el dispositivo pero no serán enviados al destino de sincronización. Para encontrar dichos elementos busca en el título o en el ID (el cual se muestra arriba entre corchetes).","Sync status (synced items / total items)":"Estado de sincronización (elementos sincronizados/elementos totales)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Conflictos: %d","To delete: %d":"Borrar: %d","Folders":"Carpetas","%s: %d notes":"%s: %d notas","Coming alarms":"Alarmas próximas","On %s: %s":"En %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"No hay notas. Cree una pulsando en el botón (+).","Delete these notes?":"¿Desea borrar estas notas?","Log":"Log","Export Debug Report":"Exportar informe de depuración","Encryption Config":"Configuración de cifrado","Configuration":"Configuración","Move to notebook...":"Mover a la libreta...","Move %d notes to notebook \"%s\"?":"¿Desea mover %d notas a libreta «%s»?","Press to set the decryption password.":"Presione para establecer la contraseña de descifrado.","Select date":"Seleccione fecha","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronización","Master Key %s":"Clave maestra %s","Created: %s":"Creado: %s","Password:":"Contraseña:","Password cannot be empty":"La contraseña no puede estar vacía","Enable":"Habilitado","The notebook could not be saved: %s":"No se ha podido guardar esta libreta: %s","Edit notebook":"Editar libreta","Show all":"Mostrar todo","Errors only":"Solo errores","This note has been modified:":"Esta nota ha sido modificada:","Save changes":"Guardar cambios","Discard changes":"Descartar cambios","Unsupported image type: %s":"Tipo de imagen no soportado: %s","Attach photo":"Adjuntar foto","Attach any file":"Adjuntar cualquier archivo","Convert to note":"Convertir a nota","Convert to todo":"Convertir a lista de tareas","Hide metadata":"Ocultar metadatos","Show metadata":"Mostrar metadatos","View on map":"Ver en un mapa","Delete notebook":"Borrar libreta","Login with OneDrive":"Acceder con OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Pulse en el botón (+) para crear una nueva nota o libreta. Pulse en el menú lateral para acceder a las libretas existentes.","You currently have no notebook. Create one by clicking on (+) button.":"No hay ninguna libreta. Cree una nueva libreta pulsando en el botón (+).","Welcome":"Bienvenido"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Desmarque las notas asociadas para eliminar una etiqueta.","Please select the note or notebook to be deleted first.":"Seleccione primero la nota o libreta que desea eliminar.","Press Ctrl+D or type \"exit\" to exit the application":"Pulse Ctrl+D o escriba «salir» para salir de la aplicación","More than one item match \"%s\". Please narrow down your query.":"Hay más de un elemento que coincide con «%s», intente mejorar su consulta.","No notebook selected.":"No se ha seleccionado ninguna libreta.","No notebook has been specified.":"Ninguna libreta fue especificada","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Cancelando sincronización de segundo plano... Por favor espere.","No such command: %s":"El comando no existe: %s","The command \"%s\" is only available in GUI mode":"El comando «%s» solamente está disponible en modo GUI","Cannot change encrypted item":"No se puede cambiar el elemento cifrado","Missing required argument: %s":"Falta un argumento requerido: %s","%s: %s":"%s: %s","Your choice: ":"Su elección: ","Invalid answer: %s":"Respuesta inválida: %s","Attaches the given file to the note.":"Adjuntar archivo a la nota.","Cannot find \"%s\".":"No se encuentra \"%s\".","Displays the given note.":"Mostrar la nota dada.","Displays the complete information about note.":"Mostrar la información completa acerca de la nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtener o configurar un valor. Si no se provee el [valor], se mostrará el valor de [nombre]. Si no se provee [nombre] ni [valor], se listará la configuración actual.","Also displays unset and hidden config variables.":"También muestra variables ocultas o no configuradas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica las notas que coincidan con en la libreta. Si no se especifica una libreta la nota se duplica en la libreta actual.","Marks a to-do as done.":"Marca una tarea como hecha.","Note is not a to-do: \"%s\"":"La nota no es una tarea: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Maneja la configuración E2EE. Comandos disponibles `enable`, `disable`, `decrypt`, `status` y `target-status`.","Enter master password:":"Introduzca la contraseña maestra:","Operation cancelled":"Operación cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando descifrado... Por favor espere, puede tardar varios minutos dependiendo de cuanto haya que descifrar.","Completed decryption.":"Descifrado completado.","Enabled":"Habilitado","Disabled":"Deshabilitado","Encryption is: %s":"El cifrado es: %s","Edit note.":"Editar una nota.","No text editor is defined. Please set it using `config editor `":"No hay editor de texto definido. Por favor configure uno usando `config editor `","No active notebook.":"No hay libreta activa.","Note does not exist: \"%s\". Create it?":"La nota no existe: \"%s\". ¿Crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Iniciando la edición de una nota. Cierre el editor para regresar al prompt.","Error opening note in editor: %s":"Error abriendo la nota en el editor: %s","Note has been saved.":"La nota ha sido guardada.","Exits the application.":"Sale de la aplicación.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporta datos de Joplin al directorio indicado. Por defecto, se exportará la base de datos completa incluyendo libretas, notas, etiquetas y recursos.","Destination format: %s":"Formato de destino: %s","Exports only the given note.":"Exporta únicamente la nota indicada.","Exports only the given notebook.":"Exporta únicamente la libreta indicada.","Displays a geolocation URL for the note.":"Muestra la URL de la geolocalización de la nota.","Displays usage information.":"Muestra información de uso.","For information on how to customise the shortcuts please visit %s":"Para información de cómo personalizar los atajos por favor visite %s","Shortcuts are not available in CLI mode.":"Atajos no disponibles en modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Escriba `help [command]` para obtener más información sobre el comando, o escriba `help all` para obtener toda la información acerca del uso del programa.","The possible commands are:":"Los posibles comandos son:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Con cualquier comando, una nota o libreta puede ser referida por su título o ID, o utilizando atajos `$n` o `$b`, respectivamente, para la nota o libreta seleccionada. Se puede utilizar `$c` para hacer referencia al elemento seleccionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover desde un panel a otro, presione Tabulador o Mayúsuclas+Tabulador.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Para desplazar en las listas y areas de texto (incluyendo la consola) utilice las flechas y re pág/av pág.","To maximise/minimise the console, press \"TC\".":"Para maximizar/minimizar la consola, presione \"TC\".","To enter command line mode, press \":\"":"Para entrar a modo línea de comando, presione \":\"","To exit command line mode, press ESCAPE":"Para salir de modo línea de comando, presione ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Para una lista de los atajos de teclado disponibles, escriba `help keymap`","Imports data into Joplin.":"Importa los datos en Joplin.","Source format: %s":"Formato de origen: %s","Do not ask for confirmation.":"No requiere confirmación.","Found: %d.":"Encontrado: %d.","Created: %d.":"Creado: %d.","Updated: %d.":"Actualizado: %d.","Skipped: %d.":"Omitido: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Etiquetado: %d.","Importing notes...":"Importando notas...","The notes have been imported: %s":"Las notas han sido importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Muestra las notas en la libreta actual. Usa `ls /` para mostrar la lista de libretas.","Displays only the first top notes.":"Muestra las primeras notas.","Sorts the item by (eg. title, updated_time, created_time).":"Ordena los elementos por campo ( ej. title, updated_time, created_time).","Reverses the sorting order.":"Invierte el orden.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Muestra únicamente los elementos de los tipos especificados. Pueden ser `n` para notas, `t` para tareas, o `nt` para libretas y tareas (ej. `-tt` mostrará unicamente las tareas, mientras `-ttd` mostrará notas y tareas).","Either \"text\" or \"json\"":"Puede ser \"text\" o \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usar formato largo de lista. El formato es ID, NOTE_COUNT ( para libretas), DATE,TODO_CHECKED ( para tareas), TITLE","Please select a notebook first.":"Por favor seleccione la libreta.","Creates a new notebook.":"Crea una nueva libreta.","Creates a new note.":"Crea una nueva nota.","Notes can only be created within a notebook.":"Notas solamente pueden ser creadas dentro de una libreta.","Creates a new to-do.":"Crea una nueva lista de tareas.","Moves the notes matching to [notebook].":"Mueve las notas que coincidan con a la [libreta].","Renames the given (note or notebook) to .":"Renombra el elemento dado (nota o libreta) a .","Deletes the given notebook.":"Elimina la libreta dada.","Deletes the notebook without asking for confirmation.":"Elimina una libreta sin pedir confirmación.","Delete notebook? All notes within this notebook will also be deleted.":"¿Desea eliminar la libreta? Todas las notas dentro de esta libreta también serán eliminadas.","Deletes the notes matching .":"Elimina las notas que coinciden con .","Deletes the notes without asking for confirmation.":"Elimina las notas sin pedir confirmación.","%d notes match this pattern. Delete them?":"%d notas coinciden con el patrón. ¿Eliminarlas?","Delete note?":"¿Eliminar nota?","Searches for the given in all the notes.":"Buscar el patrón en todas las notas.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Asigna el valor [value] a la propiedad de la nota indicada . Propiedades disponibles:\n\n%s","Displays summary about the notes and notebooks.":"Muestra un resumen acerca de las notas y las libretas.","Synchronises with remote storage.":"Sincroniza con el almacenamiento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincroniza con el destino indicado (por defecto al valor de configuración sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticación no completada (no se recibió token de autenticación).","Not authentified with %s. Please provide any missing credentials.":"No autenticado con %s. Por favor provea las credenciales.","Synchronisation is already in progress.":"Sincronzación en progreso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ya hay un archivo de bloqueo. Si está seguro de que no hay una sincronización en curso puede eliminar el archivo de bloqueo «%s» y reanudar la operación.","Synchronisation target: %s (%s)":"Destino de la sincronización: %s (%s)","Cannot initialize synchroniser.":"No se puede inicializar sincronizador.","Starting synchronisation...":"Iniciando sincronización...","Cancelling... Please wait.":"Cancelando... Por favor espere."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" puede ser \"add\", \"remove\" o \"list\" para asignar o eliminar [tag] de [note], o para listar las notas asociadas con [tag]. El comando `tag list` puede ser usado para listar todas las etiquetas.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" puede ser \"toggle\" o \"clear\". Usa \"toggle\" para cambiar la tarea dada entre estado completado y sin completar. (Si el objetivo es una nota regular se convertirá en una tarea). Usa \"clear\" para convertir la tarea a una nota regular.","Marks a to-do as non-completed.":"Marca una tarea como no completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Cambia una [libreta] - todas las demás operaciones se realizan en ésta libreta.","Displays version information":"Muestra información de la versión","%s %s (%s)":"%s %s (%s)","Enum":"Enumeración","Type: %s.":"Tipo: %s.","Possible values: %s.":"Posibles valores: %s.","Default: %s":"Por defecto: %s","Possible keys/values:":"Claves/valores posbiles:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Error fatal:","The application has been authorised - you may now close this browser tab.":"La aplicación ha sido autorizada - ahora puede cerrar esta pestaña de su navegador.","The application has been successfully authorised.":"La aplicacion ha sido autorizada éxitosamente.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra la siguiente URL en su navegador para autenticar la aplicación. La aplicación creará un directorio en «Apps/Joplin» y solo leerá y escribirá archivos en ese directorio. No tendrá acceso a ningún archivo fuera de ese directorio ni a ningún otro archivo personal. No se compartirá información con terceros.","Search:":"Buscar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenido a Joplin.\n\nEscriba «:help shortcuts» para obtener una lista con los atajos de teclado, o simplemente «:help» para información general.\n\nPor ejemplo, para crear una libreta escriba «mb», para crear una nota escriba «mn».","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Uno o más elementos están cifrados y debe proporcionar la contraseña maestra. Para hacerlo por favor escriba `e2ee decrypt`. Si ya ha proporcionado la contraseña, los elementos están siendo descifrados en segundo plano y estarán disponibles en breve.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportando el formato de \"%s\" a \"%s\". Por favor espere...","File":"Archivo","Directory":"Directorio","Importing from \"%s\" as \"%s\" format. Please wait...":"Importando el formato de \"%s\" a \"%s\". Por favor espere...","New note":"Nueva nota","New to-do":"Nueva lista de tareas","New notebook":"Nueva libreta","Import":"Importar","Export":"Exportar","Hide %s":"Oculta %s","Quit":"Salir","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Pegar","Search in all the notes":"Buscar en todas las notas","View":"Ver","Toggle editor layout":"Cambia el diseño del editor","Tools":"Herramientas","Synchronisation status":"Estado de la sincronización","Encryption options":"Opciones de cifrado","General Options":"Opciones generales","Help":"Ayuda","Website and documentation":"Sitio web y documentación","Make a donation":"Make a donation","Check for updates...":"Comprobar actualizaciones...","About Joplin":"Acerca de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Abrir %s","Exit":"Salir","OK":"OK","Cancel":"Cancelar","Release notes:\n\n%s":"Notas de la versión:\n\n%s","An update is available, do you want to download it now?":"Hay disponible una actualización. ¿Quiere descargarla ahora?","Yes":"Sí","No":"No","Current version is up-to-date.":"La versión actual está actualizada.","Check synchronisation configuration":"Comprobar sincronización","Notes and settings are stored in: %s":"Las notas y los ajustes se guardan en: %s","Save":"Guardar","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Deshabilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán descifrados al destino. ¿Desea continuar?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Habilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán cifrados al destino. No pierda la contraseña, por cuestiones de seguridad, ¡es la *única* forma de descifrar los datos! Para habilitar el cifrado, por favor introduzca su contraseña más abajo.","Disable encryption":"Deshabilitar cifrado","Enable encryption":"Habilitar cifrado","Master Keys":"Clave maestra","Active":"Activo","ID":"ID","Source":"Origen","Created":"Creado","Updated":"Actualizado","Password":"Contraseña","Password OK":"Contraseña OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Nota: Solo una clave maestra va a ser utilizar para el cifrado (la marcada como \"activa\"). Cualquiera de las claves puede ser utilizada para descifrar, dependiendo de como fueron cifradas originalmente las notas o las libretas.","Missing Master Keys":"No se encuentra la clave maestra","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"La clave maestra con estos ID son utilizadas para descifrar algunos de tus elementos, pero la apliación no tiene acceso a ellas. Serán descargadas a través de la sincronización.","Status":"Estado","Encryption is:":"El cifrado está:","Back":"Atrás","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Se creará la nueva libreta «%s» y se importará en ella el archivo «%s»","Please create a notebook first.":"Por favor cree una libreta primero.","Please create a notebook first":"Por favor cree una libreta primero","Notebook title:":"Título de libreta:","Add or remove tags:":"Agregar o borrar etiquetas: ","Separate each tag by a comma.":"Separar cada etiqueta por una coma.","Rename notebook:":"Renombrar libreta:","Set alarm:":"Ajustar alarma:","Search":"Buscar","Layout":"Diseño","Some items cannot be synchronised.":"No se han podido sincronizar algunos de los elementos.","View them now":"Verlos ahora","Some items cannot be decrypted.":"No se han podido descifrar algunos elementos.","Set the password":"Establecer la contraseña","Add or remove tags":"Añadir o borrar etiquetas","Switch between note and to-do type":"Cambiar entre nota y lista de tareas","Delete":"Eliminar","Delete notes?":"¿Desea eliminar notas?","No notes in here. Create one by clicking on \"New note\".":"No hay ninguna nota. Cree una pulsando «Nota nueva».","There is currently no notebook. Create one by clicking on \"New notebook\".":"No hay ninguna libreta. Cree una pulsando en «Libreta nueva».","Open...":"Abrir...","Save as...":"Guardar como...","Unsupported link or message: %s":"Enlace o mensaje no soportado: %s","Attach file":"Adjuntar archivo","Tags":"Etiquetas","Set alarm":"Establecer alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota no tiene contenido. Pulse en \"%s\" para cambiar al editor y editar la nota.","to-do":"lista de tareas","note":"nota","Creating new %s...":"Creando nuevo %s...","Refresh":"Refrescar","Clear":"Limpiar","OneDrive Login":"Inicio de sesión de OneDrive","Options":"Opciones","Synchronisation Status":"Estado de la sincronización","Encryption Options":"Opciones de cifrado","Remove this tag from all the notes?":"¿Desea eliminar esta etiqueta de todas las notas?","Remove this search from the sidebar?":"¿Desea eliminar esta búsqueda de la barra lateral?","Rename":"Renombrar","Synchronise":"Sincronizar","Notebooks":"Libretas","Searches":"Búsquedas","Please select where the sync status should be exported to":"Seleccione a dónde se debería exportar el estado de sincronización","Usage: %s":"Uso: %s","Unknown flag: %s":"Etiqueta desconocida: %s","File system":"Sistema de archivos","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Solo para pruebas)","WebDAV":"WebDAV","Unknown log level: %s":"Nivel de log desconocido: %s","Unknown level ID: %s":"ID de nivel desconocido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"No se ha podido actualizar token: faltan datos de autenticación. Reiniciar la sincronización podría solucionar el problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"No se ha podido sincronizar con OneDrive.\n\nEste error suele ocurrir al utilizar OneDrive for Business. Este producto no está soportado.\n\nPodría considerar utilizar una cuenta Personal de OneDrive.","Cannot access %s":"No se ha podido acceder a %s","Created local items: %d.":"Elementos locales creados: %d.","Updated local items: %d.":"Elementos locales actualizados: %d.","Created remote items: %d.":"Elementos remotos creados: %d.","Updated remote items: %d.":"Elementos remotos actualizados: %d.","Deleted local items: %d.":"Elementos locales borrados: %d.","Deleted remote items: %d.":"Elementos remotos borrados: %d.","Fetched items: %d/%d.":"Elementos obtenidos: %d/%d.","State: \"%s\".":"Estado: «%s».","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Synchronisation is already in progress. State: %s":"La sincronización ya está en progreso. Estado: %s","Encrypted":"Cifrado","Encrypted items cannot be modified":"Los elementos cifrados no pueden ser modificados","Conflicts":"Conflictos","A notebook with this title already exists: \"%s\"":"Ya existe una libreta con este nombre: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"No se puede usar el nombre «%s» para una libreta; es un título reservado.","Untitled":"Sin título","This note does not have geolocation information.":"Esta nota no tiene informacion de geolocalización.","Cannot copy note to \"%s\" notebook":"No se ha podido copiar la nota a la libreta «%s»","Cannot move note to \"%s\" notebook":"No se ha podido mover la nota a la libreta «%s»","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"El editor que se usará para abrir una nota. Se intentará auto-detectar el editor predeterminado si no se proporciona ninguno.","Language":"Idioma","Date format":"Formato de fecha","Time format":"Formato de hora","Theme":"Tema","Light":"Claro","Dark":"Oscuro","Uncompleted to-dos on top":"Mostrar tareas incompletas al inicio de las listas","Sort notes by":"Ordenar notas por","Reverse sort order":"Invierte el orden","Save geo-location with notes":"Guardar geolocalización en las notas","When creating a new to-do:":"Al crear una nueva lista de tareas:","Focus title":"Foco en el título","Focus body":"Foco en el cuerpo","When creating a new note:":"Cuando se crear una nota nueva:","Show tray icon":"Mostrar icono en la bandeja","Global zoom percentage":"Establecer el porcentaje de aumento de la aplicación","Editor font family":"Fuente del editor","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"El nombre de la fuente no se comprobado. Si es incorrecto o está vacío, se utilizará una fuente genérica monoespaciada.","Automatically update the application":"Actualizar la aplicación automáticamente","Synchronisation interval":"Intervalo de sincronización","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opciones avanzadas","Synchronisation target":"Destino de sincronización","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"El destino de la sincronización. Cada destino de la sincronización puede tener parámetros adicionales los cuales son llamados como `sync.NUM.NAME` (todos abajo documentados).","Directory to synchronise with (absolute path)":"Directorio con el que sincronizarse (ruta completa)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"La ruta a la que sincronizar cuando se activa la sincronización con sistema de archivos. Vea «sync.target».","Nextcloud WebDAV URL":"Servidor WebDAV de Nextcloud","Nextcloud username":"Usuario de Nextcloud","Nextcloud password":"Contraseña de Nextcloud","WebDAV URL":"Servidor WebDAV","WebDAV username":"Usuario de WebDAV","WebDAV password":"Contraseña de WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Opción inválida: «%s». Los valores posibles son: %s.","Joplin Export File":"Archivo de exportación de Joplin","Markdown":"Markdown","Joplin Export Directory":"Directorio para exportar de Joplin","Evernote Export File":"Archivo exportado de Evernote","Cannot load \"%s\" module for format \"%s\"":"No se puede cargar el módulo \"%s\" para el formato \"%s\"","Please specify import format for %s":"Por favor especifique el formato para importar de %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"El elemento se encuentra cifrado: %s \"%s\". Por favor espere a que todos los elementos estén descifrados y pruebe de nuevo.","There is no data to export.":"No hay datos para exportar.","Please specify the notebook where the notes should be imported to.":"Por favor especifique la libreta donde las notas deben ser importadas.","Items that cannot be synchronised":"Elementos que no se pueden sincronizar","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Estos elementos se mantendrán en el dispositivo pero no serán enviados al destino de sincronización. Para encontrar dichos elementos busca en el título o en el ID (el cual se muestra arriba entre corchetes).","Sync status (synced items / total items)":"Estado de sincronización (elementos sincronizados/elementos totales)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Conflictos: %d","To delete: %d":"Borrar: %d","Folders":"Carpetas","%s: %d notes":"%s: %d notas","Coming alarms":"Alarmas próximas","On %s: %s":"En %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"No hay notas. Cree una pulsando en el botón (+).","Delete these notes?":"¿Desea borrar estas notas?","Log":"Log","Export Debug Report":"Exportar informe de depuración","Encryption Config":"Configuración de cifrado","Configuration":"Configuración","Move to notebook...":"Mover a la libreta...","Move %d notes to notebook \"%s\"?":"¿Desea mover %d notas a libreta «%s»?","Press to set the decryption password.":"Presione para establecer la contraseña de descifrado.","Select date":"Seleccione fecha","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronización","Joplin website":"","Master Key %s":"Clave maestra %s","Created: %s":"Creado: %s","Password:":"Contraseña:","Password cannot be empty":"La contraseña no puede estar vacía","Enable":"Habilitado","The notebook could not be saved: %s":"No se ha podido guardar esta libreta: %s","Edit notebook":"Editar libreta","Show all":"Mostrar todo","Errors only":"Solo errores","This note has been modified:":"Esta nota ha sido modificada:","Save changes":"Guardar cambios","Discard changes":"Descartar cambios","Unsupported image type: %s":"Tipo de imagen no soportado: %s","Attach photo":"Adjuntar foto","Attach any file":"Adjuntar cualquier archivo","Convert to note":"Convertir a nota","Convert to todo":"Convertir a lista de tareas","Hide metadata":"Ocultar metadatos","Show metadata":"Mostrar metadatos","View on map":"Ver en un mapa","Delete notebook":"Borrar libreta","Login with OneDrive":"Acceder con OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Pulse en el botón (+) para crear una nueva nota o libreta. Pulse en el menú lateral para acceder a las libretas existentes.","You currently have no notebook. Create one by clicking on (+) button.":"No hay ninguna libreta. Cree una nueva libreta pulsando en el botón (+).","Welcome":"Bienvenido"} \ No newline at end of file diff --git a/ElectronClient/app/locales/eu.json b/ElectronClient/app/locales/eu.json index 96a2df09c7..6f9ede9d6c 100644 --- a/ElectronClient/app/locales/eu.json +++ b/ElectronClient/app/locales/eu.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Etiketa ezabatzeko, kendu etiketa duten oharrei","Please select the note or notebook to be deleted first.":"Aurretik aukeratu ezabatzeko oharra edo koadernoa, mesedez.","Press Ctrl+D or type \"exit\" to exit the application":"Sakatu Ktrl+D edo idatzi \"exit\" aplikaziotik irteteko","More than one item match \"%s\". Please narrow down your query.":"Elementu bat baino gehiago bat dator \"%s\" bilaketarekin. Mugatu zure bilaketa, mesedez.","No notebook selected.":"Ez dago koadernorik aukeratuta","No notebook has been specified.":"Ez dago koadernorik aukeratuta.","Y":"B","n":"e","N":"E","y":"b","Cancelling background synchronisation... Please wait.":"Atzeko sinkronizazioa uzten... Mesedez itxaron.","No such command: %s":"Ez dago komandorik: %s","The command \"%s\" is only available in GUI mode":"\"%s\" komandoa soilik eskuragarri GUI moduan","Cannot change encrypted item":"Ezinezkoa zifratutako itema aldatzea","Missing required argument: %s":"Beharrezko argumentua faltan: %s","%s: %s":"%s: %s","Your choice: ":"Zure aukera:","Invalid answer: %s":"Erantzun baliogabea: %s","Attaches the given file to the note.":"Erantsi fitxategia notan","Cannot find \"%s\".":"Ezin aurkitu \"%s\"","Displays the given note.":"Oharra erakutsi","Displays the complete information about note.":"Erakutsi oharrari buruzko informazio guztia.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Konfigurazio balioa hartu edo ezartzen du. Baldin eta [balioa] ez bada ematen, [izena]ren balioa erakutsiko du. Ez bada ematen [izena] ez [balioa], oraingo konfigurazioaren zerrenda erakutsiko da.","Also displays unset and hidden config variables.":"Ezkutuko edo zehaztu gabeko konfigurazio aldagaiak ere erakusten ditu.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"rekin bat datozen oharrak [koaderno]ra kopiatzen ditu. Koadernorik ez bada zehazten, oharra oraingo koadernoan bikoiztuko da","Marks a to-do as done.":"Markatu zeregina egindakotzat.","Note is not a to-do: \"%s\"":"Oharra ez da zeregina: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"E2EEren konfigurazioa erabiltzen du. Komandoak dira `enable`, `disable`, `decrypt`, `status` eta `target-status`.","Enter master password:":"Sartu pasahitz nagusia:","Operation cancelled":" Eragiketa utzita","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Deszifratzearen hasiera... Mesedez itxaron, prozesua luzea izan daiteke, zenbat dagoen prozesatzeko.","Completed decryption.":"Deszifratuta.","Enabled":"Gaituta","Disabled":"Desgaituta","Encryption is: %s":"Zifratzea da: %s","Edit note.":"Oharra editatu.","No text editor is defined. Please set it using `config editor `":"Testu editorerik ez dago definituta. Egin hau erabilita, mesedez: `config editor `","No active notebook.":"Ez dago koadernorik aukeratuta.","Note does not exist: \"%s\". Create it?":"Ez dago oharrik: \"%s\". Sortu?","Starting to edit note. Close the editor to get back to the prompt.":"Oharra editatzearen hasiera. Itxi editorea prompt-era bueltatzeko.","Error opening note in editor: %s":"Errorea editorean oharra zabaltzean: %s","Note has been saved.":"Oharra gorde da.","Exits the application.":"Irten aplikaziotik.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Esportatu emandako oharra soilik.","Exports only the given notebook.":"Esportatu emandako koadernoa soilik.","Displays a geolocation URL for the note.":"Erakutsi URL geolokalizazioa oharrean.","Displays usage information.":"Erakutsi erabilera datuak.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"CLI moduan ez dago lasterbiderik erabilgarri.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Idatzi `help [command]` komandoari buruzko informazio gehiagorako; edo idatzi `help all` erabilerari buruzko informazio osoa lortzeko.","The possible commands are:":"Litezkeen komandoak hauek dira:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Edozein komandotan, oharra edo koadernoari erreferentzia egin ahal zaio izenburuz edo ID erabilita, edo `$n` edo `$b` lasterbideak erabilita, aukeratuta dagoen oharra edo koadernoa erabiltzeko. `$c` ere erabil daiteke aukeratutako elementua erabiltzeko.","To move from one pane to another, press Tab or Shift+Tab.":"Panel batetik bestera mugitzeko, sakatu Tab edo Shifft + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Erabili geziak edo page up/down list eta testu guneen artean aldatzeko (kontsola hau ere kontuan izanda).","To maximise/minimise the console, press \"TC\".":"Kontsola maximizatu edo minimizatzeko, saka \"TC\" .","To enter command line mode, press \":\"":"Komando lerroa sartzeko, idatzi \":\"","To exit command line mode, press ESCAPE":"Komando lerrotik irteteko, sakatu ESC, mesedez","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Ez galdetu berresteko.","Found: %d.":"Aurkitua: %d","Created: %d.":"Sortuta: %d.","Updated: %d.":"Eguneratuta: %d.","Skipped: %d.":"Saltatuta: %d.","Resources: %d.":"Baliabideak: %d.","Tagged: %d.":"Etiketatuta: %d.","Importing notes...":"Oharrak inportatzen...","The notes have been imported: %s":"Oharrak inportatu dira: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Oraingo koadernoko oharrak erakusten ditu. Erabili `ls /` koadernoen zerrenda erakusteko.","Displays only the first top notes.":"Erakusten ditu soilik gorengo oharrak.","Sorts the item by (eg. title, updated_time, created_time).":"Itemak antolatzen ditu arabera (esate baterako, izenburua, eguneratze_unea, sortze_unea).","Reverses the sorting order.":"Alderantziz antolatzen du.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Zehaztutako item motak baino ez du erakusten. Izan daiteke `n` oharretarako, `t` zereginetarako, edo `nt` ohar eta zereginetarako (esate batrako, `-tt` zereginak erakutsiko ditu soilik, `-ttd` berriz zereginak eta oharrak.","Either \"text\" or \"json\"":"Either \"text\" or \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Zerrenda luzearen formatua erabili. Formatua hau da, ID, NOTE_COUNT (libururako), DATE, TODO_CHECKED (zereginetarako), TITLE","Please select a notebook first.":"Aurretik aukeratu formatua, mesedez.","Creates a new notebook.":"Koaderno berria sortzen du.","Creates a new note.":"Ohar berria sortzen du.","Notes can only be created within a notebook.":"Oharrak soilik sor daitezke koaderno baten barruan.","Creates a new to-do.":"Zeregin berria sortu.","Moves the notes matching to [notebook].":"Oharrak eramaten ditu bilatuta [notebook]era.","Renames the given (note or notebook) to .":"Ber izendatu emandako (oharra edo koadernoa) izen berriaz.","Deletes the given notebook.":"Ezabatu emandako koadernoak.","Deletes the notebook without asking for confirmation.":"Ezabatu koadernoak berrespenik gabe.","Delete notebook? All notes within this notebook will also be deleted.":"Koadernoa ezabatu? Dituen ohar guztiak ere ezabatuko dira.","Deletes the notes matching .":"Ezabatu bat datozen oharrak: .","Deletes the notes without asking for confirmation.":"Ezabatu oharrak berrespenik eskatu gabe.","%d notes match this pattern. Delete them?":"%d oharrak bat datoz ereduarekin. Ezabatu nahi dituzu?","Delete note?":"Oharra ezabatu?","Searches for the given in all the notes.":"Emandako bilatzen du ohar guztietan.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Emandako ren ezaugarrian emandako [value] balioa ezartzen du. Litezkeen ezaugarriak dira:\n\n%s","Displays summary about the notes and notebooks.":"Oharren eta koadernoen laburpena erakusten du.","Synchronises with remote storage.":"Urruneko biltegiarekin sinkronizatzen du.","Sync to provided target (defaults to sync.target config value)":"Sync to provided target (defaults to sync.target config value)","Authentication was not completed (did not receive an authentication token).":"Autentifikazioa ez da egin osorik (ez du token-ik hartu).","Not authentified with %s. Please provide any missing credentials.":"Ez da autentifikatu %s -rekin. Eman galdutako kredentzialak.","Synchronisation is already in progress.":"Sinkronizazio prozesua dagoeneko abian da.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Giltzatzeko fitxategia dagoeneko eutsita dagoeneko. Baldin eta badakizu ez dena sinkronizaziorik egiten ari, ken dezakezu giltzatzeko fitxategia \"%s\"-n eta berrekin eragiketari.","Synchronisation target: %s (%s)":"Sinkronizazio helburua: %s (%s)","Cannot initialize synchroniser.":"Ezin has daiteke sinkronizazio prozesua.","Starting synchronisation...":"Sinkronizazioa hasten...","Cancelling... Please wait.":"Bertan behera uzten... itxaron, mesedez."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" izan daiteke \"add\", \"remove\" edo \"list\" [oharra]tik [etiketa] esleitu edo kentzeko, edo [etiketa]rekin elkartutako oharrak zerrendatzeko. Etiketa guztiak zerrendatzeko `tag list` komandoa erabil daiteke. ","Invalid command: \"%s\"":"Komando baliogabea: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" erabil daiteke \"txandakatzeko\" edo \"garbitzeko\". Erabili \"txandakatu\", emandako zeregina txandakatzeko bete ala ez-betea txandaketzeko (helburua ohar arrunta bada, zeregin bihurtuko da. Erabili \"garbitu\" zeregina ohar arrunt bilakatzeko.","Marks a to-do as non-completed.":"Markatu zeregina betegabe moduan.","Switches to [notebook] - all further operations will happen within this notebook.":"Aldatu [koaderno]ra - hurrengo eragiketak koaderno horretan jazoko dira.","Displays version information":"Erakutsi bertsioko informazioa","%s %s (%s)":"%s %s (%s)","Enum":"Zenbakitu","Type: %s.":"Idatz: %s.","Possible values: %s.":"Litezkeen balioak: %s.","Default: %s":"Lehenetsia: %s","Possible keys/values:":"Litezkeen balioak:","Fatal error:":"Aio! Agur! :_( ","The application has been authorised - you may now close this browser tab.":"Aplikazioak baimena hartu du - Orain fitxa hau zarratu dezakezu.","The application has been successfully authorised.":"Aplikazioak baimena hartu du.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.","Search:":"Bilatu:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Ongi etorri Joplin-era!\n\nIdatz `:help shortcuts` lasterbideak ikusteko, edo soilik `:help`erabilerako informaziorako.\n\nEsate baterako, koadernoa sortzeko sakatu `mb`: oharra sortzeko sakatu `mn`","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Item bat edo gehiago orain zifratuta daude eta baliteke zuk pasahitz nagusia ordezkatu behar izatea. Horixe egiteko, mesedez, idatz `e2ee decrypt`. Dagoeneko pasahitza ordezkatua baduzu, itemak deszifratzen ari izango dira atzeko planoan eta laster izango dira eskuragarri.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Fitxategia","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Ohar berria","New to-do":"Zeregin berria","New notebook":"Koaderno berria","Import":"Inportatu","Export":"Export","Hide %s":"","Quit":"Irten","Edit":"Editatu","Copy":"Kopiatu","Cut":"Moztu","Paste":"Itsatsi","Search in all the notes":"Bilatu ohar guztietan","View":"","Toggle editor layout":"","Tools":"Tresnak","Synchronisation status":"Sinkronizazioaren egoera","Encryption options":"Zifratzeko aukerak","General Options":"Ezarpenak","Help":"Laguntza","Website and documentation":"Web orria eta dokumentazioa (en)","Check for updates...":"","About Joplin":"Joplin-i buruz","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Utzi","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Oharrak eta ezarpenak hemen daude gordeta: %s","Save":"Gorde","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Zifratua desgaitzeak esan nahi du zure ohar eta eranskin *guztiak* berriro deszifratuta sinkronizatuko eta bidaliko direla sinkronizazio helburura. Segitu nahi duzu?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Zifratua gaitzeak esan nahi du zure ohar eta eranskin *guztiak* zifratuta sinkronizatuko eta bidaliko direla sinkronizazio helburura. Ez galdu pasahitza, bera izango baita datuak deszifratzeko bide *bakarra*! Zifratua baimentzeko, mesedez, aurretik sartu zure pasahitza.","Disable encryption":"Zifratzea desgaitu","Enable encryption":"Zifratua gaitu","Master Keys":"Pasahitz nagusia","Active":"Aktibo","ID":"ID","Source":"Iturburua","Created":"Sortua","Updated":"Eguneratua","Password":"Pasahitza","Password OK":"Pasahitza ondo","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Egoera","Encryption is:":"Zifratua da:","Back":"Atzera","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"\"%s\" koaderno berria sortuko da eta \"%s\" Fitxategia inportatuko da bertara","Please create a notebook first.":"Aurretik sortu koadernoa, mesedez.","Please create a notebook first":"Aurretik sortu koadernoa, mesedez","Notebook title:":"Koadernoaren izenburua: ","Add or remove tags:":"Gehitu edo ezabatu etiketak:","Separate each tag by a comma.":"Banatu etiketak koma erabiliaz.","Rename notebook:":"Berrizendatu koadernoa:","Set alarm:":"Ezarri alarma:","Search":"Bilatu","Layout":"Diseinua","Some items cannot be synchronised.":"Zenbait item ezin dira sinkronizatu.","View them now":"Ikusi hori orain","Some items cannot be decrypted.":"Zenbait item ezin dira deszifratu.","Set the password":"Ezarri pasahitza","Add or remove tags":"Gehitu edo ezabatu etiketak","Switch between note and to-do type":"Aldatu oharra eta zeregin eren artean.","Delete":"Ezabatu","Delete notes?":"Oharrak ezabatu?","No notes in here. Create one by clicking on \"New note\".":"Hemen ez dago oharrik. Sortu bat \"Ohar berria\" sakatuta.","There is currently no notebook. Create one by clicking on \"New notebook\".":"Momentuz ez dago koadernorik. Sortu bat \"Koaderno berria\" sakatuta.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Esteka edo mezu ez dago onartua: %s","Attach file":"Erantsi fitxategia","Tags":"Etiketak","Set alarm":"Ezarri alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Refresh","Clear":"Garbitu","OneDrive Login":"Logeatu OneDriven","Options":"Aukerak","Synchronisation Status":"Sinkronizazioaren egoera","Encryption Options":"Zifratzeko aukerak","Remove this tag from all the notes?":"Kendu etiketa hori ohar guztietatik?","Remove this search from the sidebar?":"Kendu bilaketa hori ohar guztietatik?","Rename":"Berrizendatu","Synchronise":"Sinkronizatu","Notebooks":"Koadernoak","Searches":"Bilaketak","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Erabili: %s","Unknown flag: %s":"Marka ezezaguna: %s","File system":"Fitxategi sistema","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (aprobetarako soilik)","WebDAV":"WebDAV","Unknown log level: %s":"Egunkari maila ezezaguna: %s","Unknown level ID: %s":"IDa maila ezezaguna: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Tokena ezin eguneratu daiteke: egiaztatze-datuak desagertuta daude. Agian, berriro sinkronizatzeak arazoa konpon lezake.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.","Cannot access %s":"Ezin atzituta %s","Created local items: %d.":"Item lokalak sortuta: %d.","Updated local items: %d.":"Item lokalak eguneratuta: %d.","Created remote items: %d.":"Urruneko itemak sortuta: %d.","Updated remote items: %d.":"Urruneko itemak eguneratuta: %d.","Deleted local items: %d.":"Item lokala ezabatuta: %d.","Deleted remote items: %d.":"Urruneko itemak ezabatuta: %d.","Fetched items: %d/%d.":"Itemak eskuratuta: %d%d.","State: \"%s\".":"Egoera: \"%s\".","Cancelling...":"Bertan behera uzten...","Completed: %s":"Osatuta: %s","Synchronisation is already in progress. State: %s":"Sinkronizazioa hasita dago. Egoera: %s","Encrypted":"Zifratuta","Encrypted items cannot be modified":"Zifratutako itemak ezin aldatu daitezke","Conflicts":"Gatazkak","A notebook with this title already exists: \"%s\"":"Dagoeneko bada koaderno bat izen horrekin: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Koadernoak ezin izendatu daitezke \"%s\", izen hori Joplinek gordeta dauka","Untitled":"Titulu gabekoa","This note does not have geolocation information.":"Ohar honek ez du geokokapen informaziorik.","Cannot copy note to \"%s\" notebook":"Ezin kopia daiteke oharra \"%s\" koadernora","Cannot move note to \"%s\" notebook":"Ezin eraman daiteke oharra \"%s\" koadernora","Text editor":"Testu editorea","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Editorea erabiliko da oharra zabaltzeko. Ez badago zehaztutakorik lehenetsia igartzen ahaleginduko da.","Language":"Hizkuntza","Date format":"Data-formatua","Time format":"Ordu formatua","Theme":"Gaia","Light":"Argia","Dark":"Iluna","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Gore geokokapena oharrekin","When creating a new to-do:":"When creating a new to-do:","Focus title":"","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Automatikoki eguneratu aplikazioa","Synchronisation interval":"Sinkronizazio tartea","%d minutes":"%d minutuak","%d hour":"% ordua","%d hours":"% orduak","Show advanced options":"Erakutsi aukera aurreratuak","Synchronisation target":"Sinkronizazio helbudua","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Sinkronizazio helburua. Sinkronizazio aukera bakoitzak izan ditzake parametro gehigarriak, horrela izendatuta `sync.NUM.NAME` (dena beherago dokumentatuta).","Directory to synchronise with (absolute path)":"Sinkronizatzeko direktorioa (bide-izena osorik)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Sinkronizazio sistema gaituta dagoenerako bide-izena. Ikus `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Nextcloud erabiltzaile-izena","Nextcloud password":"Nextcloud pasahitza","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV username","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Balio aukera baliogabea: \"%s\". Litezkeen balioak: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Itemok ezin sinkronizatu","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Itemok gailuan geratuko dira baina ez dira sinkronizatuko. Horiek aurkitzeko bilaketak egin titulu edo goiko parentesien arteko IDaren arabera.","Sync status (synced items / total items)":"Sinkronizazio egoera (sinkronizatutako itemak/itemak guztira)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Denera: %d/%d","Conflicted: %d":"Gatazkatsua: %d","To delete: %d":"Ezabatzeko: %d","Folders":"Karpetak","%s: %d notes":"%s: %d oharrak","Coming alarms":"Hurrengo alarmak","On %s: %s":"On %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Ez dago oharrik. Sortu bat (+) botoian klik eginaz.","Delete these notes?":"Oharrok ezabatu?","Log":"Egunkaria","Export Debug Report":"Esportatu arazketa txostena","Encryption Config":"Zifratze Ezarpenak","Configuration":"Konfigurazioa","Move to notebook...":"Mugitu ... koadernora","Move %d notes to notebook \"%s\"?":"Mugitu %d oharrak \"%s\" koadernora?","Press to set the decryption password.":"Sakatu deszifratze pasahitza ezartzeko.","Select date":"Data aukeratu","Confirm":"Baieztatu","Cancel synchronisation":"Sinkronizazioa utzi","Master Key %s":"Pasahitz Nagusia %s","Created: %s":"Sortuta: %s","Password:":"Pasahitza:","Password cannot be empty":"Pasahitza ezin utz daiteke hutsik","Enable":"Gaituta","The notebook could not be saved: %s":"Koadernoa ezin gorde daiteke: %s","Edit notebook":"Editatu koadernoa","Show all":"","Errors only":"","This note has been modified:":"Ohar hau mugitua izan da:","Save changes":"Gorde aldaketak","Discard changes":"Bertan behera utzi aldaketak","Unsupported image type: %s":"Irudi formatua ez onartua: %s","Attach photo":"Argazkia erantsi","Attach any file":"Erantsi fitxategiren bat","Convert to note":"Oharra bihurtu","Convert to todo":"Zeregina bihurtu","Hide metadata":"Ezkutatu metadatuak","Show metadata":"Erakutsi metadatuak","View on map":"Ikusi mapan","Delete notebook":"Ezabatu koadernoa","Login with OneDrive":"Login with OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Sakatu (+) botoian ohar edo koaderno berria sortzeko. Klik alboko menuan dagoeneko badiren koadernoak.","You currently have no notebook. Create one by clicking on (+) button.":"Oraindik ez duzu koadernorik. Sortu bat (+) botoian sakatuta.","Welcome":"Ongi etorri!"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Etiketa ezabatzeko, kendu etiketa duten oharrei","Please select the note or notebook to be deleted first.":"Aurretik aukeratu ezabatzeko oharra edo koadernoa, mesedez.","Press Ctrl+D or type \"exit\" to exit the application":"Sakatu Ktrl+D edo idatzi \"exit\" aplikaziotik irteteko","More than one item match \"%s\". Please narrow down your query.":"Elementu bat baino gehiago bat dator \"%s\" bilaketarekin. Mugatu zure bilaketa, mesedez.","No notebook selected.":"Ez dago koadernorik aukeratuta","No notebook has been specified.":"Ez dago koadernorik aukeratuta.","Y":"B","n":"e","N":"E","y":"b","Cancelling background synchronisation... Please wait.":"Atzeko sinkronizazioa uzten... Mesedez itxaron.","No such command: %s":"Ez dago komandorik: %s","The command \"%s\" is only available in GUI mode":"\"%s\" komandoa soilik eskuragarri GUI moduan","Cannot change encrypted item":"Ezinezkoa zifratutako itema aldatzea","Missing required argument: %s":"Beharrezko argumentua faltan: %s","%s: %s":"%s: %s","Your choice: ":"Zure aukera:","Invalid answer: %s":"Erantzun baliogabea: %s","Attaches the given file to the note.":"Erantsi fitxategia notan","Cannot find \"%s\".":"Ezin aurkitu \"%s\"","Displays the given note.":"Oharra erakutsi","Displays the complete information about note.":"Erakutsi oharrari buruzko informazio guztia.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Konfigurazio balioa hartu edo ezartzen du. Baldin eta [balioa] ez bada ematen, [izena]ren balioa erakutsiko du. Ez bada ematen [izena] ez [balioa], oraingo konfigurazioaren zerrenda erakutsiko da.","Also displays unset and hidden config variables.":"Ezkutuko edo zehaztu gabeko konfigurazio aldagaiak ere erakusten ditu.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"rekin bat datozen oharrak [koaderno]ra kopiatzen ditu. Koadernorik ez bada zehazten, oharra oraingo koadernoan bikoiztuko da","Marks a to-do as done.":"Markatu zeregina egindakotzat.","Note is not a to-do: \"%s\"":"Oharra ez da zeregina: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"E2EEren konfigurazioa erabiltzen du. Komandoak dira `enable`, `disable`, `decrypt`, `status` eta `target-status`.","Enter master password:":"Sartu pasahitz nagusia:","Operation cancelled":" Eragiketa utzita","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Deszifratzearen hasiera... Mesedez itxaron, prozesua luzea izan daiteke, zenbat dagoen prozesatzeko.","Completed decryption.":"Deszifratuta.","Enabled":"Gaituta","Disabled":"Desgaituta","Encryption is: %s":"Zifratzea da: %s","Edit note.":"Oharra editatu.","No text editor is defined. Please set it using `config editor `":"Testu editorerik ez dago definituta. Egin hau erabilita, mesedez: `config editor `","No active notebook.":"Ez dago koadernorik aukeratuta.","Note does not exist: \"%s\". Create it?":"Ez dago oharrik: \"%s\". Sortu?","Starting to edit note. Close the editor to get back to the prompt.":"Oharra editatzearen hasiera. Itxi editorea prompt-era bueltatzeko.","Error opening note in editor: %s":"Errorea editorean oharra zabaltzean: %s","Note has been saved.":"Oharra gorde da.","Exits the application.":"Irten aplikaziotik.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Esportatu emandako oharra soilik.","Exports only the given notebook.":"Esportatu emandako koadernoa soilik.","Displays a geolocation URL for the note.":"Erakutsi URL geolokalizazioa oharrean.","Displays usage information.":"Erakutsi erabilera datuak.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"CLI moduan ez dago lasterbiderik erabilgarri.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Idatzi `help [command]` komandoari buruzko informazio gehiagorako; edo idatzi `help all` erabilerari buruzko informazio osoa lortzeko.","The possible commands are:":"Litezkeen komandoak hauek dira:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Edozein komandotan, oharra edo koadernoari erreferentzia egin ahal zaio izenburuz edo ID erabilita, edo `$n` edo `$b` lasterbideak erabilita, aukeratuta dagoen oharra edo koadernoa erabiltzeko. `$c` ere erabil daiteke aukeratutako elementua erabiltzeko.","To move from one pane to another, press Tab or Shift+Tab.":"Panel batetik bestera mugitzeko, sakatu Tab edo Shifft + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Erabili geziak edo page up/down list eta testu guneen artean aldatzeko (kontsola hau ere kontuan izanda).","To maximise/minimise the console, press \"TC\".":"Kontsola maximizatu edo minimizatzeko, saka \"TC\" .","To enter command line mode, press \":\"":"Komando lerroa sartzeko, idatzi \":\"","To exit command line mode, press ESCAPE":"Komando lerrotik irteteko, sakatu ESC, mesedez","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Ez galdetu berresteko.","Found: %d.":"Aurkitua: %d","Created: %d.":"Sortuta: %d.","Updated: %d.":"Eguneratuta: %d.","Skipped: %d.":"Saltatuta: %d.","Resources: %d.":"Baliabideak: %d.","Tagged: %d.":"Etiketatuta: %d.","Importing notes...":"Oharrak inportatzen...","The notes have been imported: %s":"Oharrak inportatu dira: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Oraingo koadernoko oharrak erakusten ditu. Erabili `ls /` koadernoen zerrenda erakusteko.","Displays only the first top notes.":"Erakusten ditu soilik gorengo oharrak.","Sorts the item by (eg. title, updated_time, created_time).":"Itemak antolatzen ditu arabera (esate baterako, izenburua, eguneratze_unea, sortze_unea).","Reverses the sorting order.":"Alderantziz antolatzen du.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Zehaztutako item motak baino ez du erakusten. Izan daiteke `n` oharretarako, `t` zereginetarako, edo `nt` ohar eta zereginetarako (esate batrako, `-tt` zereginak erakutsiko ditu soilik, `-ttd` berriz zereginak eta oharrak.","Either \"text\" or \"json\"":"Either \"text\" or \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Zerrenda luzearen formatua erabili. Formatua hau da, ID, NOTE_COUNT (libururako), DATE, TODO_CHECKED (zereginetarako), TITLE","Please select a notebook first.":"Aurretik aukeratu formatua, mesedez.","Creates a new notebook.":"Koaderno berria sortzen du.","Creates a new note.":"Ohar berria sortzen du.","Notes can only be created within a notebook.":"Oharrak soilik sor daitezke koaderno baten barruan.","Creates a new to-do.":"Zeregin berria sortu.","Moves the notes matching to [notebook].":"Oharrak eramaten ditu bilatuta [notebook]era.","Renames the given (note or notebook) to .":"Ber izendatu emandako (oharra edo koadernoa) izen berriaz.","Deletes the given notebook.":"Ezabatu emandako koadernoak.","Deletes the notebook without asking for confirmation.":"Ezabatu koadernoak berrespenik gabe.","Delete notebook? All notes within this notebook will also be deleted.":"Koadernoa ezabatu? Dituen ohar guztiak ere ezabatuko dira.","Deletes the notes matching .":"Ezabatu bat datozen oharrak: .","Deletes the notes without asking for confirmation.":"Ezabatu oharrak berrespenik eskatu gabe.","%d notes match this pattern. Delete them?":"%d oharrak bat datoz ereduarekin. Ezabatu nahi dituzu?","Delete note?":"Oharra ezabatu?","Searches for the given in all the notes.":"Emandako bilatzen du ohar guztietan.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Emandako ren ezaugarrian emandako [value] balioa ezartzen du. Litezkeen ezaugarriak dira:\n\n%s","Displays summary about the notes and notebooks.":"Oharren eta koadernoen laburpena erakusten du.","Synchronises with remote storage.":"Urruneko biltegiarekin sinkronizatzen du.","Sync to provided target (defaults to sync.target config value)":"Sync to provided target (defaults to sync.target config value)","Authentication was not completed (did not receive an authentication token).":"Autentifikazioa ez da egin osorik (ez du token-ik hartu).","Not authentified with %s. Please provide any missing credentials.":"Ez da autentifikatu %s -rekin. Eman galdutako kredentzialak.","Synchronisation is already in progress.":"Sinkronizazio prozesua dagoeneko abian da.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Giltzatzeko fitxategia dagoeneko eutsita dagoeneko. Baldin eta badakizu ez dena sinkronizaziorik egiten ari, ken dezakezu giltzatzeko fitxategia \"%s\"-n eta berrekin eragiketari.","Synchronisation target: %s (%s)":"Sinkronizazio helburua: %s (%s)","Cannot initialize synchroniser.":"Ezin has daiteke sinkronizazio prozesua.","Starting synchronisation...":"Sinkronizazioa hasten...","Cancelling... Please wait.":"Bertan behera uzten... itxaron, mesedez."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" izan daiteke \"add\", \"remove\" edo \"list\" [oharra]tik [etiketa] esleitu edo kentzeko, edo [etiketa]rekin elkartutako oharrak zerrendatzeko. Etiketa guztiak zerrendatzeko `tag list` komandoa erabil daiteke. ","Invalid command: \"%s\"":"Komando baliogabea: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" erabil daiteke \"txandakatzeko\" edo \"garbitzeko\". Erabili \"txandakatu\", emandako zeregina txandakatzeko bete ala ez-betea txandaketzeko (helburua ohar arrunta bada, zeregin bihurtuko da. Erabili \"garbitu\" zeregina ohar arrunt bilakatzeko.","Marks a to-do as non-completed.":"Markatu zeregina betegabe moduan.","Switches to [notebook] - all further operations will happen within this notebook.":"Aldatu [koaderno]ra - hurrengo eragiketak koaderno horretan jazoko dira.","Displays version information":"Erakutsi bertsioko informazioa","%s %s (%s)":"%s %s (%s)","Enum":"Zenbakitu","Type: %s.":"Idatz: %s.","Possible values: %s.":"Litezkeen balioak: %s.","Default: %s":"Lehenetsia: %s","Possible keys/values:":"Litezkeen balioak:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Aio! Agur! :_( ","The application has been authorised - you may now close this browser tab.":"Aplikazioak baimena hartu du - Orain fitxa hau zarratu dezakezu.","The application has been successfully authorised.":"Aplikazioak baimena hartu du.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.","Search:":"Bilatu:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Ongi etorri Joplin-era!\n\nIdatz `:help shortcuts` lasterbideak ikusteko, edo soilik `:help`erabilerako informaziorako.\n\nEsate baterako, koadernoa sortzeko sakatu `mb`: oharra sortzeko sakatu `mn`","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Item bat edo gehiago orain zifratuta daude eta baliteke zuk pasahitz nagusia ordezkatu behar izatea. Horixe egiteko, mesedez, idatz `e2ee decrypt`. Dagoeneko pasahitza ordezkatua baduzu, itemak deszifratzen ari izango dira atzeko planoan eta laster izango dira eskuragarri.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Fitxategia","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Ohar berria","New to-do":"Zeregin berria","New notebook":"Koaderno berria","Import":"Inportatu","Export":"Export","Hide %s":"","Quit":"Irten","Edit":"Editatu","Copy":"Kopiatu","Cut":"Moztu","Paste":"Itsatsi","Search in all the notes":"Bilatu ohar guztietan","View":"","Toggle editor layout":"","Tools":"Tresnak","Synchronisation status":"Sinkronizazioaren egoera","Encryption options":"Zifratzeko aukerak","General Options":"Ezarpenak","Help":"Laguntza","Website and documentation":"Web orria eta dokumentazioa (en)","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Joplin-i buruz","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Utzi","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Oharrak eta ezarpenak hemen daude gordeta: %s","Save":"Gorde","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Zifratua desgaitzeak esan nahi du zure ohar eta eranskin *guztiak* berriro deszifratuta sinkronizatuko eta bidaliko direla sinkronizazio helburura. Segitu nahi duzu?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Zifratua gaitzeak esan nahi du zure ohar eta eranskin *guztiak* zifratuta sinkronizatuko eta bidaliko direla sinkronizazio helburura. Ez galdu pasahitza, bera izango baita datuak deszifratzeko bide *bakarra*! Zifratua baimentzeko, mesedez, aurretik sartu zure pasahitza.","Disable encryption":"Zifratzea desgaitu","Enable encryption":"Zifratua gaitu","Master Keys":"Pasahitz nagusia","Active":"Aktibo","ID":"ID","Source":"Iturburua","Created":"Sortua","Updated":"Eguneratua","Password":"Pasahitza","Password OK":"Pasahitza ondo","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Egoera","Encryption is:":"Zifratua da:","Back":"Atzera","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"\"%s\" koaderno berria sortuko da eta \"%s\" Fitxategia inportatuko da bertara","Please create a notebook first.":"Aurretik sortu koadernoa, mesedez.","Please create a notebook first":"Aurretik sortu koadernoa, mesedez","Notebook title:":"Koadernoaren izenburua: ","Add or remove tags:":"Gehitu edo ezabatu etiketak:","Separate each tag by a comma.":"Banatu etiketak koma erabiliaz.","Rename notebook:":"Berrizendatu koadernoa:","Set alarm:":"Ezarri alarma:","Search":"Bilatu","Layout":"Diseinua","Some items cannot be synchronised.":"Zenbait item ezin dira sinkronizatu.","View them now":"Ikusi hori orain","Some items cannot be decrypted.":"Zenbait item ezin dira deszifratu.","Set the password":"Ezarri pasahitza","Add or remove tags":"Gehitu edo ezabatu etiketak","Switch between note and to-do type":"Aldatu oharra eta zeregin eren artean.","Delete":"Ezabatu","Delete notes?":"Oharrak ezabatu?","No notes in here. Create one by clicking on \"New note\".":"Hemen ez dago oharrik. Sortu bat \"Ohar berria\" sakatuta.","There is currently no notebook. Create one by clicking on \"New notebook\".":"Momentuz ez dago koadernorik. Sortu bat \"Koaderno berria\" sakatuta.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Esteka edo mezu ez dago onartua: %s","Attach file":"Erantsi fitxategia","Tags":"Etiketak","Set alarm":"Ezarri alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Refresh","Clear":"Garbitu","OneDrive Login":"Logeatu OneDriven","Options":"Aukerak","Synchronisation Status":"Sinkronizazioaren egoera","Encryption Options":"Zifratzeko aukerak","Remove this tag from all the notes?":"Kendu etiketa hori ohar guztietatik?","Remove this search from the sidebar?":"Kendu bilaketa hori ohar guztietatik?","Rename":"Berrizendatu","Synchronise":"Sinkronizatu","Notebooks":"Koadernoak","Searches":"Bilaketak","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Erabili: %s","Unknown flag: %s":"Marka ezezaguna: %s","File system":"Fitxategi sistema","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (aprobetarako soilik)","WebDAV":"WebDAV","Unknown log level: %s":"Egunkari maila ezezaguna: %s","Unknown level ID: %s":"IDa maila ezezaguna: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Tokena ezin eguneratu daiteke: egiaztatze-datuak desagertuta daude. Agian, berriro sinkronizatzeak arazoa konpon lezake.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.","Cannot access %s":"Ezin atzituta %s","Created local items: %d.":"Item lokalak sortuta: %d.","Updated local items: %d.":"Item lokalak eguneratuta: %d.","Created remote items: %d.":"Urruneko itemak sortuta: %d.","Updated remote items: %d.":"Urruneko itemak eguneratuta: %d.","Deleted local items: %d.":"Item lokala ezabatuta: %d.","Deleted remote items: %d.":"Urruneko itemak ezabatuta: %d.","Fetched items: %d/%d.":"Itemak eskuratuta: %d%d.","State: \"%s\".":"Egoera: \"%s\".","Cancelling...":"Bertan behera uzten...","Completed: %s":"Osatuta: %s","Synchronisation is already in progress. State: %s":"Sinkronizazioa hasita dago. Egoera: %s","Encrypted":"Zifratuta","Encrypted items cannot be modified":"Zifratutako itemak ezin aldatu daitezke","Conflicts":"Gatazkak","A notebook with this title already exists: \"%s\"":"Dagoeneko bada koaderno bat izen horrekin: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Koadernoak ezin izendatu daitezke \"%s\", izen hori Joplinek gordeta dauka","Untitled":"Titulu gabekoa","This note does not have geolocation information.":"Ohar honek ez du geokokapen informaziorik.","Cannot copy note to \"%s\" notebook":"Ezin kopia daiteke oharra \"%s\" koadernora","Cannot move note to \"%s\" notebook":"Ezin eraman daiteke oharra \"%s\" koadernora","Text editor":"Testu editorea","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Editorea erabiliko da oharra zabaltzeko. Ez badago zehaztutakorik lehenetsia igartzen ahaleginduko da.","Language":"Hizkuntza","Date format":"Data-formatua","Time format":"Ordu formatua","Theme":"Gaia","Light":"Argia","Dark":"Iluna","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Gore geokokapena oharrekin","When creating a new to-do:":"When creating a new to-do:","Focus title":"","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Automatikoki eguneratu aplikazioa","Synchronisation interval":"Sinkronizazio tartea","%d minutes":"%d minutuak","%d hour":"% ordua","%d hours":"% orduak","Show advanced options":"Erakutsi aukera aurreratuak","Synchronisation target":"Sinkronizazio helbudua","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Sinkronizazio helburua. Sinkronizazio aukera bakoitzak izan ditzake parametro gehigarriak, horrela izendatuta `sync.NUM.NAME` (dena beherago dokumentatuta).","Directory to synchronise with (absolute path)":"Sinkronizatzeko direktorioa (bide-izena osorik)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Sinkronizazio sistema gaituta dagoenerako bide-izena. Ikus `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Nextcloud erabiltzaile-izena","Nextcloud password":"Nextcloud pasahitza","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV username","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Balio aukera baliogabea: \"%s\". Litezkeen balioak: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Itemok ezin sinkronizatu","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Itemok gailuan geratuko dira baina ez dira sinkronizatuko. Horiek aurkitzeko bilaketak egin titulu edo goiko parentesien arteko IDaren arabera.","Sync status (synced items / total items)":"Sinkronizazio egoera (sinkronizatutako itemak/itemak guztira)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Denera: %d/%d","Conflicted: %d":"Gatazkatsua: %d","To delete: %d":"Ezabatzeko: %d","Folders":"Karpetak","%s: %d notes":"%s: %d oharrak","Coming alarms":"Hurrengo alarmak","On %s: %s":"On %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Ez dago oharrik. Sortu bat (+) botoian klik eginaz.","Delete these notes?":"Oharrok ezabatu?","Log":"Egunkaria","Export Debug Report":"Esportatu arazketa txostena","Encryption Config":"Zifratze Ezarpenak","Configuration":"Konfigurazioa","Move to notebook...":"Mugitu ... koadernora","Move %d notes to notebook \"%s\"?":"Mugitu %d oharrak \"%s\" koadernora?","Press to set the decryption password.":"Sakatu deszifratze pasahitza ezartzeko.","Select date":"Data aukeratu","Confirm":"Baieztatu","Cancel synchronisation":"Sinkronizazioa utzi","Joplin website":"","Master Key %s":"Pasahitz Nagusia %s","Created: %s":"Sortuta: %s","Password:":"Pasahitza:","Password cannot be empty":"Pasahitza ezin utz daiteke hutsik","Enable":"Gaituta","The notebook could not be saved: %s":"Koadernoa ezin gorde daiteke: %s","Edit notebook":"Editatu koadernoa","Show all":"","Errors only":"","This note has been modified:":"Ohar hau mugitua izan da:","Save changes":"Gorde aldaketak","Discard changes":"Bertan behera utzi aldaketak","Unsupported image type: %s":"Irudi formatua ez onartua: %s","Attach photo":"Argazkia erantsi","Attach any file":"Erantsi fitxategiren bat","Convert to note":"Oharra bihurtu","Convert to todo":"Zeregina bihurtu","Hide metadata":"Ezkutatu metadatuak","Show metadata":"Erakutsi metadatuak","View on map":"Ikusi mapan","Delete notebook":"Ezabatu koadernoa","Login with OneDrive":"Login with OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Sakatu (+) botoian ohar edo koaderno berria sortzeko. Klik alboko menuan dagoeneko badiren koadernoak.","You currently have no notebook. Create one by clicking on (+) button.":"Oraindik ez duzu koadernorik. Sortu bat (+) botoian sakatuta.","Welcome":"Ongi etorri!"} \ No newline at end of file diff --git a/ElectronClient/app/locales/fr_FR.json b/ElectronClient/app/locales/fr_FR.json index 6ecc808d82..712f8cc35f 100644 --- a/ElectronClient/app/locales/fr_FR.json +++ b/ElectronClient/app/locales/fr_FR.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Pour supprimer une vignette, enlever là des notes associées.","Please select the note or notebook to be deleted first.":"Veuillez d'abord sélectionner un carnet.","Press Ctrl+D or type \"exit\" to exit the application":"Appuyez sur Ctrl+D ou tapez \"exit\" pour sortir du logiciel","More than one item match \"%s\". Please narrow down your query.":"Plus d'un objet correspond à \"%s\". Veuillez préciser votre requête.","No notebook selected.":"Aucun carnet n'est sélectionné.","No notebook has been specified.":"Aucun carnet n'est spécifié.","Y":"O","n":"n","N":"N","y":"o","Cancelling background synchronisation... Please wait.":"Annulation de la synchronisation... Veuillez patienter.","No such command: %s":"Commande invalide : %s","The command \"%s\" is only available in GUI mode":"La commande \"%s\" est disponible uniquement en mode d'interface graphique","Cannot change encrypted item":"Un objet crypté ne peut pas être modifié","Missing required argument: %s":"Paramètre requis manquant : %s","%s: %s":"%s : %s","Your choice: ":"Votre choix : ","Invalid answer: %s":"Réponse invalide : %s","Attaches the given file to the note.":"Joindre le fichier fourni à la note.","Cannot find \"%s\".":"Impossible de trouver \"%s\".","Displays the given note.":"Affiche la note.","Displays the complete information about note.":"Affiche tous les détails de la note.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtient ou modifie une valeur de configuration. Si la [valeur] n'est pas fournie, la valeur de [nom] sera affichée. Si ni le [nom] ni la [valeur] ne sont fournis, la configuration complète sera affichée.","Also displays unset and hidden config variables.":"Afficher également les variables cachées.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Copier les notes correspondant à vers [carnet]. Si aucun carnet n'est spécifié, la note est dupliquée sur place.","Marks a to-do as done.":"Marquer la tâche comme complétée.","Note is not a to-do: \"%s\"":"La note n'est pas une tâche : \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Gérer la configuration E2EE (Cryptage de bout à bout). Les commandes sont `enable`, `disable`, `decrypt` et `status` et `target-status`.","Enter master password:":"Entrer le mot de passe maître :","Operation cancelled":"Opération annulée","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Démarrage du décryptage... Veuillez patienter car cela pourrait prendre plusieurs minutes selon le nombre d'objets à décrypter.","Completed decryption.":"Décryptage complété.","Enabled":"Activé","Disabled":"Désactivé","Encryption is: %s":"Le cryptage est : %s","Edit note.":"Éditer la note.","No text editor is defined. Please set it using `config editor `":"Aucun éditeur de texte n'est défini. Veuillez le définir en utilisant la commande `config editor `","No active notebook.":"Aucun carnet actif.","Note does not exist: \"%s\". Create it?":"Cette note n'existe pas : \"%s\". La créer ?","Starting to edit note. Close the editor to get back to the prompt.":"Édition de la note en cours. Fermez l'éditeur de texte pour retourner à l'invite de commande.","Error opening note in editor: %s":"Erreur lors de l'ouverture de la note dans l'éditeur de texte : %s","Note has been saved.":"La note a été enregistrée.","Exits the application.":"Quitter le logiciel.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporter les données de Joplin. Par défaut, la base de donnée complète sera exportée, y compris les carnets, notes, tags et ressources.","Destination format: %s":"Format de la destination : %s","Exports only the given note.":"Exporter uniquement la note spécifiée.","Exports only the given notebook.":"Exporter uniquement le carnet spécifié.","Displays a geolocation URL for the note.":"Afficher l'URL de l'emplacement de la note.","Displays usage information.":"Affiche les informations d'utilisation.","For information on how to customise the shortcuts please visit %s":"Pour personnaliser les raccourcis veuillez consulter la documentation à %s","Shortcuts are not available in CLI mode.":"Les raccourcis ne sont pas disponible en mode de ligne de commande.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Tapez `help [command]` pour plus d'information sur une commande ; ou tapez `help all` pour l'aide complète.","The possible commands are:":"Les commandes possibles sont :","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Dans une commande, une note ou carnet peut être référé par titre ou identifiant, ou en utilisant les raccourcis `$n` et `$b` pour, respectivement, la note sélectionnée et le carnet sélectionné. `$c` peut être utilisé pour faire référence à l'objet sélectionné en cours.","To move from one pane to another, press Tab or Shift+Tab.":"Pour aller d'un volet à l'autre, pressez Tab ou Maj+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Utilisez les touches fléchées et page précédente/suivante pour faire défiler les listes et zones de texte (y compris cette console).","To maximise/minimise the console, press \"TC\".":"Pour maximiser ou minimiser la console, pressez \"TC\".","To enter command line mode, press \":\"":"Pour démarrer le mode ligne de commande, pressez \":\"","To exit command line mode, press ESCAPE":"Pour sortir du mode ligne de commande, pressez ECHAP","For the list of keyboard shortcuts and config options, type `help keymap`":"Pour la liste complète des raccourcis disponibles, tapez `help keymap`","Imports data into Joplin.":"Importer des données dans Joplin.","Source format: %s":"Format de la source : %s","Do not ask for confirmation.":"Ne pas demander de confirmation.","Found: %d.":"Trouvés : %d.","Created: %d.":"Créés : %d.","Updated: %d.":"Mis à jour : %d.","Skipped: %d.":"Ignorés : %d.","Resources: %d.":"Ressources : %d.","Tagged: %d.":"Étiquettes : %d.","Importing notes...":"Importation des notes...","The notes have been imported: %s":"Les notes ont été importées : %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Affiche les notes dans le carnet. Utilisez `ls /` pour afficher la liste des carnets.","Displays only the first top notes.":"Affiche uniquement les premières notes.","Sorts the item by (eg. title, updated_time, created_time).":"Trier les notes par (par exemple, title, updated_time, created_time).","Reverses the sorting order.":"Inverser l'ordre.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Affiche uniquement les notes du ou des types spécifiés. Le type peut-être `n` pour les notes, `t` pour les tâches (par exemple, `-tt` affiche uniquement les tâches, tandis que `-ttd` affiche les notes et les tâches).","Either \"text\" or \"json\"":"Soit \"text\" soit \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Utilise le format de liste longue. Le format est ID, NOMBRE_DE_NOTES (pour les carnets), DATE, TACHE_TERMINE (pour les tâches), TITRE","Please select a notebook first.":"Veuillez d'abord sélectionner un carnet.","Creates a new notebook.":"Créer un carnet.","Creates a new note.":"Créer une note.","Notes can only be created within a notebook.":"Les notes ne peuvent être créées que dans un carnet.","Creates a new to-do.":"Créer une nouvelle tâche.","Moves the notes matching to [notebook].":"Déplacer les notes correspondant à vers [notebook].","Renames the given (note or notebook) to .":"Renommer l'objet (note ou carnet) en .","Deletes the given notebook.":"Supprimer le carnet.","Deletes the notebook without asking for confirmation.":"Supprimer le carnet sans demander la confirmation.","Delete notebook? All notes within this notebook will also be deleted.":"Effacer le carnet ? Toutes les notes dans ce carnet seront également effacées.","Deletes the notes matching .":"Supprimer les notes correspondants à .","Deletes the notes without asking for confirmation.":"Supprimer les notes sans demander la confirmation.","%d notes match this pattern. Delete them?":"%d notes correspondent à ce motif. Les supprimer ?","Delete note?":"Supprimer la note ?","Searches for the given in all the notes.":"Chercher le motif dans toutes les notes.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Assigner la valeur [value] à la propriété de la donnée. Les valeurs possibles sont :\n\n%s","Displays summary about the notes and notebooks.":"Afficher un résumé des notes et carnets.","Synchronises with remote storage.":"Synchroniser les notes et carnets.","Sync to provided target (defaults to sync.target config value)":"Synchroniser avec la cible donnée (par défaut, la valeur de configuration `sync.target`).","Authentication was not completed (did not receive an authentication token).":"Impossible d'autoriser le logiciel (jeton d'identification non-reçu).","Not authentified with %s. Please provide any missing credentials.":"Non-connecté à %s. Veuillez fournir les identifiants et mots de passe manquants.","Synchronisation is already in progress.":"La synchronisation est déjà en cours.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"La synchronisation est déjà en cours ou ne s'est pas interrompue correctement. Si vous savez qu'aucune autre synchronisation est en cours, vous pouvez supprimer le fichier \"%s\" pour reprendre l'opération.","Synchronisation target: %s (%s)":"Cible de la synchronisation : %s (%s)","Cannot initialize synchroniser.":"Impossible d'initialiser la synchronisation.","Starting synchronisation...":"Commencement de la synchronisation...","Cancelling... Please wait.":"Annulation... Veuillez attendre."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" peut être \"add\", \"remove\" ou \"list\" pour assigner ou enlever l'étiquette [tag] de la [note], our pour lister les notes associées avec l'étiquette [tag]. La commande `tag list` peut être utilisée pour lister les étiquettes.","Invalid command: \"%s\"":"Commande invalide : \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"Gère le status des tâches. peut être \"toggle\" ou \"clear\". Utilisez \"toggle\" pour basculer la tâche entre le status terminé et non-terminé (Si la cible est une note, elle sera convertie en tâche). Utilisez \"clear\" pour convertir la tâche en note.","Marks a to-do as non-completed.":"Marquer une tâche comme non-complétée.","Switches to [notebook] - all further operations will happen within this notebook.":"Changer de carnet - toutes les opérations à venir se feront dans ce carnet.","Displays version information":"Affiche les informations de version","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Type : %s.","Possible values: %s.":"Valeurs possibles : %s.","Default: %s":"Défaut : %s","Possible keys/values:":"Clefs/Valeurs possibles :","Fatal error:":"Erreur fatale :","The application has been authorised - you may now close this browser tab.":"Le logiciel a été autorisé. Vous pouvez maintenant fermer cet onglet.","The application has been successfully authorised.":"Le logiciel a été autorisé.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Veuillez ouvrir le lien ci-dessous dans votre navigateur pour authentifier le logiciel. Joplin va créer un répertoire \"Apps/Joplin\" et lire/écrira des fichiers uniquement dans ce répertoire. Le logiciel n'aura pas d'accès à aucun fichier en dehors de ce répertoire, ni à d'autres données personnelles. Aucune donnée ne sera partagé avec aucun tier.","Search:":"Recherche :","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenue dans Joplin!\n\nTapez `:help shortcuts` pour la liste des raccourcis claviers, ou simplement `:help` pour une vue d'ensemble.\n\nPar exemple, pour créer un carnet, pressez `mb` ; pour créer une note pressed `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Au moins un objet est actuellement crypté et il se peut que vous deviez fournir votre mot de passe maître. Pour se faire, veuillez taper `e2ee decrypt`. Si vous avez déjà fourni ce mot de passe, les objets cryptés vont être décrypté en tâche de fond et seront disponible prochainement.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exporter vers \"%s\" au format \"%s\". Veuillez patienter...","File":"Fichier","Directory":"Dossier","Importing from \"%s\" as \"%s\" format. Please wait...":"Importer depuis \"%s\" au format \"%s\". Veuillez patienter...","New note":"Nouvelle note","New to-do":"Nouvelle tâche","New notebook":"Nouveau carnet","Import":"Importer","Export":"Exporter","Hide %s":"Cacher %s","Quit":"Quitter","Edit":"Édition","Copy":"Copier","Cut":"Couper","Paste":"Coller","Search in all the notes":"Chercher dans toutes les notes","View":"Affichage","Toggle editor layout":"Basculer l'agencement de l'éditeur","Tools":"Outils","Synchronisation status":"État de la synchronisation","Encryption options":"Options de cryptage","General Options":"Options générales","Help":"Aide","Website and documentation":"Documentation en ligne","Check for updates...":"Vérifier les mises à jour...","About Joplin":"A propos de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Ouvrir %s","Exit":"Quitter","OK":"OK","Cancel":"Annuler","Release notes:\n\n%s":"Notes de version :\n\n%s","An update is available, do you want to download it now?":"Une mise à jour est disponible, souhaitez vous la télécharger maintenant ?","Yes":"Oui","No":"Non","Current version is up-to-date.":"La version actuelle est à jour.","Check synchronisation configuration":"Vérifier config synchronisation","Notes and settings are stored in: %s":"Les notes et paramètres se trouve dans : %s","Save":"Enregistrer","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Désactiver le cryptage signifie que *toutes* les notes et fichiers vont être re-synchronisés et envoyés décryptés sur la cible de la synchronisation. Souhaitez vous continuer ?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Activer le cryptage signifie que *toutes* les notes et fichiers vont être re-synchronisés et envoyés cryptés vers la cible de la synchronisation. Ne perdez pas votre mot de passe car, pour des raisons de sécurité, ce sera la *seule* façon de décrypter les données ! Pour activer le cryptage, veuillez entrer votre mot de passe ci-dessous.","Disable encryption":"Désactiver le cryptage","Enable encryption":"Activer le cryptage","Master Keys":"Clefs maître","Active":"Actif","ID":"ID","Source":"Source","Created":"Créé","Updated":"Mis à jour","Password":"Mot de passe","Password OK":"Mot de passe OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Note : seule une clef maître va être utilisée pour le cryptage (celle marquée comme \"actif\" ci-dessus). N'importe quel clef peut-être utilisée pour le décryptage, selon la façon dont les notes ou carnets étaient cryptés à l'origine.","Missing Master Keys":"Clefs maître manquantes","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"Les clefs maître avec ces identifiants sont utilisées pour crypter certains de vos objets, cependant le logiciel n'y a pour l'instant pas accès. Il est probable qu'elle vont être prochainement disponible via la synchronisation.","Status":"État","Encryption is:":"Le cryptage est :","Back":"Retour","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Un nouveau carnet \"%s\" va être créé et le fichier \"%s\" va être importé dedans","Please create a notebook first.":"Veuillez d'abord sélectionner un carnet.","Please create a notebook first":"Veuillez d'abord créer un carnet d'abord","Notebook title:":"Titre du carnet :","Add or remove tags:":"Modifier les étiquettes :","Separate each tag by a comma.":"Séparez chaque étiquette par une virgule.","Rename notebook:":"Renommer le carnet :","Set alarm:":"Régler alarme :","Search":"Chercher","Layout":"Disposition","Some items cannot be synchronised.":"Certains objets ne peuvent être synchronisés.","View them now":"Les voir maintenant","Some items cannot be decrypted.":"Certains objets ne peuvent être décryptés.","Set the password":"Définir le mot de passe","Add or remove tags":"Gérer les étiquettes","Switch between note and to-do type":"Alterner entre note et tâche","Delete":"Supprimer","Delete notes?":"Supprimer les notes ?","No notes in here. Create one by clicking on \"New note\".":"Pas de notes ici. Créez-en une en pressant le bouton \"Nouvelle note\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Il n'y a pour l'instant aucun carnet. Créez-en un en cliquant sur \"Nouveau carnet\".","Open...":"Ouvrir...","Save as...":"Enregistrer sous...","Unsupported link or message: %s":"Lien ou message non géré : %s","Attach file":"Attacher un fichier","Tags":"Étiquettes","Set alarm":"Régler alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Cette note n'a pas de contenu. Cliquer sur \"%s\" pour basculer vers l'éditeur et éditer cette note.","to-do":"tâche","note":"note","Creating new %s...":"Création de %s...","Refresh":"Rafraîchir","Clear":"Supprimer","OneDrive Login":"Connexion OneDrive","Options":"Options","Synchronisation Status":"État de la synchronisation","Encryption Options":"Options de cryptage","Remove this tag from all the notes?":"Enlever cette étiquette de toutes les notes ?","Remove this search from the sidebar?":"Enlever cette recherche de la barre latérale ?","Rename":"Renommer","Synchronise":"Synchroniser","Notebooks":"Carnets","Searches":"Recherches","Please select where the sync status should be exported to":"Veuillez sélectionner un répertoire ou exporter l'état de la synchronisation","Usage: %s":"Utilisation : %s","Unknown flag: %s":"Paramètre inconnu : %s","File system":"Système de fichier","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dév (Pour tester uniquement)","WebDAV":"WebDAV","Unknown log level: %s":"Paramètre inconnu : %s","Unknown level ID: %s":"Paramètre inconnu : %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Impossible de rafraîchir la connexion à OneDrive. Démarrez la synchronisation à nouveau pour corriger le problème.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Impossible de synchroniser avec OneDrive.\n\nCette erreur se produit lors de l'utilisation de OneDrive for Business, qui malheureusement n'est pas compatible.\n\nVeuillez utiliser à la place un compte OneDrive normal.","Cannot access %s":"Impossible d'accéder à %s","Created local items: %d.":"Objets créés localement : %d.","Updated local items: %d.":"Objets mis à jour localement : %d.","Created remote items: %d.":"Objets distants créés : %d.","Updated remote items: %d.":"Objets distants mis à jour : %d.","Deleted local items: %d.":"Objets supprimés localement : %d.","Deleted remote items: %d.":"Objets distants supprimés : %d.","Fetched items: %d/%d.":"Téléchargés : %d/%d.","State: \"%s\".":"État : \"%s\".","Cancelling...":"Annulation...","Completed: %s":"Terminé : %s","Synchronisation is already in progress. State: %s":"La synchronisation est déjà en cours. État : %s","Encrypted":"Crypté","Encrypted items cannot be modified":"Les objets cryptés ne peuvent être modifiés","Conflicts":"Conflits","A notebook with this title already exists: \"%s\"":"Un carnet avec ce titre existe déjà : \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Les carnets ne peuvent être nommés \"%s\" car c'est un nom réservé.","Untitled":"Sans titre","This note does not have geolocation information.":"Cette note n'a pas d'information d'emplacement.","Cannot copy note to \"%s\" notebook":"Impossible de copier la note vers le carnet \"%s\"","Cannot move note to \"%s\" notebook":"Impossible de déplacer la note vers le carnet \"%s\"","Text editor":"Éditeur de texte","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"L'éditeur de texte pour ouvrir et modifier les notes. Si aucun n'est spécifié, il sera détecté automatiquement.","Language":"Langue","Date format":"Format de la date","Time format":"Format de l'heure","Theme":"Apparence","Light":"Clair","Dark":"Sombre","Uncompleted to-dos on top":"Tâches non-terminées en haut","Sort notes by":"Trier les notes par","Reverse sort order":"Inverser l'ordre.","Save geo-location with notes":"Enregistrer l'emplacement avec les notes","When creating a new to-do:":"Lors de la création d'une tâche :","Focus title":"Curseur sur le titre","Focus body":"Curseur sur corps du message","When creating a new note:":"Lors de la création d'une note :","Show tray icon":"Afficher icône dans la zone de notifications","Global zoom percentage":"Niveau de zoom","Editor font family":"Police de l'éditeur","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"Le nom de la police ne sera pas vérifié. Si incorrect ou vide une police monospace sera utilisée par défaut.","Automatically update the application":"Mettre à jour le logiciel automatiquement","Synchronisation interval":"Intervalle de synchronisation","%d minutes":"%d minutes","%d hour":"%d heure","%d hours":"%d heures","Show advanced options":"Montrer les options avancées","Synchronisation target":"Cible de la synchronisation","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"La cible avec laquelle synchroniser. Chaque cible de synchronisation peut avoir des paramètres supplémentaires sous le nom `sync.NUM.NOM` (documentés ci-dessous).","Directory to synchronise with (absolute path)":"Répertoire avec lequel synchroniser (chemin absolu)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Le chemin du répertoire avec lequel synchroniser lorsque la synchronisation par système de fichier est activée. Voir `sync.target`.","Nextcloud WebDAV URL":"Nextcloud : URL WebDAV","Nextcloud username":"Nextcloud : Nom utilisateur","Nextcloud password":"Nextcloud : Mot de passe","WebDAV URL":"WebDAV : URL","WebDAV username":"WebDAV : Nom utilisateur","WebDAV password":"WebDAV : Mot de passe","Invalid option value: \"%s\". Possible values are: %s.":"Option invalide: \"%s\". Les valeurs possibles sont : %s.","Joplin Export File":"Fichier d'export Joplin","Markdown":"Markdown","Joplin Export Directory":"Dossier d'export Joplin","Evernote Export File":"Fichiers d'export Evernote","Cannot load \"%s\" module for format \"%s\"":"Impossible de charger module \"%s\" pour le format \"%s\"","Please specify import format for %s":"Veuillez spécifier le format d'import pour %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Cet objet est crypté : %s \"%s\". Veuillez attendre que tout soit décrypté et réessayez.","There is no data to export.":"Il n'y a pas de données à exporter.","Please specify the notebook where the notes should be imported to.":"Veuillez sélectionner le carnet où les notes doivent être importées.","Items that cannot be synchronised":"Objets qui ne peuvent pas être synchronisés","%s (%s): %s":"%s (%s) : %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Ces objets resteront sur l'appareil mais ne seront pas envoyé sur la cible de la synchronisation. Pour trouver ces objets, faite une recherche sur le titre ou l'identifiant de l'objet (affiché ci-dessus entre parenthèses).","Sync status (synced items / total items)":"Status de la synchronisation (objets synchro. / total)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total : %d/%d","Conflicted: %d":"Conflits : %d","To delete: %d":"A supprimer : %d","Folders":"Carnets","%s: %d notes":"%s : %d notes","Coming alarms":"Alarmes à venir","On %s: %s":"Le %s : %s","There are currently no notes. Create one by clicking on the (+) button.":"Ce carnet ne contient aucune note. Créez-en une en appuyant sur le bouton (+).","Delete these notes?":"Supprimer ces notes ?","Log":"Journal","Export Debug Report":"Exporter rapport de débogage","Encryption Config":"Config cryptage","Configuration":"Configuration","Move to notebook...":"Déplacer vers...","Move %d notes to notebook \"%s\"?":"Déplacer %d notes vers carnet \"%s\" ?","Press to set the decryption password.":"Définir mot de passe de synchronisation.","Select date":"Sélectionner date","Confirm":"Confirmer","Cancel synchronisation":"Annuler synchronisation","Master Key %s":"Clef maître %s","Created: %s":"Créé : %s","Password:":"Mot de passe :","Password cannot be empty":"Mot de passe ne peut être vide","Enable":"Activer","The notebook could not be saved: %s":"Ce carnet n'a pas pu être sauvegardé : %s","Edit notebook":"Éditer le carnet","Show all":"Afficher tous","Errors only":"Erreurs seulement","This note has been modified:":"Cette note a été modifiée :","Save changes":"Enregistrer les changements","Discard changes":"Ignorer les changements","Unsupported image type: %s":"Type d'image non géré : %s","Attach photo":"Attacher une photo","Attach any file":"Attacher un fichier","Convert to note":"Convertir en note","Convert to todo":"Convertir en tâche","Hide metadata":"Cacher les métadonnées","Show metadata":"Voir métadonnées","View on map":"Voir sur carte","Delete notebook":"Supprimer le carnet","Login with OneDrive":"Se connecter à OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Appuyez sur le bouton (+) pour créer une nouvelle note ou carnet. Ouvrez le menu latéral pour accéder à vos carnets.","You currently have no notebook. Create one by clicking on (+) button.":"Vous n'avez pour l'instant pas de carnets. Créez-en un en pressant le bouton (+).","Welcome":"Bienvenue"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Pour supprimer une vignette, enlever là des notes associées.","Please select the note or notebook to be deleted first.":"Veuillez d'abord sélectionner un carnet.","Press Ctrl+D or type \"exit\" to exit the application":"Appuyez sur Ctrl+D ou tapez \"exit\" pour sortir du logiciel","More than one item match \"%s\". Please narrow down your query.":"Plus d'un objet correspond à \"%s\". Veuillez préciser votre requête.","No notebook selected.":"Aucun carnet n'est sélectionné.","No notebook has been specified.":"Aucun carnet n'est spécifié.","Y":"O","n":"n","N":"N","y":"o","Cancelling background synchronisation... Please wait.":"Annulation de la synchronisation... Veuillez patienter.","No such command: %s":"Commande invalide : %s","The command \"%s\" is only available in GUI mode":"La commande \"%s\" est disponible uniquement en mode d'interface graphique","Cannot change encrypted item":"Un objet crypté ne peut pas être modifié","Missing required argument: %s":"Paramètre requis manquant : %s","%s: %s":"%s : %s","Your choice: ":"Votre choix : ","Invalid answer: %s":"Réponse invalide : %s","Attaches the given file to the note.":"Joindre le fichier fourni à la note.","Cannot find \"%s\".":"Impossible de trouver \"%s\".","Displays the given note.":"Affiche la note.","Displays the complete information about note.":"Affiche tous les détails de la note.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtient ou modifie une valeur de configuration. Si la [valeur] n'est pas fournie, la valeur de [nom] sera affichée. Si ni le [nom] ni la [valeur] ne sont fournis, la configuration complète sera affichée.","Also displays unset and hidden config variables.":"Afficher également les variables cachées.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Copier les notes correspondant à vers [carnet]. Si aucun carnet n'est spécifié, la note est dupliquée sur place.","Marks a to-do as done.":"Marquer la tâche comme complétée.","Note is not a to-do: \"%s\"":"La note n'est pas une tâche : \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Gérer la configuration E2EE (Cryptage de bout à bout). Les commandes sont `enable`, `disable`, `decrypt` et `status` et `target-status`.","Enter master password:":"Entrer le mot de passe maître :","Operation cancelled":"Opération annulée","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Démarrage du décryptage... Veuillez patienter car cela pourrait prendre plusieurs minutes selon le nombre d'objets à décrypter.","Completed decryption.":"Décryptage complété.","Enabled":"Activé","Disabled":"Désactivé","Encryption is: %s":"Le cryptage est : %s","Edit note.":"Éditer la note.","No text editor is defined. Please set it using `config editor `":"Aucun éditeur de texte n'est défini. Veuillez le définir en utilisant la commande `config editor `","No active notebook.":"Aucun carnet actif.","Note does not exist: \"%s\". Create it?":"Cette note n'existe pas : \"%s\". La créer ?","Starting to edit note. Close the editor to get back to the prompt.":"Édition de la note en cours. Fermez l'éditeur de texte pour retourner à l'invite de commande.","Error opening note in editor: %s":"Erreur lors de l'ouverture de la note dans l'éditeur de texte : %s","Note has been saved.":"La note a été enregistrée.","Exits the application.":"Quitter le logiciel.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporter les données de Joplin. Par défaut, la base de donnée complète sera exportée, y compris les carnets, notes, tags et ressources.","Destination format: %s":"Format de la destination : %s","Exports only the given note.":"Exporter uniquement la note spécifiée.","Exports only the given notebook.":"Exporter uniquement le carnet spécifié.","Displays a geolocation URL for the note.":"Afficher l'URL de l'emplacement de la note.","Displays usage information.":"Affiche les informations d'utilisation.","For information on how to customise the shortcuts please visit %s":"Pour personnaliser les raccourcis veuillez consulter la documentation à %s","Shortcuts are not available in CLI mode.":"Les raccourcis ne sont pas disponible en mode de ligne de commande.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Tapez `help [command]` pour plus d'information sur une commande ; ou tapez `help all` pour l'aide complète.","The possible commands are:":"Les commandes possibles sont :","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Dans une commande, une note ou carnet peut être référé par titre ou identifiant, ou en utilisant les raccourcis `$n` et `$b` pour, respectivement, la note sélectionnée et le carnet sélectionné. `$c` peut être utilisé pour faire référence à l'objet sélectionné en cours.","To move from one pane to another, press Tab or Shift+Tab.":"Pour aller d'un volet à l'autre, pressez Tab ou Maj+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Utilisez les touches fléchées et page précédente/suivante pour faire défiler les listes et zones de texte (y compris cette console).","To maximise/minimise the console, press \"TC\".":"Pour maximiser ou minimiser la console, pressez \"TC\".","To enter command line mode, press \":\"":"Pour démarrer le mode ligne de commande, pressez \":\"","To exit command line mode, press ESCAPE":"Pour sortir du mode ligne de commande, pressez ECHAP","For the list of keyboard shortcuts and config options, type `help keymap`":"Pour la liste complète des raccourcis disponibles, tapez `help keymap`","Imports data into Joplin.":"Importer des données dans Joplin.","Source format: %s":"Format de la source : %s","Do not ask for confirmation.":"Ne pas demander de confirmation.","Found: %d.":"Trouvés : %d.","Created: %d.":"Créés : %d.","Updated: %d.":"Mis à jour : %d.","Skipped: %d.":"Ignorés : %d.","Resources: %d.":"Ressources : %d.","Tagged: %d.":"Étiquettes : %d.","Importing notes...":"Importation des notes...","The notes have been imported: %s":"Les notes ont été importées : %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Affiche les notes dans le carnet. Utilisez `ls /` pour afficher la liste des carnets.","Displays only the first top notes.":"Affiche uniquement les premières notes.","Sorts the item by (eg. title, updated_time, created_time).":"Trier les notes par (par exemple, title, updated_time, created_time).","Reverses the sorting order.":"Inverser l'ordre.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Affiche uniquement les notes du ou des types spécifiés. Le type peut-être `n` pour les notes, `t` pour les tâches (par exemple, `-tt` affiche uniquement les tâches, tandis que `-ttd` affiche les notes et les tâches).","Either \"text\" or \"json\"":"Soit \"text\" soit \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Utilise le format de liste longue. Le format est ID, NOMBRE_DE_NOTES (pour les carnets), DATE, TACHE_TERMINE (pour les tâches), TITRE","Please select a notebook first.":"Veuillez d'abord sélectionner un carnet.","Creates a new notebook.":"Créer un carnet.","Creates a new note.":"Créer une note.","Notes can only be created within a notebook.":"Les notes ne peuvent être créées que dans un carnet.","Creates a new to-do.":"Créer une nouvelle tâche.","Moves the notes matching to [notebook].":"Déplacer les notes correspondant à vers [notebook].","Renames the given (note or notebook) to .":"Renommer l'objet (note ou carnet) en .","Deletes the given notebook.":"Supprimer le carnet.","Deletes the notebook without asking for confirmation.":"Supprimer le carnet sans demander la confirmation.","Delete notebook? All notes within this notebook will also be deleted.":"Effacer le carnet ? Toutes les notes dans ce carnet seront également effacées.","Deletes the notes matching .":"Supprimer les notes correspondants à .","Deletes the notes without asking for confirmation.":"Supprimer les notes sans demander la confirmation.","%d notes match this pattern. Delete them?":"%d notes correspondent à ce motif. Les supprimer ?","Delete note?":"Supprimer la note ?","Searches for the given in all the notes.":"Chercher le motif dans toutes les notes.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Assigner la valeur [value] à la propriété de la donnée. Les valeurs possibles sont :\n\n%s","Displays summary about the notes and notebooks.":"Afficher un résumé des notes et carnets.","Synchronises with remote storage.":"Synchroniser les notes et carnets.","Sync to provided target (defaults to sync.target config value)":"Synchroniser avec la cible donnée (par défaut, la valeur de configuration `sync.target`).","Authentication was not completed (did not receive an authentication token).":"Impossible d'autoriser le logiciel (jeton d'identification non-reçu).","Not authentified with %s. Please provide any missing credentials.":"Non-connecté à %s. Veuillez fournir les identifiants et mots de passe manquants.","Synchronisation is already in progress.":"La synchronisation est déjà en cours.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"La synchronisation est déjà en cours ou ne s'est pas interrompue correctement. Si vous savez qu'aucune autre synchronisation est en cours, vous pouvez supprimer le fichier \"%s\" pour reprendre l'opération.","Synchronisation target: %s (%s)":"Cible de la synchronisation : %s (%s)","Cannot initialize synchroniser.":"Impossible d'initialiser la synchronisation.","Starting synchronisation...":"Commencement de la synchronisation...","Cancelling... Please wait.":"Annulation... Veuillez attendre."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" peut être \"add\", \"remove\" ou \"list\" pour assigner ou enlever l'étiquette [tag] de la [note], our pour lister les notes associées avec l'étiquette [tag]. La commande `tag list` peut être utilisée pour lister les étiquettes.","Invalid command: \"%s\"":"Commande invalide : \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"Gère le status des tâches. peut être \"toggle\" ou \"clear\". Utilisez \"toggle\" pour basculer la tâche entre le status terminé et non-terminé (Si la cible est une note, elle sera convertie en tâche). Utilisez \"clear\" pour convertir la tâche en note.","Marks a to-do as non-completed.":"Marquer une tâche comme non-complétée.","Switches to [notebook] - all further operations will happen within this notebook.":"Changer de carnet - toutes les opérations à venir se feront dans ce carnet.","Displays version information":"Affiche les informations de version","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Type : %s.","Possible values: %s.":"Valeurs possibles : %s.","Default: %s":"Défaut : %s","Possible keys/values:":"Clefs/Valeurs possibles :","Type `joplin help` for usage information.":"Tapez `Joplin help` pour afficher l'aide.","Fatal error:":"Erreur fatale :","The application has been authorised - you may now close this browser tab.":"Le logiciel a été autorisé. Vous pouvez maintenant fermer cet onglet.","The application has been successfully authorised.":"Le logiciel a été autorisé.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Veuillez ouvrir le lien ci-dessous dans votre navigateur pour authentifier le logiciel. Joplin va créer un répertoire \"Apps/Joplin\" et lire/écrira des fichiers uniquement dans ce répertoire. Le logiciel n'aura pas d'accès à aucun fichier en dehors de ce répertoire, ni à d'autres données personnelles. Aucune donnée ne sera partagé avec aucun tier.","Search:":"Recherche :","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenue dans Joplin!\n\nTapez `:help shortcuts` pour la liste des raccourcis claviers, ou simplement `:help` pour une vue d'ensemble.\n\nPar exemple, pour créer un carnet, pressez `mb` ; pour créer une note pressed `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Au moins un objet est actuellement crypté et il se peut que vous deviez fournir votre mot de passe maître. Pour se faire, veuillez taper `e2ee decrypt`. Si vous avez déjà fourni ce mot de passe, les objets cryptés vont être décrypté en tâche de fond et seront disponible prochainement.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exporter vers \"%s\" au format \"%s\". Veuillez patienter...","File":"Fichier","Directory":"Dossier","Importing from \"%s\" as \"%s\" format. Please wait...":"Importer depuis \"%s\" au format \"%s\". Veuillez patienter...","New note":"Nouvelle note","New to-do":"Nouvelle tâche","New notebook":"Nouveau carnet","Import":"Importer","Export":"Exporter","Hide %s":"Cacher %s","Quit":"Quitter","Edit":"Édition","Copy":"Copier","Cut":"Couper","Paste":"Coller","Search in all the notes":"Chercher dans toutes les notes","View":"Affichage","Toggle editor layout":"Basculer l'agencement de l'éditeur","Tools":"Outils","Synchronisation status":"État de la synchronisation","Encryption options":"Options de cryptage","General Options":"Options générales","Help":"Aide","Website and documentation":"Documentation en ligne","Make a donation":"Faire un don","Check for updates...":"Vérifier les mises à jour...","About Joplin":"A propos de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Ouvrir %s","Exit":"Quitter","OK":"OK","Cancel":"Annuler","Release notes:\n\n%s":"Notes de version :\n\n%s","An update is available, do you want to download it now?":"Une mise à jour est disponible, souhaitez vous la télécharger maintenant ?","Yes":"Oui","No":"Non","Current version is up-to-date.":"La version actuelle est à jour.","Check synchronisation configuration":"Vérifier config synchronisation","Notes and settings are stored in: %s":"Les notes et paramètres se trouve dans : %s","Save":"Enregistrer","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Désactiver le cryptage signifie que *toutes* les notes et fichiers vont être re-synchronisés et envoyés décryptés sur la cible de la synchronisation. Souhaitez vous continuer ?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Activer le cryptage signifie que *toutes* les notes et fichiers vont être re-synchronisés et envoyés cryptés vers la cible de la synchronisation. Ne perdez pas votre mot de passe car, pour des raisons de sécurité, ce sera la *seule* façon de décrypter les données ! Pour activer le cryptage, veuillez entrer votre mot de passe ci-dessous.","Disable encryption":"Désactiver le cryptage","Enable encryption":"Activer le cryptage","Master Keys":"Clefs maître","Active":"Actif","ID":"ID","Source":"Source","Created":"Créé","Updated":"Mis à jour","Password":"Mot de passe","Password OK":"Mot de passe OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Note : seule une clef maître va être utilisée pour le cryptage (celle marquée comme \"actif\" ci-dessus). N'importe quel clef peut-être utilisée pour le décryptage, selon la façon dont les notes ou carnets étaient cryptés à l'origine.","Missing Master Keys":"Clefs maître manquantes","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"Les clefs maître avec ces identifiants sont utilisées pour crypter certains de vos objets, cependant le logiciel n'y a pour l'instant pas accès. Il est probable qu'elle vont être prochainement disponible via la synchronisation.","Status":"État","Encryption is:":"Le cryptage est :","Back":"Retour","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Un nouveau carnet \"%s\" va être créé et le fichier \"%s\" va être importé dedans","Please create a notebook first.":"Veuillez d'abord sélectionner un carnet.","Please create a notebook first":"Veuillez d'abord créer un carnet d'abord","Notebook title:":"Titre du carnet :","Add or remove tags:":"Modifier les étiquettes :","Separate each tag by a comma.":"Séparez chaque étiquette par une virgule.","Rename notebook:":"Renommer le carnet :","Set alarm:":"Régler alarme :","Search":"Chercher","Layout":"Disposition","Some items cannot be synchronised.":"Certains objets ne peuvent être synchronisés.","View them now":"Les voir maintenant","Some items cannot be decrypted.":"Certains objets ne peuvent être décryptés.","Set the password":"Définir le mot de passe","Add or remove tags":"Gérer les étiquettes","Switch between note and to-do type":"Alterner entre note et tâche","Delete":"Supprimer","Delete notes?":"Supprimer les notes ?","No notes in here. Create one by clicking on \"New note\".":"Pas de notes ici. Créez-en une en pressant le bouton \"Nouvelle note\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Il n'y a pour l'instant aucun carnet. Créez-en un en cliquant sur \"Nouveau carnet\".","Open...":"Ouvrir...","Save as...":"Enregistrer sous...","Unsupported link or message: %s":"Lien ou message non géré : %s","Attach file":"Attacher un fichier","Tags":"Étiquettes","Set alarm":"Régler alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Cette note n'a pas de contenu. Cliquer sur \"%s\" pour basculer vers l'éditeur et éditer cette note.","to-do":"tâche","note":"note","Creating new %s...":"Création de %s...","Refresh":"Rafraîchir","Clear":"Supprimer","OneDrive Login":"Connexion OneDrive","Options":"Options","Synchronisation Status":"État de la synchronisation","Encryption Options":"Options de cryptage","Remove this tag from all the notes?":"Enlever cette étiquette de toutes les notes ?","Remove this search from the sidebar?":"Enlever cette recherche de la barre latérale ?","Rename":"Renommer","Synchronise":"Synchroniser","Notebooks":"Carnets","Searches":"Recherches","Please select where the sync status should be exported to":"Veuillez sélectionner un répertoire ou exporter l'état de la synchronisation","Usage: %s":"Utilisation : %s","Unknown flag: %s":"Paramètre inconnu : %s","File system":"Système de fichier","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dév (Pour tester uniquement)","WebDAV":"WebDAV","Unknown log level: %s":"Paramètre inconnu : %s","Unknown level ID: %s":"Paramètre inconnu : %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Impossible de rafraîchir la connexion à OneDrive. Démarrez la synchronisation à nouveau pour corriger le problème.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Impossible de synchroniser avec OneDrive.\n\nCette erreur se produit lors de l'utilisation de OneDrive for Business, qui malheureusement n'est pas compatible.\n\nVeuillez utiliser à la place un compte OneDrive normal.","Cannot access %s":"Impossible d'accéder à %s","Created local items: %d.":"Objets créés localement : %d.","Updated local items: %d.":"Objets mis à jour localement : %d.","Created remote items: %d.":"Objets distants créés : %d.","Updated remote items: %d.":"Objets distants mis à jour : %d.","Deleted local items: %d.":"Objets supprimés localement : %d.","Deleted remote items: %d.":"Objets distants supprimés : %d.","Fetched items: %d/%d.":"Téléchargés : %d/%d.","State: \"%s\".":"État : \"%s\".","Cancelling...":"Annulation...","Completed: %s":"Terminé : %s","Synchronisation is already in progress. State: %s":"La synchronisation est déjà en cours. État : %s","Encrypted":"Crypté","Encrypted items cannot be modified":"Les objets cryptés ne peuvent être modifiés","Conflicts":"Conflits","A notebook with this title already exists: \"%s\"":"Un carnet avec ce titre existe déjà : \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Les carnets ne peuvent être nommés \"%s\" car c'est un nom réservé.","Untitled":"Sans titre","This note does not have geolocation information.":"Cette note n'a pas d'information d'emplacement.","Cannot copy note to \"%s\" notebook":"Impossible de copier la note vers le carnet \"%s\"","Cannot move note to \"%s\" notebook":"Impossible de déplacer la note vers le carnet \"%s\"","Text editor":"Éditeur de texte","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"L'éditeur de texte pour ouvrir et modifier les notes. Si aucun n'est spécifié, il sera détecté automatiquement.","Language":"Langue","Date format":"Format de la date","Time format":"Format de l'heure","Theme":"Apparence","Light":"Clair","Dark":"Sombre","Uncompleted to-dos on top":"Tâches non-terminées en haut","Sort notes by":"Trier les notes par","Reverse sort order":"Inverser l'ordre.","Save geo-location with notes":"Enregistrer l'emplacement avec les notes","When creating a new to-do:":"Lors de la création d'une tâche :","Focus title":"Curseur sur le titre","Focus body":"Curseur sur corps du message","When creating a new note:":"Lors de la création d'une note :","Show tray icon":"Afficher icône dans la zone de notifications","Global zoom percentage":"Niveau de zoom","Editor font family":"Police de l'éditeur","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"Le nom de la police ne sera pas vérifié. Si incorrect ou vide une police monospace sera utilisée par défaut.","Automatically update the application":"Mettre à jour le logiciel automatiquement","Synchronisation interval":"Intervalle de synchronisation","%d minutes":"%d minutes","%d hour":"%d heure","%d hours":"%d heures","Show advanced options":"Montrer les options avancées","Synchronisation target":"Cible de la synchronisation","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"La cible avec laquelle synchroniser. Chaque cible de synchronisation peut avoir des paramètres supplémentaires sous le nom `sync.NUM.NOM` (documentés ci-dessous).","Directory to synchronise with (absolute path)":"Répertoire avec lequel synchroniser (chemin absolu)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Le chemin du répertoire avec lequel synchroniser lorsque la synchronisation par système de fichier est activée. Voir `sync.target`.","Nextcloud WebDAV URL":"Nextcloud : URL WebDAV","Nextcloud username":"Nextcloud : Nom utilisateur","Nextcloud password":"Nextcloud : Mot de passe","WebDAV URL":"WebDAV : URL","WebDAV username":"WebDAV : Nom utilisateur","WebDAV password":"WebDAV : Mot de passe","Invalid option value: \"%s\". Possible values are: %s.":"Option invalide: \"%s\". Les valeurs possibles sont : %s.","Joplin Export File":"Fichier d'export Joplin","Markdown":"Markdown","Joplin Export Directory":"Dossier d'export Joplin","Evernote Export File":"Fichiers d'export Evernote","Cannot load \"%s\" module for format \"%s\"":"Impossible de charger module \"%s\" pour le format \"%s\"","Please specify import format for %s":"Veuillez spécifier le format d'import pour %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Cet objet est crypté : %s \"%s\". Veuillez attendre que tout soit décrypté et réessayez.","There is no data to export.":"Il n'y a pas de données à exporter.","Please specify the notebook where the notes should be imported to.":"Veuillez sélectionner le carnet où les notes doivent être importées.","Items that cannot be synchronised":"Objets qui ne peuvent pas être synchronisés","%s (%s): %s":"%s (%s) : %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Ces objets resteront sur l'appareil mais ne seront pas envoyé sur la cible de la synchronisation. Pour trouver ces objets, faite une recherche sur le titre ou l'identifiant de l'objet (affiché ci-dessus entre parenthèses).","Sync status (synced items / total items)":"Status de la synchronisation (objets synchro. / total)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total : %d/%d","Conflicted: %d":"Conflits : %d","To delete: %d":"A supprimer : %d","Folders":"Carnets","%s: %d notes":"%s : %d notes","Coming alarms":"Alarmes à venir","On %s: %s":"Le %s : %s","There are currently no notes. Create one by clicking on the (+) button.":"Ce carnet ne contient aucune note. Créez-en une en appuyant sur le bouton (+).","Delete these notes?":"Supprimer ces notes ?","Log":"Journal","Export Debug Report":"Exporter rapport de débogage","Encryption Config":"Config cryptage","Configuration":"Configuration","Move to notebook...":"Déplacer vers...","Move %d notes to notebook \"%s\"?":"Déplacer %d notes vers carnet \"%s\" ?","Press to set the decryption password.":"Définir mot de passe de synchronisation.","Select date":"Sélectionner date","Confirm":"Confirmer","Cancel synchronisation":"Annuler synchronisation","Joplin website":"Site web de Joplin","Master Key %s":"Clef maître %s","Created: %s":"Créé : %s","Password:":"Mot de passe :","Password cannot be empty":"Mot de passe ne peut être vide","Enable":"Activer","The notebook could not be saved: %s":"Ce carnet n'a pas pu être sauvegardé : %s","Edit notebook":"Éditer le carnet","Show all":"Afficher tous","Errors only":"Erreurs seulement","This note has been modified:":"Cette note a été modifiée :","Save changes":"Enregistrer les changements","Discard changes":"Ignorer les changements","Unsupported image type: %s":"Type d'image non géré : %s","Attach photo":"Attacher une photo","Attach any file":"Attacher un fichier","Convert to note":"Convertir en note","Convert to todo":"Convertir en tâche","Hide metadata":"Cacher les métadonnées","Show metadata":"Voir métadonnées","View on map":"Voir sur carte","Delete notebook":"Supprimer le carnet","Login with OneDrive":"Se connecter à OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Appuyez sur le bouton (+) pour créer une nouvelle note ou carnet. Ouvrez le menu latéral pour accéder à vos carnets.","You currently have no notebook. Create one by clicking on (+) button.":"Vous n'avez pour l'instant pas de carnets. Créez-en un en pressant le bouton (+).","Welcome":"Bienvenue"} \ No newline at end of file diff --git a/ElectronClient/app/locales/hr_HR.json b/ElectronClient/app/locales/hr_HR.json index af98d208bf..ba4ffdd88d 100644 --- a/ElectronClient/app/locales/hr_HR.json +++ b/ElectronClient/app/locales/hr_HR.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Da bi mogao obrisati oznaku, skini oznaku s povezanih bilješki.","Please select the note or notebook to be deleted first.":"Odaberi bilješku ili bilježnicu za brisanje.","Press Ctrl+D or type \"exit\" to exit the application":"Pritisni Ctrl+D ili napiši \"exit\" za izlazak iz aplikacije","More than one item match \"%s\". Please narrow down your query.":"Više od jednog rezultata odgovara \"%s\". Promijeni upit.","No notebook selected.":"Nije odabrana bilježnica.","No notebook has been specified.":"Nije specificirana bilježnica.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Prekid sinkronizacije u pozadini... Pričekaj.","No such command: %s":"Ne postoji naredba: %s","The command \"%s\" is only available in GUI mode":"Naredba \"%s\" postoji samo u inačici s grafičkim sučeljem","Cannot change encrypted item":"","Missing required argument: %s":"Nedostaje obavezni argument: %s","%s: %s":"%s: %s","Your choice: ":"Tvoj izbor: ","Invalid answer: %s":"Nevažeći odgovor: %s","Attaches the given file to the note.":"Prilaže datu datoteku bilješci.","Cannot find \"%s\".":"Ne mogu naći \"%s\".","Displays the given note.":"Prikazuje datu bilješku.","Displays the complete information about note.":"Prikazuje potpunu informaciju o bilješci.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.","Also displays unset and hidden config variables.":"Također prikazuje nepostavljene i skrivene konfiguracijske varijable.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.","Marks a to-do as done.":"Označava zadatak završenim.","Note is not a to-do: \"%s\"":"Bilješka nije zadatak: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Onemogućeno","Encryption is: %s":"","Edit note.":"Uredi bilješku.","No text editor is defined. Please set it using `config editor `":"No text editor is defined. Please set it using `config editor `","No active notebook.":"Nema aktivne bilježnice.","Note does not exist: \"%s\". Create it?":"Bilješka ne postoji: \"%s\". Napravi je?","Starting to edit note. Close the editor to get back to the prompt.":"Starting to edit note. Close the editor to get back to the prompt.","Error opening note in editor: %s":"","Note has been saved.":"Bilješka je spremljena.","Exits the application.":"Izlaz iz aplikacije.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Izvozi samo datu bilješku.","Exports only the given notebook.":"Izvozi samo datu bilježnicu.","Displays a geolocation URL for the note.":"Prikazuje geolokacijski URL bilješke.","Displays usage information.":"Prikazuje informacije o korištenju.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Prečaci nisu podržani u naredbenom retku.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Upiši `help [naredba]` za više informacija o naredbi ili `help all` za sve informacije o korištenju.","The possible commands are:":"Moguće naredbe su:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.","To move from one pane to another, press Tab or Shift+Tab.":"Za prijelaz iz jednog okna u drugo, pritisni Tab ili Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use the arrows and page up/down to scroll the lists and text areas (including this console).","To maximise/minimise the console, press \"TC\".":"Za maksimiziranje/minimiziranje konzole, pritisni \"TC\".","To enter command line mode, press \":\"":"Za ulaz u naredbeni redak, pritisni \":\"","To exit command line mode, press ESCAPE":"Za izlaz iz naredbenog retka, pritisni Esc","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Ne pitaj za potvrdu.","Found: %d.":"Nađeno: %d.","Created: %d.":"Stvoreno: %d.","Updated: %d.":"Ažurirano: %d.","Skipped: %d.":"Preskočeno: %d.","Resources: %d.":"Resursi: %d.","Tagged: %d.":"Označeno: %d.","Importing notes...":"Uvozim bilješke...","The notes have been imported: %s":"Bilješke su uvezene: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Prikazuje bilješke u trenutnoj bilježnici. Upiši `ls /` za prikaz liste bilježnica.","Displays only the first top notes.":"Prikaži samo prvih bilješki.","Sorts the item by (eg. title, updated_time, created_time).":"Sorts the item by (eg. title, updated_time, created_time).","Reverses the sorting order.":"Mijenja redoslijed.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.","Either \"text\" or \"json\"":"Ili \"text\" ili \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE","Please select a notebook first.":"Odaberi bilježnicu.","Creates a new notebook.":"Stvara novu bilježnicu.","Creates a new note.":"Stvara novu bilješku.","Notes can only be created within a notebook.":"Bilješke je moguće stvoriti samo u sklopu bilježnice.","Creates a new to-do.":"Stvara novi zadatak.","Moves the notes matching to [notebook].":"Premješta podudarajuće bilješke u [bilježnicu].","Renames the given (note or notebook) to .":"Renames the given (note or notebook) to .","Deletes the given notebook.":"Briše datu bilježnicu.","Deletes the notebook without asking for confirmation.":"Briše bilježnicu bez traženja potvrde.","Delete notebook? All notes within this notebook will also be deleted.":"Obrisati bilježnicu? Sve bilješke u toj bilježnici će također biti obrisane.","Deletes the notes matching .":"Deletes the notes matching .","Deletes the notes without asking for confirmation.":"Briše bilješke bez traženja potvrde.","%d notes match this pattern. Delete them?":"%d bilješki se podudara s pojmom pretraživanja. Obriši ih?","Delete note?":"Obrisati bilješku?","Searches for the given in all the notes.":"Searches for the given in all the notes.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Sets the property of the given to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Prikazuje sažetak o bilješkama i bilježnicama.","Synchronises with remote storage.":"Sinkronizira sa udaljenom pohranom podataka.","Sync to provided target (defaults to sync.target config value)":"Sinkroniziraj sa metom (default je polje sync.target u konfiguraciji)","Authentication was not completed (did not receive an authentication token).":"Authentication was not completed (did not receive an authentication token).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"Sinkronizacija je već u toku.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ako sinkronizacija nije u toku, obriši lock datoteku u \"%s\" i nastavi...","Synchronisation target: %s (%s)":"Meta sinkronizacije: %s (%s)","Cannot initialize synchroniser.":"Ne mogu započeti sinkronizaciju.","Starting synchronisation...":"Započinjem sinkronizaciju...","Cancelling... Please wait.":"Prekidam... Pričekaj."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.","Invalid command: \"%s\"":"Nevažeća naredba: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.","Marks a to-do as non-completed.":"Označava zadatak kao nezavršen.","Switches to [notebook] - all further operations will happen within this notebook.":"Switches to [notebook] - all further operations will happen within this notebook.","Displays version information":"Prikazuje verziju","%s %s (%s)":"%s %s (%s)","Enum":"Enumeracija","Type: %s.":"Vrsta: %s.","Possible values: %s.":"Moguće vrijednosti: %s.","Default: %s":"Default: %s","Possible keys/values:":"Mogući ključevi/vrijednosti:","Fatal error:":"Fatalna greška:","The application has been authorised - you may now close this browser tab.":"Aplikacija je autorizirana - smiješ zatvoriti karticu preglednika.","The application has been successfully authorised.":"Aplikacija je uspješno autorizirana.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Otvori sljedeći URL u pregledniku da bi ovjerio aplikaciju. Aplikacija će stvoriti direktorij u \"Apps/Joplin\" i koristiti će samo taj direktorij za čitanje i pisanje. Aplikacija neće imati pristup osobnim podacima niti ičemu izvan tog direktorija. Nijedan se podatak neće dijeliti s trećom stranom.","Search:":"Traži:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Datoteka","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Nova bilješka","New to-do":"Novi zadatak","New notebook":"Nova bilježnica","Import":"Uvoz","Export":"Export","Hide %s":"","Quit":"Izađi","Edit":"Uredi","Copy":"Kopiraj","Cut":"Izreži","Paste":"Zalijepi","Search in all the notes":"Pretraži u svim bilješkama","View":"","Toggle editor layout":"","Tools":"Alati","Synchronisation status":"Status sinkronizacije","Encryption options":"","General Options":"General Options","Help":"Pomoć","Website and documentation":"Website i dokumentacija","Check for updates...":"","About Joplin":"O Joplinu","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"U redu","Cancel":"Odustani","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Bilješke i postavke su pohranjene u: %s","Save":"Spremi","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"ID","Source":"Izvor","Created":"Stvoreno","Updated":"Ažurirano","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"","Back":"Natrag","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nova bilježnica \"%s\" će biti stvorena i datoteka \"%s\" će biti uvezena u nju","Please create a notebook first.":"Prvo stvori bilježnicu.","Please create a notebook first":"Prvo stvori bilježnicu","Notebook title:":"Naslov bilježnice:","Add or remove tags:":"Dodaj ili makni oznake:","Separate each tag by a comma.":"Odvoji oznake zarezom.","Rename notebook:":"Preimenuj bilježnicu:","Set alarm:":"Postavi upozorenje:","Search":"Traži","Layout":"Izgled","Some items cannot be synchronised.":"Neke stavke se ne mogu sinkronizirati.","View them now":"Pogledaj ih sada","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Dodaj ili makni oznake","Switch between note and to-do type":"Zamijeni bilješku i zadatak","Delete":"Obriši","Delete notes?":"Obriši bilješke?","No notes in here. Create one by clicking on \"New note\".":"Ovdje nema bilješki. Stvori novu pritiskom na \"Nova bilješka\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Ovdje nema bilježnica. Stvori novu pritiskom na \"Nova bilježnica\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Nepodržana poveznica ili poruka: %s","Attach file":"Priloži datoteku","Tags":"Oznake","Set alarm":"Postavi upozorenje","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Osvježi","Clear":"Očisti","OneDrive Login":"OneDrive Login","Options":"Opcije","Synchronisation Status":"Status Sinkronizacije","Encryption Options":"","Remove this tag from all the notes?":"Makni ovu oznaku iz svih bilješki?","Remove this search from the sidebar?":"Makni ovu pretragu iz izbornika?","Rename":"Preimenuj","Synchronise":"Sinkroniziraj","Notebooks":"Bilježnice","Searches":"Pretraživanja","Please select where the sync status should be exported to":"Odaberi lokaciju za izvoz statusa sinkronizacije","Usage: %s":"Korištenje: %s","Unknown flag: %s":"Nepoznata zastavica: %s","File system":"Datotečni sustav","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Samo za testiranje)","WebDAV":"","Unknown log level: %s":"Nepoznata razina logiranja: %s","Unknown level ID: %s":"Nepoznat ID razine: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Nedostaju podaci za ovjeru. Pokušaj ponovo započeti sinkronizaciju.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Ne mogu sinkronizirati OneDrive.\n\nOva greška se često javlja pri korištenju usluge OneDrive for Business koja nije podržana.\n\nMolimo da koristite obični OneDrive korisnički račun.","Cannot access %s":"Ne mogu pristupiti %s","Created local items: %d.":"Stvorene lokalne stavke: %d.","Updated local items: %d.":"Ažurirane lokalne stavke: %d.","Created remote items: %d.":"Stvorene udaljene stavke: %d.","Updated remote items: %d.":"Ažurirane udaljene stavke: %d.","Deleted local items: %d.":"Obrisane lokalne stavke: %d.","Deleted remote items: %d.":"Obrisane udaljene stavke: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"Stanje: \"%s\".","Cancelling...":"Prekidam...","Completed: %s":"Dovršeno: %s","Synchronisation is already in progress. State: %s":"Sinkronizacija je već u toku. Stanje: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Sukobi","A notebook with this title already exists: \"%s\"":"Bilježnica s ovim naslovom već postoji: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Naslov \"%s\" je rezerviran i ne može se koristiti.","Untitled":"Nenaslovljen","This note does not have geolocation information.":"Ova bilješka nema geolokacijske informacije.","Cannot copy note to \"%s\" notebook":"Ne mogu kopirati bilješku u bilježnicu %s","Cannot move note to \"%s\" notebook":"Ne mogu premjestiti bilješku u bilježnicu %s","Text editor":"Uređivač teksta","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Program za uređivanje koji će biti korišten za uređivanje bilješki. Ako ni jedan nije odabran, pokušati će se sa default programom.","Language":"Jezik","Date format":"Format datuma","Time format":"Format vremena","Theme":"Tema","Light":"Svijetla","Dark":"Tamna","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Spremi geolokacijske podatke sa bilješkama","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Automatsko instaliranje nove verzije","Synchronisation interval":"Interval sinkronizacije","%d minutes":"%d minuta","%d hour":"%d sat","%d hours":"%d sati","Show advanced options":"Prikaži napredne opcije","Synchronisation target":"Sinkroniziraj sa","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"Direktorij za sinkroniziranje (apsolutna putanja)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Putanja do direktorija za sinkronizaciju u slučaju kad je sinkronizacija sa datotečnim sustavom omogućena. Vidi `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Nevažeća vrijednost: \"%s\". Moguće vrijednosti su: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Stavke koje se ne mogu sinkronizirati","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Status (sinkronizirane stavke / ukupni broj stavki)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Ukupno: %d/%d","Conflicted: %d":"U sukobu: %d","To delete: %d":"Za brisanje: %d","Folders":"Mape","%s: %d notes":"%s: %d notes","Coming alarms":"Nadolazeća upozorenja","On %s: %s":"On %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Trenutno nema bilješki. Stvori novu klikom na (+) gumb.","Delete these notes?":"Obriši ove bilješke?","Log":"Log","Export Debug Report":"Izvezi Debug izvještaj","Encryption Config":"","Configuration":"Konfiguracija","Move to notebook...":"Premjesti u bilježnicu...","Move %d notes to notebook \"%s\"?":"Premjesti %d bilješke u bilježnicu \"%s\"?","Press to set the decryption password.":"","Select date":"Odaberi datum","Confirm":"Potvrdi","Cancel synchronisation":"Prekini sinkronizaciju","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"Bilježnicu nije moguće snimiti: %s","Edit notebook":"Uredi bilježnicu","Show all":"","Errors only":"","This note has been modified:":"Bilješka je promijenjena:","Save changes":"Spremi promjene","Discard changes":"Odbaci promjene","Unsupported image type: %s":"Nepodržana vrsta slike: %s","Attach photo":"Priloži sliku","Attach any file":"Priloži datoteku","Convert to note":"Pretvori u bilješku","Convert to todo":"Pretvori u zadatak","Hide metadata":"Sakrij metapodatke","Show metadata":"Prikaži metapodatke","View on map":"Vidi na karti","Delete notebook":"Obriši bilježnicu","Login with OneDrive":"Prijavi se u OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Klikni (+) gumb za dodavanje nove bilješke ili bilježnice ili odaberi postojeću bilježnicu iz izbornika.","You currently have no notebook. Create one by clicking on (+) button.":"Trenutno nemaš nijednu bilježnicu. Stvori novu klikom na (+) gumb.","Welcome":"Dobro došli"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Da bi mogao obrisati oznaku, skini oznaku s povezanih bilješki.","Please select the note or notebook to be deleted first.":"Odaberi bilješku ili bilježnicu za brisanje.","Press Ctrl+D or type \"exit\" to exit the application":"Pritisni Ctrl+D ili napiši \"exit\" za izlazak iz aplikacije","More than one item match \"%s\". Please narrow down your query.":"Više od jednog rezultata odgovara \"%s\". Promijeni upit.","No notebook selected.":"Nije odabrana bilježnica.","No notebook has been specified.":"Nije specificirana bilježnica.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Prekid sinkronizacije u pozadini... Pričekaj.","No such command: %s":"Ne postoji naredba: %s","The command \"%s\" is only available in GUI mode":"Naredba \"%s\" postoji samo u inačici s grafičkim sučeljem","Cannot change encrypted item":"","Missing required argument: %s":"Nedostaje obavezni argument: %s","%s: %s":"%s: %s","Your choice: ":"Tvoj izbor: ","Invalid answer: %s":"Nevažeći odgovor: %s","Attaches the given file to the note.":"Prilaže datu datoteku bilješci.","Cannot find \"%s\".":"Ne mogu naći \"%s\".","Displays the given note.":"Prikazuje datu bilješku.","Displays the complete information about note.":"Prikazuje potpunu informaciju o bilješci.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.","Also displays unset and hidden config variables.":"Također prikazuje nepostavljene i skrivene konfiguracijske varijable.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.","Marks a to-do as done.":"Označava zadatak završenim.","Note is not a to-do: \"%s\"":"Bilješka nije zadatak: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Onemogućeno","Encryption is: %s":"","Edit note.":"Uredi bilješku.","No text editor is defined. Please set it using `config editor `":"No text editor is defined. Please set it using `config editor `","No active notebook.":"Nema aktivne bilježnice.","Note does not exist: \"%s\". Create it?":"Bilješka ne postoji: \"%s\". Napravi je?","Starting to edit note. Close the editor to get back to the prompt.":"Starting to edit note. Close the editor to get back to the prompt.","Error opening note in editor: %s":"","Note has been saved.":"Bilješka je spremljena.","Exits the application.":"Izlaz iz aplikacije.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Izvozi samo datu bilješku.","Exports only the given notebook.":"Izvozi samo datu bilježnicu.","Displays a geolocation URL for the note.":"Prikazuje geolokacijski URL bilješke.","Displays usage information.":"Prikazuje informacije o korištenju.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Prečaci nisu podržani u naredbenom retku.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Upiši `help [naredba]` za više informacija o naredbi ili `help all` za sve informacije o korištenju.","The possible commands are:":"Moguće naredbe su:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.","To move from one pane to another, press Tab or Shift+Tab.":"Za prijelaz iz jednog okna u drugo, pritisni Tab ili Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use the arrows and page up/down to scroll the lists and text areas (including this console).","To maximise/minimise the console, press \"TC\".":"Za maksimiziranje/minimiziranje konzole, pritisni \"TC\".","To enter command line mode, press \":\"":"Za ulaz u naredbeni redak, pritisni \":\"","To exit command line mode, press ESCAPE":"Za izlaz iz naredbenog retka, pritisni Esc","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Ne pitaj za potvrdu.","Found: %d.":"Nađeno: %d.","Created: %d.":"Stvoreno: %d.","Updated: %d.":"Ažurirano: %d.","Skipped: %d.":"Preskočeno: %d.","Resources: %d.":"Resursi: %d.","Tagged: %d.":"Označeno: %d.","Importing notes...":"Uvozim bilješke...","The notes have been imported: %s":"Bilješke su uvezene: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Prikazuje bilješke u trenutnoj bilježnici. Upiši `ls /` za prikaz liste bilježnica.","Displays only the first top notes.":"Prikaži samo prvih bilješki.","Sorts the item by (eg. title, updated_time, created_time).":"Sorts the item by (eg. title, updated_time, created_time).","Reverses the sorting order.":"Mijenja redoslijed.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.","Either \"text\" or \"json\"":"Ili \"text\" ili \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE","Please select a notebook first.":"Odaberi bilježnicu.","Creates a new notebook.":"Stvara novu bilježnicu.","Creates a new note.":"Stvara novu bilješku.","Notes can only be created within a notebook.":"Bilješke je moguće stvoriti samo u sklopu bilježnice.","Creates a new to-do.":"Stvara novi zadatak.","Moves the notes matching to [notebook].":"Premješta podudarajuće bilješke u [bilježnicu].","Renames the given (note or notebook) to .":"Renames the given (note or notebook) to .","Deletes the given notebook.":"Briše datu bilježnicu.","Deletes the notebook without asking for confirmation.":"Briše bilježnicu bez traženja potvrde.","Delete notebook? All notes within this notebook will also be deleted.":"Obrisati bilježnicu? Sve bilješke u toj bilježnici će također biti obrisane.","Deletes the notes matching .":"Deletes the notes matching .","Deletes the notes without asking for confirmation.":"Briše bilješke bez traženja potvrde.","%d notes match this pattern. Delete them?":"%d bilješki se podudara s pojmom pretraživanja. Obriši ih?","Delete note?":"Obrisati bilješku?","Searches for the given in all the notes.":"Searches for the given in all the notes.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Sets the property of the given to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Prikazuje sažetak o bilješkama i bilježnicama.","Synchronises with remote storage.":"Sinkronizira sa udaljenom pohranom podataka.","Sync to provided target (defaults to sync.target config value)":"Sinkroniziraj sa metom (default je polje sync.target u konfiguraciji)","Authentication was not completed (did not receive an authentication token).":"Authentication was not completed (did not receive an authentication token).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"Sinkronizacija je već u toku.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ako sinkronizacija nije u toku, obriši lock datoteku u \"%s\" i nastavi...","Synchronisation target: %s (%s)":"Meta sinkronizacije: %s (%s)","Cannot initialize synchroniser.":"Ne mogu započeti sinkronizaciju.","Starting synchronisation...":"Započinjem sinkronizaciju...","Cancelling... Please wait.":"Prekidam... Pričekaj."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.","Invalid command: \"%s\"":"Nevažeća naredba: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.","Marks a to-do as non-completed.":"Označava zadatak kao nezavršen.","Switches to [notebook] - all further operations will happen within this notebook.":"Switches to [notebook] - all further operations will happen within this notebook.","Displays version information":"Prikazuje verziju","%s %s (%s)":"%s %s (%s)","Enum":"Enumeracija","Type: %s.":"Vrsta: %s.","Possible values: %s.":"Moguće vrijednosti: %s.","Default: %s":"Default: %s","Possible keys/values:":"Mogući ključevi/vrijednosti:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Fatalna greška:","The application has been authorised - you may now close this browser tab.":"Aplikacija je autorizirana - smiješ zatvoriti karticu preglednika.","The application has been successfully authorised.":"Aplikacija je uspješno autorizirana.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Otvori sljedeći URL u pregledniku da bi ovjerio aplikaciju. Aplikacija će stvoriti direktorij u \"Apps/Joplin\" i koristiti će samo taj direktorij za čitanje i pisanje. Aplikacija neće imati pristup osobnim podacima niti ičemu izvan tog direktorija. Nijedan se podatak neće dijeliti s trećom stranom.","Search:":"Traži:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Datoteka","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Nova bilješka","New to-do":"Novi zadatak","New notebook":"Nova bilježnica","Import":"Uvoz","Export":"Export","Hide %s":"","Quit":"Izađi","Edit":"Uredi","Copy":"Kopiraj","Cut":"Izreži","Paste":"Zalijepi","Search in all the notes":"Pretraži u svim bilješkama","View":"","Toggle editor layout":"","Tools":"Alati","Synchronisation status":"Status sinkronizacije","Encryption options":"","General Options":"General Options","Help":"Pomoć","Website and documentation":"Website i dokumentacija","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"O Joplinu","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"U redu","Cancel":"Odustani","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Bilješke i postavke su pohranjene u: %s","Save":"Spremi","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"ID","Source":"Izvor","Created":"Stvoreno","Updated":"Ažurirano","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"","Back":"Natrag","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nova bilježnica \"%s\" će biti stvorena i datoteka \"%s\" će biti uvezena u nju","Please create a notebook first.":"Prvo stvori bilježnicu.","Please create a notebook first":"Prvo stvori bilježnicu","Notebook title:":"Naslov bilježnice:","Add or remove tags:":"Dodaj ili makni oznake:","Separate each tag by a comma.":"Odvoji oznake zarezom.","Rename notebook:":"Preimenuj bilježnicu:","Set alarm:":"Postavi upozorenje:","Search":"Traži","Layout":"Izgled","Some items cannot be synchronised.":"Neke stavke se ne mogu sinkronizirati.","View them now":"Pogledaj ih sada","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Dodaj ili makni oznake","Switch between note and to-do type":"Zamijeni bilješku i zadatak","Delete":"Obriši","Delete notes?":"Obriši bilješke?","No notes in here. Create one by clicking on \"New note\".":"Ovdje nema bilješki. Stvori novu pritiskom na \"Nova bilješka\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Ovdje nema bilježnica. Stvori novu pritiskom na \"Nova bilježnica\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Nepodržana poveznica ili poruka: %s","Attach file":"Priloži datoteku","Tags":"Oznake","Set alarm":"Postavi upozorenje","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Osvježi","Clear":"Očisti","OneDrive Login":"OneDrive Login","Options":"Opcije","Synchronisation Status":"Status Sinkronizacije","Encryption Options":"","Remove this tag from all the notes?":"Makni ovu oznaku iz svih bilješki?","Remove this search from the sidebar?":"Makni ovu pretragu iz izbornika?","Rename":"Preimenuj","Synchronise":"Sinkroniziraj","Notebooks":"Bilježnice","Searches":"Pretraživanja","Please select where the sync status should be exported to":"Odaberi lokaciju za izvoz statusa sinkronizacije","Usage: %s":"Korištenje: %s","Unknown flag: %s":"Nepoznata zastavica: %s","File system":"Datotečni sustav","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Samo za testiranje)","WebDAV":"","Unknown log level: %s":"Nepoznata razina logiranja: %s","Unknown level ID: %s":"Nepoznat ID razine: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Nedostaju podaci za ovjeru. Pokušaj ponovo započeti sinkronizaciju.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Ne mogu sinkronizirati OneDrive.\n\nOva greška se često javlja pri korištenju usluge OneDrive for Business koja nije podržana.\n\nMolimo da koristite obični OneDrive korisnički račun.","Cannot access %s":"Ne mogu pristupiti %s","Created local items: %d.":"Stvorene lokalne stavke: %d.","Updated local items: %d.":"Ažurirane lokalne stavke: %d.","Created remote items: %d.":"Stvorene udaljene stavke: %d.","Updated remote items: %d.":"Ažurirane udaljene stavke: %d.","Deleted local items: %d.":"Obrisane lokalne stavke: %d.","Deleted remote items: %d.":"Obrisane udaljene stavke: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"Stanje: \"%s\".","Cancelling...":"Prekidam...","Completed: %s":"Dovršeno: %s","Synchronisation is already in progress. State: %s":"Sinkronizacija je već u toku. Stanje: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Sukobi","A notebook with this title already exists: \"%s\"":"Bilježnica s ovim naslovom već postoji: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Naslov \"%s\" je rezerviran i ne može se koristiti.","Untitled":"Nenaslovljen","This note does not have geolocation information.":"Ova bilješka nema geolokacijske informacije.","Cannot copy note to \"%s\" notebook":"Ne mogu kopirati bilješku u bilježnicu %s","Cannot move note to \"%s\" notebook":"Ne mogu premjestiti bilješku u bilježnicu %s","Text editor":"Uređivač teksta","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Program za uređivanje koji će biti korišten za uređivanje bilješki. Ako ni jedan nije odabran, pokušati će se sa default programom.","Language":"Jezik","Date format":"Format datuma","Time format":"Format vremena","Theme":"Tema","Light":"Svijetla","Dark":"Tamna","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Spremi geolokacijske podatke sa bilješkama","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Automatsko instaliranje nove verzije","Synchronisation interval":"Interval sinkronizacije","%d minutes":"%d minuta","%d hour":"%d sat","%d hours":"%d sati","Show advanced options":"Prikaži napredne opcije","Synchronisation target":"Sinkroniziraj sa","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"Direktorij za sinkroniziranje (apsolutna putanja)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Putanja do direktorija za sinkronizaciju u slučaju kad je sinkronizacija sa datotečnim sustavom omogućena. Vidi `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Nevažeća vrijednost: \"%s\". Moguće vrijednosti su: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Stavke koje se ne mogu sinkronizirati","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Status (sinkronizirane stavke / ukupni broj stavki)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Ukupno: %d/%d","Conflicted: %d":"U sukobu: %d","To delete: %d":"Za brisanje: %d","Folders":"Mape","%s: %d notes":"%s: %d notes","Coming alarms":"Nadolazeća upozorenja","On %s: %s":"On %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Trenutno nema bilješki. Stvori novu klikom na (+) gumb.","Delete these notes?":"Obriši ove bilješke?","Log":"Log","Export Debug Report":"Izvezi Debug izvještaj","Encryption Config":"","Configuration":"Konfiguracija","Move to notebook...":"Premjesti u bilježnicu...","Move %d notes to notebook \"%s\"?":"Premjesti %d bilješke u bilježnicu \"%s\"?","Press to set the decryption password.":"","Select date":"Odaberi datum","Confirm":"Potvrdi","Cancel synchronisation":"Prekini sinkronizaciju","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"Bilježnicu nije moguće snimiti: %s","Edit notebook":"Uredi bilježnicu","Show all":"","Errors only":"","This note has been modified:":"Bilješka je promijenjena:","Save changes":"Spremi promjene","Discard changes":"Odbaci promjene","Unsupported image type: %s":"Nepodržana vrsta slike: %s","Attach photo":"Priloži sliku","Attach any file":"Priloži datoteku","Convert to note":"Pretvori u bilješku","Convert to todo":"Pretvori u zadatak","Hide metadata":"Sakrij metapodatke","Show metadata":"Prikaži metapodatke","View on map":"Vidi na karti","Delete notebook":"Obriši bilježnicu","Login with OneDrive":"Prijavi se u OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Klikni (+) gumb za dodavanje nove bilješke ili bilježnice ili odaberi postojeću bilježnicu iz izbornika.","You currently have no notebook. Create one by clicking on (+) button.":"Trenutno nemaš nijednu bilježnicu. Stvori novu klikom na (+) gumb.","Welcome":"Dobro došli"} \ No newline at end of file diff --git a/ElectronClient/app/locales/it_IT.json b/ElectronClient/app/locales/it_IT.json index 0219cce9d6..e1c3a52ad2 100644 --- a/ElectronClient/app/locales/it_IT.json +++ b/ElectronClient/app/locales/it_IT.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Elimina un'etichetta, togli l'etichetta associata alle note.","Please select the note or notebook to be deleted first.":"Per favore seleziona la nota o il blocco note da eliminare.","Press Ctrl+D or type \"exit\" to exit the application":"Premi Ctrl+D o digita \"exit\" per uscire dall'applicazione","More than one item match \"%s\". Please narrow down your query.":"Più di un elemento corrisponde a \"%s\". Per favore restringi la ricerca.","No notebook selected.":"Nessun blocco note selezionato.","No notebook has been specified.":"Nessun blocco note è statoi specificato.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancellazione della sincronizzazione in background... Attendere prego.","No such command: %s":"Nessun comando: %s","The command \"%s\" is only available in GUI mode":"Il comando \"%s\" è disponibile solo nella modalità grafica","Cannot change encrypted item":"","Missing required argument: %s":"Argomento richiesto mancante: %s","%s: %s":"%s: %s","Your choice: ":"La tua scelta: ","Invalid answer: %s":"Risposta non valida: %s","Attaches the given file to the note.":"Allega il seguente file alla nota.","Cannot find \"%s\".":"Non posso trovare \"%s\".","Displays the given note.":"Mostra la seguente nota.","Displays the complete information about note.":"Mostra le informazioni complete sulla nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Ricevi o imposta un valore di configurazione. se [value] non è impostato, verrà mostrato il valore del [name]. Se sia [name] che [valore] sono impostati, verrà mostrata la configurazione corrente.","Also displays unset and hidden config variables.":"Mostra anche le variabili di configurazione non impostate o nascoste.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica le note che corrispondono a nel [notebook]. Se nessun blocco note è specificato, la nota viene duplicata nel blocco note corrente.","Marks a to-do as done.":"Segna un'attività come completata.","Note is not a to-do: \"%s\"":"La nota non è un'attività: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Disabilitato","Encryption is: %s":"","Edit note.":"Modifica nota.","No text editor is defined. Please set it using `config editor `":"Non è definito nessun editor di testo. Per favore impostalo usando `config editor `","No active notebook.":"Nessun blocco note attivo.","Note does not exist: \"%s\". Create it?":"Non esiste la nota: \"%s\". Desideri crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Comincia a modificare la nota. Chiudi l'editor per tornare al prompt.","Error opening note in editor: %s":"","Note has been saved.":"La nota è stata salvata.","Exits the application.":"Esci dall'applicazione.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Esporta solo la seguente nota.","Exports only the given notebook.":"Esporta solo il seguente blocco note.","Displays a geolocation URL for the note.":"Mostra l'URL di geolocalizzazione per la nota.","Displays usage information.":"Mostra le informazioni di utilizzo.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Le scorciatoie non sono disponibili nella modalità CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"I possibili comandi sono:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In ciascun comando, si deve necessariamente definire una nota o un blocco note usando un titolo, un ID o usando le scorciatoie `$n` or `$b` per , rispettivamente, la nota o il blocco note selezionato `$c` può essere usato per fare riferimento all'elemento selezionato.","To move from one pane to another, press Tab or Shift+Tab.":"Per passare da un pannello all'altro, premi Tab o Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Usa le frecce e pagina su/giù per scorrere le liste e le aree di testo (compresa questa console).","To maximise/minimise the console, press \"TC\".":"Per massimizzare/minimizzare la console, premi \"TC\".","To enter command line mode, press \":\"":"Per entrare nella modalità command line, premi \":\"","To exit command line mode, press ESCAPE":"Per uscire dalla modalità command line, premi ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Non chiedere conferma.","Found: %d.":"Trovato: %d.","Created: %d.":"Creato: %d.","Updated: %d.":"Aggiornato: %d.","Skipped: %d.":"Saltato: %d.","Resources: %d.":"Risorse: %d.","Tagged: %d.":"Etichettato: %d.","Importing notes...":"Importazione delle note...","The notes have been imported: %s":"Le note sono state importate: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Mostra le note nel seguente blocco note. Usa `ls /` per mostrare la lista dei blocchi note.","Displays only the first top notes.":"Mostra solo le prima note.","Sorts the item by (eg. title, updated_time, created_time).":"Ordina per (es. titolo, ultimo aggiornamento, creazione).","Reverses the sorting order.":"Inverti l'ordine.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Mostra solo gli elementi del tipo specificato. Possono essere `n` per le note, `t` per le attività o `nt` per note e attività. (es. `-tt` mostrerà solo le attività, mentre `-ttd` mostrerà sia note che attività.","Either \"text\" or \"json\"":"Sia \"testo\" che \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usa un formato lungo di lista. Il formato è ID, NOTE_COUNT (per i blocchi note), DATE, TODO_CHECKED (per le attività), TITLE","Please select a notebook first.":"Per favore prima seleziona un blocco note.","Creates a new notebook.":"Crea un nuovo blocco note.","Creates a new note.":"Crea una nuova nota.","Notes can only be created within a notebook.":"Le note possono essere create all'interno de blocco note.","Creates a new to-do.":"Crea una nuova attività.","Moves the notes matching to [notebook].":"Sposta le note che corrispondono a in [notebook].","Renames the given (note or notebook) to .":"Rinomina (nota o blocco note) in .","Deletes the given notebook.":"Elimina il seguente blocco note.","Deletes the notebook without asking for confirmation.":"Elimina il blocco note senza richiedere una conferma.","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"Elimina le note che corrispondono a .","Deletes the notes without asking for confirmation.":"Elimina le note senza chiedere conferma.","%d notes match this pattern. Delete them?":"%d note corrispondono. Eliminarle?","Delete note?":"Eliminare la nota?","Searches for the given in all the notes.":"Cerca in tutte le note.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Sets the property of the given to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Mostra un sommario delle note e dei blocchi note.","Synchronises with remote storage.":"Sincronizza con l'archivio remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizza con l'obiettivo fornito (come predefinito il valore di configurazione sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticazione non completata (non è stato ricevuto alcun token di autenticazione).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"La sincronizzazione è in corso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Trovato un file di blocco. Se si è certi che non è in corso alcuna sincronizzazione, è possibile eliminare il file di blocco in \"% s\" e riprendere l'operazione.","Synchronisation target: %s (%s)":"Posizione di sincronizzazione: %s (%s)","Cannot initialize synchroniser.":"Non è possibile inizializzare il sincronizzatore.","Starting synchronisation...":"Inizio sincronizzazione...","Cancelling... Please wait.":"Cancellazione... Attendere per favore."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" può essere \"add\", \"remove\" or \"list\" per assegnare o rimuovere [tag] da [note], o per mostrare le note associate a [tag]. Il comando `tag list` può essere usato per mostrare tutte le etichette.","Invalid command: \"%s\"":"Comando non valido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" può essere \"toggle\" or \"clear\". Usa \"toggle\" per cambiare lo stato dell'attività tra completata/non completata (se l'oggetto è una normale nota, questa verrà convertita in un'attività). Usa \"clear\" convertire le attività in normali note.","Marks a to-do as non-completed.":"Marca un'attività come non completata.","Switches to [notebook] - all further operations will happen within this notebook.":"Passa tra [notebook] - tutte le ulteriori operazioni interesseranno il seguente blocco note.","Displays version information":"Mostra le informazioni sulla versione","%s %s (%s)":"%s %s (%s)","Enum":"Enumerare","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valori possibili: %s.","Default: %s":"Predefinito: %s","Possible keys/values:":"Chiave/valore possibili:","Fatal error:":"Errore fatale:","The application has been authorised - you may now close this browser tab.":"L'applicazione è stata autorizzata - puoi chiudere questo tab del tuo browser.","The application has been successfully authorised.":"L'applicazione è stata autorizzata con successo.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Per favore apri il seguente URL nel tuo browser per autenticare l'applicazione. L'applicazione creerà una directory in \"Apps/Joplin\" e leggerà/scriverà file solo in questa directory. Non avrà accesso a nessun file all'esterno di questa directory o ad alcun dato personale. Nessun dato verrà condiviso con terze parti.","Search:":"Cerca:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"File","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Nuova nota","New to-do":"Nuova attività","New notebook":"Nuovo blocco note","Import":"Importa","Export":"Export","Hide %s":"","Quit":"Esci","Edit":"Modifica","Copy":"Copia","Cut":"Taglia","Paste":"Incolla","Search in all the notes":"Cerca in tutte le note","View":"","Toggle editor layout":"","Tools":"Strumenti","Synchronisation status":"Stato di sincronizzazione","Encryption options":"","General Options":"General Options","Help":"Aiuto","Website and documentation":"Sito web e documentazione","Check for updates...":"","About Joplin":"Informazione si Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Cancella","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Stato","Encryption is:":"","Back":"Indietro","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Il nuovo blocco note \"%s\" verrà creato e \"%s\" vi verrà importato","Please create a notebook first.":"Per favore prima crea un blocco note.","Please create a notebook first":"Per favore prima crea un blocco note","Notebook title:":"Titolo del blocco note:","Add or remove tags:":"Aggiungi or rimuovi etichetta:","Separate each tag by a comma.":"Separa ogni etichetta da una virgola.","Rename notebook:":"Rinomina il blocco note:","Set alarm:":"Imposta allarme:","Search":"Cerca","Layout":"Disposizione","Some items cannot be synchronised.":"Alcuni elementi non possono essere sincronizzati.","View them now":"Mostrali ora","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Aggiungi o rimuovi etichetta","Switch between note and to-do type":"Passa da un tipo di nota a un elenco di attività","Delete":"Elimina","Delete notes?":"Eliminare le note?","No notes in here. Create one by clicking on \"New note\".":"Non è presente nessuna nota. Creane una cliccando \"Nuova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Collegamento o messaggio non supportato: %s","Attach file":"Allega file","Tags":"Etichette","Set alarm":"Imposta allarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Aggiorna","Clear":"Pulisci","OneDrive Login":"Login OneDrive","Options":"Opzioni","Synchronisation Status":"Stato della Sincronizzazione","Encryption Options":"","Remove this tag from all the notes?":"Rimuovere questa etichetta da tutte le note?","Remove this search from the sidebar?":"Rimuovere questa ricerca dalla barra laterale?","Rename":"Rinomina","Synchronise":"Sincronizza","Notebooks":"Blocchi note","Searches":"Ricerche","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Uso: %s","Unknown flag: %s":"Etichetta sconosciuta: %s","File system":"File system","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (solo per test)","WebDAV":"","Unknown log level: %s":"Livello di log sconosciuto: %s","Unknown level ID: %s":"Livello ID sconosciuto: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Non è possibile aggiornare il token. mancano i dati di autenticazione. Ricominciare la sincronizzazione da capo potrebbe risolvere il problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Impossibile sincronizzare con OneDrive.\n\nQuesto errore spesso accade quando si utilizza OneDrive for Business, che purtroppo non può essere supportato.\n\nSi prega di considerare l'idea di utilizzare un account OneDrive normale.","Cannot access %s":"Non è possibile accedere a %s","Created local items: %d.":"Elementi locali creati: %d.","Updated local items: %d.":"Elementi locali aggiornati: %d.","Created remote items: %d.":"Elementi remoti creati: %d.","Updated remote items: %d.":"Elementi remoti aggiornati: %d.","Deleted local items: %d.":"Elementi locali eliminati: %d.","Deleted remote items: %d.":"Elementi remoti eliminati: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"Stato: \"%s\".","Cancelling...":"Cancellazione...","Completed: %s":"Completata: %s","Synchronisation is already in progress. State: %s":"La sincronizzazione è già in corso. Stato: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Conflitti","A notebook with this title already exists: \"%s\"":"Esiste già un blocco note col titolo \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"I blocchi non possono essere chiamati \"%s\". È un titolo riservato.","Untitled":"Senza titolo","This note does not have geolocation information.":"Questa nota non ha informazione sulla geolocalizzazione.","Cannot copy note to \"%s\" notebook":"Non posso copiare la nota nel blocco note \"%s\"","Cannot move note to \"%s\" notebook":"Non posso spostare la nota nel blocco note \"%s\"","Text editor":"Editor di testo","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"L'editor che sarà usato per aprire la nota. Se nessun editor è specificato si cercherà di individuare automaticamente l'editor predefinito.","Language":"Linguaggio","Date format":"Formato della data","Time format":"Formato dell'orario","Theme":"Tema","Light":"Chiaro","Dark":"Scuro","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Salva geo-localizzazione con le note","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Aggiorna automaticamente l'applicazione","Synchronisation interval":"Intervallo di sincronizzazione","%d minutes":"%d minuti","%d hour":"%d ora","%d hours":"%d ore","Show advanced options":"Mostra opzioni avanzate","Synchronisation target":"Destinazione di sincronizzazione","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Il percorso di sincronizzazione quando la sincronizzazione è abilitata. Vedi `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Oprione non valida: \"%s\". I valori possibili sono: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Elementi che non possono essere sincronizzati","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Stato di sincronizzazione (Elementi sincronizzati / Elementi totali)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Totale: %d %d","Conflicted: %d":"In conflitto: %d","To delete: %d":"Da cancellare: %d","Folders":"Cartelle","%s: %d notes":"%s: %d note","Coming alarms":"Avviso imminente","On %s: %s":"Su %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Al momento non ci sono note. Creane una cliccando sul bottone (+).","Delete these notes?":"Cancellare queste note?","Log":"Log","Export Debug Report":"Esporta il Report di Debug","Encryption Config":"","Configuration":"Configurazione","Move to notebook...":"Sposta sul blocco note...","Move %d notes to notebook \"%s\"?":"Spostare le note %d sul blocco note \"%s\"?","Press to set the decryption password.":"","Select date":"Seleziona la data","Confirm":"Conferma","Cancel synchronisation":"Cancella la sincronizzazione","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"Il blocco note non può essere salvato: %s","Edit notebook":"Modifica blocco note","Show all":"","Errors only":"","This note has been modified:":"Questa note è stata modificata:","Save changes":"Salva i cambiamenti","Discard changes":"Ignora modifiche","Unsupported image type: %s":"Tipo di immagine non supportata: %s","Attach photo":"Allega foto","Attach any file":"Allega qualsiasi file","Convert to note":"Converti in nota","Convert to todo":"Converti in Todo","Hide metadata":"Nascondi i Metadati","Show metadata":"Mostra i metadati","View on map":"Guarda sulla mappa","Delete notebook":"Cancella blocco note","Login with OneDrive":"Accedi a OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Fare clic sul pulsante (+) per creare una nuova nota o un nuovo blocco note. Fare clic sul menu laterale per accedere ai tuoi blocchi note esistenti.","You currently have no notebook. Create one by clicking on (+) button.":"Attualmente non hai nessun blocco note. Crearne uno cliccando sul pulsante (+).","Welcome":"Benvenuto"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Elimina un'etichetta, togli l'etichetta associata alle note.","Please select the note or notebook to be deleted first.":"Per favore seleziona la nota o il blocco note da eliminare.","Press Ctrl+D or type \"exit\" to exit the application":"Premi Ctrl+D o digita \"exit\" per uscire dall'applicazione","More than one item match \"%s\". Please narrow down your query.":"Più di un elemento corrisponde a \"%s\". Per favore restringi la ricerca.","No notebook selected.":"Nessun blocco note selezionato.","No notebook has been specified.":"Nessun blocco note è statoi specificato.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancellazione della sincronizzazione in background... Attendere prego.","No such command: %s":"Nessun comando: %s","The command \"%s\" is only available in GUI mode":"Il comando \"%s\" è disponibile solo nella modalità grafica","Cannot change encrypted item":"","Missing required argument: %s":"Argomento richiesto mancante: %s","%s: %s":"%s: %s","Your choice: ":"La tua scelta: ","Invalid answer: %s":"Risposta non valida: %s","Attaches the given file to the note.":"Allega il seguente file alla nota.","Cannot find \"%s\".":"Non posso trovare \"%s\".","Displays the given note.":"Mostra la seguente nota.","Displays the complete information about note.":"Mostra le informazioni complete sulla nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Ricevi o imposta un valore di configurazione. se [value] non è impostato, verrà mostrato il valore del [name]. Se sia [name] che [valore] sono impostati, verrà mostrata la configurazione corrente.","Also displays unset and hidden config variables.":"Mostra anche le variabili di configurazione non impostate o nascoste.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica le note che corrispondono a nel [notebook]. Se nessun blocco note è specificato, la nota viene duplicata nel blocco note corrente.","Marks a to-do as done.":"Segna un'attività come completata.","Note is not a to-do: \"%s\"":"La nota non è un'attività: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Disabilitato","Encryption is: %s":"","Edit note.":"Modifica nota.","No text editor is defined. Please set it using `config editor `":"Non è definito nessun editor di testo. Per favore impostalo usando `config editor `","No active notebook.":"Nessun blocco note attivo.","Note does not exist: \"%s\". Create it?":"Non esiste la nota: \"%s\". Desideri crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Comincia a modificare la nota. Chiudi l'editor per tornare al prompt.","Error opening note in editor: %s":"","Note has been saved.":"La nota è stata salvata.","Exits the application.":"Esci dall'applicazione.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Esporta solo la seguente nota.","Exports only the given notebook.":"Esporta solo il seguente blocco note.","Displays a geolocation URL for the note.":"Mostra l'URL di geolocalizzazione per la nota.","Displays usage information.":"Mostra le informazioni di utilizzo.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Le scorciatoie non sono disponibili nella modalità CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"I possibili comandi sono:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In ciascun comando, si deve necessariamente definire una nota o un blocco note usando un titolo, un ID o usando le scorciatoie `$n` or `$b` per , rispettivamente, la nota o il blocco note selezionato `$c` può essere usato per fare riferimento all'elemento selezionato.","To move from one pane to another, press Tab or Shift+Tab.":"Per passare da un pannello all'altro, premi Tab o Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Usa le frecce e pagina su/giù per scorrere le liste e le aree di testo (compresa questa console).","To maximise/minimise the console, press \"TC\".":"Per massimizzare/minimizzare la console, premi \"TC\".","To enter command line mode, press \":\"":"Per entrare nella modalità command line, premi \":\"","To exit command line mode, press ESCAPE":"Per uscire dalla modalità command line, premi ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Non chiedere conferma.","Found: %d.":"Trovato: %d.","Created: %d.":"Creato: %d.","Updated: %d.":"Aggiornato: %d.","Skipped: %d.":"Saltato: %d.","Resources: %d.":"Risorse: %d.","Tagged: %d.":"Etichettato: %d.","Importing notes...":"Importazione delle note...","The notes have been imported: %s":"Le note sono state importate: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Mostra le note nel seguente blocco note. Usa `ls /` per mostrare la lista dei blocchi note.","Displays only the first top notes.":"Mostra solo le prima note.","Sorts the item by (eg. title, updated_time, created_time).":"Ordina per (es. titolo, ultimo aggiornamento, creazione).","Reverses the sorting order.":"Inverti l'ordine.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Mostra solo gli elementi del tipo specificato. Possono essere `n` per le note, `t` per le attività o `nt` per note e attività. (es. `-tt` mostrerà solo le attività, mentre `-ttd` mostrerà sia note che attività.","Either \"text\" or \"json\"":"Sia \"testo\" che \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usa un formato lungo di lista. Il formato è ID, NOTE_COUNT (per i blocchi note), DATE, TODO_CHECKED (per le attività), TITLE","Please select a notebook first.":"Per favore prima seleziona un blocco note.","Creates a new notebook.":"Crea un nuovo blocco note.","Creates a new note.":"Crea una nuova nota.","Notes can only be created within a notebook.":"Le note possono essere create all'interno de blocco note.","Creates a new to-do.":"Crea una nuova attività.","Moves the notes matching to [notebook].":"Sposta le note che corrispondono a in [notebook].","Renames the given (note or notebook) to .":"Rinomina (nota o blocco note) in .","Deletes the given notebook.":"Elimina il seguente blocco note.","Deletes the notebook without asking for confirmation.":"Elimina il blocco note senza richiedere una conferma.","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"Elimina le note che corrispondono a .","Deletes the notes without asking for confirmation.":"Elimina le note senza chiedere conferma.","%d notes match this pattern. Delete them?":"%d note corrispondono. Eliminarle?","Delete note?":"Eliminare la nota?","Searches for the given in all the notes.":"Cerca in tutte le note.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Sets the property of the given to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Mostra un sommario delle note e dei blocchi note.","Synchronises with remote storage.":"Sincronizza con l'archivio remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizza con l'obiettivo fornito (come predefinito il valore di configurazione sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticazione non completata (non è stato ricevuto alcun token di autenticazione).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"La sincronizzazione è in corso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Trovato un file di blocco. Se si è certi che non è in corso alcuna sincronizzazione, è possibile eliminare il file di blocco in \"% s\" e riprendere l'operazione.","Synchronisation target: %s (%s)":"Posizione di sincronizzazione: %s (%s)","Cannot initialize synchroniser.":"Non è possibile inizializzare il sincronizzatore.","Starting synchronisation...":"Inizio sincronizzazione...","Cancelling... Please wait.":"Cancellazione... Attendere per favore."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" può essere \"add\", \"remove\" or \"list\" per assegnare o rimuovere [tag] da [note], o per mostrare le note associate a [tag]. Il comando `tag list` può essere usato per mostrare tutte le etichette.","Invalid command: \"%s\"":"Comando non valido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" può essere \"toggle\" or \"clear\". Usa \"toggle\" per cambiare lo stato dell'attività tra completata/non completata (se l'oggetto è una normale nota, questa verrà convertita in un'attività). Usa \"clear\" convertire le attività in normali note.","Marks a to-do as non-completed.":"Marca un'attività come non completata.","Switches to [notebook] - all further operations will happen within this notebook.":"Passa tra [notebook] - tutte le ulteriori operazioni interesseranno il seguente blocco note.","Displays version information":"Mostra le informazioni sulla versione","%s %s (%s)":"%s %s (%s)","Enum":"Enumerare","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valori possibili: %s.","Default: %s":"Predefinito: %s","Possible keys/values:":"Chiave/valore possibili:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Errore fatale:","The application has been authorised - you may now close this browser tab.":"L'applicazione è stata autorizzata - puoi chiudere questo tab del tuo browser.","The application has been successfully authorised.":"L'applicazione è stata autorizzata con successo.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Per favore apri il seguente URL nel tuo browser per autenticare l'applicazione. L'applicazione creerà una directory in \"Apps/Joplin\" e leggerà/scriverà file solo in questa directory. Non avrà accesso a nessun file all'esterno di questa directory o ad alcun dato personale. Nessun dato verrà condiviso con terze parti.","Search:":"Cerca:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"File","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Nuova nota","New to-do":"Nuova attività","New notebook":"Nuovo blocco note","Import":"Importa","Export":"Export","Hide %s":"","Quit":"Esci","Edit":"Modifica","Copy":"Copia","Cut":"Taglia","Paste":"Incolla","Search in all the notes":"Cerca in tutte le note","View":"","Toggle editor layout":"","Tools":"Strumenti","Synchronisation status":"Stato di sincronizzazione","Encryption options":"","General Options":"General Options","Help":"Aiuto","Website and documentation":"Sito web e documentazione","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Informazione si Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Cancella","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Stato","Encryption is:":"","Back":"Indietro","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Il nuovo blocco note \"%s\" verrà creato e \"%s\" vi verrà importato","Please create a notebook first.":"Per favore prima crea un blocco note.","Please create a notebook first":"Per favore prima crea un blocco note","Notebook title:":"Titolo del blocco note:","Add or remove tags:":"Aggiungi or rimuovi etichetta:","Separate each tag by a comma.":"Separa ogni etichetta da una virgola.","Rename notebook:":"Rinomina il blocco note:","Set alarm:":"Imposta allarme:","Search":"Cerca","Layout":"Disposizione","Some items cannot be synchronised.":"Alcuni elementi non possono essere sincronizzati.","View them now":"Mostrali ora","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Aggiungi o rimuovi etichetta","Switch between note and to-do type":"Passa da un tipo di nota a un elenco di attività","Delete":"Elimina","Delete notes?":"Eliminare le note?","No notes in here. Create one by clicking on \"New note\".":"Non è presente nessuna nota. Creane una cliccando \"Nuova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Collegamento o messaggio non supportato: %s","Attach file":"Allega file","Tags":"Etichette","Set alarm":"Imposta allarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Aggiorna","Clear":"Pulisci","OneDrive Login":"Login OneDrive","Options":"Opzioni","Synchronisation Status":"Stato della Sincronizzazione","Encryption Options":"","Remove this tag from all the notes?":"Rimuovere questa etichetta da tutte le note?","Remove this search from the sidebar?":"Rimuovere questa ricerca dalla barra laterale?","Rename":"Rinomina","Synchronise":"Sincronizza","Notebooks":"Blocchi note","Searches":"Ricerche","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Uso: %s","Unknown flag: %s":"Etichetta sconosciuta: %s","File system":"File system","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (solo per test)","WebDAV":"","Unknown log level: %s":"Livello di log sconosciuto: %s","Unknown level ID: %s":"Livello ID sconosciuto: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Non è possibile aggiornare il token. mancano i dati di autenticazione. Ricominciare la sincronizzazione da capo potrebbe risolvere il problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Impossibile sincronizzare con OneDrive.\n\nQuesto errore spesso accade quando si utilizza OneDrive for Business, che purtroppo non può essere supportato.\n\nSi prega di considerare l'idea di utilizzare un account OneDrive normale.","Cannot access %s":"Non è possibile accedere a %s","Created local items: %d.":"Elementi locali creati: %d.","Updated local items: %d.":"Elementi locali aggiornati: %d.","Created remote items: %d.":"Elementi remoti creati: %d.","Updated remote items: %d.":"Elementi remoti aggiornati: %d.","Deleted local items: %d.":"Elementi locali eliminati: %d.","Deleted remote items: %d.":"Elementi remoti eliminati: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"Stato: \"%s\".","Cancelling...":"Cancellazione...","Completed: %s":"Completata: %s","Synchronisation is already in progress. State: %s":"La sincronizzazione è già in corso. Stato: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Conflitti","A notebook with this title already exists: \"%s\"":"Esiste già un blocco note col titolo \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"I blocchi non possono essere chiamati \"%s\". È un titolo riservato.","Untitled":"Senza titolo","This note does not have geolocation information.":"Questa nota non ha informazione sulla geolocalizzazione.","Cannot copy note to \"%s\" notebook":"Non posso copiare la nota nel blocco note \"%s\"","Cannot move note to \"%s\" notebook":"Non posso spostare la nota nel blocco note \"%s\"","Text editor":"Editor di testo","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"L'editor che sarà usato per aprire la nota. Se nessun editor è specificato si cercherà di individuare automaticamente l'editor predefinito.","Language":"Linguaggio","Date format":"Formato della data","Time format":"Formato dell'orario","Theme":"Tema","Light":"Chiaro","Dark":"Scuro","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Salva geo-localizzazione con le note","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Aggiorna automaticamente l'applicazione","Synchronisation interval":"Intervallo di sincronizzazione","%d minutes":"%d minuti","%d hour":"%d ora","%d hours":"%d ore","Show advanced options":"Mostra opzioni avanzate","Synchronisation target":"Destinazione di sincronizzazione","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Il percorso di sincronizzazione quando la sincronizzazione è abilitata. Vedi `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Oprione non valida: \"%s\". I valori possibili sono: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Elementi che non possono essere sincronizzati","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Stato di sincronizzazione (Elementi sincronizzati / Elementi totali)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Totale: %d %d","Conflicted: %d":"In conflitto: %d","To delete: %d":"Da cancellare: %d","Folders":"Cartelle","%s: %d notes":"%s: %d note","Coming alarms":"Avviso imminente","On %s: %s":"Su %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Al momento non ci sono note. Creane una cliccando sul bottone (+).","Delete these notes?":"Cancellare queste note?","Log":"Log","Export Debug Report":"Esporta il Report di Debug","Encryption Config":"","Configuration":"Configurazione","Move to notebook...":"Sposta sul blocco note...","Move %d notes to notebook \"%s\"?":"Spostare le note %d sul blocco note \"%s\"?","Press to set the decryption password.":"","Select date":"Seleziona la data","Confirm":"Conferma","Cancel synchronisation":"Cancella la sincronizzazione","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"Il blocco note non può essere salvato: %s","Edit notebook":"Modifica blocco note","Show all":"","Errors only":"","This note has been modified:":"Questa note è stata modificata:","Save changes":"Salva i cambiamenti","Discard changes":"Ignora modifiche","Unsupported image type: %s":"Tipo di immagine non supportata: %s","Attach photo":"Allega foto","Attach any file":"Allega qualsiasi file","Convert to note":"Converti in nota","Convert to todo":"Converti in Todo","Hide metadata":"Nascondi i Metadati","Show metadata":"Mostra i metadati","View on map":"Guarda sulla mappa","Delete notebook":"Cancella blocco note","Login with OneDrive":"Accedi a OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Fare clic sul pulsante (+) per creare una nuova nota o un nuovo blocco note. Fare clic sul menu laterale per accedere ai tuoi blocchi note esistenti.","You currently have no notebook. Create one by clicking on (+) button.":"Attualmente non hai nessun blocco note. Crearne uno cliccando sul pulsante (+).","Welcome":"Benvenuto"} \ No newline at end of file diff --git a/ElectronClient/app/locales/ja_JP.json b/ElectronClient/app/locales/ja_JP.json index 39c29e4dd4..9a2b205ef0 100644 --- a/ElectronClient/app/locales/ja_JP.json +++ b/ElectronClient/app/locales/ja_JP.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"タグを削除するには、関連するノートからタグを外してください。","Please select the note or notebook to be deleted first.":"ます削除するノートかノートブックを選択してください。","Press Ctrl+D or type \"exit\" to exit the application":"アプリケーションを終了するには、Ctrl+Dまたは\"exit\"と入力してください","More than one item match \"%s\". Please narrow down your query.":"一つ以上のアイテムが\"%s\"に一致しました。クエリを絞るようにしてください。","No notebook selected.":"ノートブックが選択されていません。","No notebook has been specified.":"ノートブックが選択されていません。","Y":"","n":"","N":"","y":"","Cancelling background synchronisation... Please wait.":"バックグラウンド同期を中止中… しばらくお待ちください。","No such command: %s":"コマンドが違います:%s","The command \"%s\" is only available in GUI mode":"コマンド \"%s\"は、GUIのみで有効です。","Cannot change encrypted item":"","Missing required argument: %s":"引数が足りません:%s","%s: %s":"","Your choice: ":"選択:","Invalid answer: %s":"無効な入力:%s","Attaches the given file to the note.":"選択されたファイルをノートに添付","Cannot find \"%s\".":"\"%s\"は見つかりませんでした。","Displays the given note.":"選択されたノートを表示","Displays the complete information about note.":"ノートに関するすべての情報を表示","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"設定を行います。[value]がない場合は、[name]で示された設定項目の値を表示します。両方とも指定されていない場合は、現在の設定のリストを表示します。","Also displays unset and hidden config variables.":"未設定または非表示の設定項目も表示します。","%s = %s (%s)":"","%s = %s":"","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"に一致するノートを[notebook]に複製します。[notebook]が指定されていない場合は、現在のノートブックに複製を行います。","Marks a to-do as done.":"ToDoを完了として","Note is not a to-do: \"%s\"":"ノートはToDoリストではありません:\"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"無効","Encryption is: %s":"","Edit note.":"ノートを編集する。","No text editor is defined. Please set it using `config editor `":"テキストエディタが設定されていません。`config editor `で設定を行ってください。","No active notebook.":"有効なbノートブックがありません。","Note does not exist: \"%s\". Create it?":"\"%s\"というノートはありません。お作りいたしますか?","Starting to edit note. Close the editor to get back to the prompt.":"ノートの編集の開始。エディタを閉じると元の画面に戻ることが出来ます。","Error opening note in editor: %s":"","Note has been saved.":"ノートは保存されました。","Exits the application.":"アプリケーションの終了。","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"選択されたノートのみを出力する。","Exports only the given notebook.":"選択されたノートブックのみを出力する。","Displays a geolocation URL for the note.":"ノートの位置情報URLを表示する。","Displays usage information.":"使い方を表示する。","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"CLIモードではショートカットは使用できません。","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"コマンドのさらなる情報は、`help [command]`で見ることが出来ます;または、`help all`ですべての使用方法の情報を表示できます。","The possible commands are:":"有効なコマンドは:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"すべてのコマンドで、ノートまたはノートブックは、題名またはID、または選択中の物はそれぞれショートカット`$n`または`$b`で指定できます。`$c`で選択中のアイテムを参照できます。","To move from one pane to another, press Tab or Shift+Tab.":"ペイン間を移動するには、TabかShift+Tabをおしてください。","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"リストや入力エリアの移動には矢印キーまたはPage Up/Downを使用します。","To maximise/minimise the console, press \"TC\".":"コンソールの最大化・最小化には\"TC\"と入力してください。","To enter command line mode, press \":\"":"コマンドラインモードに入るには、\":\"を入力してください。","To exit command line mode, press ESCAPE":"コマンドラインモードを終了するには、ESCキーを押してください。","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"確認を行わない。","Found: %d.":"見つかりました:%d","Created: %d.":"作成しました:%d","Updated: %d.":"アップデートしました:%d","Skipped: %d.":"スキップしました:%d","Resources: %d.":"リソース:%d","Tagged: %d.":"タグ付き:%d","Importing notes...":"ノートのインポート…","The notes have been imported: %s":"ノートはインポートされました:%s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"現在のノートブック中のノートを表示します。ノートブックのリストを表示するには、`ls /`と入力してください。","Displays only the first top notes.":"上位 件のノートを表示する。","Sorts the item by (eg. title, updated_time, created_time).":"アイテムをで並び替え (例: title, updated_time, created_time).","Reverses the sorting order.":"逆順に並び替える。","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.","Either \"text\" or \"json\"":"\"text\"または\"json\"のどちらか","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"長い形式のリストフォーマットを使用します。フォーマットは:ID, NOTE_COUNT (ノートブックのみ), DATE, TODO_CHECKED (ToDoのみ), TITLE","Please select a notebook first.":"ますはノートブックを選択して下さい。","Creates a new notebook.":"あたらしいノートブックを作成します。","Creates a new note.":"あたらしいノートを作成します。","Notes can only be created within a notebook.":"ノートは、ノートブック内のみで作ることが出来ます。","Creates a new to-do.":"新しいToDoを作成します。","Moves the notes matching to [notebook].":"に一致するアイテムを、[notebook]に移動します。","Renames the given (note or notebook) to .":" (ノートまたはノートブック)の名前を、に変更します。","Deletes the given notebook.":"指定されたノートブックを削除します。","Deletes the notebook without asking for confirmation.":"ノートブックを確認なしで削除します。","Delete notebook? All notes within this notebook will also be deleted.":"ノートブックを削除しますか?中にあるノートはすべて消えてしまいます。","Deletes the notes matching .":"に一致するノートを削除する。","Deletes the notes without asking for confirmation.":"ノートを確認なしで削除します。","%d notes match this pattern. Delete them?":"%d個のノートが一致しました。削除しますか?","Delete note?":"ノートを削除しますか?","Searches for the given in all the notes.":"指定されたをすべてのノートから検索する。","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"のプロパティ を、指示された[value]に設定します。有効なプロパティは:\n\n%s","Displays summary about the notes and notebooks.":"ノートとノートブックのサマリを表示します。","Synchronises with remote storage.":"リモート保存領域と同期します。","Sync to provided target (defaults to sync.target config value)":"指定のターゲットと同期します。(標準: sync.targetの設定値)","Authentication was not completed (did not receive an authentication token).":"認証は完了していません(認証トークンが得られませんでした)","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"同期はすでに実行中です。","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"ロックファイルがすでに保持されています。同期作業が行われていない場合は、\"%s\"にあるロックファイルを削除して、作業を再度行ってください。","Synchronisation target: %s (%s)":"同期先: %s (%s)","Cannot initialize synchroniser.":"同期プロセスを初期化できませんでした。","Starting synchronisation...":"同期を開始中...","Cancelling... Please wait.":"中止中...お待ちください。"," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" は\"add\", \"remove\", \"list\"のいずれかで、指定したノートからタグをつけたり外したり出来ます。`tag list`で、すべてのタグを見ることが出来ます。","Invalid command: \"%s\"":"無効な命令: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"は、\"toggle\"または\"clear\"を指定できます。\"toggle\"を指定すると、指定したToDoの完了済み/未完を反転できます。指定したノートが通常のノートであれば、ToDoに変換されます。\"clear\"を指定すると、ToDoを通常のノートに変換できます。","Marks a to-do as non-completed.":"ToDoを未完としてマーク","Switches to [notebook] - all further operations will happen within this notebook.":"ノートブック [notebook]に切り替え - これ以降の作業は、指定のノートブック内で行われます。","Displays version information":"バージョン情報の表示","%s %s (%s)":"","Enum":"列挙","Type: %s.":"種類: %s.","Possible values: %s.":"取り得る値: %s.","Default: %s":"規定値: %s","Possible keys/values:":"取り得るキーバリュー: ","Fatal error:":"致命的なエラー: ","The application has been authorised - you may now close this browser tab.":"アプリケーションは認証されました - ブラウザを閉じて頂いてかまいません。","The application has been successfully authorised.":"アプリケーションは問題なく認証されました。","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"このアプリケーションを認証するためには下記のURLをブラウザで開いてください。アプリケーションは\"Apps/Joplin\"フォルダを作成し、その中のファイルのみを読み書きします。あなたの個人的なファイルや、ディレクトリ外のファイルにはアクセスしません。第三者にデータが共有されることもありません。","Search:":"検索: ","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Joplinへようこそ!\n\n`:help shortcuts`と入力することで、キーボードショートカットのリストを見ることが出来ます。また、`:help`で使い方を確認できます。\n\n例えば、ノートブックの作成には`mb`で出来、ノートの作成は`mn`で行うことが出来ます。","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"ファイル","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"新しいノート","New to-do":"新しいToDo","New notebook":"新しいノートブック","Import":"インポート","Export":"Export","Hide %s":"","Quit":"終了","Edit":"編集","Copy":"コピー","Cut":"切り取り","Paste":"貼り付け","Search in all the notes":"すべてのノートを検索","View":"","Toggle editor layout":"","Tools":"ツール","Synchronisation status":"同期状況","Encryption options":"","General Options":"General Options","Help":"ヘルプ","Website and documentation":"Webサイトとドキュメント","Check for updates...":"","About Joplin":"Joplinについて","%s %s (%s, %s)":"","Open %s":"","Exit":"","OK":"","Cancel":"キャンセル","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"ノートと設定は、%sに保存されます。","Save":"保存","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"アクティブ","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"注意:\"active\"に指定されたマスターキーのみが暗号化に使用されます。暗号化に使用されたキーの応じて、すべてのキーが暗号解除のために使用されます。","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"状態","Encryption is:":"","Back":"戻る","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"\"%s\"という名前の新しいノートブックが作成され、ファイル\"%s\"がインポートされます。","Please create a notebook first.":"ますはノートブックを作成して下さい。","Please create a notebook first":"ますはノートブックを作成して下さい。","Notebook title:":"ノートブックの題名:","Add or remove tags:":"タグの追加・削除:","Separate each tag by a comma.":"それぞれのタグをカンマ(,)で区切ってください。","Rename notebook:":"ノートブックの名前を変更:","Set alarm:":"アラームをセット:","Search":"検索","Layout":"レイアウト","Some items cannot be synchronised.":"いくつかの項目は同期されませんでした。","View them now":"今すぐ表示","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"タグの追加・削除","Switch between note and to-do type":"ノートとToDoを切り替え","Delete":"削除","Delete notes?":"ノートを削除しますか?","No notes in here. Create one by clicking on \"New note\".":"ノートがありません。新しいノートを作成して下さい。","There is currently no notebook. Create one by clicking on \"New notebook\".":"ノートブックがありません。新しいノートブックを作成してください。","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"","Attach file":"ファイルを添付","Tags":"タグ","Set alarm":"アラームをセット","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"更新","Clear":"クリア","OneDrive Login":"OneDriveログイン","Options":"オプション","Synchronisation Status":"同期状況","Encryption Options":"","Remove this tag from all the notes?":"すべてのノートからこのタグを削除しますか?","Remove this search from the sidebar?":"サイドバーからこの検索を削除しますか?","Rename":"名前の変更","Synchronise":"同期","Notebooks":"ノートブック","Searches":"検索","Please select where the sync status should be exported to":"同期状況の出力先を選択してください","Usage: %s":"使用方法: %s","Unknown flag: %s":"不明なフラグ: %s","File system":"ファイルシステム","Nextcloud":"","OneDrive":"","OneDrive Dev (For testing only)":"","WebDAV":"","Unknown log level: %s":"","Unknown level ID: %s":"","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"トークンの更新が出来ませんでした。認証データがありません。同期を再度行うことで解決することがあります。","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"OneDriveと同期できませんでした。\n\nOneDrive for Business(未サポート)を使用中はこのエラーが起こることがあります。\n\n通常のOneDriveアカウントの使用をご検討ください。","Cannot access %s":"%sにアクセスできません","Created local items: %d.":"ローカルアイテムの作成: %d.","Updated local items: %d.":"ローカルアイテムの更新: %d.","Created remote items: %d.":"リモートアイテムの作成: %d.","Updated remote items: %d.":"リモートアイテムの更新: %d.","Deleted local items: %d.":"ローカルアイテムの削除: %d.","Deleted remote items: %d.":"リモートアイテムの削除: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"状態: \"%s\"。","Cancelling...":"中止中...","Completed: %s":"完了: %s","Synchronisation is already in progress. State: %s":"同期作業はすでに実行中です。状態: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"衝突","A notebook with this title already exists: \"%s\"":"\"%s\"という名前のノートブックはすでに存在しています。","Notebooks cannot be named \"%s\", which is a reserved title.":"\"%s\"と言う名前はシステムで使用するために予約済みです。名前の変更が出来ません。","Untitled":"名称未設定","This note does not have geolocation information.":"このノートには位置情報がありません。","Cannot copy note to \"%s\" notebook":"ノートをノートブック \"%s\"にコピーできませんでした。","Cannot move note to \"%s\" notebook":"ノートをノートブック \"%s\"に移動できませんでした。","Text editor":"テキストエディタ","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"ノートを開くために使用されるエディタです。特に指定がなければ、デフォルトのエディタの検出を試みます。","Language":"言語","Date format":"日付の形式","Time format":"時刻の形式","Theme":"テーマ","Light":"明るい","Dark":"暗い","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"ノートに位置情報を保存","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"アプリケーションの自動更新","Synchronisation interval":"同期間隔","%d minutes":"%d 分","%d hour":"%d 時間","%d hours":"%d 時間","Show advanced options":"詳細な設定の表示","Synchronisation target":"同期先","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"同期先のディレクトリ(絶対パス)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"ファイルシステム同期の有効時に同期を行うパスです。`sync.target`も参考にしてください。","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"無効な設定値: \"%s\"。有効な値は: %sです。","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"同期が出来なかったアイテム","%s (%s): %s":"","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"同期状況 (同期済/総数)","%s: %d/%d":"","Total: %d/%d":"総数: %d/%d","Conflicted: %d":"衝突: %d","To delete: %d":"削除予定: %d","Folders":"フォルダ","%s: %d notes":"%s: %d ノート","Coming alarms":"時間のきたアラーム","On %s: %s":"","There are currently no notes. Create one by clicking on the (+) button.":"ノートがありません。(+)ボタンを押して新しいノートを作成してください。","Delete these notes?":"ノートを削除しますか?","Log":"ログ","Export Debug Report":"デバッグレポートの出力","Encryption Config":"","Configuration":"設定","Move to notebook...":"ノートブックへ移動...","Move %d notes to notebook \"%s\"?":"%d個のノートを\"%s\"に移動しますか?","Press to set the decryption password.":"","Select date":"日付の選択","Confirm":"確認","Cancel synchronisation":"同期の中止","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"ノートブックは保存できませんでした:%s","Edit notebook":"ノートブックの編集","Show all":"","Errors only":"","This note has been modified:":"ノートは変更されています:","Save changes":"変更を保存","Discard changes":"変更を破棄","Unsupported image type: %s":"サポートされていないイメージ形式: %s.","Attach photo":"写真を添付","Attach any file":"ファイルを添付","Convert to note":"ノートに変換","Convert to todo":"ToDoに変換","Hide metadata":"メタデータを隠す","Show metadata":"メタデータを表示","View on map":"地図上に表示","Delete notebook":"ノートブックを削除","Login with OneDrive":"OneDriveログイン","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"(+)ボタンを押してノートやノートブックを作成してください。サイドメニューからあなたのノートブックにアクセスが出来ます。","You currently have no notebook. Create one by clicking on (+) button.":"ノートブックがありません。(+)をクリックして新しいノートブックを作成してください。","Welcome":"ようこそ"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"タグを削除するには、関連するノートからタグを外してください。","Please select the note or notebook to be deleted first.":"ます削除するノートかノートブックを選択してください。","Press Ctrl+D or type \"exit\" to exit the application":"アプリケーションを終了するには、Ctrl+Dまたは\"exit\"と入力してください","More than one item match \"%s\". Please narrow down your query.":"一つ以上のアイテムが\"%s\"に一致しました。クエリを絞るようにしてください。","No notebook selected.":"ノートブックが選択されていません。","No notebook has been specified.":"ノートブックが選択されていません。","Y":"","n":"","N":"","y":"","Cancelling background synchronisation... Please wait.":"バックグラウンド同期を中止中… しばらくお待ちください。","No such command: %s":"コマンドが違います:%s","The command \"%s\" is only available in GUI mode":"コマンド \"%s\"は、GUIのみで有効です。","Cannot change encrypted item":"","Missing required argument: %s":"引数が足りません:%s","%s: %s":"","Your choice: ":"選択:","Invalid answer: %s":"無効な入力:%s","Attaches the given file to the note.":"選択されたファイルをノートに添付","Cannot find \"%s\".":"\"%s\"は見つかりませんでした。","Displays the given note.":"選択されたノートを表示","Displays the complete information about note.":"ノートに関するすべての情報を表示","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"設定を行います。[value]がない場合は、[name]で示された設定項目の値を表示します。両方とも指定されていない場合は、現在の設定のリストを表示します。","Also displays unset and hidden config variables.":"未設定または非表示の設定項目も表示します。","%s = %s (%s)":"","%s = %s":"","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"に一致するノートを[notebook]に複製します。[notebook]が指定されていない場合は、現在のノートブックに複製を行います。","Marks a to-do as done.":"ToDoを完了として","Note is not a to-do: \"%s\"":"ノートはToDoリストではありません:\"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"無効","Encryption is: %s":"","Edit note.":"ノートを編集する。","No text editor is defined. Please set it using `config editor `":"テキストエディタが設定されていません。`config editor `で設定を行ってください。","No active notebook.":"有効なbノートブックがありません。","Note does not exist: \"%s\". Create it?":"\"%s\"というノートはありません。お作りいたしますか?","Starting to edit note. Close the editor to get back to the prompt.":"ノートの編集の開始。エディタを閉じると元の画面に戻ることが出来ます。","Error opening note in editor: %s":"","Note has been saved.":"ノートは保存されました。","Exits the application.":"アプリケーションの終了。","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"選択されたノートのみを出力する。","Exports only the given notebook.":"選択されたノートブックのみを出力する。","Displays a geolocation URL for the note.":"ノートの位置情報URLを表示する。","Displays usage information.":"使い方を表示する。","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"CLIモードではショートカットは使用できません。","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"コマンドのさらなる情報は、`help [command]`で見ることが出来ます;または、`help all`ですべての使用方法の情報を表示できます。","The possible commands are:":"有効なコマンドは:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"すべてのコマンドで、ノートまたはノートブックは、題名またはID、または選択中の物はそれぞれショートカット`$n`または`$b`で指定できます。`$c`で選択中のアイテムを参照できます。","To move from one pane to another, press Tab or Shift+Tab.":"ペイン間を移動するには、TabかShift+Tabをおしてください。","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"リストや入力エリアの移動には矢印キーまたはPage Up/Downを使用します。","To maximise/minimise the console, press \"TC\".":"コンソールの最大化・最小化には\"TC\"と入力してください。","To enter command line mode, press \":\"":"コマンドラインモードに入るには、\":\"を入力してください。","To exit command line mode, press ESCAPE":"コマンドラインモードを終了するには、ESCキーを押してください。","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"確認を行わない。","Found: %d.":"見つかりました:%d","Created: %d.":"作成しました:%d","Updated: %d.":"アップデートしました:%d","Skipped: %d.":"スキップしました:%d","Resources: %d.":"リソース:%d","Tagged: %d.":"タグ付き:%d","Importing notes...":"ノートのインポート…","The notes have been imported: %s":"ノートはインポートされました:%s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"現在のノートブック中のノートを表示します。ノートブックのリストを表示するには、`ls /`と入力してください。","Displays only the first top notes.":"上位 件のノートを表示する。","Sorts the item by (eg. title, updated_time, created_time).":"アイテムをで並び替え (例: title, updated_time, created_time).","Reverses the sorting order.":"逆順に並び替える。","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.","Either \"text\" or \"json\"":"\"text\"または\"json\"のどちらか","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"長い形式のリストフォーマットを使用します。フォーマットは:ID, NOTE_COUNT (ノートブックのみ), DATE, TODO_CHECKED (ToDoのみ), TITLE","Please select a notebook first.":"ますはノートブックを選択して下さい。","Creates a new notebook.":"あたらしいノートブックを作成します。","Creates a new note.":"あたらしいノートを作成します。","Notes can only be created within a notebook.":"ノートは、ノートブック内のみで作ることが出来ます。","Creates a new to-do.":"新しいToDoを作成します。","Moves the notes matching to [notebook].":"に一致するアイテムを、[notebook]に移動します。","Renames the given (note or notebook) to .":" (ノートまたはノートブック)の名前を、に変更します。","Deletes the given notebook.":"指定されたノートブックを削除します。","Deletes the notebook without asking for confirmation.":"ノートブックを確認なしで削除します。","Delete notebook? All notes within this notebook will also be deleted.":"ノートブックを削除しますか?中にあるノートはすべて消えてしまいます。","Deletes the notes matching .":"に一致するノートを削除する。","Deletes the notes without asking for confirmation.":"ノートを確認なしで削除します。","%d notes match this pattern. Delete them?":"%d個のノートが一致しました。削除しますか?","Delete note?":"ノートを削除しますか?","Searches for the given in all the notes.":"指定されたをすべてのノートから検索する。","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"のプロパティ を、指示された[value]に設定します。有効なプロパティは:\n\n%s","Displays summary about the notes and notebooks.":"ノートとノートブックのサマリを表示します。","Synchronises with remote storage.":"リモート保存領域と同期します。","Sync to provided target (defaults to sync.target config value)":"指定のターゲットと同期します。(標準: sync.targetの設定値)","Authentication was not completed (did not receive an authentication token).":"認証は完了していません(認証トークンが得られませんでした)","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"同期はすでに実行中です。","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"ロックファイルがすでに保持されています。同期作業が行われていない場合は、\"%s\"にあるロックファイルを削除して、作業を再度行ってください。","Synchronisation target: %s (%s)":"同期先: %s (%s)","Cannot initialize synchroniser.":"同期プロセスを初期化できませんでした。","Starting synchronisation...":"同期を開始中...","Cancelling... Please wait.":"中止中...お待ちください。"," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" は\"add\", \"remove\", \"list\"のいずれかで、指定したノートからタグをつけたり外したり出来ます。`tag list`で、すべてのタグを見ることが出来ます。","Invalid command: \"%s\"":"無効な命令: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"は、\"toggle\"または\"clear\"を指定できます。\"toggle\"を指定すると、指定したToDoの完了済み/未完を反転できます。指定したノートが通常のノートであれば、ToDoに変換されます。\"clear\"を指定すると、ToDoを通常のノートに変換できます。","Marks a to-do as non-completed.":"ToDoを未完としてマーク","Switches to [notebook] - all further operations will happen within this notebook.":"ノートブック [notebook]に切り替え - これ以降の作業は、指定のノートブック内で行われます。","Displays version information":"バージョン情報の表示","%s %s (%s)":"","Enum":"列挙","Type: %s.":"種類: %s.","Possible values: %s.":"取り得る値: %s.","Default: %s":"規定値: %s","Possible keys/values:":"取り得るキーバリュー: ","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"致命的なエラー: ","The application has been authorised - you may now close this browser tab.":"アプリケーションは認証されました - ブラウザを閉じて頂いてかまいません。","The application has been successfully authorised.":"アプリケーションは問題なく認証されました。","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"このアプリケーションを認証するためには下記のURLをブラウザで開いてください。アプリケーションは\"Apps/Joplin\"フォルダを作成し、その中のファイルのみを読み書きします。あなたの個人的なファイルや、ディレクトリ外のファイルにはアクセスしません。第三者にデータが共有されることもありません。","Search:":"検索: ","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Joplinへようこそ!\n\n`:help shortcuts`と入力することで、キーボードショートカットのリストを見ることが出来ます。また、`:help`で使い方を確認できます。\n\n例えば、ノートブックの作成には`mb`で出来、ノートの作成は`mn`で行うことが出来ます。","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"ファイル","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"新しいノート","New to-do":"新しいToDo","New notebook":"新しいノートブック","Import":"インポート","Export":"Export","Hide %s":"","Quit":"終了","Edit":"編集","Copy":"コピー","Cut":"切り取り","Paste":"貼り付け","Search in all the notes":"すべてのノートを検索","View":"","Toggle editor layout":"","Tools":"ツール","Synchronisation status":"同期状況","Encryption options":"","General Options":"General Options","Help":"ヘルプ","Website and documentation":"Webサイトとドキュメント","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Joplinについて","%s %s (%s, %s)":"","Open %s":"","Exit":"","OK":"","Cancel":"キャンセル","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"ノートと設定は、%sに保存されます。","Save":"保存","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"アクティブ","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"注意:\"active\"に指定されたマスターキーのみが暗号化に使用されます。暗号化に使用されたキーの応じて、すべてのキーが暗号解除のために使用されます。","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"状態","Encryption is:":"","Back":"戻る","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"\"%s\"という名前の新しいノートブックが作成され、ファイル\"%s\"がインポートされます。","Please create a notebook first.":"ますはノートブックを作成して下さい。","Please create a notebook first":"ますはノートブックを作成して下さい。","Notebook title:":"ノートブックの題名:","Add or remove tags:":"タグの追加・削除:","Separate each tag by a comma.":"それぞれのタグをカンマ(,)で区切ってください。","Rename notebook:":"ノートブックの名前を変更:","Set alarm:":"アラームをセット:","Search":"検索","Layout":"レイアウト","Some items cannot be synchronised.":"いくつかの項目は同期されませんでした。","View them now":"今すぐ表示","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"タグの追加・削除","Switch between note and to-do type":"ノートとToDoを切り替え","Delete":"削除","Delete notes?":"ノートを削除しますか?","No notes in here. Create one by clicking on \"New note\".":"ノートがありません。新しいノートを作成して下さい。","There is currently no notebook. Create one by clicking on \"New notebook\".":"ノートブックがありません。新しいノートブックを作成してください。","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"","Attach file":"ファイルを添付","Tags":"タグ","Set alarm":"アラームをセット","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"更新","Clear":"クリア","OneDrive Login":"OneDriveログイン","Options":"オプション","Synchronisation Status":"同期状況","Encryption Options":"","Remove this tag from all the notes?":"すべてのノートからこのタグを削除しますか?","Remove this search from the sidebar?":"サイドバーからこの検索を削除しますか?","Rename":"名前の変更","Synchronise":"同期","Notebooks":"ノートブック","Searches":"検索","Please select where the sync status should be exported to":"同期状況の出力先を選択してください","Usage: %s":"使用方法: %s","Unknown flag: %s":"不明なフラグ: %s","File system":"ファイルシステム","Nextcloud":"","OneDrive":"","OneDrive Dev (For testing only)":"","WebDAV":"","Unknown log level: %s":"","Unknown level ID: %s":"","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"トークンの更新が出来ませんでした。認証データがありません。同期を再度行うことで解決することがあります。","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"OneDriveと同期できませんでした。\n\nOneDrive for Business(未サポート)を使用中はこのエラーが起こることがあります。\n\n通常のOneDriveアカウントの使用をご検討ください。","Cannot access %s":"%sにアクセスできません","Created local items: %d.":"ローカルアイテムの作成: %d.","Updated local items: %d.":"ローカルアイテムの更新: %d.","Created remote items: %d.":"リモートアイテムの作成: %d.","Updated remote items: %d.":"リモートアイテムの更新: %d.","Deleted local items: %d.":"ローカルアイテムの削除: %d.","Deleted remote items: %d.":"リモートアイテムの削除: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"状態: \"%s\"。","Cancelling...":"中止中...","Completed: %s":"完了: %s","Synchronisation is already in progress. State: %s":"同期作業はすでに実行中です。状態: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"衝突","A notebook with this title already exists: \"%s\"":"\"%s\"という名前のノートブックはすでに存在しています。","Notebooks cannot be named \"%s\", which is a reserved title.":"\"%s\"と言う名前はシステムで使用するために予約済みです。名前の変更が出来ません。","Untitled":"名称未設定","This note does not have geolocation information.":"このノートには位置情報がありません。","Cannot copy note to \"%s\" notebook":"ノートをノートブック \"%s\"にコピーできませんでした。","Cannot move note to \"%s\" notebook":"ノートをノートブック \"%s\"に移動できませんでした。","Text editor":"テキストエディタ","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"ノートを開くために使用されるエディタです。特に指定がなければ、デフォルトのエディタの検出を試みます。","Language":"言語","Date format":"日付の形式","Time format":"時刻の形式","Theme":"テーマ","Light":"明るい","Dark":"暗い","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"ノートに位置情報を保存","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"アプリケーションの自動更新","Synchronisation interval":"同期間隔","%d minutes":"%d 分","%d hour":"%d 時間","%d hours":"%d 時間","Show advanced options":"詳細な設定の表示","Synchronisation target":"同期先","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"同期先のディレクトリ(絶対パス)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"ファイルシステム同期の有効時に同期を行うパスです。`sync.target`も参考にしてください。","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"無効な設定値: \"%s\"。有効な値は: %sです。","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"同期が出来なかったアイテム","%s (%s): %s":"","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"同期状況 (同期済/総数)","%s: %d/%d":"","Total: %d/%d":"総数: %d/%d","Conflicted: %d":"衝突: %d","To delete: %d":"削除予定: %d","Folders":"フォルダ","%s: %d notes":"%s: %d ノート","Coming alarms":"時間のきたアラーム","On %s: %s":"","There are currently no notes. Create one by clicking on the (+) button.":"ノートがありません。(+)ボタンを押して新しいノートを作成してください。","Delete these notes?":"ノートを削除しますか?","Log":"ログ","Export Debug Report":"デバッグレポートの出力","Encryption Config":"","Configuration":"設定","Move to notebook...":"ノートブックへ移動...","Move %d notes to notebook \"%s\"?":"%d個のノートを\"%s\"に移動しますか?","Press to set the decryption password.":"","Select date":"日付の選択","Confirm":"確認","Cancel synchronisation":"同期の中止","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"ノートブックは保存できませんでした:%s","Edit notebook":"ノートブックの編集","Show all":"","Errors only":"","This note has been modified:":"ノートは変更されています:","Save changes":"変更を保存","Discard changes":"変更を破棄","Unsupported image type: %s":"サポートされていないイメージ形式: %s.","Attach photo":"写真を添付","Attach any file":"ファイルを添付","Convert to note":"ノートに変換","Convert to todo":"ToDoに変換","Hide metadata":"メタデータを隠す","Show metadata":"メタデータを表示","View on map":"地図上に表示","Delete notebook":"ノートブックを削除","Login with OneDrive":"OneDriveログイン","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"(+)ボタンを押してノートやノートブックを作成してください。サイドメニューからあなたのノートブックにアクセスが出来ます。","You currently have no notebook. Create one by clicking on (+) button.":"ノートブックがありません。(+)をクリックして新しいノートブックを作成してください。","Welcome":"ようこそ"} \ No newline at end of file diff --git a/ElectronClient/app/locales/nl_BE.json b/ElectronClient/app/locales/nl_BE.json index c754cc6cd9..e2a8a4540b 100644 --- a/ElectronClient/app/locales/nl_BE.json +++ b/ElectronClient/app/locales/nl_BE.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Untag de geassocieerde notities om een tag te verwijderen.","Please select the note or notebook to be deleted first.":"Selecteer eerst het notitieboek of de notitie om te verwijderen.","Press Ctrl+D or type \"exit\" to exit the application":"Typ Ctrl+D of \"exit\" om de applicatie te sluiten","More than one item match \"%s\". Please narrow down your query.":"Meer dan een item voldoet aan de zoekterm \"%s\". Verfijn uw zoekterm a.u.b.","No notebook selected.":"Geen notitieboek geselecteerd.","No notebook has been specified.":"Geen notitieboek is gespecifieerd","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Achtergrond synchronisatie wordt geannuleerd... Even geduld.","No such command: %s":"Geen commando gevonden: \"%s\"","The command \"%s\" is only available in GUI mode":"Het opgegeven command \"%s\" is alleen beschikbaar in de GUI versie","Cannot change encrypted item":"Kan het versleutelde item niet wijzigen","Missing required argument: %s":"Benodigde argumenten niet voorzien: %s","%s: %s":"%s: %s","Your choice: ":"Uw keuze:","Invalid answer: %s":"Ongeldig antwoord: %s","Attaches the given file to the note.":"Voegt het bestand toe aan de notitie.","Cannot find \"%s\".":"Kan \"%s\" niet vinden.","Displays the given note.":"Toont de opgegeven notitie.","Displays the complete information about note.":"Toont de volledige informatie van een notitie.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Haal een configuratie waarde op of stel een waarde in. Als [value] niet opgegeven is, zal de waarde van [name] getoond worden. Als nog de [name] of [waarde] opgegeven zijn, zal de huidige configuratie opgelijst worden.","Also displays unset and hidden config variables.":"Toont ook niet-geconfigureerde en verborgen configuratie opties. ","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Verveelvoudig de notities die voldoen aan in [notitieboek]. Als er geen notitieboek is meegegeven, de notitie is gedupliceerd in het huidige notitieboek.","Marks a to-do as done.":"Markeer een to-do als voltooid. ","Note is not a to-do: \"%s\"":"Notitie is geen to-do: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Beheert E2EE configuratie. Commando's zijn `enable`, `disable`, `decrypt`, `status` and `target-status`.","Enter master password:":"Voeg hoofdsleutel in:","Operation cancelled":"Operatie geannuleerd","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Ontsleuteling starten... Dit kan enkele minuten duren, afhankelijk van hoeveel er te ontsleutelen is. ","Completed decryption.":"Ontsleuteling voltooid","Enabled":"Ingeschakeld","Disabled":"UItgeschakeld","Encryption is: %s":"Encryptie is: %s","Edit note.":"Bewerk notitie.","No text editor is defined. Please set it using `config editor `":"Geen tekst editor is ingesteld. Stel in met `config editor `","No active notebook.":"Geen actief notitieboek.","Note does not exist: \"%s\". Create it?":"Notitie bestaat niet: \"%s\". Aanmaken?","Starting to edit note. Close the editor to get back to the prompt.":"Bewerken notitie gestart. Sluit de editor om terug naar de prompt te gaan.","Error opening note in editor: %s":"","Note has been saved.":"Notitie is opgeslaan.","Exits the application.":"Sluit de applicatie.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exporteert alleen de opgegeven notitie.","Exports only the given notebook.":"Exporteert alleen het opgegeven notitieboek.","Displays a geolocation URL for the note.":"Toont een geolocatie link voor de notitie.","Displays usage information.":"Toont gebruiksinformatie.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Shortcuts zijn niet beschikbaar in command line modus.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Typ `help [commando]` voor meer informatie over een commando; of typ `help all` voor de volledige gebruiksaanwijzing.","The possible commands are:":"Mogelijke commando's zijn:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In iedere commando kan een notitie of een notitieboek opgegeven worden door de title of het ID of de shortcuts `$n` of `$b` voor, respectievelijk, het huidig geslecteerde notitieboek of huidig geselecteerde notitie. `$c` kan gebruikt worden om te refereren naar het huidige geselecteerde item.","To move from one pane to another, press Tab or Shift+Tab.":"Om van het ene paneel naar het andere te gaan, duw Tab of Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Gebruik de pijltjes en page up/down om door de lijsten en de tekstvelden te scrollen (ook deze console).","To maximise/minimise the console, press \"TC\".":"Om de console te maximaliseren/minimaliseren, typ \"TC\".","To enter command line mode, press \":\"":"Om command line modus te gebruiken, duw \":\"","To exit command line mode, press ESCAPE":"Om command line modus te verlaten, duw ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Vraag niet om bevestiging. ","Found: %d.":"Gevonden: %d.","Created: %d.":"Aangemaakt: %d.","Updated: %d.":"Bijgewerkt: %d.","Skipped: %d.":"Geskipt: %d.","Resources: %d.":"Middelen: %d.","Tagged: %d.":"Getagd: %d.","Importing notes...":"Notities importeren...","The notes have been imported: %s":"Notities zijn geïmporteerd: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Toont de notities in het huidige notitieboek. Gebruik `ls /` om een lijst van notitieboeken te tonen.","Displays only the first top notes.":"Toont enkel de top notities.","Sorts the item by (eg. title, updated_time, created_time).":"Sorteert de items volgens (vb. title, updated_time, created_time).","Reverses the sorting order.":"Draait de sorteervolgorde om.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Toont enkel de items van de specifieke type(s). Kan `n` zijn voor notities, `t` voor to-do's, of `nt` voor notities en to-do's (vb. `-tt` zou alleen to-do's tonen, terwijl `-ttd` notities en to-do's zou tonen).","Either \"text\" or \"json\"":"Of \"text\" of \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Gebruik volgend lijst formaat. Formaat is ID, NOTE_COUNT (voor notitieboek), DATE, TODO_CHECKED (voor to-do's), TITLE","Please select a notebook first.":"Selecteer eerst een notitieboek. ","Creates a new notebook.":"Maakt een nieuw notitieboek aan.","Creates a new note.":"Maakt een nieuwe notitie aan.","Notes can only be created within a notebook.":"Notities kunnen enkel in een notitieboek aangemaakt worden.","Creates a new to-do.":"Maakt nieuwe to-do aan.","Moves the notes matching to [notebook].":"Verplaatst de notities die voldoen aan naar [notitieboek].","Renames the given (note or notebook) to .":"Hernoemt het gegeven (notitie of notitieboek) naar .","Deletes the given notebook.":"Verwijdert het opgegeven notitieboek.","Deletes the notebook without asking for confirmation.":"Verwijdert het notitieboek zonder te vragen om bevestiging.","Delete notebook? All notes within this notebook will also be deleted.":"Notitieboek verwijderen? Alle notities in dit notitieboek zullen ook verwijderd worden.","Deletes the notes matching .":"Verwijder alle notities die voldoen aan .","Deletes the notes without asking for confirmation.":"Verwijder de notities zonder te vragen om bevestiging. ","%d notes match this pattern. Delete them?":"%d notities voldoen aan het patroon. Items verwijderen?","Delete note?":"Notitie verwijderen?","Searches for the given in all the notes.":"Zoektermen voor het opgegeven in alle notities.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Zet de eigenschap van de opgegeven naar de opgegeven [value]. Mogelijke eigenschappen zijn:\n\n%s","Displays summary about the notes and notebooks.":"Toon samenvatting van alle notities en notitieboeken","Synchronises with remote storage.":"Synchroniseert met remote opslag. ","Sync to provided target (defaults to sync.target config value)":"Synchroniseer naar opgegeven doel (standaard sync.target configuratie optie)","Authentication was not completed (did not receive an authentication token).":"Authenticatie was niet voltooid (geen authenticatietoken ontvangen).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"Synchronisatie reeds bezig.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Er is reeds een lockfile. Als u zeker bent dat er geen synchronisatie bezig is, kan de lock file verwijderd worden op \"%s\" en verder gegaan worden met de synchronisatie. ","Synchronisation target: %s (%s)":"Synchronisatiedoel: %s (%s)","Cannot initialize synchroniser.":"Kan de synchronisatie niet starten.","Starting synchronisation...":"Synchronisatie starten...","Cancelling... Please wait.":"Annuleren.. Even geduld."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" kan \"add\", \"remove\" of \"list\" zijn om een [tag] toe te voegen aan een [note] of te verwijderen, of om alle notities geassocieerd met de [tag] op te lijsten. Het commando `tag list` kan gebruikt worden om alle tags op te lijsten.","Invalid command: \"%s\"":"Ongeldig commando: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" kan of \"toggle\" of \"clear\" zijn. Gebruik \"toggle\" om de to-do als voltooid of onvoltooid weer te geven (als het doel een standaard notitie is, zal ze geconverteerd worden naar een to-do). Gebruik \"clear\" om terug te wisselen naar een standaard notitie. ","Marks a to-do as non-completed.":"Markeert een to-do als onvoltooid.","Switches to [notebook] - all further operations will happen within this notebook.":"Wisselt naar [notitieboek] - Alle verdere acties zullen op dit notitieboek toegepast worden.","Displays version information":"Toont versie informatie","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Type: %s.","Possible values: %s.":"Mogelijke waarden: %s.","Default: %s":"Standaard: %s","Possible keys/values:":"Mogelijke sleutels/waarden:","Fatal error:":"Fatale fout:","The application has been authorised - you may now close this browser tab.":"De applicatie is geauthenticeerd - U kan deze tab sluiten.","The application has been successfully authorised.":"De applicatie is succesvol geauthenticeerd.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Open de volgende link in uw browser om de applicatie te authenticeren. De applicatie zal een folder in \"Apps/Joplin\" aanmaken en zal enkel bestanden aanmaken en lezen in deze folder. De applicatie zal geen toegang hebben tot bestanden buiten deze folder of enige andere persoonlijke gegevens. Geen gegevens zullen gedeeld worden met een externe partij. ","Search:":"Zoek:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Welkom bij Joplin!\n\nTyp `:help shortcuts` voor een lijst van shortcuts, of `:help` voor gebruiksinformatie.\n\nOm bijvoorbeeld een notitieboek aan te maken, typ `mb`; om een notitie te maken, typ `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Eén of meerdere items zijn momenteel versleuteld en de hoofdsleutel kan gevraagd worden. Om te ontsleutelen, typ `e2ee decrypt`. Als je de hoofdsleutel al ingegeven hebt, worden de versleutelde items ontsleuteld in de achtergrond. Ze zijn binnenkort beschikbaar.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Bestand","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Nieuwe notitie","New to-do":"Nieuwe to-do","New notebook":"Nieuw notitieboek","Import":"Importeer","Export":"Export","Hide %s":"","Quit":"Stop","Edit":"Bewerk","Copy":"Kopieer","Cut":"Knip","Paste":"Plak","Search in all the notes":"Zoek in alle notities","View":"","Toggle editor layout":"","Tools":"Tools","Synchronisation status":"Synchronisatie status","Encryption options":"Versleutelopties","General Options":"Algemene opties","Help":"Help","Website and documentation":"Website en documentatie","Check for updates...":"","About Joplin":"Over Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Annuleer","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Notities en instellingen zijn opgeslaan in %s","Save":"Sla op","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Encryptie uitschakelen betekent dat *al* uw notities en toevoegingen opnieuw gesynchroniseerd zullen worden en ontsleuteld naar het synchronisatiedoel zullen gestuurd worden. Wil u verder gaan?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Encryptie inschakelen betekent dat *al* uw notities en toevoegingen opnieuw gesynchroniseerd zullen worden en versleuteld verzonden worden naar het synchronisatiedoel. Verlies het wachtwoord niet, aangezien dit de enige manier is om de date de ontsleutelen. Om encryptie in te schakelen, vul uw wachtwoord hieronder in. ","Disable encryption":"Schakel encryptie uit","Enable encryption":"Schakel encryptie in","Master Keys":"Hoofdsleutels","Active":"Actief","ID":"ID","Source":"Bron","Created":"Aangemaakt","Updated":"Bijgewerkt","Password":"Wachtwoord","Password OK":"Wachtwoord OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Opmerking: Slechts één hoofdsleutel zal gebruikt worden voor versleuteling (aangeduid met \"active\"). Alle sleutels kunnen gebruikt worden voor decodering, afhankelijk van hoe de notitieboeken initieel versleuteld zijn.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"Versleuteling is:","Back":"Terug","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nieuw notitieboek \"%s\" zal aangemaakt worden en bestand \"%s\" wordt eraan toegevoegd","Please create a notebook first.":"Maak eerst een notitieboek aan.","Please create a notebook first":"Maak eerst een notitieboek aan","Notebook title:":"Notitieboek titel:","Add or remove tags:":"Voeg tag toe of verwijder tag","Separate each tag by a comma.":"Scheid iedere tag met een komma.","Rename notebook:":"Hernoem notitieboek:","Set alarm:":"Stel melding in:","Search":"Zoeken","Layout":"Layout","Some items cannot be synchronised.":"Sommige items kunnen niet gesynchroniseerd worden.","View them now":"Bekijk ze nu","Some items cannot be decrypted.":"Sommige items kunnen niet gedecodeerd worden.","Set the password":"Stel wachtwoord in","Add or remove tags":"Voeg tag toe of verwijder tag","Switch between note and to-do type":"Wissel tussen notitie en to-do type","Delete":"Verwijderen","Delete notes?":"Notities verwijderen?","No notes in here. Create one by clicking on \"New note\".":"Geen notities. Maak een notitie door op \"Nieuwe notitie\" te klikken.","There is currently no notebook. Create one by clicking on \"New notebook\".":"U heeft momenteel geen notitieboek. Maak een notitieboek door op \"Nieuw notitieboek\" te klikken.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Link of bericht \"%s\" wordt niet ondersteund","Attach file":"Voeg bestand toe","Tags":"Tags","Set alarm":"Zet melding","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Vernieuwen","Clear":"Vrijmaken","OneDrive Login":"OneDrive Login","Options":"Opties","Synchronisation Status":"Synchronisatie status","Encryption Options":"Versleutelopties","Remove this tag from all the notes?":"Deze tag verwijderen van alle notities?","Remove this search from the sidebar?":"Dit item verwijderen van de zijbalk?","Rename":"Hernoem","Synchronise":"Synchroniseer","Notebooks":"Notitieboeken","Searches":"Zoekopdrachten","Please select where the sync status should be exported to":"Selecteer waar de synchronisatie status naar geëxporteerd moet worden","Usage: %s":"Gebruik: %s","Unknown flag: %s":"Onbekende optie: %s","File system":"Bestandssysteem","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Alleen voor testen)","WebDAV":"","Unknown log level: %s":"Onbekend log level: %s","Unknown level ID: %s":"Onbekend level ID: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Kan token niet vernieuwen: authenticatiedata ontbreekt. Herstarten van de synchronisatie kan het probleem eventueel oplossen. ","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Kan niet synchroniseren met OneDrive.\n\nDeze fout gebeurt wanneer OneDrive for Business wordt gebruikt. Dit kan helaas niet ondersteund worden.\n\nOverweeg om een standaard OnDrive account te gebruiken.","Cannot access %s":"Geen toegang tot %s","Created local items: %d.":"Aangemaakte lokale items: %d.","Updated local items: %d.":"Bijgewerkte lokale items: %d.","Created remote items: %d.":"Aangemaakte remote items: %d.","Updated remote items: %d.":"Bijgewerkte remote items: %d.","Deleted local items: %d.":"Verwijderde lokale items: %d.","Deleted remote items: %d.":"Verwijderde remote items: %d.","Fetched items: %d/%d.":"Opgehaalde items: %d/%d.","State: \"%s\".":"Status: \"%s\"","Cancelling...":"Annuleren...","Completed: %s":"Voltooid: %s","Synchronisation is already in progress. State: %s":"Synchronisatie is reeds bezig. Status: %s","Encrypted":"Versleuteld","Encrypted items cannot be modified":"Versleutelde items kunnen niet aangepast worden","Conflicts":"Conflicten","A notebook with this title already exists: \"%s\"":"Er bestaat al een notitieboek met \"%s\" als titel","Notebooks cannot be named \"%s\", which is a reserved title.":"Notitieboeken kunnen niet \"%s\" genoemd worden, dit is een gereserveerd woord.","Untitled":"Untitled","This note does not have geolocation information.":"Deze notitie bevat geen geo-locatie informatie.","Cannot copy note to \"%s\" notebook":"Kan notitie niet naar notitieboek \"%s\" kopiëren.","Cannot move note to \"%s\" notebook":"Kan notitie niet naar notitieboek \"%s\" verplaatsen.","Text editor":"Tekst editor","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"De editor die zal gebruikt worden bij het openen van een notitie. Als er geen meegegeven wordt, zal het programma de standaard editor proberen te detecteren. ","Language":"Taal","Date format":"Datumnotatie","Time format":"Tijdsnotatie","Theme":"Thema","Light":"Licht","Dark":"Donker","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Sla geo-locatie op bij notities","When creating a new to-do:":"When creating a new to-do:","Focus title":"","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Update de applicatie automatisch","Synchronisation interval":"Synchronisatie interval","%d minutes":"%d minuten","%d hour":"%d uur","%d hours":"%d uren","Show advanced options":"Toon geavanceerde opties","Synchronisation target":"Synchronisatiedoel","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"Folder om mee te synchroniseren (absolute pad)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Het pad om mee te synchroniseren als bestandssysteem synchronisatie is ingeschakeld. Zie `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"Nextcloud password","WebDAV URL":"","WebDAV username":"","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Ongeldige optie: \"%s\". Geldige waarden zijn: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Items die niet gesynchroniseerd kunnen worden","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Deze items zullen op het apparaat beschikbaar blijven, maar zullen niet geüpload worden naar het synchronistatiedoel. Om deze items te vinden, zoek naar de titel of het ID (afgebeeld bovenaan tussen haakjes).","Sync status (synced items / total items)":"Sync status (gesynchroniseerde items / totaal aantal items)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Totaal: %d/%d","Conflicted: %d":"Conflict: %d","To delete: %d":"Verwijderen: %d","Folders":"Folders","%s: %d notes":"%s: %d notities","Coming alarms":"Meldingen","On %s: %s":"Op %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Er zijn momenteel geen notities. Maak een notitie door op (+) te klikken.","Delete these notes?":"Deze notities verwijderen?","Log":"Log","Export Debug Report":"Exporteer debug rapport","Encryption Config":"Encryptie configuratie","Configuration":"Configuratie","Move to notebook...":"Verplaats naar notitieboek...","Move %d notes to notebook \"%s\"?":"Verplaats %d notities naar notitieboek \"%s\"?","Press to set the decryption password.":"Klik om het decryptie wachtwoord in te stellen","Select date":"Selecteer datum","Confirm":"Bevestig","Cancel synchronisation":"Annuleer synchronisatie","Master Key %s":"Hoofdsleutel: %s","Created: %s":"Aangemaakt: %s","Password:":"Wachtwoord:","Password cannot be empty":"Wachtwoord kan niet leeg zijn","Enable":"Activeer","The notebook could not be saved: %s":"Het notitieboek kon niet opgeslaan worden: %s","Edit notebook":"Bewerk notitieboek","Show all":"","Errors only":"","This note has been modified:":"Deze notitie werd aangepast:","Save changes":"Sla wijzigingen op","Discard changes":"Verwijder wijzigingen","Unsupported image type: %s":"Afbeeldingstype %s wordt niet ondersteund","Attach photo":"Voeg foto toe","Attach any file":"Voeg bestand toe","Convert to note":"Converteer naar notitie","Convert to todo":"Converteer naar to-do","Hide metadata":"Verberg metadata","Show metadata":"Toon metadata","View on map":"Toon op de kaart","Delete notebook":"Verwijder notitieboek","Login with OneDrive":"Log in met OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Klik op de (+) om een nieuwe notitie of een nieuw notitieboek aan te maken. Klik in het menu om uw bestaande notitieboeken te raadplegen.","You currently have no notebook. Create one by clicking on (+) button.":"U heeft momenteel geen notitieboek. Maak een notitieboek door op (+) te klikken.","Welcome":"Welkom"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Untag de geassocieerde notities om een tag te verwijderen.","Please select the note or notebook to be deleted first.":"Selecteer eerst het notitieboek of de notitie om te verwijderen.","Press Ctrl+D or type \"exit\" to exit the application":"Typ Ctrl+D of \"exit\" om de applicatie te sluiten","More than one item match \"%s\". Please narrow down your query.":"Meer dan een item voldoet aan de zoekterm \"%s\". Verfijn uw zoekterm a.u.b.","No notebook selected.":"Geen notitieboek geselecteerd.","No notebook has been specified.":"Geen notitieboek is gespecifieerd","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Achtergrond synchronisatie wordt geannuleerd... Even geduld.","No such command: %s":"Geen commando gevonden: \"%s\"","The command \"%s\" is only available in GUI mode":"Het opgegeven command \"%s\" is alleen beschikbaar in de GUI versie","Cannot change encrypted item":"Kan het versleutelde item niet wijzigen","Missing required argument: %s":"Benodigde argumenten niet voorzien: %s","%s: %s":"%s: %s","Your choice: ":"Uw keuze:","Invalid answer: %s":"Ongeldig antwoord: %s","Attaches the given file to the note.":"Voegt het bestand toe aan de notitie.","Cannot find \"%s\".":"Kan \"%s\" niet vinden.","Displays the given note.":"Toont de opgegeven notitie.","Displays the complete information about note.":"Toont de volledige informatie van een notitie.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Haal een configuratie waarde op of stel een waarde in. Als [value] niet opgegeven is, zal de waarde van [name] getoond worden. Als nog de [name] of [waarde] opgegeven zijn, zal de huidige configuratie opgelijst worden.","Also displays unset and hidden config variables.":"Toont ook niet-geconfigureerde en verborgen configuratie opties. ","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Verveelvoudig de notities die voldoen aan in [notitieboek]. Als er geen notitieboek is meegegeven, de notitie is gedupliceerd in het huidige notitieboek.","Marks a to-do as done.":"Markeer een to-do als voltooid. ","Note is not a to-do: \"%s\"":"Notitie is geen to-do: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Beheert E2EE configuratie. Commando's zijn `enable`, `disable`, `decrypt`, `status` and `target-status`.","Enter master password:":"Voeg hoofdsleutel in:","Operation cancelled":"Operatie geannuleerd","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Ontsleuteling starten... Dit kan enkele minuten duren, afhankelijk van hoeveel er te ontsleutelen is. ","Completed decryption.":"Ontsleuteling voltooid","Enabled":"Ingeschakeld","Disabled":"UItgeschakeld","Encryption is: %s":"Encryptie is: %s","Edit note.":"Bewerk notitie.","No text editor is defined. Please set it using `config editor `":"Geen tekst editor is ingesteld. Stel in met `config editor `","No active notebook.":"Geen actief notitieboek.","Note does not exist: \"%s\". Create it?":"Notitie bestaat niet: \"%s\". Aanmaken?","Starting to edit note. Close the editor to get back to the prompt.":"Bewerken notitie gestart. Sluit de editor om terug naar de prompt te gaan.","Error opening note in editor: %s":"","Note has been saved.":"Notitie is opgeslaan.","Exits the application.":"Sluit de applicatie.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exporteert alleen de opgegeven notitie.","Exports only the given notebook.":"Exporteert alleen het opgegeven notitieboek.","Displays a geolocation URL for the note.":"Toont een geolocatie link voor de notitie.","Displays usage information.":"Toont gebruiksinformatie.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Shortcuts zijn niet beschikbaar in command line modus.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Typ `help [commando]` voor meer informatie over een commando; of typ `help all` voor de volledige gebruiksaanwijzing.","The possible commands are:":"Mogelijke commando's zijn:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In iedere commando kan een notitie of een notitieboek opgegeven worden door de title of het ID of de shortcuts `$n` of `$b` voor, respectievelijk, het huidig geslecteerde notitieboek of huidig geselecteerde notitie. `$c` kan gebruikt worden om te refereren naar het huidige geselecteerde item.","To move from one pane to another, press Tab or Shift+Tab.":"Om van het ene paneel naar het andere te gaan, duw Tab of Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Gebruik de pijltjes en page up/down om door de lijsten en de tekstvelden te scrollen (ook deze console).","To maximise/minimise the console, press \"TC\".":"Om de console te maximaliseren/minimaliseren, typ \"TC\".","To enter command line mode, press \":\"":"Om command line modus te gebruiken, duw \":\"","To exit command line mode, press ESCAPE":"Om command line modus te verlaten, duw ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Vraag niet om bevestiging. ","Found: %d.":"Gevonden: %d.","Created: %d.":"Aangemaakt: %d.","Updated: %d.":"Bijgewerkt: %d.","Skipped: %d.":"Geskipt: %d.","Resources: %d.":"Middelen: %d.","Tagged: %d.":"Getagd: %d.","Importing notes...":"Notities importeren...","The notes have been imported: %s":"Notities zijn geïmporteerd: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Toont de notities in het huidige notitieboek. Gebruik `ls /` om een lijst van notitieboeken te tonen.","Displays only the first top notes.":"Toont enkel de top notities.","Sorts the item by (eg. title, updated_time, created_time).":"Sorteert de items volgens (vb. title, updated_time, created_time).","Reverses the sorting order.":"Draait de sorteervolgorde om.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Toont enkel de items van de specifieke type(s). Kan `n` zijn voor notities, `t` voor to-do's, of `nt` voor notities en to-do's (vb. `-tt` zou alleen to-do's tonen, terwijl `-ttd` notities en to-do's zou tonen).","Either \"text\" or \"json\"":"Of \"text\" of \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Gebruik volgend lijst formaat. Formaat is ID, NOTE_COUNT (voor notitieboek), DATE, TODO_CHECKED (voor to-do's), TITLE","Please select a notebook first.":"Selecteer eerst een notitieboek. ","Creates a new notebook.":"Maakt een nieuw notitieboek aan.","Creates a new note.":"Maakt een nieuwe notitie aan.","Notes can only be created within a notebook.":"Notities kunnen enkel in een notitieboek aangemaakt worden.","Creates a new to-do.":"Maakt nieuwe to-do aan.","Moves the notes matching to [notebook].":"Verplaatst de notities die voldoen aan naar [notitieboek].","Renames the given (note or notebook) to .":"Hernoemt het gegeven (notitie of notitieboek) naar .","Deletes the given notebook.":"Verwijdert het opgegeven notitieboek.","Deletes the notebook without asking for confirmation.":"Verwijdert het notitieboek zonder te vragen om bevestiging.","Delete notebook? All notes within this notebook will also be deleted.":"Notitieboek verwijderen? Alle notities in dit notitieboek zullen ook verwijderd worden.","Deletes the notes matching .":"Verwijder alle notities die voldoen aan .","Deletes the notes without asking for confirmation.":"Verwijder de notities zonder te vragen om bevestiging. ","%d notes match this pattern. Delete them?":"%d notities voldoen aan het patroon. Items verwijderen?","Delete note?":"Notitie verwijderen?","Searches for the given in all the notes.":"Zoektermen voor het opgegeven in alle notities.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Zet de eigenschap van de opgegeven naar de opgegeven [value]. Mogelijke eigenschappen zijn:\n\n%s","Displays summary about the notes and notebooks.":"Toon samenvatting van alle notities en notitieboeken","Synchronises with remote storage.":"Synchroniseert met remote opslag. ","Sync to provided target (defaults to sync.target config value)":"Synchroniseer naar opgegeven doel (standaard sync.target configuratie optie)","Authentication was not completed (did not receive an authentication token).":"Authenticatie was niet voltooid (geen authenticatietoken ontvangen).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"Synchronisatie reeds bezig.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Er is reeds een lockfile. Als u zeker bent dat er geen synchronisatie bezig is, kan de lock file verwijderd worden op \"%s\" en verder gegaan worden met de synchronisatie. ","Synchronisation target: %s (%s)":"Synchronisatiedoel: %s (%s)","Cannot initialize synchroniser.":"Kan de synchronisatie niet starten.","Starting synchronisation...":"Synchronisatie starten...","Cancelling... Please wait.":"Annuleren.. Even geduld."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" kan \"add\", \"remove\" of \"list\" zijn om een [tag] toe te voegen aan een [note] of te verwijderen, of om alle notities geassocieerd met de [tag] op te lijsten. Het commando `tag list` kan gebruikt worden om alle tags op te lijsten.","Invalid command: \"%s\"":"Ongeldig commando: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" kan of \"toggle\" of \"clear\" zijn. Gebruik \"toggle\" om de to-do als voltooid of onvoltooid weer te geven (als het doel een standaard notitie is, zal ze geconverteerd worden naar een to-do). Gebruik \"clear\" om terug te wisselen naar een standaard notitie. ","Marks a to-do as non-completed.":"Markeert een to-do als onvoltooid.","Switches to [notebook] - all further operations will happen within this notebook.":"Wisselt naar [notitieboek] - Alle verdere acties zullen op dit notitieboek toegepast worden.","Displays version information":"Toont versie informatie","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Type: %s.","Possible values: %s.":"Mogelijke waarden: %s.","Default: %s":"Standaard: %s","Possible keys/values:":"Mogelijke sleutels/waarden:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Fatale fout:","The application has been authorised - you may now close this browser tab.":"De applicatie is geauthenticeerd - U kan deze tab sluiten.","The application has been successfully authorised.":"De applicatie is succesvol geauthenticeerd.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Open de volgende link in uw browser om de applicatie te authenticeren. De applicatie zal een folder in \"Apps/Joplin\" aanmaken en zal enkel bestanden aanmaken en lezen in deze folder. De applicatie zal geen toegang hebben tot bestanden buiten deze folder of enige andere persoonlijke gegevens. Geen gegevens zullen gedeeld worden met een externe partij. ","Search:":"Zoek:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Welkom bij Joplin!\n\nTyp `:help shortcuts` voor een lijst van shortcuts, of `:help` voor gebruiksinformatie.\n\nOm bijvoorbeeld een notitieboek aan te maken, typ `mb`; om een notitie te maken, typ `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Eén of meerdere items zijn momenteel versleuteld en de hoofdsleutel kan gevraagd worden. Om te ontsleutelen, typ `e2ee decrypt`. Als je de hoofdsleutel al ingegeven hebt, worden de versleutelde items ontsleuteld in de achtergrond. Ze zijn binnenkort beschikbaar.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Bestand","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Nieuwe notitie","New to-do":"Nieuwe to-do","New notebook":"Nieuw notitieboek","Import":"Importeer","Export":"Export","Hide %s":"","Quit":"Stop","Edit":"Bewerk","Copy":"Kopieer","Cut":"Knip","Paste":"Plak","Search in all the notes":"Zoek in alle notities","View":"","Toggle editor layout":"","Tools":"Tools","Synchronisation status":"Synchronisatie status","Encryption options":"Versleutelopties","General Options":"Algemene opties","Help":"Help","Website and documentation":"Website en documentatie","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Over Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Annuleer","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Notities en instellingen zijn opgeslaan in %s","Save":"Sla op","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Encryptie uitschakelen betekent dat *al* uw notities en toevoegingen opnieuw gesynchroniseerd zullen worden en ontsleuteld naar het synchronisatiedoel zullen gestuurd worden. Wil u verder gaan?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Encryptie inschakelen betekent dat *al* uw notities en toevoegingen opnieuw gesynchroniseerd zullen worden en versleuteld verzonden worden naar het synchronisatiedoel. Verlies het wachtwoord niet, aangezien dit de enige manier is om de date de ontsleutelen. Om encryptie in te schakelen, vul uw wachtwoord hieronder in. ","Disable encryption":"Schakel encryptie uit","Enable encryption":"Schakel encryptie in","Master Keys":"Hoofdsleutels","Active":"Actief","ID":"ID","Source":"Bron","Created":"Aangemaakt","Updated":"Bijgewerkt","Password":"Wachtwoord","Password OK":"Wachtwoord OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Opmerking: Slechts één hoofdsleutel zal gebruikt worden voor versleuteling (aangeduid met \"active\"). Alle sleutels kunnen gebruikt worden voor decodering, afhankelijk van hoe de notitieboeken initieel versleuteld zijn.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"Versleuteling is:","Back":"Terug","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nieuw notitieboek \"%s\" zal aangemaakt worden en bestand \"%s\" wordt eraan toegevoegd","Please create a notebook first.":"Maak eerst een notitieboek aan.","Please create a notebook first":"Maak eerst een notitieboek aan","Notebook title:":"Notitieboek titel:","Add or remove tags:":"Voeg tag toe of verwijder tag","Separate each tag by a comma.":"Scheid iedere tag met een komma.","Rename notebook:":"Hernoem notitieboek:","Set alarm:":"Stel melding in:","Search":"Zoeken","Layout":"Layout","Some items cannot be synchronised.":"Sommige items kunnen niet gesynchroniseerd worden.","View them now":"Bekijk ze nu","Some items cannot be decrypted.":"Sommige items kunnen niet gedecodeerd worden.","Set the password":"Stel wachtwoord in","Add or remove tags":"Voeg tag toe of verwijder tag","Switch between note and to-do type":"Wissel tussen notitie en to-do type","Delete":"Verwijderen","Delete notes?":"Notities verwijderen?","No notes in here. Create one by clicking on \"New note\".":"Geen notities. Maak een notitie door op \"Nieuwe notitie\" te klikken.","There is currently no notebook. Create one by clicking on \"New notebook\".":"U heeft momenteel geen notitieboek. Maak een notitieboek door op \"Nieuw notitieboek\" te klikken.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Link of bericht \"%s\" wordt niet ondersteund","Attach file":"Voeg bestand toe","Tags":"Tags","Set alarm":"Zet melding","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Vernieuwen","Clear":"Vrijmaken","OneDrive Login":"OneDrive Login","Options":"Opties","Synchronisation Status":"Synchronisatie status","Encryption Options":"Versleutelopties","Remove this tag from all the notes?":"Deze tag verwijderen van alle notities?","Remove this search from the sidebar?":"Dit item verwijderen van de zijbalk?","Rename":"Hernoem","Synchronise":"Synchroniseer","Notebooks":"Notitieboeken","Searches":"Zoekopdrachten","Please select where the sync status should be exported to":"Selecteer waar de synchronisatie status naar geëxporteerd moet worden","Usage: %s":"Gebruik: %s","Unknown flag: %s":"Onbekende optie: %s","File system":"Bestandssysteem","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Alleen voor testen)","WebDAV":"","Unknown log level: %s":"Onbekend log level: %s","Unknown level ID: %s":"Onbekend level ID: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Kan token niet vernieuwen: authenticatiedata ontbreekt. Herstarten van de synchronisatie kan het probleem eventueel oplossen. ","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Kan niet synchroniseren met OneDrive.\n\nDeze fout gebeurt wanneer OneDrive for Business wordt gebruikt. Dit kan helaas niet ondersteund worden.\n\nOverweeg om een standaard OnDrive account te gebruiken.","Cannot access %s":"Geen toegang tot %s","Created local items: %d.":"Aangemaakte lokale items: %d.","Updated local items: %d.":"Bijgewerkte lokale items: %d.","Created remote items: %d.":"Aangemaakte remote items: %d.","Updated remote items: %d.":"Bijgewerkte remote items: %d.","Deleted local items: %d.":"Verwijderde lokale items: %d.","Deleted remote items: %d.":"Verwijderde remote items: %d.","Fetched items: %d/%d.":"Opgehaalde items: %d/%d.","State: \"%s\".":"Status: \"%s\"","Cancelling...":"Annuleren...","Completed: %s":"Voltooid: %s","Synchronisation is already in progress. State: %s":"Synchronisatie is reeds bezig. Status: %s","Encrypted":"Versleuteld","Encrypted items cannot be modified":"Versleutelde items kunnen niet aangepast worden","Conflicts":"Conflicten","A notebook with this title already exists: \"%s\"":"Er bestaat al een notitieboek met \"%s\" als titel","Notebooks cannot be named \"%s\", which is a reserved title.":"Notitieboeken kunnen niet \"%s\" genoemd worden, dit is een gereserveerd woord.","Untitled":"Untitled","This note does not have geolocation information.":"Deze notitie bevat geen geo-locatie informatie.","Cannot copy note to \"%s\" notebook":"Kan notitie niet naar notitieboek \"%s\" kopiëren.","Cannot move note to \"%s\" notebook":"Kan notitie niet naar notitieboek \"%s\" verplaatsen.","Text editor":"Tekst editor","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"De editor die zal gebruikt worden bij het openen van een notitie. Als er geen meegegeven wordt, zal het programma de standaard editor proberen te detecteren. ","Language":"Taal","Date format":"Datumnotatie","Time format":"Tijdsnotatie","Theme":"Thema","Light":"Licht","Dark":"Donker","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Sla geo-locatie op bij notities","When creating a new to-do:":"When creating a new to-do:","Focus title":"","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Update de applicatie automatisch","Synchronisation interval":"Synchronisatie interval","%d minutes":"%d minuten","%d hour":"%d uur","%d hours":"%d uren","Show advanced options":"Toon geavanceerde opties","Synchronisation target":"Synchronisatiedoel","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"Folder om mee te synchroniseren (absolute pad)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Het pad om mee te synchroniseren als bestandssysteem synchronisatie is ingeschakeld. Zie `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"Nextcloud password","WebDAV URL":"","WebDAV username":"","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Ongeldige optie: \"%s\". Geldige waarden zijn: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Items die niet gesynchroniseerd kunnen worden","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Deze items zullen op het apparaat beschikbaar blijven, maar zullen niet geüpload worden naar het synchronistatiedoel. Om deze items te vinden, zoek naar de titel of het ID (afgebeeld bovenaan tussen haakjes).","Sync status (synced items / total items)":"Sync status (gesynchroniseerde items / totaal aantal items)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Totaal: %d/%d","Conflicted: %d":"Conflict: %d","To delete: %d":"Verwijderen: %d","Folders":"Folders","%s: %d notes":"%s: %d notities","Coming alarms":"Meldingen","On %s: %s":"Op %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Er zijn momenteel geen notities. Maak een notitie door op (+) te klikken.","Delete these notes?":"Deze notities verwijderen?","Log":"Log","Export Debug Report":"Exporteer debug rapport","Encryption Config":"Encryptie configuratie","Configuration":"Configuratie","Move to notebook...":"Verplaats naar notitieboek...","Move %d notes to notebook \"%s\"?":"Verplaats %d notities naar notitieboek \"%s\"?","Press to set the decryption password.":"Klik om het decryptie wachtwoord in te stellen","Select date":"Selecteer datum","Confirm":"Bevestig","Cancel synchronisation":"Annuleer synchronisatie","Joplin website":"","Master Key %s":"Hoofdsleutel: %s","Created: %s":"Aangemaakt: %s","Password:":"Wachtwoord:","Password cannot be empty":"Wachtwoord kan niet leeg zijn","Enable":"Activeer","The notebook could not be saved: %s":"Het notitieboek kon niet opgeslaan worden: %s","Edit notebook":"Bewerk notitieboek","Show all":"","Errors only":"","This note has been modified:":"Deze notitie werd aangepast:","Save changes":"Sla wijzigingen op","Discard changes":"Verwijder wijzigingen","Unsupported image type: %s":"Afbeeldingstype %s wordt niet ondersteund","Attach photo":"Voeg foto toe","Attach any file":"Voeg bestand toe","Convert to note":"Converteer naar notitie","Convert to todo":"Converteer naar to-do","Hide metadata":"Verberg metadata","Show metadata":"Toon metadata","View on map":"Toon op de kaart","Delete notebook":"Verwijder notitieboek","Login with OneDrive":"Log in met OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Klik op de (+) om een nieuwe notitie of een nieuw notitieboek aan te maken. Klik in het menu om uw bestaande notitieboeken te raadplegen.","You currently have no notebook. Create one by clicking on (+) button.":"U heeft momenteel geen notitieboek. Maak een notitieboek door op (+) te klikken.","Welcome":"Welkom"} \ No newline at end of file diff --git a/ElectronClient/app/locales/pt_BR.json b/ElectronClient/app/locales/pt_BR.json index cae7a641cd..112ed59ec5 100644 --- a/ElectronClient/app/locales/pt_BR.json +++ b/ElectronClient/app/locales/pt_BR.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Para eliminar uma tag, remova a tag das notas associadas a ela.","Please select the note or notebook to be deleted first.":"Por favor, primeiro, selecione a nota ou caderno a excluir.","Press Ctrl+D or type \"exit\" to exit the application":"Digite Ctrl+D ou \"exit\" para sair da aplicação","More than one item match \"%s\". Please narrow down your query.":"Mais que um item combinam com \"%s\". Por favor, refine sua pesquisa.","No notebook selected.":"Nenhum caderno selecionado.","No notebook has been specified.":"Nenhum caderno foi especificado.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancelando sincronização em segundo plano... Por favor, aguarde.","No such command: %s":"No such command: %s","The command \"%s\" is only available in GUI mode":"O comando \"%s\" está disponível somente em modo gráfico","Cannot change encrypted item":"","Missing required argument: %s":"Argumento requerido faltando: %s","%s: %s":"%s: %s","Your choice: ":"Sua escolha: ","Invalid answer: %s":"Resposta inválida: %s","Attaches the given file to the note.":"Anexa o arquivo dado à nota.","Cannot find \"%s\".":"Não posso encontrar \"%s\".","Displays the given note.":"Exibe a nota informada.","Displays the complete information about note.":"Exibe a informação completa sobre a nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtém ou define um valor de configuração. Se [valor] não for fornecido, ele mostrará o valor de [nome]. Se nem [nome] nem [valor] forem fornecidos, ele listará a configuração atual.","Also displays unset and hidden config variables.":"Também exibe variáveis de configuração não definidas e ocultas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica as notas que correspondem a para o [caderno]. Se nenhum caderno for especificado, a nota será duplicada no caderno atual.","Marks a to-do as done.":"Marca uma tarefa como feita.","Note is not a to-do: \"%s\"":"Nota não é uma tarefa: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Desabilitado","Encryption is: %s":"","Edit note.":"Editar nota.","No text editor is defined. Please set it using `config editor `":"Nenhum editor de texto está definido. Defina-o usando o comando `config edit `","No active notebook.":"Nenhum caderno ativo.","Note does not exist: \"%s\". Create it?":"A nota não existe: \"%s\". Criar?","Starting to edit note. Close the editor to get back to the prompt.":"Começando a editar a nota. Feche o editor para voltar ao prompt.","Error opening note in editor: %s":"","Note has been saved.":"Nota gravada.","Exits the application.":"Sai da aplicação.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exporta apenas a nota fornecida.","Exports only the given notebook.":"Exporta apenas o caderno fornecido.","Displays a geolocation URL for the note.":"Exibe uma URL de geolocalização para a nota.","Displays usage information.":"Exibe informações de uso.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Os atalhos não estão disponíveis no modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"Os comandos possíveis são:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Em qualquer comando, uma nota ou caderno pode ser referenciado por título ou ID, ou usando os atalhos `$n` ou` $b` para, respectivamente, a nota ou caderno selecionado. `$c` pode ser usado para se referenciar ao item atualmente selecionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover de um painel para outro, pressione Tab ou Shift + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use as setas e a Page Up/Page Down para rolar as listas e áreas de texto (incluindo este console).","To maximise/minimise the console, press \"TC\".":"Para maximizar / minimizar o console, pressione \"TC\".","To enter command line mode, press \":\"":"Para entrar no modo de linha de comando, pressione \":\"","To exit command line mode, press ESCAPE":"Para sair do modo de linha de comando, pressione o ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Não pedir confirmação.","Found: %d.":"Encontrado: %d.","Created: %d.":"Criado: %d.","Updated: %d.":"Atualizado: %d.","Skipped: %d.":"Ignorado: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Tag adicionada: %d.","Importing notes...":"Importando notas ...","The notes have been imported: %s":"As notas foram importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Exibe as notas no caderno atual. Use `ls /` para exibir a lista de cadernos.","Displays only the first top notes.":"Exibe apenas as primeiras notas.","Sorts the item by (eg. title, updated_time, created_time).":"Classifica o item por (ex.: title, update_time, created_time).","Reverses the sorting order.":"Inverte a ordem de classificação.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Exibe apenas os itens do(s) tipo(s) específico(s). Pode ser `n` para notas,` t` para tarefas, ou `nt` para notas e tarefas (por exemplo.` -tt` exibiria apenas os itens pendentes, enquanto `-ttd` exibiria notas e tarefas .","Either \"text\" or \"json\"":"Ou \"text\" ou \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use o formato da lista longa. O formato é ID, NOTE_COUNT (para caderno), DATE, TODO_CHECKED (para tarefas), TITLE","Please select a notebook first.":"Por favor, selecione um caderno primeiro.","Creates a new notebook.":"Cria um novo caderno.","Creates a new note.":"Cria uma nova nota.","Notes can only be created within a notebook.":"As notas só podem ser criadas dentro de um caderno.","Creates a new to-do.":"Cria uma nova tarefa.","Moves the notes matching to [notebook].":"Move as notas correspondentes para [caderno].","Renames the given (note or notebook) to .":"Renomeia o dado (nota ou caderno) para .","Deletes the given notebook.":"Exclui o caderno informado.","Deletes the notebook without asking for confirmation.":"Exclui o caderno sem pedir confirmação.","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"Exclui as notas correspondentes ao padrão .","Deletes the notes without asking for confirmation.":"Exclui as notas sem pedir confirmação.","%d notes match this pattern. Delete them?":"%d notas correspondem a este padrão. Apagar todos?","Delete note?":"Apagar nota?","Searches for the given in all the notes.":"Procura o padrão em todas as notas.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Sets the property of the given to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Exibe sumário sobre as notas e cadernos.","Synchronises with remote storage.":"Sincroniza com o armazenamento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizar para destino fornecido (p padrão é o valor de configuração sync.target)","Authentication was not completed (did not receive an authentication token).":"A autenticação não foi concluída (não recebeu um token de autenticação).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"A sincronização já está em andamento.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"O arquivo de bloqueio já está ativo. Se você sabe que nenhuma sincronização está ocorrendo, você pode excluir o arquivo de bloqueio em \"%s\" e retomar a operação.","Synchronisation target: %s (%s)":"Alvo de sincronização: %s (%s)","Cannot initialize synchroniser.":"Não é possível inicializar o sincronizador.","Starting synchronisation...":"Iniciando sincronização...","Cancelling... Please wait.":"Cancelando... Aguarde."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" pode ser \"add\", \"remove\" ou \"list\" para atribuir ou remover [tag] de [nota], ou para listar as notas associadas a [tag]. O comando `taglist` pode ser usado para listar todas as tags.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" pode ser \"toggle\" ou \"clear\". Use \"toggle\" para alternar entre as tarefas entre o estado completo e incompleto (se o alvo for uma nota comum, ele será convertido em uma tarefa a fazer). Use \"clear\" para converter a tarefa em uma nota normal.","Marks a to-do as non-completed.":"Marca uma tarefa como não completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Alterna para [caderno] - todas as operações adicionais acontecerão dentro deste caderno.","Displays version information":"Exibe informações da versão","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valores possíveis: %s.","Default: %s":"Padrão: %s","Possible keys/values:":"Possíveis chaves/valores:","Fatal error:":"Erro fatal:","The application has been authorised - you may now close this browser tab.":"O aplicativo foi autorizado - agora você pode fechar esta guia do navegador.","The application has been successfully authorised.":"O aplicativo foi autorizado com sucesso.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra a seguinte URL no seu navegador para autenticar o aplicativo. O aplicativo criará um diretório em \"Apps/Joplin\" e somente lerá e gravará arquivos neste diretório. Não terá acesso a nenhum arquivo fora deste diretório nem a nenhum outro dado pessoal. Nenhum dado será compartilhado com terceiros.","Search:":"Procurar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Arquivo","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Nova nota","New to-do":"Nova tarefa","New notebook":"Novo caderno","Import":"Importar","Export":"Export","Hide %s":"","Quit":"Sair","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Colar","Search in all the notes":"Pesquisar em todas as notas","View":"","Toggle editor layout":"","Tools":"Ferramentas","Synchronisation status":"Synchronisation status","Encryption options":"","General Options":"General Options","Help":"Ajuda","Website and documentation":"Website e documentação","Check for updates...":"","About Joplin":"Sobre o Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Cancelar","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"","Back":"Voltar","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"O novo caderno \"%s\" será criado e o arquivo \"%s\" será importado para ele","Please create a notebook first.":"Primeiro, crie um caderno.","Please create a notebook first":"Primeiro, crie um caderno","Notebook title:":"Título do caderno:","Add or remove tags:":"Adicionar ou remover tags:","Separate each tag by a comma.":"Separe cada tag por vírgula.","Rename notebook:":"Renomear caderno:","Set alarm:":"Definir alarme:","Search":"Procurar","Layout":"Layout","Some items cannot be synchronised.":"Some items cannot be synchronised.","View them now":"","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Adicionar ou remover tags","Switch between note and to-do type":"Alternar entre os tipos Nota e Tarefa","Delete":"Excluir","Delete notes?":"Excluir notas?","No notes in here. Create one by clicking on \"New note\".":"Não há notas aqui. Crie uma, clicando em \"Nova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Link ou mensagem não suportada: %s","Attach file":"Anexar arquivo","Tags":"Tags","Set alarm":"Definir alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Atualizar","Clear":"Limpar (clear)","OneDrive Login":"Login no OneDrive","Options":"Opções","Synchronisation Status":"Synchronisation Status","Encryption Options":"","Remove this tag from all the notes?":"Remover esta tag de todas as notas?","Remove this search from the sidebar?":"Remover essa pesquisa da barra lateral?","Rename":"Renomear","Synchronise":"Sincronizar","Notebooks":"Cadernos","Searches":"Pesquisas","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Uso: %s","Unknown flag: %s":"Flag desconhecido: %s","File system":"Sistema de arquivos","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (apenas para testes)","WebDAV":"","Unknown log level: %s":"Nível de log desconhecido: %s","Unknown level ID: %s":"Nível ID desconhecido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Não é possível atualizar token: faltam dados de autenticação. Iniciar a sincronização novamente pode corrigir o problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Não foi possível sincronizar com o OneDrive.\n\nEste erro geralmente acontece ao usar o OneDrive for Business, que infelizmente não pode ser suportado.\n\nConsidere usar uma conta regular do OneDrive.","Cannot access %s":"Não é possível acessar %s","Created local items: %d.":"Itens locais criados: %d.","Updated local items: %d.":"Itens locais atualizados: %d.","Created remote items: %d.":"Itens remotos criados: %d.","Updated remote items: %d.":"Itens remotos atualizados: %d.","Deleted local items: %d.":"Itens locais excluídos: %d.","Deleted remote items: %d.":"Itens remotos excluídos: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"Estado: \"%s\".","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Synchronisation is already in progress. State: %s":"Sincronização já em andamento. Estado: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Conflitos","A notebook with this title already exists: \"%s\"":"Já existe caderno com este título: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Os cadernos não podem ser nomeados como\"%s\", que é um título reservado.","Untitled":"Sem título","This note does not have geolocation information.":"Esta nota não possui informações de geolocalização.","Cannot copy note to \"%s\" notebook":"Não é possível copiar a nota para o caderno \"%s\" ","Cannot move note to \"%s\" notebook":"Não é possível mover a nota para o caderno \"%s\"","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"O editor que será usado para abrir uma nota. Se nenhum for indicado, ele tentará detectar automaticamente o editor padrão.","Language":"Idioma","Date format":"Formato de data","Time format":"Formato de hora","Theme":"Tema","Light":"Light","Dark":"Dark","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Salvar geolocalização com notas","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Atualizar automaticamente o aplicativo","Synchronisation interval":"Intervalo de sincronização","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opções avançadas","Synchronisation target":"Alvo de sincronização","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"O caminho para sincronizar, quando a sincronização do sistema de arquivos está habilitada. Veja `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Valor da opção inválida: \"%s\". Os valores possíveis são: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Status de sincronização (sincronizados / totais)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Em conflito: %d","To delete: %d":"Para excluir: %d","Folders":"Pastas","%s: %d notes":"%s: %d notas","Coming alarms":"Próximos alarmes","On %s: %s":"Em %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Atualmente, não há notas. Crie uma, clicando no botão (+).","Delete these notes?":"Excluir estas notas?","Log":"Log","Export Debug Report":"Exportar Relatório de Debug","Encryption Config":"","Configuration":"Configuração","Move to notebook...":"Mover para o caderno...","Move %d notes to notebook \"%s\"?":"Mover %d notas para o caderno \"%s\"?","Press to set the decryption password.":"","Select date":"Selecionar data","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronização","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"O caderno não pôde ser salvo: %s","Edit notebook":"Editar caderno","Show all":"","Errors only":"","This note has been modified:":"Esta nota foi modificada:","Save changes":"Gravar alterações","Discard changes":"Descartar alterações","Unsupported image type: %s":"Tipo de imagem não suportada: %s","Attach photo":"Anexar foto","Attach any file":"Anexar qualquer arquivo","Convert to note":"Converter para nota","Convert to todo":"Converter para tarefa","Hide metadata":"Ocultar metadados","Show metadata":"Exibir metadados","View on map":"Ver no mapa","Delete notebook":"Excluir caderno","Login with OneDrive":"Login com OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Clique no botão (+) para criar uma nova nota ou caderno. Clique no menu lateral para acessar seus cadernos existentes.","You currently have no notebook. Create one by clicking on (+) button.":"Você não possui cadernos. Crie um clicando no botão (+).","Welcome":"Bem-vindo"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Para eliminar uma tag, remova a tag das notas associadas a ela.","Please select the note or notebook to be deleted first.":"Por favor, primeiro, selecione a nota ou caderno a excluir.","Press Ctrl+D or type \"exit\" to exit the application":"Digite Ctrl+D ou \"exit\" para sair da aplicação","More than one item match \"%s\". Please narrow down your query.":"Mais que um item combinam com \"%s\". Por favor, refine sua pesquisa.","No notebook selected.":"Nenhum caderno selecionado.","No notebook has been specified.":"Nenhum caderno foi especificado.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancelando sincronização em segundo plano... Por favor, aguarde.","No such command: %s":"No such command: %s","The command \"%s\" is only available in GUI mode":"O comando \"%s\" está disponível somente em modo gráfico","Cannot change encrypted item":"","Missing required argument: %s":"Argumento requerido faltando: %s","%s: %s":"%s: %s","Your choice: ":"Sua escolha: ","Invalid answer: %s":"Resposta inválida: %s","Attaches the given file to the note.":"Anexa o arquivo dado à nota.","Cannot find \"%s\".":"Não posso encontrar \"%s\".","Displays the given note.":"Exibe a nota informada.","Displays the complete information about note.":"Exibe a informação completa sobre a nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtém ou define um valor de configuração. Se [valor] não for fornecido, ele mostrará o valor de [nome]. Se nem [nome] nem [valor] forem fornecidos, ele listará a configuração atual.","Also displays unset and hidden config variables.":"Também exibe variáveis de configuração não definidas e ocultas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica as notas que correspondem a para o [caderno]. Se nenhum caderno for especificado, a nota será duplicada no caderno atual.","Marks a to-do as done.":"Marca uma tarefa como feita.","Note is not a to-do: \"%s\"":"Nota não é uma tarefa: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Desabilitado","Encryption is: %s":"","Edit note.":"Editar nota.","No text editor is defined. Please set it using `config editor `":"Nenhum editor de texto está definido. Defina-o usando o comando `config edit `","No active notebook.":"Nenhum caderno ativo.","Note does not exist: \"%s\". Create it?":"A nota não existe: \"%s\". Criar?","Starting to edit note. Close the editor to get back to the prompt.":"Começando a editar a nota. Feche o editor para voltar ao prompt.","Error opening note in editor: %s":"","Note has been saved.":"Nota gravada.","Exits the application.":"Sai da aplicação.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exporta apenas a nota fornecida.","Exports only the given notebook.":"Exporta apenas o caderno fornecido.","Displays a geolocation URL for the note.":"Exibe uma URL de geolocalização para a nota.","Displays usage information.":"Exibe informações de uso.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Os atalhos não estão disponíveis no modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"Os comandos possíveis são:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Em qualquer comando, uma nota ou caderno pode ser referenciado por título ou ID, ou usando os atalhos `$n` ou` $b` para, respectivamente, a nota ou caderno selecionado. `$c` pode ser usado para se referenciar ao item atualmente selecionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover de um painel para outro, pressione Tab ou Shift + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use as setas e a Page Up/Page Down para rolar as listas e áreas de texto (incluindo este console).","To maximise/minimise the console, press \"TC\".":"Para maximizar / minimizar o console, pressione \"TC\".","To enter command line mode, press \":\"":"Para entrar no modo de linha de comando, pressione \":\"","To exit command line mode, press ESCAPE":"Para sair do modo de linha de comando, pressione o ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Não pedir confirmação.","Found: %d.":"Encontrado: %d.","Created: %d.":"Criado: %d.","Updated: %d.":"Atualizado: %d.","Skipped: %d.":"Ignorado: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Tag adicionada: %d.","Importing notes...":"Importando notas ...","The notes have been imported: %s":"As notas foram importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Exibe as notas no caderno atual. Use `ls /` para exibir a lista de cadernos.","Displays only the first top notes.":"Exibe apenas as primeiras notas.","Sorts the item by (eg. title, updated_time, created_time).":"Classifica o item por (ex.: title, update_time, created_time).","Reverses the sorting order.":"Inverte a ordem de classificação.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Exibe apenas os itens do(s) tipo(s) específico(s). Pode ser `n` para notas,` t` para tarefas, ou `nt` para notas e tarefas (por exemplo.` -tt` exibiria apenas os itens pendentes, enquanto `-ttd` exibiria notas e tarefas .","Either \"text\" or \"json\"":"Ou \"text\" ou \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use o formato da lista longa. O formato é ID, NOTE_COUNT (para caderno), DATE, TODO_CHECKED (para tarefas), TITLE","Please select a notebook first.":"Por favor, selecione um caderno primeiro.","Creates a new notebook.":"Cria um novo caderno.","Creates a new note.":"Cria uma nova nota.","Notes can only be created within a notebook.":"As notas só podem ser criadas dentro de um caderno.","Creates a new to-do.":"Cria uma nova tarefa.","Moves the notes matching to [notebook].":"Move as notas correspondentes para [caderno].","Renames the given (note or notebook) to .":"Renomeia o dado (nota ou caderno) para .","Deletes the given notebook.":"Exclui o caderno informado.","Deletes the notebook without asking for confirmation.":"Exclui o caderno sem pedir confirmação.","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"Exclui as notas correspondentes ao padrão .","Deletes the notes without asking for confirmation.":"Exclui as notas sem pedir confirmação.","%d notes match this pattern. Delete them?":"%d notas correspondem a este padrão. Apagar todos?","Delete note?":"Apagar nota?","Searches for the given in all the notes.":"Procura o padrão em todas as notas.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Sets the property of the given to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Exibe sumário sobre as notas e cadernos.","Synchronises with remote storage.":"Sincroniza com o armazenamento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizar para destino fornecido (p padrão é o valor de configuração sync.target)","Authentication was not completed (did not receive an authentication token).":"A autenticação não foi concluída (não recebeu um token de autenticação).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"A sincronização já está em andamento.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"O arquivo de bloqueio já está ativo. Se você sabe que nenhuma sincronização está ocorrendo, você pode excluir o arquivo de bloqueio em \"%s\" e retomar a operação.","Synchronisation target: %s (%s)":"Alvo de sincronização: %s (%s)","Cannot initialize synchroniser.":"Não é possível inicializar o sincronizador.","Starting synchronisation...":"Iniciando sincronização...","Cancelling... Please wait.":"Cancelando... Aguarde."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" pode ser \"add\", \"remove\" ou \"list\" para atribuir ou remover [tag] de [nota], ou para listar as notas associadas a [tag]. O comando `taglist` pode ser usado para listar todas as tags.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" pode ser \"toggle\" ou \"clear\". Use \"toggle\" para alternar entre as tarefas entre o estado completo e incompleto (se o alvo for uma nota comum, ele será convertido em uma tarefa a fazer). Use \"clear\" para converter a tarefa em uma nota normal.","Marks a to-do as non-completed.":"Marca uma tarefa como não completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Alterna para [caderno] - todas as operações adicionais acontecerão dentro deste caderno.","Displays version information":"Exibe informações da versão","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valores possíveis: %s.","Default: %s":"Padrão: %s","Possible keys/values:":"Possíveis chaves/valores:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Erro fatal:","The application has been authorised - you may now close this browser tab.":"O aplicativo foi autorizado - agora você pode fechar esta guia do navegador.","The application has been successfully authorised.":"O aplicativo foi autorizado com sucesso.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra a seguinte URL no seu navegador para autenticar o aplicativo. O aplicativo criará um diretório em \"Apps/Joplin\" e somente lerá e gravará arquivos neste diretório. Não terá acesso a nenhum arquivo fora deste diretório nem a nenhum outro dado pessoal. Nenhum dado será compartilhado com terceiros.","Search:":"Procurar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Arquivo","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Nova nota","New to-do":"Nova tarefa","New notebook":"Novo caderno","Import":"Importar","Export":"Export","Hide %s":"","Quit":"Sair","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Colar","Search in all the notes":"Pesquisar em todas as notas","View":"","Toggle editor layout":"","Tools":"Ferramentas","Synchronisation status":"Synchronisation status","Encryption options":"","General Options":"General Options","Help":"Ajuda","Website and documentation":"Website e documentação","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Sobre o Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Cancelar","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"","Back":"Voltar","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"O novo caderno \"%s\" será criado e o arquivo \"%s\" será importado para ele","Please create a notebook first.":"Primeiro, crie um caderno.","Please create a notebook first":"Primeiro, crie um caderno","Notebook title:":"Título do caderno:","Add or remove tags:":"Adicionar ou remover tags:","Separate each tag by a comma.":"Separe cada tag por vírgula.","Rename notebook:":"Renomear caderno:","Set alarm:":"Definir alarme:","Search":"Procurar","Layout":"Layout","Some items cannot be synchronised.":"Some items cannot be synchronised.","View them now":"","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Adicionar ou remover tags","Switch between note and to-do type":"Alternar entre os tipos Nota e Tarefa","Delete":"Excluir","Delete notes?":"Excluir notas?","No notes in here. Create one by clicking on \"New note\".":"Não há notas aqui. Crie uma, clicando em \"Nova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Link ou mensagem não suportada: %s","Attach file":"Anexar arquivo","Tags":"Tags","Set alarm":"Definir alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Atualizar","Clear":"Limpar (clear)","OneDrive Login":"Login no OneDrive","Options":"Opções","Synchronisation Status":"Synchronisation Status","Encryption Options":"","Remove this tag from all the notes?":"Remover esta tag de todas as notas?","Remove this search from the sidebar?":"Remover essa pesquisa da barra lateral?","Rename":"Renomear","Synchronise":"Sincronizar","Notebooks":"Cadernos","Searches":"Pesquisas","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Uso: %s","Unknown flag: %s":"Flag desconhecido: %s","File system":"Sistema de arquivos","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (apenas para testes)","WebDAV":"","Unknown log level: %s":"Nível de log desconhecido: %s","Unknown level ID: %s":"Nível ID desconhecido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Não é possível atualizar token: faltam dados de autenticação. Iniciar a sincronização novamente pode corrigir o problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Não foi possível sincronizar com o OneDrive.\n\nEste erro geralmente acontece ao usar o OneDrive for Business, que infelizmente não pode ser suportado.\n\nConsidere usar uma conta regular do OneDrive.","Cannot access %s":"Não é possível acessar %s","Created local items: %d.":"Itens locais criados: %d.","Updated local items: %d.":"Itens locais atualizados: %d.","Created remote items: %d.":"Itens remotos criados: %d.","Updated remote items: %d.":"Itens remotos atualizados: %d.","Deleted local items: %d.":"Itens locais excluídos: %d.","Deleted remote items: %d.":"Itens remotos excluídos: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"Estado: \"%s\".","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Synchronisation is already in progress. State: %s":"Sincronização já em andamento. Estado: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Conflitos","A notebook with this title already exists: \"%s\"":"Já existe caderno com este título: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Os cadernos não podem ser nomeados como\"%s\", que é um título reservado.","Untitled":"Sem título","This note does not have geolocation information.":"Esta nota não possui informações de geolocalização.","Cannot copy note to \"%s\" notebook":"Não é possível copiar a nota para o caderno \"%s\" ","Cannot move note to \"%s\" notebook":"Não é possível mover a nota para o caderno \"%s\"","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"O editor que será usado para abrir uma nota. Se nenhum for indicado, ele tentará detectar automaticamente o editor padrão.","Language":"Idioma","Date format":"Formato de data","Time format":"Formato de hora","Theme":"Tema","Light":"Light","Dark":"Dark","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Salvar geolocalização com notas","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Atualizar automaticamente o aplicativo","Synchronisation interval":"Intervalo de sincronização","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opções avançadas","Synchronisation target":"Alvo de sincronização","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"O caminho para sincronizar, quando a sincronização do sistema de arquivos está habilitada. Veja `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Valor da opção inválida: \"%s\". Os valores possíveis são: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Status de sincronização (sincronizados / totais)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Em conflito: %d","To delete: %d":"Para excluir: %d","Folders":"Pastas","%s: %d notes":"%s: %d notas","Coming alarms":"Próximos alarmes","On %s: %s":"Em %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Atualmente, não há notas. Crie uma, clicando no botão (+).","Delete these notes?":"Excluir estas notas?","Log":"Log","Export Debug Report":"Exportar Relatório de Debug","Encryption Config":"","Configuration":"Configuração","Move to notebook...":"Mover para o caderno...","Move %d notes to notebook \"%s\"?":"Mover %d notas para o caderno \"%s\"?","Press to set the decryption password.":"","Select date":"Selecionar data","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronização","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"O caderno não pôde ser salvo: %s","Edit notebook":"Editar caderno","Show all":"","Errors only":"","This note has been modified:":"Esta nota foi modificada:","Save changes":"Gravar alterações","Discard changes":"Descartar alterações","Unsupported image type: %s":"Tipo de imagem não suportada: %s","Attach photo":"Anexar foto","Attach any file":"Anexar qualquer arquivo","Convert to note":"Converter para nota","Convert to todo":"Converter para tarefa","Hide metadata":"Ocultar metadados","Show metadata":"Exibir metadados","View on map":"Ver no mapa","Delete notebook":"Excluir caderno","Login with OneDrive":"Login com OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Clique no botão (+) para criar uma nova nota ou caderno. Clique no menu lateral para acessar seus cadernos existentes.","You currently have no notebook. Create one by clicking on (+) button.":"Você não possui cadernos. Crie um clicando no botão (+).","Welcome":"Bem-vindo"} \ No newline at end of file diff --git a/ElectronClient/app/locales/ru_RU.json b/ElectronClient/app/locales/ru_RU.json index 4e112951c8..414907a853 100644 --- a/ElectronClient/app/locales/ru_RU.json +++ b/ElectronClient/app/locales/ru_RU.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Чтобы удалить тег, уберите его с ассоциированных с ним заметок.","Please select the note or notebook to be deleted first.":"Сначала выберите заметку или блокнот, которые должны быть удалены.","Press Ctrl+D or type \"exit\" to exit the application":"Для выхода из приложения нажмите Ctrl+D или введите «exit»","More than one item match \"%s\". Please narrow down your query.":"Более одного элемента соответствуют «%s». Уточните ваш запрос, пожалуйста.","No notebook selected.":"Не выбран блокнот.","No notebook has been specified.":"Не был указан блокнот.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Отмена фоновой синхронизации... Пожалуйста, ожидайте.","No such command: %s":"Нет такой команды: %s","The command \"%s\" is only available in GUI mode":"Команда «%s» доступна только в режиме GUI","Cannot change encrypted item":"Не удалось изменить зашифрованный элемент","Missing required argument: %s":"Отсутствует требуемый аргумент: %s","%s: %s":"%s: %s","Your choice: ":"Ваш выбор: ","Invalid answer: %s":"Неверный ответ: %s","Attaches the given file to the note.":"Прикрепляет заданный файл к заметке.","Cannot find \"%s\".":"Не удалось найти «%s».","Displays the given note.":"Отображает заданную заметку.","Displays the complete information about note.":"Отображает полную информацию о заметке.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Выводит или задаёт параметр конфигурации. Если [value] не указано, выведет значение [name]. Если не указаны ни [name], ни [value], выведет текущую конфигурацию.","Also displays unset and hidden config variables.":"Также выводит неустановленные или скрытые переменные конфигурации.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Дублирует заметки, содержащие , в [notebook]. Если блокнот не указан, заметки продублируются в текущем.","Marks a to-do as done.":"Отмечает задачу как завершённую.","Note is not a to-do: \"%s\"":"Заметка не является задачей: «%s»","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Управляет конфигурацией E2EE. Команды: `enable`, `disable`, `decrypt`, `status` и `target-status`.","Enter master password:":"Введите мастер-пароль:","Operation cancelled":"Операция отменена","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Запуск расшифровки... Пожалуйста, ожидайте. Время расшифровки зависит от объёма расшифровываемых данных.","Completed decryption.":"Расшифровка завершена.","Enabled":"Включено","Disabled":"Отключено","Encryption is: %s":"Шифрование: %s","Edit note.":"Редактировать заметку.","No text editor is defined. Please set it using `config editor `":"Текстовый редактор не определён. Задайте его, используя `config editor `","No active notebook.":"Нет активного блокнота.","Note does not exist: \"%s\". Create it?":"Заметки не существует: «%s». Создать?","Starting to edit note. Close the editor to get back to the prompt.":"Запуск редактирования заметки. Закройте редактор, чтобы вернуться к командной строке.","Error opening note in editor: %s":"Ошибка при открытии заметки в редакторе: %s","Note has been saved.":"Заметка сохранена.","Exits the application.":"Выход из приложения.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Экспортирует только заданную заметку.","Exports only the given notebook.":"Экспортирует только заданный блокнот.","Displays a geolocation URL for the note.":"Выводит URL геолокации для заметки.","Displays usage information.":"Выводит информацию об использовании.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Ярлыки недоступны в режиме командной строки.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Введите `help [команда]` для получения информации о команде или `help all` для получения полной информации по использованию.","The possible commands are:":"Доступные команды:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"В любой команде можно ссылаться на заметку или блокнот по названию или ID, либо используя ярлыки `$n` или `$b`, указывающие на текущую заметку или блокнот соответственно. С помощью `$c` можно ссылаться на текущий выбранный элемент.","To move from one pane to another, press Tab or Shift+Tab.":"Чтобы переключаться между панелями, нажимайте Tab или Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Используйте стрелки и клавиши перелистывания страницы вверх/вниз для прокрутки списков и текстовых областей (включая эту консоль).","To maximise/minimise the console, press \"TC\".":"Чтобы развернуть/свернуть консоль, нажимайте «TC».","To enter command line mode, press \":\"":"Чтобы войти в режим командной строки, нажмите «:»","To exit command line mode, press ESCAPE":"Чтобы выйти из режима командной строки, нажмите ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Не запрашивать подтверждение.","Found: %d.":"Найдено: %d.","Created: %d.":"Создано: %d.","Updated: %d.":"Обновлено: %d.","Skipped: %d.":"Пропущено: %d.","Resources: %d.":"Ресурсов: %d.","Tagged: %d.":"С тегами: %d.","Importing notes...":"Импорт заметок...","The notes have been imported: %s":"Импортировано заметок: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Выводит заметки текущего блокнота. Используйте `ls /` для вывода списка блокнотов.","Displays only the first top notes.":"Выводит только первые заметок.","Sorts the item by (eg. title, updated_time, created_time).":"Сортирует элементы по (например, title, updated_time, created_time).","Reverses the sorting order.":"Обращает порядок сортировки.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Выводит только элементы указанного типа. Может быть `n` для заметок, `t` для задач или `nt` для заметок и задач (например, `-tt` выведет только задачи, в то время как `-ttd` выведет заметки и задачи).","Either \"text\" or \"json\"":"«text» или «json»","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Использовать формат длинного списка. Форматом является ID, NOTE_COUNT (для блокнотов), DATE, TODO_CHECKED (для задач), TITLE","Please select a notebook first.":"Сначала выберите блокнот.","Creates a new notebook.":"Создаёт новый блокнот.","Creates a new note.":"Создаёт новую заметку.","Notes can only be created within a notebook.":"Заметки могут быть созданы только в блокноте.","Creates a new to-do.":"Создаёт новую задачу.","Moves the notes matching to [notebook].":"Перемещает заметки, содержащие в [notebook].","Renames the given (note or notebook) to .":"Переименовывает заданный (заметку или блокнот) в .","Deletes the given notebook.":"Удаляет заданный блокнот.","Deletes the notebook without asking for confirmation.":"Удаляет блокнот без запроса подтверждения.","Delete notebook? All notes within this notebook will also be deleted.":"Удалить блокнот? Все заметки в этом блокноте также будут удалены.","Deletes the notes matching .":"Удаляет заметки, соответствующие .","Deletes the notes without asking for confirmation.":"Удаляет заметки без запроса подтверждения.","%d notes match this pattern. Delete them?":"%d заметок соответствуют этому шаблону. Удалить их?","Delete note?":"Удалить заметку?","Searches for the given in all the notes.":"Запросы для заданного во всех заметках.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Устанавливает для свойства заданной заданное [value]. Возможные свойства:\n\n%s","Displays summary about the notes and notebooks.":"Выводит общую информацию о заметках и блокнотах.","Synchronises with remote storage.":"Синхронизирует с удалённым хранилищем.","Sync to provided target (defaults to sync.target config value)":"Синхронизация с заданной целью (по умолчанию — значение конфигурации sync.target)","Authentication was not completed (did not receive an authentication token).":"Аутентификация не была завершена (не получен токен аутентификации).","Not authentified with %s. Please provide any missing credentials.":"Не аутентифицировано с %s. Пожалуйста, предоставьте все недостающие данные.","Synchronisation is already in progress.":"Синхронизация уже выполняется.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Файл блокировки уже установлен. Если вам известно, что синхронизация не производится, вы можете удалить файл блокировки в «%s» и возобновить операцию.","Synchronisation target: %s (%s)":"Цель синхронизации: %s (%s)","Cannot initialize synchroniser.":"Не удалось инициировать синхронизацию.","Starting synchronisation...":"Начало синхронизации...","Cancelling... Please wait.":"Отмена... Пожалуйста, ожидайте."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" может быть «add», «remove» или «list», чтобы назначить или убрать [tag] с [note], или чтобы вывести список заметок, ассоциированых с [tag]. Команда `tag list` может быть использована для вывода списка всех тегов.","Invalid command: \"%s\"":"Неверная команда: «%s»"," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" может быть «toggle» или «clear». «toggle» используется для переключения статуса заданной задачи на завершённую или незавершённую (если применить к обычной заметке, она будет преобразована в задачу). «clear» используется для преобразования задачи обратно в обычную заметку.","Marks a to-do as non-completed.":"Отмечает задачу как незавершённую.","Switches to [notebook] - all further operations will happen within this notebook.":"Переключает на [блокнот] — все дальнейшие операции будут происходить в этом блокноте.","Displays version information":"Выводит информацию о версии","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Тип: %s.","Possible values: %s.":"Возможные значения: %s.","Default: %s":"По умолчанию: %s","Possible keys/values:":"Возможные ключи/значения:","Fatal error:":"Фатальная ошибка:","The application has been authorised - you may now close this browser tab.":"Приложение авторизовано — можно закрыть вкладку браузера.","The application has been successfully authorised.":"Приложение успешно авторизовано.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Откройте следующую ссылку в вашем браузере для аутентификации приложения. Приложением будет создан каталог «Apps/Joplin». Чтение и запись файлов будет осуществляться только в его пределах. У приложения не будет доступа к каким-либо файлам за пределами этого каталога и другим личным данным. Никакая информация не будет передана третьим лицам.","Search:":"Поиск:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Добро пожаловать в Joplin!\n\nВведите `:help shortcuts` для просмотра списка клавиатурных сочетаний или просто `:help` для просмотра информации об использовании.\n\nНапример, для создания блокнота нужно ввести `mb`, для создания заметки — `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Один или несколько элементов сейчас зашифрованы и может потребоваться, чтобы вы предоставили мастер-пароль. Для этого введите, пожалуйста, «e2ee decrypt». Если пароль уже был вами предоставлен, зашифрованные элементы расшифруются в фоновом режиме и вскоре станут доступны.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Файл","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Новая заметка","New to-do":"Новая задача","New notebook":"Новый блокнот","Import":"Импорт","Export":"Export","Hide %s":"","Quit":"Выход","Edit":"Правка","Copy":"Копировать","Cut":"Вырезать","Paste":"Вставить","Search in all the notes":"Поиск во всех заметках","View":"","Toggle editor layout":"","Tools":"Инструменты","Synchronisation status":"Статус синхронизации","Encryption options":"Настройки шифрования","General Options":"Основные настройки","Help":"Помощь","Website and documentation":"Сайт и документация","Check for updates...":"Проверить обновления...","About Joplin":"О Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Отмена","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"An update is available, do you want to download it now?","Yes":"","No":"No","Current version is up-to-date.":"Вы используете самую свежую версию.","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Заметки и настройки сохранены в: %s","Save":"Сохранить","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Отключение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в расшифрованном виде к цели синхронизации. Желаете продолжить?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Включение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в зашифрованном виде к цели синхронизации. Не теряйте пароль, так как в целях безопасности *только* с его помощью можно будет расшифровать данные! Чтобы включить шифрование, введите ваш пароль ниже.","Disable encryption":"Отключить шифрование","Enable encryption":"Включить шифрование","Master Keys":"Мастер-ключи","Active":"Активен","ID":"ID","Source":"Источник","Created":"Создан","Updated":"Обновлён","Password":"Пароль","Password OK":"Пароль OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Внимание: Для шифрования может быть использован только один мастер-ключ (отмеченный как «активный»). Для расшифровки может использоваться любой из ключей, в зависимости от того, как изначально были зашифрованы заметки или блокноты.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Статус","Encryption is:":"Шифрование:","Back":"Назад","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Будет создан новый блокнот «%s» и в него будет импортирован файл «%s»","Please create a notebook first.":"Сначала создайте блокнот.","Please create a notebook first":"Сначала создайте блокнот","Notebook title:":"Название блокнота:","Add or remove tags:":"Добавить или удалить теги:","Separate each tag by a comma.":"Каждый тег отделяется запятой.","Rename notebook:":"Переименовать блокнот:","Set alarm:":"Установить напоминание:","Search":"Поиск","Layout":"Вид","Some items cannot be synchronised.":"Некоторые элементы не могут быть синхронизированы.","View them now":"Просмотреть их сейчас","Some items cannot be decrypted.":"Некоторые элементы не могут быть расшифрованы.","Set the password":"Установить пароль","Add or remove tags":"Добавить или удалить теги","Switch between note and to-do type":"Переключить тип между заметкой и задачей","Delete":"Удалить","Delete notes?":"Удалить заметки?","No notes in here. Create one by clicking on \"New note\".":"Здесь нет заметок. Создайте новую нажатием на «Новая заметка».","There is currently no notebook. Create one by clicking on \"New notebook\".":"Сейчас здесь нет блокнотов. Создайте новый нажав «Новый блокнот».","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Неподдерживаемая ссыка или сообщение: %s","Attach file":"Прикрепить файл","Tags":"Теги","Set alarm":"Установить напоминание","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Обновить","Clear":"Очистить","OneDrive Login":"Вход в OneDrive","Options":"Настройки","Synchronisation Status":"Статус синхронизации","Encryption Options":"Настройки шифрования","Remove this tag from all the notes?":"Убрать этот тег со всех заметок?","Remove this search from the sidebar?":"Убрать этот запрос с боковой панели?","Rename":"Переименовать","Synchronise":"Синхронизировать","Notebooks":"Блокноты","Searches":"Запросы","Please select where the sync status should be exported to":"Выберите, куда должен быть экспортирован статус синхронизации","Usage: %s":"Использование: %s","Unknown flag: %s":"Неизвестный флаг: %s","File system":"Файловая система","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (только для тестирования)","WebDAV":"WebDAV","Unknown log level: %s":"Неизвестный уровень лога: %s","Unknown level ID: %s":"Неизвестный ID уровня: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Не удалось обновить токен: отсутствуют данные аутентификации. Повторный запуск синхронизации может решить проблему.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Не удалось синхронизироваться с OneDrive.\n\nТакая ошибка часто возникает при использовании OneDrive для бизнеса, который, к сожалению, не поддерживается.\n\nПожалуйста, рассмотрите возможность использования обычного аккаунта OneDrive.","Cannot access %s":"Не удалось получить доступ %s","Created local items: %d.":"Создано локальных элементов: %d.","Updated local items: %d.":"Обновлено локальных элементов: %d.","Created remote items: %d.":"Создано удалённых элементов: %d.","Updated remote items: %d.":"Обновлено удалённых элементов: %d.","Deleted local items: %d.":"Удалено локальных элементов: %d.","Deleted remote items: %d.":"Удалено удалённых элементов: %d.","Fetched items: %d/%d.":"Получено элементов: %d/%d.","State: \"%s\".":"Статус: «%s».","Cancelling...":"Отмена...","Completed: %s":"Завершено: %s","Synchronisation is already in progress. State: %s":"Синхронизация уже выполняется. Статус: %s","Encrypted":"Зашифровано","Encrypted items cannot be modified":"Зашифрованные элементы не могут быть изменены","Conflicts":"Конфликты","A notebook with this title already exists: \"%s\"":"Блокнот с таким названием уже существует: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"Блокнот не может быть назван «%s», это зарезервированное название.","Untitled":"Без имени","This note does not have geolocation information.":"Эта заметка не содержит информации о геолокации.","Cannot copy note to \"%s\" notebook":"Не удалось скопировать заметку в блокнот «%s»","Cannot move note to \"%s\" notebook":"Не удалось переместить заметку в блокнот «%s»","Text editor":"Текстовый редактор","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Редактор, в котором будут открываться заметки. Если не задан, будет произведена попытка автоматического определения редактора по умолчанию.","Language":"Язык","Date format":"Формат даты","Time format":"Формат времени","Theme":"Тема","Light":"Светлая","Dark":"Тёмная","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Сохранять информацию о геолокации в заметках","When creating a new to-do:":"При создании новой задачи:","Focus title":"Фокус на названии","Focus body":"Фокус на содержимом","When creating a new note:":"При создании новой заметки:","Show tray icon":"","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Автоматически обновлять приложение","Synchronisation interval":"Интервал синхронизации","%d minutes":"%d минут","%d hour":"%d час","%d hours":"%d часов","Show advanced options":"Показывать расширенные настройки","Synchronisation target":"Цель синхронизации","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Цель синхронизации. Каждая цель синхронизации может иметь дополнительные параметры, именованные как «sync.NUM.NAME» (все описаны ниже).","Directory to synchronise with (absolute path)":"Каталог синхронизации (абсолютный путь)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Путь для синхронизации при включённой синхронизации с файловой системой. См. `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Имя пользователя Nextcloud","Nextcloud password":"Пароль Nextcloud","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV username","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Неверное значение параметра: «%s». Доступные значения: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Элементы, которые не могут быть синхронизированы","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Эти элементы будут оставаться на устройстве, но не будут загружены в целевой объект синхронизации. Чтобы найти эти элементы, воспользуйтесь поиском по названию или ID (который указывается в скобках выше).","Sync status (synced items / total items)":"Статус синхронизации (элементов синхронизировано/всего)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Всего: %d/%d","Conflicted: %d":"Конфликтующих: %d","To delete: %d":"К удалению: %d","Folders":"Папки","%s: %d notes":"%s: %d заметок","Coming alarms":"Грядущие напоминания","On %s: %s":"В %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Сейчас здесь нет заметок. Создаёте новую, нажав кнопку (+).","Delete these notes?":"Удалить эти заметки?","Log":"Лог","Export Debug Report":"Экспортировать отладочный отчёт","Encryption Config":"Конфигурация шифрования","Configuration":"Конфигурация","Move to notebook...":"Переместить в блокнот...","Move %d notes to notebook \"%s\"?":"Переместить %d заметок в блокнот «%s»?","Press to set the decryption password.":"Нажмите, чтобы установить пароль для расшифровки.","Select date":"Выбрать дату","Confirm":"Подтвердить","Cancel synchronisation":"Отменить синхронизацию","Master Key %s":"Мастер-ключ %s","Created: %s":"Создано: %s","Password:":"Пароль:","Password cannot be empty":"Пароль не может быть пустым","Enable":"Включено","The notebook could not be saved: %s":"Не удалось сохранить блокнот: %s","Edit notebook":"Редактировать блокнот","Show all":"","Errors only":"Errors only","This note has been modified:":"Эта заметка была изменена:","Save changes":"Сохранить изменения","Discard changes":"Отменить изменения","Unsupported image type: %s":"Неподдерживаемый формат изображения: %s","Attach photo":"Прикрепить фото","Attach any file":"Прикрепить любой файл","Convert to note":"Преобразовать в заметку","Convert to todo":"Преобразовать в задачу","Hide metadata":"Скрыть метаданные","Show metadata":"Показать метаданные","View on map":"Посмотреть на карте","Delete notebook":"Удалить блокнот","Login with OneDrive":"Войти в OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Нажмите на кнопку (+) для создания новой заметки или нового блокнота. Нажмите на боковое меню для доступа к вашим существующим блокнотам.","You currently have no notebook. Create one by clicking on (+) button.":"У вас сейчас нет блокнота. Создайте его нажатием на кнопку (+).","Welcome":"Добро пожаловать"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Чтобы удалить тег, уберите его с ассоциированных с ним заметок.","Please select the note or notebook to be deleted first.":"Сначала выберите заметку или блокнот, которые должны быть удалены.","Press Ctrl+D or type \"exit\" to exit the application":"Для выхода из приложения нажмите Ctrl+D или введите «exit»","More than one item match \"%s\". Please narrow down your query.":"Более одного элемента соответствуют «%s». Уточните ваш запрос, пожалуйста.","No notebook selected.":"Не выбран блокнот.","No notebook has been specified.":"Не был указан блокнот.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Отмена фоновой синхронизации... Пожалуйста, ожидайте.","No such command: %s":"Нет такой команды: %s","The command \"%s\" is only available in GUI mode":"Команда «%s» доступна только в режиме GUI","Cannot change encrypted item":"Не удалось изменить зашифрованный элемент","Missing required argument: %s":"Отсутствует требуемый аргумент: %s","%s: %s":"%s: %s","Your choice: ":"Ваш выбор: ","Invalid answer: %s":"Неверный ответ: %s","Attaches the given file to the note.":"Прикрепляет заданный файл к заметке.","Cannot find \"%s\".":"Не удалось найти «%s».","Displays the given note.":"Отображает заданную заметку.","Displays the complete information about note.":"Отображает полную информацию о заметке.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Выводит или задаёт параметр конфигурации. Если [value] не указано, выведет значение [name]. Если не указаны ни [name], ни [value], выведет текущую конфигурацию.","Also displays unset and hidden config variables.":"Также выводит неустановленные или скрытые переменные конфигурации.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Дублирует заметки, содержащие , в [notebook]. Если блокнот не указан, заметки продублируются в текущем.","Marks a to-do as done.":"Отмечает задачу как завершённую.","Note is not a to-do: \"%s\"":"Заметка не является задачей: «%s»","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Управляет конфигурацией E2EE. Команды: `enable`, `disable`, `decrypt`, `status` и `target-status`.","Enter master password:":"Введите мастер-пароль:","Operation cancelled":"Операция отменена","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Запуск расшифровки... Пожалуйста, ожидайте. Время расшифровки зависит от объёма расшифровываемых данных.","Completed decryption.":"Расшифровка завершена.","Enabled":"Включено","Disabled":"Отключено","Encryption is: %s":"Шифрование: %s","Edit note.":"Редактировать заметку.","No text editor is defined. Please set it using `config editor `":"Текстовый редактор не определён. Задайте его, используя `config editor `","No active notebook.":"Нет активного блокнота.","Note does not exist: \"%s\". Create it?":"Заметки не существует: «%s». Создать?","Starting to edit note. Close the editor to get back to the prompt.":"Запуск редактирования заметки. Закройте редактор, чтобы вернуться к командной строке.","Error opening note in editor: %s":"Ошибка при открытии заметки в редакторе: %s","Note has been saved.":"Заметка сохранена.","Exits the application.":"Выход из приложения.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Экспортирует только заданную заметку.","Exports only the given notebook.":"Экспортирует только заданный блокнот.","Displays a geolocation URL for the note.":"Выводит URL геолокации для заметки.","Displays usage information.":"Выводит информацию об использовании.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Ярлыки недоступны в режиме командной строки.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Введите `help [команда]` для получения информации о команде или `help all` для получения полной информации по использованию.","The possible commands are:":"Доступные команды:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"В любой команде можно ссылаться на заметку или блокнот по названию или ID, либо используя ярлыки `$n` или `$b`, указывающие на текущую заметку или блокнот соответственно. С помощью `$c` можно ссылаться на текущий выбранный элемент.","To move from one pane to another, press Tab or Shift+Tab.":"Чтобы переключаться между панелями, нажимайте Tab или Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Используйте стрелки и клавиши перелистывания страницы вверх/вниз для прокрутки списков и текстовых областей (включая эту консоль).","To maximise/minimise the console, press \"TC\".":"Чтобы развернуть/свернуть консоль, нажимайте «TC».","To enter command line mode, press \":\"":"Чтобы войти в режим командной строки, нажмите «:»","To exit command line mode, press ESCAPE":"Чтобы выйти из режима командной строки, нажмите ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Не запрашивать подтверждение.","Found: %d.":"Найдено: %d.","Created: %d.":"Создано: %d.","Updated: %d.":"Обновлено: %d.","Skipped: %d.":"Пропущено: %d.","Resources: %d.":"Ресурсов: %d.","Tagged: %d.":"С тегами: %d.","Importing notes...":"Импорт заметок...","The notes have been imported: %s":"Импортировано заметок: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Выводит заметки текущего блокнота. Используйте `ls /` для вывода списка блокнотов.","Displays only the first top notes.":"Выводит только первые заметок.","Sorts the item by (eg. title, updated_time, created_time).":"Сортирует элементы по (например, title, updated_time, created_time).","Reverses the sorting order.":"Обращает порядок сортировки.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Выводит только элементы указанного типа. Может быть `n` для заметок, `t` для задач или `nt` для заметок и задач (например, `-tt` выведет только задачи, в то время как `-ttd` выведет заметки и задачи).","Either \"text\" or \"json\"":"«text» или «json»","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Использовать формат длинного списка. Форматом является ID, NOTE_COUNT (для блокнотов), DATE, TODO_CHECKED (для задач), TITLE","Please select a notebook first.":"Сначала выберите блокнот.","Creates a new notebook.":"Создаёт новый блокнот.","Creates a new note.":"Создаёт новую заметку.","Notes can only be created within a notebook.":"Заметки могут быть созданы только в блокноте.","Creates a new to-do.":"Создаёт новую задачу.","Moves the notes matching to [notebook].":"Перемещает заметки, содержащие в [notebook].","Renames the given (note or notebook) to .":"Переименовывает заданный (заметку или блокнот) в .","Deletes the given notebook.":"Удаляет заданный блокнот.","Deletes the notebook without asking for confirmation.":"Удаляет блокнот без запроса подтверждения.","Delete notebook? All notes within this notebook will also be deleted.":"Удалить блокнот? Все заметки в этом блокноте также будут удалены.","Deletes the notes matching .":"Удаляет заметки, соответствующие .","Deletes the notes without asking for confirmation.":"Удаляет заметки без запроса подтверждения.","%d notes match this pattern. Delete them?":"%d заметок соответствуют этому шаблону. Удалить их?","Delete note?":"Удалить заметку?","Searches for the given in all the notes.":"Запросы для заданного во всех заметках.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Устанавливает для свойства заданной заданное [value]. Возможные свойства:\n\n%s","Displays summary about the notes and notebooks.":"Выводит общую информацию о заметках и блокнотах.","Synchronises with remote storage.":"Синхронизирует с удалённым хранилищем.","Sync to provided target (defaults to sync.target config value)":"Синхронизация с заданной целью (по умолчанию — значение конфигурации sync.target)","Authentication was not completed (did not receive an authentication token).":"Аутентификация не была завершена (не получен токен аутентификации).","Not authentified with %s. Please provide any missing credentials.":"Не аутентифицировано с %s. Пожалуйста, предоставьте все недостающие данные.","Synchronisation is already in progress.":"Синхронизация уже выполняется.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Файл блокировки уже установлен. Если вам известно, что синхронизация не производится, вы можете удалить файл блокировки в «%s» и возобновить операцию.","Synchronisation target: %s (%s)":"Цель синхронизации: %s (%s)","Cannot initialize synchroniser.":"Не удалось инициировать синхронизацию.","Starting synchronisation...":"Начало синхронизации...","Cancelling... Please wait.":"Отмена... Пожалуйста, ожидайте."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" может быть «add», «remove» или «list», чтобы назначить или убрать [tag] с [note], или чтобы вывести список заметок, ассоциированых с [tag]. Команда `tag list` может быть использована для вывода списка всех тегов.","Invalid command: \"%s\"":"Неверная команда: «%s»"," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" может быть «toggle» или «clear». «toggle» используется для переключения статуса заданной задачи на завершённую или незавершённую (если применить к обычной заметке, она будет преобразована в задачу). «clear» используется для преобразования задачи обратно в обычную заметку.","Marks a to-do as non-completed.":"Отмечает задачу как незавершённую.","Switches to [notebook] - all further operations will happen within this notebook.":"Переключает на [блокнот] — все дальнейшие операции будут происходить в этом блокноте.","Displays version information":"Выводит информацию о версии","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Тип: %s.","Possible values: %s.":"Возможные значения: %s.","Default: %s":"По умолчанию: %s","Possible keys/values:":"Возможные ключи/значения:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Фатальная ошибка:","The application has been authorised - you may now close this browser tab.":"Приложение авторизовано — можно закрыть вкладку браузера.","The application has been successfully authorised.":"Приложение успешно авторизовано.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Откройте следующую ссылку в вашем браузере для аутентификации приложения. Приложением будет создан каталог «Apps/Joplin». Чтение и запись файлов будет осуществляться только в его пределах. У приложения не будет доступа к каким-либо файлам за пределами этого каталога и другим личным данным. Никакая информация не будет передана третьим лицам.","Search:":"Поиск:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Добро пожаловать в Joplin!\n\nВведите `:help shortcuts` для просмотра списка клавиатурных сочетаний или просто `:help` для просмотра информации об использовании.\n\nНапример, для создания блокнота нужно ввести `mb`, для создания заметки — `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Один или несколько элементов сейчас зашифрованы и может потребоваться, чтобы вы предоставили мастер-пароль. Для этого введите, пожалуйста, «e2ee decrypt». Если пароль уже был вами предоставлен, зашифрованные элементы расшифруются в фоновом режиме и вскоре станут доступны.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Файл","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Новая заметка","New to-do":"Новая задача","New notebook":"Новый блокнот","Import":"Импорт","Export":"Export","Hide %s":"","Quit":"Выход","Edit":"Правка","Copy":"Копировать","Cut":"Вырезать","Paste":"Вставить","Search in all the notes":"Поиск во всех заметках","View":"","Toggle editor layout":"","Tools":"Инструменты","Synchronisation status":"Статус синхронизации","Encryption options":"Настройки шифрования","General Options":"Основные настройки","Help":"Помощь","Website and documentation":"Сайт и документация","Make a donation":"Make a donation","Check for updates...":"Проверить обновления...","About Joplin":"О Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Отмена","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"An update is available, do you want to download it now?","Yes":"","No":"No","Current version is up-to-date.":"Вы используете самую свежую версию.","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Заметки и настройки сохранены в: %s","Save":"Сохранить","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Отключение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в расшифрованном виде к цели синхронизации. Желаете продолжить?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Включение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в зашифрованном виде к цели синхронизации. Не теряйте пароль, так как в целях безопасности *только* с его помощью можно будет расшифровать данные! Чтобы включить шифрование, введите ваш пароль ниже.","Disable encryption":"Отключить шифрование","Enable encryption":"Включить шифрование","Master Keys":"Мастер-ключи","Active":"Активен","ID":"ID","Source":"Источник","Created":"Создан","Updated":"Обновлён","Password":"Пароль","Password OK":"Пароль OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Внимание: Для шифрования может быть использован только один мастер-ключ (отмеченный как «активный»). Для расшифровки может использоваться любой из ключей, в зависимости от того, как изначально были зашифрованы заметки или блокноты.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Статус","Encryption is:":"Шифрование:","Back":"Назад","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Будет создан новый блокнот «%s» и в него будет импортирован файл «%s»","Please create a notebook first.":"Сначала создайте блокнот.","Please create a notebook first":"Сначала создайте блокнот","Notebook title:":"Название блокнота:","Add or remove tags:":"Добавить или удалить теги:","Separate each tag by a comma.":"Каждый тег отделяется запятой.","Rename notebook:":"Переименовать блокнот:","Set alarm:":"Установить напоминание:","Search":"Поиск","Layout":"Вид","Some items cannot be synchronised.":"Некоторые элементы не могут быть синхронизированы.","View them now":"Просмотреть их сейчас","Some items cannot be decrypted.":"Некоторые элементы не могут быть расшифрованы.","Set the password":"Установить пароль","Add or remove tags":"Добавить или удалить теги","Switch between note and to-do type":"Переключить тип между заметкой и задачей","Delete":"Удалить","Delete notes?":"Удалить заметки?","No notes in here. Create one by clicking on \"New note\".":"Здесь нет заметок. Создайте новую нажатием на «Новая заметка».","There is currently no notebook. Create one by clicking on \"New notebook\".":"Сейчас здесь нет блокнотов. Создайте новый нажав «Новый блокнот».","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Неподдерживаемая ссыка или сообщение: %s","Attach file":"Прикрепить файл","Tags":"Теги","Set alarm":"Установить напоминание","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Обновить","Clear":"Очистить","OneDrive Login":"Вход в OneDrive","Options":"Настройки","Synchronisation Status":"Статус синхронизации","Encryption Options":"Настройки шифрования","Remove this tag from all the notes?":"Убрать этот тег со всех заметок?","Remove this search from the sidebar?":"Убрать этот запрос с боковой панели?","Rename":"Переименовать","Synchronise":"Синхронизировать","Notebooks":"Блокноты","Searches":"Запросы","Please select where the sync status should be exported to":"Выберите, куда должен быть экспортирован статус синхронизации","Usage: %s":"Использование: %s","Unknown flag: %s":"Неизвестный флаг: %s","File system":"Файловая система","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (только для тестирования)","WebDAV":"WebDAV","Unknown log level: %s":"Неизвестный уровень лога: %s","Unknown level ID: %s":"Неизвестный ID уровня: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Не удалось обновить токен: отсутствуют данные аутентификации. Повторный запуск синхронизации может решить проблему.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Не удалось синхронизироваться с OneDrive.\n\nТакая ошибка часто возникает при использовании OneDrive для бизнеса, который, к сожалению, не поддерживается.\n\nПожалуйста, рассмотрите возможность использования обычного аккаунта OneDrive.","Cannot access %s":"Не удалось получить доступ %s","Created local items: %d.":"Создано локальных элементов: %d.","Updated local items: %d.":"Обновлено локальных элементов: %d.","Created remote items: %d.":"Создано удалённых элементов: %d.","Updated remote items: %d.":"Обновлено удалённых элементов: %d.","Deleted local items: %d.":"Удалено локальных элементов: %d.","Deleted remote items: %d.":"Удалено удалённых элементов: %d.","Fetched items: %d/%d.":"Получено элементов: %d/%d.","State: \"%s\".":"Статус: «%s».","Cancelling...":"Отмена...","Completed: %s":"Завершено: %s","Synchronisation is already in progress. State: %s":"Синхронизация уже выполняется. Статус: %s","Encrypted":"Зашифровано","Encrypted items cannot be modified":"Зашифрованные элементы не могут быть изменены","Conflicts":"Конфликты","A notebook with this title already exists: \"%s\"":"Блокнот с таким названием уже существует: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"Блокнот не может быть назван «%s», это зарезервированное название.","Untitled":"Без имени","This note does not have geolocation information.":"Эта заметка не содержит информации о геолокации.","Cannot copy note to \"%s\" notebook":"Не удалось скопировать заметку в блокнот «%s»","Cannot move note to \"%s\" notebook":"Не удалось переместить заметку в блокнот «%s»","Text editor":"Текстовый редактор","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Редактор, в котором будут открываться заметки. Если не задан, будет произведена попытка автоматического определения редактора по умолчанию.","Language":"Язык","Date format":"Формат даты","Time format":"Формат времени","Theme":"Тема","Light":"Светлая","Dark":"Тёмная","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Сохранять информацию о геолокации в заметках","When creating a new to-do:":"При создании новой задачи:","Focus title":"Фокус на названии","Focus body":"Фокус на содержимом","When creating a new note:":"При создании новой заметки:","Show tray icon":"","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Автоматически обновлять приложение","Synchronisation interval":"Интервал синхронизации","%d minutes":"%d минут","%d hour":"%d час","%d hours":"%d часов","Show advanced options":"Показывать расширенные настройки","Synchronisation target":"Цель синхронизации","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Цель синхронизации. Каждая цель синхронизации может иметь дополнительные параметры, именованные как «sync.NUM.NAME» (все описаны ниже).","Directory to synchronise with (absolute path)":"Каталог синхронизации (абсолютный путь)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Путь для синхронизации при включённой синхронизации с файловой системой. См. `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Имя пользователя Nextcloud","Nextcloud password":"Пароль Nextcloud","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV username","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Неверное значение параметра: «%s». Доступные значения: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Элементы, которые не могут быть синхронизированы","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Эти элементы будут оставаться на устройстве, но не будут загружены в целевой объект синхронизации. Чтобы найти эти элементы, воспользуйтесь поиском по названию или ID (который указывается в скобках выше).","Sync status (synced items / total items)":"Статус синхронизации (элементов синхронизировано/всего)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Всего: %d/%d","Conflicted: %d":"Конфликтующих: %d","To delete: %d":"К удалению: %d","Folders":"Папки","%s: %d notes":"%s: %d заметок","Coming alarms":"Грядущие напоминания","On %s: %s":"В %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Сейчас здесь нет заметок. Создаёте новую, нажав кнопку (+).","Delete these notes?":"Удалить эти заметки?","Log":"Лог","Export Debug Report":"Экспортировать отладочный отчёт","Encryption Config":"Конфигурация шифрования","Configuration":"Конфигурация","Move to notebook...":"Переместить в блокнот...","Move %d notes to notebook \"%s\"?":"Переместить %d заметок в блокнот «%s»?","Press to set the decryption password.":"Нажмите, чтобы установить пароль для расшифровки.","Select date":"Выбрать дату","Confirm":"Подтвердить","Cancel synchronisation":"Отменить синхронизацию","Joplin website":"","Master Key %s":"Мастер-ключ %s","Created: %s":"Создано: %s","Password:":"Пароль:","Password cannot be empty":"Пароль не может быть пустым","Enable":"Включено","The notebook could not be saved: %s":"Не удалось сохранить блокнот: %s","Edit notebook":"Редактировать блокнот","Show all":"","Errors only":"Errors only","This note has been modified:":"Эта заметка была изменена:","Save changes":"Сохранить изменения","Discard changes":"Отменить изменения","Unsupported image type: %s":"Неподдерживаемый формат изображения: %s","Attach photo":"Прикрепить фото","Attach any file":"Прикрепить любой файл","Convert to note":"Преобразовать в заметку","Convert to todo":"Преобразовать в задачу","Hide metadata":"Скрыть метаданные","Show metadata":"Показать метаданные","View on map":"Посмотреть на карте","Delete notebook":"Удалить блокнот","Login with OneDrive":"Войти в OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Нажмите на кнопку (+) для создания новой заметки или нового блокнота. Нажмите на боковое меню для доступа к вашим существующим блокнотам.","You currently have no notebook. Create one by clicking on (+) button.":"У вас сейчас нет блокнота. Создайте его нажатием на кнопку (+).","Welcome":"Добро пожаловать"} \ No newline at end of file diff --git a/ElectronClient/app/locales/zh_CN.json b/ElectronClient/app/locales/zh_CN.json index 3b34d93ba1..385dff364b 100644 --- a/ElectronClient/app/locales/zh_CN.json +++ b/ElectronClient/app/locales/zh_CN.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"移除相关笔记的标签后才可删除此标签。","Please select the note or notebook to be deleted first.":"请选择最先删除的笔记或笔记本。","Press Ctrl+D or type \"exit\" to exit the application":"按Ctrl+D或输入\"exit\"退出程序","More than one item match \"%s\". Please narrow down your query.":"有多个项目与\"%s\"匹配,请缩小您的查询范围。","No notebook selected.":"未选择笔记本。","No notebook has been specified.":"无指定笔记本。","Y":"是","n":"否","N":"否","y":"是","Cancelling background synchronisation... Please wait.":"正在取消背景同步...请稍后。","No such command: %s":"无以下命令:%s","The command \"%s\" is only available in GUI mode":"命令\"%s\"仅在GUI模式下可用","Cannot change encrypted item":"","Missing required argument: %s":"缺失所需参数:%s","%s: %s":"%s: %s","Your choice: ":"您的选择: ","Invalid answer: %s":"此答案无效:%s","Attaches the given file to the note.":"给笔记附加给定文件。","Cannot find \"%s\".":"无法找到 \"%s\"。","Displays the given note.":"显示给定笔记。","Displays the complete information about note.":"显示关于笔记的全部信息。","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"获取或设置配置变量。若未提供[value],则会显示[name]的值。若[name]及[value]都未提供,则列出当前配置。","Also displays unset and hidden config variables.":"同时显示未设置的与隐藏的配置变量。","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"复制符合的笔记至[notebook]。若无指定笔记本则在当前笔记本内复制该笔记。","Marks a to-do as done.":"标记待办事项为完成。","Note is not a to-do: \"%s\"":"笔记非待办事项:\"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"已禁止","Encryption is: %s":"","Edit note.":"编辑笔记。","No text editor is defined. Please set it using `config editor `":"未定义文本编辑器。请通过 `config editor `设置。","No active notebook.":"无活动笔记本。","Note does not exist: \"%s\". Create it?":"此笔记不存在:\"%s\"。是否创建?","Starting to edit note. Close the editor to get back to the prompt.":"开始编辑笔记。关闭编辑器则返回提示。","Error opening note in editor: %s":"","Note has been saved.":"笔记已被保存。","Exits the application.":"退出程序。","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"仅导出给定笔记。","Exports only the given notebook.":"仅导出给定笔记本。","Displays a geolocation URL for the note.":"显示此笔记的地理定位URL地址。","Displays usage information.":"显示使用信息。","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"快捷键在CLI模式下不可用。","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"可用命令为:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"在任意命令中,笔记或笔记本可通过其标题或ID来引用,也可使用代表当前所选笔记或笔记本的变量`$n`与`$b`。`$c`可用于引用当前所选项目。","To move from one pane to another, press Tab or Shift+Tab.":"按Tab或Shift+Tab切换面板。","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"通过上下左右与page up/down键来滚动列表与文本区域(包含此控制台)。","To maximise/minimise the console, press \"TC\".":"按\"TC\"最大化/最小化控制台。","To enter command line mode, press \":\"":"按\":\"键进入命令行模式","To exit command line mode, press ESCAPE":"按ESC键退出命令行模式","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"不再要求确认。","Found: %d.":"已找到:%d条。","Created: %d.":"已创建:%d条。","Updated: %d.":"已更新:%d条。","Skipped: %d.":"已跳过:%d条。","Resources: %d.":"资源:%d。","Tagged: %d.":"已标签:%d条。","Importing notes...":"正在导入笔记...","The notes have been imported: %s":"以下笔记已被导入:%s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"显示当前笔记本的笔记。使用`ls /`显示笔记本列表。","Displays only the first top notes.":"只显示最上方的条笔记。","Sorts the item by (eg. title, updated_time, created_time).":"使用排序项目(例标题、更新日期、创建日期)。","Reverses the sorting order.":"反转排序顺序。","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"仅显示指定格式的项目。`n`代表笔记,`t`代表待办事项,`nt`代表笔记和待办事项(例,`-tt`则会仅显示待办事项,`-ttd`则会显示笔记和待办事项)。","Either \"text\" or \"json\"":"\"文本\"或\"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"使用长列表格式。格式为ID, NOTE_COUNT(笔记本), DATE, TODO_CHECKED(待办事项),TITLE","Please select a notebook first.":"请先选择笔记本。","Creates a new notebook.":"创建新笔记本。","Creates a new note.":"创建新笔记。","Notes can only be created within a notebook.":"笔记只能创建于笔记本内。","Creates a new to-do.":"创建新待办事项。","Moves the notes matching to [notebook].":"移动符合的笔记至[notebook]。","Renames the given (note or notebook) to .":"重命名给定的(笔记或笔记本)至。","Deletes the given notebook.":"删除给定笔记本。","Deletes the notebook without asking for confirmation.":"删除笔记本(不要求确认)。","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"删除符合的笔记。","Deletes the notes without asking for confirmation.":"删除笔记(不要求确认)。","%d notes match this pattern. Delete them?":"%d条笔记符合此模式。是否删除它们?","Delete note?":"是否删除笔记?","Searches for the given in all the notes.":"在所有笔记内搜索给定的。","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Sets the property of the given to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"显示关于笔记与笔记本的概况。","Synchronises with remote storage.":"与远程储存空间同步。","Sync to provided target (defaults to sync.target config value)":"同步至所提供的目标(默认为同步目标配置值)","Authentication was not completed (did not receive an authentication token).":"认证未完成(未收到认证令牌)。","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"同步正在进行中。","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"锁定文件已被保留。若当前没有任何正在进行的同步,您可以在\"%s\"删除锁定文件并继续操作。","Synchronisation target: %s (%s)":"同步目标:%s (%s)","Cannot initialize synchroniser.":"无法初始化同步。","Starting synchronisation...":"开始同步...","Cancelling... Please wait.":"正在取消...请稍后。"," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":"可添加\"add\"、删除\"remove\",或列出\"list\"于[note],用来指定或移除[tag],也可以列出于[tag]相关的笔记。`tag list`命令可用于列出所有标签。","Invalid command: \"%s\"":"无效命令:\"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"可被切换\"toggle\"或清除\"clear\"。用\"toggle\"可使给定待办事项在已完成与未完成两个状态下切换(若目标为常规笔记,它将被转换成待办事项)。用\"clear\"可把该待办事项转换回常规笔记。","Marks a to-do as non-completed.":"标记待办事项为未完成。","Switches to [notebook] - all further operations will happen within this notebook.":"切换至[notebook] - 所有进一步处理将在此笔记本中进行。","Displays version information":"显示版本信息。","%s %s (%s)":"%s %s (%s)","Enum":"枚举","Type: %s.":"格式:%s。","Possible values: %s.":"可用值: %s。","Default: %s":"默认值: %s","Possible keys/values:":"可用键/值:","Fatal error:":"严重错误:","The application has been authorised - you may now close this browser tab.":"此程序已被授权 - 您可以关闭此浏览页面了。","The application has been successfully authorised.":"此程序已被成功授权。","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"请用网页浏览器打开以下URL来认证此程序。此程序将创建\"Apps/Joplin\"目录,并仅在此目录内写入及读取文件。程序对于在该目录外的文件或任何个人数据没有任何访问权限。同时也不会与第三方共享任何数据。","Search:":"搜索:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"文件","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"新笔记","New to-do":"新待办事项","New notebook":"新笔记本","Import":"导入","Export":"Export","Hide %s":"","Quit":"退出","Edit":"编辑","Copy":"复制","Cut":"剪切","Paste":"粘贴","Search in all the notes":"在所有笔记内搜索","View":"","Toggle editor layout":"","Tools":"工具","Synchronisation status":"同步状态","Encryption options":"","General Options":"General Options","Help":"帮助","Website and documentation":"网站与文档","Check for updates...":"","About Joplin":"关于Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"确认","Cancel":"取消","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"状态","Encryption is:":"","Back":"返回","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"将创建新笔记本\"%s\"并将文件\"%s\"导入至其中","Please create a notebook first.":"请先创建笔记本。","Please create a notebook first":"请先创建笔记本","Notebook title:":"笔记本标题:","Add or remove tags:":"添加或删除标签:","Separate each tag by a comma.":"用逗号\",\"分开每个标签。","Rename notebook:":"重命名笔记本:","Set alarm:":"设置提醒:","Search":"搜索","Layout":"布局","Some items cannot be synchronised.":"一些项目无法被同步。","View them now":"马上查看","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"添加或删除标签","Switch between note and to-do type":"在笔记和待办事项类型之间切换","Delete":"删除","Delete notes?":"是否删除笔记?","No notes in here. Create one by clicking on \"New note\".":"此处无笔记。点击\"新笔记\"创建新笔记。","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"不支持的链接或信息:%s","Attach file":"附加文件","Tags":"标签","Set alarm":"设置提醒","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"刷新","Clear":"清除","OneDrive Login":"登陆OneDrive","Options":"选项","Synchronisation Status":"同步状态","Encryption Options":"","Remove this tag from all the notes?":"从所有笔记中删除此标签?","Remove this search from the sidebar?":"从侧栏中删除此项搜索历史?","Rename":"重命名","Synchronise":"同步","Notebooks":"笔记本","Searches":"搜索历史","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"使用:%s","Unknown flag: %s":"未知标记:%s","File system":"文件系统","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive开发员(仅测试用)","WebDAV":"","Unknown log level: %s":"未知日志level:%s","Unknown level ID: %s":"未知 level ID:%s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"无法刷新令牌:缺失认证数据。请尝试重新启动同步。","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"无法与OneDrive同步。\n\n此错误经常在使用OneDrive for Business时出现。很可惜我们无法支持此服务。\n\n请您考虑使用常规的OneDrive账号。","Cannot access %s":"无法访问%s","Created local items: %d.":"已新建本地项目: %d。","Updated local items: %d.":"已更新本地项目: %d。","Created remote items: %d.":"已新建远程项目: %d。","Updated remote items: %d.":"已更新远程项目: %d。","Deleted local items: %d.":"已删除本地项目: %d。","Deleted remote items: %d.":"已删除远程项目: %d。","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"状态:\"%s\"。","Cancelling...":"正在取消...","Completed: %s":"已完成:\"%s\"","Synchronisation is already in progress. State: %s":"同步正在进行中。状态:%s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"冲突","A notebook with this title already exists: \"%s\"":"以此标题命名的笔记本已存在:\"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"笔记本无法被命名为\"%s\",此标题为保留标题。","Untitled":"无标题","This note does not have geolocation information.":"此笔记不包含地理定位信息。","Cannot copy note to \"%s\" notebook":"无法复制笔记至\"%s\"笔记本","Cannot move note to \"%s\" notebook":"无法移动笔记至\"%s\"笔记本","Text editor":"文本编辑器","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"将用于打开笔记的编辑器。若未提供,将自动尝试检测默认编辑器。","Language":"语言","Date format":"日期格式","Time format":"时间格式","Theme":"主题","Light":"浅色","Dark":"深色","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"保存笔记时同时保存地理定位信息","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"自动更新此程序","Synchronisation interval":"同步间隔","%d minutes":"%d分","%d hour":"%d小时","%d hours":"%d小时","Show advanced options":"显示高级选项","Synchronisation target":"同步目标","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"当文件系统同步开启时的同步路径。参考`sync.target`。","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"无效的选项值:\"%s\"。可用值为:%s。","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"项目无法被同步。","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"同步状态(已同步项目/项目总数)","%s: %d/%d":"%s:%d/%d条","Total: %d/%d":"总数:%d/%d条","Conflicted: %d":"有冲突的:%d条","To delete: %d":"将删除:%d条","Folders":"文件夹","%s: %d notes":"%s: %d条笔记","Coming alarms":"临近提醒","On %s: %s":"%s:%s","There are currently no notes. Create one by clicking on the (+) button.":"当前无笔记。点击(+)创建新笔记。","Delete these notes?":"是否删除这些笔记?","Log":"日志","Export Debug Report":"导出调试报告","Encryption Config":"","Configuration":"配置","Move to notebook...":"移动至笔记本...","Move %d notes to notebook \"%s\"?":"移动%d条笔记至笔记本\"%s\"?","Press to set the decryption password.":"","Select date":"选择日期","Confirm":"确认","Cancel synchronisation":"取消同步","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"此笔记本无法保存:%s","Edit notebook":"编辑笔记本","Show all":"","Errors only":"","This note has been modified:":"此笔记已被修改:","Save changes":"保存更改","Discard changes":"放弃更改","Unsupported image type: %s":"不支持的图片格式:%s","Attach photo":"附加照片","Attach any file":"附加任何文件","Convert to note":"转换至笔记","Convert to todo":"转换至待办事项","Hide metadata":"隐藏元数据","Show metadata":"显示元数据","View on map":"查看地图","Delete notebook":"删除笔记本","Login with OneDrive":"用OneDrive登陆","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"点击(+)按钮创建新笔记或笔记本。点击侧边菜单来访问您现有的笔记本。","You currently have no notebook. Create one by clicking on (+) button.":"您当前没有任何笔记本。点击(+)按钮创建新笔记本。","Welcome":"欢迎"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"移除相关笔记的标签后才可删除此标签。","Please select the note or notebook to be deleted first.":"请选择最先删除的笔记或笔记本。","Press Ctrl+D or type \"exit\" to exit the application":"按Ctrl+D或输入\"exit\"退出程序","More than one item match \"%s\". Please narrow down your query.":"有多个项目与\"%s\"匹配,请缩小您的查询范围。","No notebook selected.":"未选择笔记本。","No notebook has been specified.":"无指定笔记本。","Y":"是","n":"否","N":"否","y":"是","Cancelling background synchronisation... Please wait.":"正在取消背景同步...请稍后。","No such command: %s":"无以下命令:%s","The command \"%s\" is only available in GUI mode":"命令\"%s\"仅在GUI模式下可用","Cannot change encrypted item":"","Missing required argument: %s":"缺失所需参数:%s","%s: %s":"%s: %s","Your choice: ":"您的选择: ","Invalid answer: %s":"此答案无效:%s","Attaches the given file to the note.":"给笔记附加给定文件。","Cannot find \"%s\".":"无法找到 \"%s\"。","Displays the given note.":"显示给定笔记。","Displays the complete information about note.":"显示关于笔记的全部信息。","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"获取或设置配置变量。若未提供[value],则会显示[name]的值。若[name]及[value]都未提供,则列出当前配置。","Also displays unset and hidden config variables.":"同时显示未设置的与隐藏的配置变量。","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"复制符合的笔记至[notebook]。若无指定笔记本则在当前笔记本内复制该笔记。","Marks a to-do as done.":"标记待办事项为完成。","Note is not a to-do: \"%s\"":"笔记非待办事项:\"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"已禁止","Encryption is: %s":"","Edit note.":"编辑笔记。","No text editor is defined. Please set it using `config editor `":"未定义文本编辑器。请通过 `config editor `设置。","No active notebook.":"无活动笔记本。","Note does not exist: \"%s\". Create it?":"此笔记不存在:\"%s\"。是否创建?","Starting to edit note. Close the editor to get back to the prompt.":"开始编辑笔记。关闭编辑器则返回提示。","Error opening note in editor: %s":"","Note has been saved.":"笔记已被保存。","Exits the application.":"退出程序。","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"仅导出给定笔记。","Exports only the given notebook.":"仅导出给定笔记本。","Displays a geolocation URL for the note.":"显示此笔记的地理定位URL地址。","Displays usage information.":"显示使用信息。","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"快捷键在CLI模式下不可用。","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"可用命令为:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"在任意命令中,笔记或笔记本可通过其标题或ID来引用,也可使用代表当前所选笔记或笔记本的变量`$n`与`$b`。`$c`可用于引用当前所选项目。","To move from one pane to another, press Tab or Shift+Tab.":"按Tab或Shift+Tab切换面板。","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"通过上下左右与page up/down键来滚动列表与文本区域(包含此控制台)。","To maximise/minimise the console, press \"TC\".":"按\"TC\"最大化/最小化控制台。","To enter command line mode, press \":\"":"按\":\"键进入命令行模式","To exit command line mode, press ESCAPE":"按ESC键退出命令行模式","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"不再要求确认。","Found: %d.":"已找到:%d条。","Created: %d.":"已创建:%d条。","Updated: %d.":"已更新:%d条。","Skipped: %d.":"已跳过:%d条。","Resources: %d.":"资源:%d。","Tagged: %d.":"已标签:%d条。","Importing notes...":"正在导入笔记...","The notes have been imported: %s":"以下笔记已被导入:%s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"显示当前笔记本的笔记。使用`ls /`显示笔记本列表。","Displays only the first top notes.":"只显示最上方的条笔记。","Sorts the item by (eg. title, updated_time, created_time).":"使用排序项目(例标题、更新日期、创建日期)。","Reverses the sorting order.":"反转排序顺序。","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"仅显示指定格式的项目。`n`代表笔记,`t`代表待办事项,`nt`代表笔记和待办事项(例,`-tt`则会仅显示待办事项,`-ttd`则会显示笔记和待办事项)。","Either \"text\" or \"json\"":"\"文本\"或\"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"使用长列表格式。格式为ID, NOTE_COUNT(笔记本), DATE, TODO_CHECKED(待办事项),TITLE","Please select a notebook first.":"请先选择笔记本。","Creates a new notebook.":"创建新笔记本。","Creates a new note.":"创建新笔记。","Notes can only be created within a notebook.":"笔记只能创建于笔记本内。","Creates a new to-do.":"创建新待办事项。","Moves the notes matching to [notebook].":"移动符合的笔记至[notebook]。","Renames the given (note or notebook) to .":"重命名给定的(笔记或笔记本)至。","Deletes the given notebook.":"删除给定笔记本。","Deletes the notebook without asking for confirmation.":"删除笔记本(不要求确认)。","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"删除符合的笔记。","Deletes the notes without asking for confirmation.":"删除笔记(不要求确认)。","%d notes match this pattern. Delete them?":"%d条笔记符合此模式。是否删除它们?","Delete note?":"是否删除笔记?","Searches for the given in all the notes.":"在所有笔记内搜索给定的。","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Sets the property of the given to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"显示关于笔记与笔记本的概况。","Synchronises with remote storage.":"与远程储存空间同步。","Sync to provided target (defaults to sync.target config value)":"同步至所提供的目标(默认为同步目标配置值)","Authentication was not completed (did not receive an authentication token).":"认证未完成(未收到认证令牌)。","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"同步正在进行中。","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"锁定文件已被保留。若当前没有任何正在进行的同步,您可以在\"%s\"删除锁定文件并继续操作。","Synchronisation target: %s (%s)":"同步目标:%s (%s)","Cannot initialize synchroniser.":"无法初始化同步。","Starting synchronisation...":"开始同步...","Cancelling... Please wait.":"正在取消...请稍后。"," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":"可添加\"add\"、删除\"remove\",或列出\"list\"于[note],用来指定或移除[tag],也可以列出于[tag]相关的笔记。`tag list`命令可用于列出所有标签。","Invalid command: \"%s\"":"无效命令:\"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"可被切换\"toggle\"或清除\"clear\"。用\"toggle\"可使给定待办事项在已完成与未完成两个状态下切换(若目标为常规笔记,它将被转换成待办事项)。用\"clear\"可把该待办事项转换回常规笔记。","Marks a to-do as non-completed.":"标记待办事项为未完成。","Switches to [notebook] - all further operations will happen within this notebook.":"切换至[notebook] - 所有进一步处理将在此笔记本中进行。","Displays version information":"显示版本信息。","%s %s (%s)":"%s %s (%s)","Enum":"枚举","Type: %s.":"格式:%s。","Possible values: %s.":"可用值: %s。","Default: %s":"默认值: %s","Possible keys/values:":"可用键/值:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"严重错误:","The application has been authorised - you may now close this browser tab.":"此程序已被授权 - 您可以关闭此浏览页面了。","The application has been successfully authorised.":"此程序已被成功授权。","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"请用网页浏览器打开以下URL来认证此程序。此程序将创建\"Apps/Joplin\"目录,并仅在此目录内写入及读取文件。程序对于在该目录外的文件或任何个人数据没有任何访问权限。同时也不会与第三方共享任何数据。","Search:":"搜索:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"文件","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"新笔记","New to-do":"新待办事项","New notebook":"新笔记本","Import":"导入","Export":"Export","Hide %s":"","Quit":"退出","Edit":"编辑","Copy":"复制","Cut":"剪切","Paste":"粘贴","Search in all the notes":"在所有笔记内搜索","View":"","Toggle editor layout":"","Tools":"工具","Synchronisation status":"同步状态","Encryption options":"","General Options":"General Options","Help":"帮助","Website and documentation":"网站与文档","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"关于Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"确认","Cancel":"取消","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"状态","Encryption is:":"","Back":"返回","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"将创建新笔记本\"%s\"并将文件\"%s\"导入至其中","Please create a notebook first.":"请先创建笔记本。","Please create a notebook first":"请先创建笔记本","Notebook title:":"笔记本标题:","Add or remove tags:":"添加或删除标签:","Separate each tag by a comma.":"用逗号\",\"分开每个标签。","Rename notebook:":"重命名笔记本:","Set alarm:":"设置提醒:","Search":"搜索","Layout":"布局","Some items cannot be synchronised.":"一些项目无法被同步。","View them now":"马上查看","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"添加或删除标签","Switch between note and to-do type":"在笔记和待办事项类型之间切换","Delete":"删除","Delete notes?":"是否删除笔记?","No notes in here. Create one by clicking on \"New note\".":"此处无笔记。点击\"新笔记\"创建新笔记。","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"不支持的链接或信息:%s","Attach file":"附加文件","Tags":"标签","Set alarm":"设置提醒","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"刷新","Clear":"清除","OneDrive Login":"登陆OneDrive","Options":"选项","Synchronisation Status":"同步状态","Encryption Options":"","Remove this tag from all the notes?":"从所有笔记中删除此标签?","Remove this search from the sidebar?":"从侧栏中删除此项搜索历史?","Rename":"重命名","Synchronise":"同步","Notebooks":"笔记本","Searches":"搜索历史","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"使用:%s","Unknown flag: %s":"未知标记:%s","File system":"文件系统","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive开发员(仅测试用)","WebDAV":"","Unknown log level: %s":"未知日志level:%s","Unknown level ID: %s":"未知 level ID:%s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"无法刷新令牌:缺失认证数据。请尝试重新启动同步。","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"无法与OneDrive同步。\n\n此错误经常在使用OneDrive for Business时出现。很可惜我们无法支持此服务。\n\n请您考虑使用常规的OneDrive账号。","Cannot access %s":"无法访问%s","Created local items: %d.":"已新建本地项目: %d。","Updated local items: %d.":"已更新本地项目: %d。","Created remote items: %d.":"已新建远程项目: %d。","Updated remote items: %d.":"已更新远程项目: %d。","Deleted local items: %d.":"已删除本地项目: %d。","Deleted remote items: %d.":"已删除远程项目: %d。","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"状态:\"%s\"。","Cancelling...":"正在取消...","Completed: %s":"已完成:\"%s\"","Synchronisation is already in progress. State: %s":"同步正在进行中。状态:%s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"冲突","A notebook with this title already exists: \"%s\"":"以此标题命名的笔记本已存在:\"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"笔记本无法被命名为\"%s\",此标题为保留标题。","Untitled":"无标题","This note does not have geolocation information.":"此笔记不包含地理定位信息。","Cannot copy note to \"%s\" notebook":"无法复制笔记至\"%s\"笔记本","Cannot move note to \"%s\" notebook":"无法移动笔记至\"%s\"笔记本","Text editor":"文本编辑器","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"将用于打开笔记的编辑器。若未提供,将自动尝试检测默认编辑器。","Language":"语言","Date format":"日期格式","Time format":"时间格式","Theme":"主题","Light":"浅色","Dark":"深色","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"保存笔记时同时保存地理定位信息","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"自动更新此程序","Synchronisation interval":"同步间隔","%d minutes":"%d分","%d hour":"%d小时","%d hours":"%d小时","Show advanced options":"显示高级选项","Synchronisation target":"同步目标","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"当文件系统同步开启时的同步路径。参考`sync.target`。","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"无效的选项值:\"%s\"。可用值为:%s。","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"项目无法被同步。","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"同步状态(已同步项目/项目总数)","%s: %d/%d":"%s:%d/%d条","Total: %d/%d":"总数:%d/%d条","Conflicted: %d":"有冲突的:%d条","To delete: %d":"将删除:%d条","Folders":"文件夹","%s: %d notes":"%s: %d条笔记","Coming alarms":"临近提醒","On %s: %s":"%s:%s","There are currently no notes. Create one by clicking on the (+) button.":"当前无笔记。点击(+)创建新笔记。","Delete these notes?":"是否删除这些笔记?","Log":"日志","Export Debug Report":"导出调试报告","Encryption Config":"","Configuration":"配置","Move to notebook...":"移动至笔记本...","Move %d notes to notebook \"%s\"?":"移动%d条笔记至笔记本\"%s\"?","Press to set the decryption password.":"","Select date":"选择日期","Confirm":"确认","Cancel synchronisation":"取消同步","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"此笔记本无法保存:%s","Edit notebook":"编辑笔记本","Show all":"","Errors only":"","This note has been modified:":"此笔记已被修改:","Save changes":"保存更改","Discard changes":"放弃更改","Unsupported image type: %s":"不支持的图片格式:%s","Attach photo":"附加照片","Attach any file":"附加任何文件","Convert to note":"转换至笔记","Convert to todo":"转换至待办事项","Hide metadata":"隐藏元数据","Show metadata":"显示元数据","View on map":"查看地图","Delete notebook":"删除笔记本","Login with OneDrive":"用OneDrive登陆","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"点击(+)按钮创建新笔记或笔记本。点击侧边菜单来访问您现有的笔记本。","You currently have no notebook. Create one by clicking on (+) button.":"您当前没有任何笔记本。点击(+)按钮创建新笔记本。","Welcome":"欢迎"} \ No newline at end of file diff --git a/README.md b/README.md index a8d83df002..e56344b285 100644 --- a/README.md +++ b/README.md @@ -228,18 +228,18 @@ Current translations:   | Language | Po File | Last translator | Percent done ---|---|---|---|--- -![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/es/basque_country.png) | Basque | [eu](https://github.com/laurent22/joplin/blob/master/CliClient/locales/eu.po) | juan.abasolo@ehu.eus | 81% -![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/hr.png) | Croatian | [hr_HR](https://github.com/laurent22/joplin/blob/master/CliClient/locales/hr_HR.po) | Hrvoje Mandić | 66% +![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/es/basque_country.png) | Basque | [eu](https://github.com/laurent22/joplin/blob/master/CliClient/locales/eu.po) | juan.abasolo@ehu.eus | 80% +![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/hr.png) | Croatian | [hr_HR](https://github.com/laurent22/joplin/blob/master/CliClient/locales/hr_HR.po) | Hrvoje Mandić | 65% ![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/de.png) | Deutsch | [de_DE](https://github.com/laurent22/joplin/blob/master/CliClient/locales/de_DE.po) | Tobias Strobel | 83% ![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/gb.png) | English | [en_GB](https://github.com/laurent22/joplin/blob/master/CliClient/locales/en_GB.po) | | 100% -![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/es.png) | Español | [es_ES](https://github.com/laurent22/joplin/blob/master/CliClient/locales/es_ES.po) | Fernando Martín | 93% +![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/es.png) | Español | [es_ES](https://github.com/laurent22/joplin/blob/master/CliClient/locales/es_ES.po) | Fernando Martín | 99% ![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/fr.png) | Français | [fr_FR](https://github.com/laurent22/joplin/blob/master/CliClient/locales/fr_FR.po) | Laurent Cozic | 100% -![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/it.png) | Italiano | [it_IT](https://github.com/laurent22/joplin/blob/master/CliClient/locales/it_IT.po) | | 68% -![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/be.png) | Nederlands | [nl_BE](https://github.com/laurent22/joplin/blob/master/CliClient/locales/nl_BE.po) | | 82% +![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/it.png) | Italiano | [it_IT](https://github.com/laurent22/joplin/blob/master/CliClient/locales/it_IT.po) | | 67% +![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/be.png) | Nederlands | [nl_BE](https://github.com/laurent22/joplin/blob/master/CliClient/locales/nl_BE.po) | | 81% ![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/br.png) | Português (Brasil) | [pt_BR](https://github.com/laurent22/joplin/blob/master/CliClient/locales/pt_BR.po) | | 66% -![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/ru.png) | Русский | [ru_RU](https://github.com/laurent22/joplin/blob/master/CliClient/locales/ru_RU.po) | Artyom Karlov | 85% -![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/cn.png) | 中文 (简体) | [zh_CN](https://github.com/laurent22/joplin/blob/master/CliClient/locales/zh_CN.po) | RCJacH | 68% -![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/jp.png) | 日本語 | [ja_JP](https://github.com/laurent22/joplin/blob/master/CliClient/locales/ja_JP.po) | | 66% +![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/ru.png) | Русский | [ru_RU](https://github.com/laurent22/joplin/blob/master/CliClient/locales/ru_RU.po) | Artyom Karlov | 84% +![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/cn.png) | 中文 (简体) | [zh_CN](https://github.com/laurent22/joplin/blob/master/CliClient/locales/zh_CN.po) | RCJacH | 67% +![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/jp.png) | 日本語 | [ja_JP](https://github.com/laurent22/joplin/blob/master/CliClient/locales/ja_JP.po) | | 65% # Known bugs diff --git a/ReactNativeClient/locales/de_DE.json b/ReactNativeClient/locales/de_DE.json index 4cd74951d0..58bd2dae42 100644 --- a/ReactNativeClient/locales/de_DE.json +++ b/ReactNativeClient/locales/de_DE.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Hebe die Markierungen zugehöriger Notizen auf, um eine Markierung zu löschen.","Please select the note or notebook to be deleted first.":"Wähle bitte zuerst eine Notiz oder ein Notizbuch aus, das gelöscht werden soll.","Press Ctrl+D or type \"exit\" to exit the application":"Drücke Strg+D oder tippe \"exit\", um das Programm zu verlassen","More than one item match \"%s\". Please narrow down your query.":"Mehr als eine Notiz stimmt mit \"%s\" überein. Bitte schränke deine Suche ein.","No notebook selected.":"Kein Notizbuch ausgewählt.","No notebook has been specified.":"Kein Notizbuch wurde angegeben.","Y":"J","n":"n","N":"N","y":"j","Cancelling background synchronisation... Please wait.":"Breche Hintergrund-Synchronisation ab... Bitte warten.","No such command: %s":"Ungültiger Befehl: %s","The command \"%s\" is only available in GUI mode":"Der Befehl \"%s\" ist nur im GUI Modus verfügbar","Cannot change encrypted item":"Kann verschlüsseltes Objekt nicht ändern","Missing required argument: %s":"Fehlendes benötigtes Argument: %s","%s: %s":"%s: %s","Your choice: ":"Deine Auswahl: ","Invalid answer: %s":"Ungültige Antwort: %s","Attaches the given file to the note.":"Hängt die ausgewählte Datei an die Notiz an.","Cannot find \"%s\".":"Kann \"%s\" nicht finden.","Displays the given note.":"Zeigt die jeweilige Notiz an.","Displays the complete information about note.":"Zeigt alle Informationen über die Notiz an.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Zeigt an oder stellt einen Optionswert. Wenn kein [Wert] angegeben ist, wird der Wert vom gegebenen [Namen] angezeigt. Wenn weder [Name] noch [Wert] gegeben sind, wird eine Liste der momentanen Konfiguration angezeigt.","Also displays unset and hidden config variables.":"Zeigt auch nicht angegebene oder versteckte Konfigurationsvariablen an.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Dupliziert die Notizen die mit übereinstimmen zu [Notizbuch]. Wenn kein Notizbuch angegeben ist, wird die Notiz in das momentane Notizbuch kopiert.","Marks a to-do as done.":"Markiert ein To-Do als abgeschlossen.","Note is not a to-do: \"%s\"":"Notiz ist kein To-Do: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Verwaltet die E2EE-Konfiguration. Die Befehle sind `enable`, `disable`, `decrypt`, `status` und `target-status`.","Enter master password:":"Master-Passwort eingeben:","Operation cancelled":"Vorgang abgebrochen","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Entschlüsselung starten.... Warte bitte, da es einige Minuten dauern kann, je nachdem, wie viel es zu entschlüsseln gibt.","Completed decryption.":"Entschlüsselung abgeschlossen.","Enabled":"Aktiviert","Disabled":"Deaktiviert","Encryption is: %s":"Die Verschlüsselung ist: %s","Edit note.":"Notiz bearbeiten.","No text editor is defined. Please set it using `config editor `":"Kein Textverarbeitungsprogramm angegeben. Bitte lege eines mit `config editor ` fest","No active notebook.":"Kein aktives Notizbuch.","Note does not exist: \"%s\". Create it?":"Notiz \"%s\" existiert nicht. Soll sie erstellt werden?","Starting to edit note. Close the editor to get back to the prompt.":"Beginne die Notiz zu bearbeiten. Schließe das Textverarbeitungsprogramm, um zurück zum Terminal zu gelangen.","Error opening note in editor: %s":"Fehler beim Öffnen der Notiz im Editor: %s","Note has been saved.":"Die Notiz wurde gespeichert.","Exits the application.":"Schließt das Programm.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exportiert nur die angegebene Notiz.","Exports only the given notebook.":"Exportiert nur das angegebene Notizbuch.","Displays a geolocation URL for the note.":"Zeigt die Standort-URL der Notiz an.","Displays usage information.":"Zeigt die Nutzungsstatistik an.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Tastenkürzel sind im CLI Modus nicht verfügbar.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Tippe `help [Befehl]` für weitere Informationen über einen Befehl; oder tippe `help all` für die vollständigen Informationen zur Befehlsverwendung.","The possible commands are:":"Mögliche Befehle sind:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In jedem Befehl können Notizen oder Notizbücher durch ihren Titel oder ihre ID spezifiziert werden, oder durch die Abkürzung `$n` oder `$b` um entweder das momentan ausgewählte Notizbuch oder die momentan ausgewählte Notiz zu wählen. `$c` kann benutzt werden, um auf die momentane Auswahl zu verweisen.","To move from one pane to another, press Tab or Shift+Tab.":"Um ein von einem Fenster zu einem anderen zu wechseln, drücke Tab oder Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Benutze die Pfeiltasten und Bild hoch/runter um durch Listen und Texte zu scrollen (inklusive diesem Terminal).","To maximise/minimise the console, press \"TC\".":"Um das Terminal zu maximieren/minimieren, drücke \"TC\".","To enter command line mode, press \":\"":"Um den Kommandozeilen Modus aufzurufen, drücke \":\"","To exit command line mode, press ESCAPE":"Um den Kommandozeilen Modus zu beenden, drücke ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Nicht nach einer Bestätigung fragen.","Found: %d.":"Gefunden: %d.","Created: %d.":"Erstellt: %d.","Updated: %d.":"Aktualisiert: %d.","Skipped: %d.":"Übersprungen: %d.","Resources: %d.":"Anhänge: %d.","Tagged: %d.":"Markiert: %d.","Importing notes...":"Importiere Notizen...","The notes have been imported: %s":"Die Notizen wurden importiert: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Zeigt die Notizen im momentanen Notizbuch an. Benutze `ls /` um eine Liste aller Notizbücher anzuzeigen.","Displays only the first top notes.":"Zeigt nur die ersten Notizen an.","Sorts the item by (eg. title, updated_time, created_time).":"Sortiert nach ( z.B. Titel, Bearbeitungszeitpunkt, Erstellungszeitpunkt)","Reverses the sorting order.":"Dreht die Sortierreihenfolge um.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Zeigt nur bestimmte Item Typen an. Kann `n` für Notizen sein, `t` für To-Dos, oder `nt` für Notizen und To-Dos ( z.B. zeigt `-tt` nur To-Dos an, während `-ttd` Notizen und To-Dos anzeigt).","Either \"text\" or \"json\"":"Entweder \"text\" oder \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Verwende ausführliches Listen Format. Das Format lautet: ID, NOTIZEN_ANZAHL (für Notizbuch), DATUM, TODO_BEARBEITET (für To-Dos), TITEL","Please select a notebook first.":"Bitte wähle erst ein Notizbuch aus.","Creates a new notebook.":"Erstellt ein neues Notizbuch.","Creates a new note.":"Erstellt eine neue Notiz.","Notes can only be created within a notebook.":"Notizen können nur in einem Notizbuch erstellt werden.","Creates a new to-do.":"Erstellt ein neues To-Do.","Moves the notes matching to [notebook].":"Verschiebt die Notizen, die mit übereinstimmen, zu [Notizbuch]","Renames the given (note or notebook) to .":"Benennt das angegebene ( Notiz oder Notizbuch ) zu um.","Deletes the given notebook.":"Löscht das ausgewählte Notizbuch.","Deletes the notebook without asking for confirmation.":"Löscht das Notizbuch, ohne nach einer Bestätigung zu fragen.","Delete notebook? All notes within this notebook will also be deleted.":"Notizbuch wirklich löschen? Alle Notizen darin werden ebenfalls gelöscht.","Deletes the notes matching .":"Löscht die Notizen, die mit übereinstimmen.","Deletes the notes without asking for confirmation.":"Löscht die Notizen, ohne nach einer Bestätigung zu fragen.","%d notes match this pattern. Delete them?":"%d Notizen stimmen mit diesem Muster überein. Sollen sie gelöscht werden?","Delete note?":"Notiz löschen?","Searches for the given in all the notes.":"Sucht nach dem angegebenen in allen Notizen.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Setzt die Eigenschaft der gegebenen auf den gegebenen [Wert]. Mögliche Werte sind:\n\n%s","Displays summary about the notes and notebooks.":"Zeigt eine Zusammenfassung der Notizen und Notizbücher an.","Synchronises with remote storage.":"Synchronisiert mit Remotespeicher.","Sync to provided target (defaults to sync.target config value)":"Mit dem angegebenen Ziel synchronisieren (voreingestellt auf den sync.target Optionswert)","Authentication was not completed (did not receive an authentication token).":"Authentifizierung wurde nicht abgeschlossen (keinen Authentifizierung-Token erhalten).","Not authentified with %s. Please provide any missing credentials.":"Keine Authentifizierung mit %s. Gib bitte alle fehlenden Zugangsdaten an.","Synchronisation is already in progress.":"Synchronisation wird bereits ausgeführt.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Eine Sperrdatei ist vorhanden. Wenn du dir sicher bist, dass keine Synchronisation im Gange ist, kannst du die Sperrdatei \"%s\" löschen und fortfahren.","Synchronisation target: %s (%s)":"Synchronisationsziel: %s (%s)","Cannot initialize synchroniser.":"Kann Synchronisierer nicht initialisieren.","Starting synchronisation...":"Starte Synchronisation...","Cancelling... Please wait.":"Abbrechen... Bitte warten."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" kann \"add\", \"remove\" or \"list\" sein, um eine [Markierung] zu [Notiz] zuzuweisen oder zu entfernen, oder um mit [Markierung] markierte Notizen anzuzeigen. Mit dem Befehl `tag list` können alle Markierungen angezeigt werden.","Invalid command: \"%s\"":"Ungültiger Befehl: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" kann entweder \"toggle\" oder \"clear\" sein. Benutze \"toggle\", um ein To-Do abzuschließen, oder es zu beginnen (Wenn das Ziel eine normale Notiz ist, wird diese in ein To-Do umgewandelt). Benutze \"clear\", um es zurück in ein To-Do zu verwandeln.","Marks a to-do as non-completed.":"Makiert ein To-Do als nicht-abgeschlossen.","Switches to [notebook] - all further operations will happen within this notebook.":"Wechselt zu [Notizbuch] - alle weiteren Aktionen werden in diesem Notizbuch ausgeführt.","Displays version information":"Zeigt die Versionsnummer an","%s %s (%s)":"%s %s (%s)","Enum":"Aufzählung","Type: %s.":"Typ: %s.","Possible values: %s.":"Mögliche Werte: %s.","Default: %s":"Standard: %s","Possible keys/values:":"Mögliche Werte:","Fatal error:":"Schwerwiegender Fehler:","The application has been authorised - you may now close this browser tab.":"Das Programm wurde autorisiert - Du kannst diesen Browsertab nun schließen.","The application has been successfully authorised.":"Das Programm wurde erfolgreich autorisiert.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Bitte öffne die folgende URL in deinem Browser, um das Programm zu authentifizieren. Das Programm wird einen Ordner in \"Apps/Joplin\" erstellen und wird nur in diesem Ordner schreiben und lesen. Es wird weder Zugriff auf Dateien außerhalb dieses Ordners haben, noch auf andere persönliche Daten. Es werden keine Daten mit Dritten geteilt.","Search:":"Suchen:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Willkommen bei Joplin!\n\nTippe `:help shortcuts` für eine Liste der Shortcuts oder `:help` für Nutzungsinformationen ein.\n\nUm zum Beispiel ein Notizbuch zu erstellen, drücke `mb`; um eine Notiz zu erstellen drücke `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Ein oder mehrere Objekte sind derzeit verschlüsselt und es kann erforderlich sein, ein Master-Passwort zu hinterlegen. Gib dazu bitte `e2ee decrypt` ein. Wenn du das Passwort bereits eingegeben hast, werden die verschlüsselten Objekte im Hintergrund entschlüsselt und stehen in Kürze zur Verfügung.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Datei","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Neue Notiz","New to-do":"Neues To-Do","New notebook":"Neues Notizbuch","Import":"Importieren","Export":"Export","Hide %s":"","Quit":"Verlassen","Edit":"Bearbeiten","Copy":"Kopieren","Cut":"Ausschneiden","Paste":"Einfügen","Search in all the notes":"Alle Notizen durchsuchen","View":"","Toggle editor layout":"","Tools":"Werkzeuge","Synchronisation status":"Status der Synchronisation","Encryption options":"Verschlüsselungsoptionen","General Options":"Allgemeine Einstellungen","Help":"Hilfe","Website and documentation":"Webseite und Dokumentation","Check for updates...":"","About Joplin":"Über Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Abbrechen","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Notizen und Einstellungen gespeichert in: %s","Save":"Speichern","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Durch die Deaktivierung der Verschlüsselung werden *alle* Notizen und Anhänge neu synchronisiert und unverschlüsselt an das Synchronisierungsziel gesendet. Möchtest du fortfahren?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Durch das Aktivieren der Verschlüsselung werden alle Notizen und Anhänge neu synchronisiert und verschlüsselt an das Synchronisationsziel gesendet. Achte darauf, dass du das Passwort nicht verlierst, da dies aus Sicherheitsgründen die einzige Möglichkeit ist, deine Daten zu entschlüsseln! Um die Verschlüsselung zu aktivieren, gib bitte unten dein Passwort ein.","Disable encryption":"Verschlüsselung deaktivieren","Enable encryption":"Verschlüsselung aktivieren","Master Keys":"Hauptschlüssel","Active":"Aktiv","ID":"ID","Source":"Quelle","Created":"Erstellt","Updated":"Aktualisiert","Password":"Passwort","Password OK":"Passwort OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Hinweis: Nur ein Hauptschlüssel wird für die Verschlüsselung verwendet (der als \"aktiv\" markierte). Jeder der Schlüssel kann für die Entschlüsselung verwendet werden, abhängig davon, wie die jeweiligen Notizen oder Notizbücher ursprünglich verschlüsselt wurden.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"Die Verschlüsselung ist:","Back":"Zurück","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Neues Notizbuch \"%s\" wird erstellt und die Datei \"%s\" wird hinein importiert","Please create a notebook first.":"Bitte erstelle zuerst ein Notizbuch.","Please create a notebook first":"Bitte erstelle zuerst ein Notizbuch","Notebook title:":"Notizbuch Titel:","Add or remove tags:":"Füge hinzu oder entferne Markierungen:","Separate each tag by a comma.":"Trenne jede Markierung mit einem Komma.","Rename notebook:":"Benne Notizbuch um:","Set alarm:":"Alarm erstellen:","Search":"Suchen","Layout":"Layout","Some items cannot be synchronised.":"Manche Objekte können nicht synchronisiert werden.","View them now":"Zeige sie jetzt an","Some items cannot be decrypted.":"Einige Objekte können nicht entschlüsselt werden.","Set the password":"Setze ein Passwort","Add or remove tags":"Markierungen hinzufügen oder entfernen","Switch between note and to-do type":"Zwischen Notiz und To-Do Typ wechseln","Delete":"Löschen","Delete notes?":"Notizen löschen?","No notes in here. Create one by clicking on \"New note\".":"Hier sind noch keine Notizen. Erstelle eine, indem du auf \"Neue Notiz\" drückst.","There is currently no notebook. Create one by clicking on \"New notebook\".":"Momentan existieren noch keine Notizbücher. Erstelle eines, indem du auf den (+) Knopf drückst.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Nicht unterstützter Link oder Nachricht: %s","Attach file":"Datei anhängen","Tags":"Markierungen","Set alarm":"Alarm erstellen","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Aktualisieren","Clear":"Leeren","OneDrive Login":"OneDrive Login","Options":"Optionen","Synchronisation Status":"Synchronisations Status","Encryption Options":"Verschlüsselungsoptionen","Remove this tag from all the notes?":"Diese Markierung von allen Notizen entfernen?","Remove this search from the sidebar?":"Diese Suche von der Seitenleiste entfernen?","Rename":"Umbenennen","Synchronise":"Synchronisieren","Notebooks":"Notizbücher","Searches":"Suchen","Please select where the sync status should be exported to":"Bitte wähle aus, wohin der Synchronisations Status exportiert werden soll","Usage: %s":"Nutzung: %s","Unknown flag: %s":"Unbekanntes Argument: %s","File system":"Dateisystem","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Nur für Tests)","WebDAV":"WebDAV","Unknown log level: %s":"Unbekanntes Log Level: %s","Unknown level ID: %s":"Unbekannte Level ID: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Kann Token nicht erneuern: Authentifikationsdaten nicht vorhanden. Ein Neustart der Synchronisation könnte das Problem beheben.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Konnte nicht mit OneDrive synchronisieren.\n\nDieser Fehler kommt oft vor, wenn OneDrive Business benutzt wird, das leider nicht unterstützt wird.\n\nBitte benutze stattdessen einen normalen OneDrive Account.","Cannot access %s":"Kann nicht auf %s zugreifen","Created local items: %d.":"Lokale Objekte erstellt: %d.","Updated local items: %d.":"Lokale Objekte aktualisiert: %d.","Created remote items: %d.":"Remote Objekte erstellt: %d.","Updated remote items: %d.":"Remote Objekte aktualisiert: %d.","Deleted local items: %d.":"Lokale Objekte gelöscht: %d.","Deleted remote items: %d.":"Remote Objekte gelöscht: %d.","Fetched items: %d/%d.":"Geladene Objekte: %d/%d.","State: \"%s\".":"Status: \"%s\".","Cancelling...":"Abbrechen...","Completed: %s":"Abgeschlossen: %s","Synchronisation is already in progress. State: %s":"Synchronisation ist bereits im Gange. Status: %s","Encrypted":"Verschlüsselt","Encrypted items cannot be modified":"Verschlüsselte Objekte können nicht verändert werden.","Conflicts":"Konflikte","A notebook with this title already exists: \"%s\"":"Ein Notizbuch mit diesem Titel existiert bereits : \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Notizbuch kann nicht \"%s\" genannt werden. Dies ist ein reservierter Titel.","Untitled":"Unbenannt","This note does not have geolocation information.":"Diese Notiz hat keine Standort-Informationen.","Cannot copy note to \"%s\" notebook":"Kann Notiz nicht zu Notizbuch \"%s\" kopieren","Cannot move note to \"%s\" notebook":"Kann Notiz nicht zu Notizbuch \"%s\" verschieben","Text editor":"Textverarbeitungsprogramm","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Das Textverarbeitungsprogramm, mit dem Notizen geöffnet werden. Wenn keines ausgewählt wurde, wird Joplin versuchen das standard-Textverarbeitungsprogramm zu erkennen.","Language":"Sprache","Date format":"Datumsformat","Time format":"Zeitformat","Theme":"Thema","Light":"Hell","Dark":"Dunkel","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Momentanen Standort zusammen mit Notizen speichern","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Die Applikation automatisch aktualisieren","Synchronisation interval":"Synchronisationsinterval","%d minutes":"%d Minuten","%d hour":"%d Stunde","%d hours":"%d Stunden","Show advanced options":"Erweiterte Optionen anzeigen","Synchronisation target":"Synchronisationsziel","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Das Ziel, mit dem synchronisiert werden soll. Jedes Synchronisationsziel kann zusätzliche Parameter haben, die als `sync.NUM.NAME` (alle unten dokumentiert) bezeichnet werden.","Directory to synchronise with (absolute path)":"Verzeichnis zum synchronisieren (absoluter Pfad)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Der Pfad, mit dem synchronisiert werden soll, wenn die Dateisystem-Synchronisation aktiviert ist. Siehe `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Nextcloud Benutzername","Nextcloud password":"Nextcloud Passwort","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV username","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Ungültiger Optionswert: \"%s\". Mögliche Werte sind: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Objekte können nicht synchronisiert werden","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Diese Objekte verbleiben auf dem Gerät, werden aber nicht zum Synchronisationsziel hochgeladen. Um diese Objekte zu finden, suchen Sie entweder nach dem Titel oder der ID (die oben in Klammern angezeigt wird).","Sync status (synced items / total items)":"Synchronisationsstatus (synchronisierte Objekte / gesamte Objekte)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Insgesamt: %d/%d","Conflicted: %d":"In Konflikt %d","To delete: %d":"Zu löschen: %d","Folders":"Ordner","%s: %d notes":"%s: %d Notizen","Coming alarms":"Anstehende Alarme","On %s: %s":"Auf %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Momentan existieren noch keine Notizen. Erstelle eine, indem du auf den (+) Knopf drückst.","Delete these notes?":"Sollen diese Notizen gelöscht werden?","Log":"Protokoll","Export Debug Report":"Fehlerbericht exportieren","Encryption Config":"Verschlüsselungskonfiguration","Configuration":"Konfiguration","Move to notebook...":"In Notizbuch verschieben...","Move %d notes to notebook \"%s\"?":"%d Notizen in das Notizbuch \"%s\" verschieben?","Press to set the decryption password.":"Tippe hier, um das Entschlüsselungspasswort festzulegen.","Select date":"Datum auswählen","Confirm":"Bestätigen","Cancel synchronisation":"Synchronisation abbrechen","Master Key %s":"Hauptschlüssel %s","Created: %s":"Erstellt: %s","Password:":"Passwort:","Password cannot be empty":"Passwort darf nicht leer sein","Enable":"Aktivieren","The notebook could not be saved: %s":"Dieses Notizbuch konnte nicht gespeichert werden: %s","Edit notebook":"Notizbuch bearbeiten","Show all":"","Errors only":"","This note has been modified:":"Diese Notiz wurde verändert:","Save changes":"Änderungen speichern","Discard changes":"Änderungen verwerfen","Unsupported image type: %s":"Nicht unterstütztes Fotoformat: %s","Attach photo":"Foto anhängen","Attach any file":"Beliebige Datei anhängen","Convert to note":"In eine Notiz umwandeln","Convert to todo":"In ein To-Do umwandeln","Hide metadata":"Metadaten verstecken","Show metadata":"Metadaten anzeigen","View on map":"Auf der Karte anzeigen","Delete notebook":"Notizbuch löschen","Login with OneDrive":"Mit OneDrive anmelden","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Drücke auf den (+) Knopf, um eine neue Notiz oder ein neues Notizbuch zu erstellen. Tippe auf die Seitenleiste, um auf deine existierenden Notizbücher zuzugreifen.","You currently have no notebook. Create one by clicking on (+) button.":"Du hast noch kein Notizbuch. Erstelle eines, indem du auf den (+) Knopf drückst.","Welcome":"Willkommen"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Hebe die Markierungen zugehöriger Notizen auf, um eine Markierung zu löschen.","Please select the note or notebook to be deleted first.":"Wähle bitte zuerst eine Notiz oder ein Notizbuch aus, das gelöscht werden soll.","Press Ctrl+D or type \"exit\" to exit the application":"Drücke Strg+D oder tippe \"exit\", um das Programm zu verlassen","More than one item match \"%s\". Please narrow down your query.":"Mehr als eine Notiz stimmt mit \"%s\" überein. Bitte schränke deine Suche ein.","No notebook selected.":"Kein Notizbuch ausgewählt.","No notebook has been specified.":"Kein Notizbuch wurde angegeben.","Y":"J","n":"n","N":"N","y":"j","Cancelling background synchronisation... Please wait.":"Breche Hintergrund-Synchronisation ab... Bitte warten.","No such command: %s":"Ungültiger Befehl: %s","The command \"%s\" is only available in GUI mode":"Der Befehl \"%s\" ist nur im GUI Modus verfügbar","Cannot change encrypted item":"Kann verschlüsseltes Objekt nicht ändern","Missing required argument: %s":"Fehlendes benötigtes Argument: %s","%s: %s":"%s: %s","Your choice: ":"Deine Auswahl: ","Invalid answer: %s":"Ungültige Antwort: %s","Attaches the given file to the note.":"Hängt die ausgewählte Datei an die Notiz an.","Cannot find \"%s\".":"Kann \"%s\" nicht finden.","Displays the given note.":"Zeigt die jeweilige Notiz an.","Displays the complete information about note.":"Zeigt alle Informationen über die Notiz an.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Zeigt an oder stellt einen Optionswert. Wenn kein [Wert] angegeben ist, wird der Wert vom gegebenen [Namen] angezeigt. Wenn weder [Name] noch [Wert] gegeben sind, wird eine Liste der momentanen Konfiguration angezeigt.","Also displays unset and hidden config variables.":"Zeigt auch nicht angegebene oder versteckte Konfigurationsvariablen an.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Dupliziert die Notizen die mit übereinstimmen zu [Notizbuch]. Wenn kein Notizbuch angegeben ist, wird die Notiz in das momentane Notizbuch kopiert.","Marks a to-do as done.":"Markiert ein To-Do als abgeschlossen.","Note is not a to-do: \"%s\"":"Notiz ist kein To-Do: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Verwaltet die E2EE-Konfiguration. Die Befehle sind `enable`, `disable`, `decrypt`, `status` und `target-status`.","Enter master password:":"Master-Passwort eingeben:","Operation cancelled":"Vorgang abgebrochen","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Entschlüsselung starten.... Warte bitte, da es einige Minuten dauern kann, je nachdem, wie viel es zu entschlüsseln gibt.","Completed decryption.":"Entschlüsselung abgeschlossen.","Enabled":"Aktiviert","Disabled":"Deaktiviert","Encryption is: %s":"Die Verschlüsselung ist: %s","Edit note.":"Notiz bearbeiten.","No text editor is defined. Please set it using `config editor `":"Kein Textverarbeitungsprogramm angegeben. Bitte lege eines mit `config editor ` fest","No active notebook.":"Kein aktives Notizbuch.","Note does not exist: \"%s\". Create it?":"Notiz \"%s\" existiert nicht. Soll sie erstellt werden?","Starting to edit note. Close the editor to get back to the prompt.":"Beginne die Notiz zu bearbeiten. Schließe das Textverarbeitungsprogramm, um zurück zum Terminal zu gelangen.","Error opening note in editor: %s":"Fehler beim Öffnen der Notiz im Editor: %s","Note has been saved.":"Die Notiz wurde gespeichert.","Exits the application.":"Schließt das Programm.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exportiert nur die angegebene Notiz.","Exports only the given notebook.":"Exportiert nur das angegebene Notizbuch.","Displays a geolocation URL for the note.":"Zeigt die Standort-URL der Notiz an.","Displays usage information.":"Zeigt die Nutzungsstatistik an.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Tastenkürzel sind im CLI Modus nicht verfügbar.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Tippe `help [Befehl]` für weitere Informationen über einen Befehl; oder tippe `help all` für die vollständigen Informationen zur Befehlsverwendung.","The possible commands are:":"Mögliche Befehle sind:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In jedem Befehl können Notizen oder Notizbücher durch ihren Titel oder ihre ID spezifiziert werden, oder durch die Abkürzung `$n` oder `$b` um entweder das momentan ausgewählte Notizbuch oder die momentan ausgewählte Notiz zu wählen. `$c` kann benutzt werden, um auf die momentane Auswahl zu verweisen.","To move from one pane to another, press Tab or Shift+Tab.":"Um ein von einem Fenster zu einem anderen zu wechseln, drücke Tab oder Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Benutze die Pfeiltasten und Bild hoch/runter um durch Listen und Texte zu scrollen (inklusive diesem Terminal).","To maximise/minimise the console, press \"TC\".":"Um das Terminal zu maximieren/minimieren, drücke \"TC\".","To enter command line mode, press \":\"":"Um den Kommandozeilen Modus aufzurufen, drücke \":\"","To exit command line mode, press ESCAPE":"Um den Kommandozeilen Modus zu beenden, drücke ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Nicht nach einer Bestätigung fragen.","Found: %d.":"Gefunden: %d.","Created: %d.":"Erstellt: %d.","Updated: %d.":"Aktualisiert: %d.","Skipped: %d.":"Übersprungen: %d.","Resources: %d.":"Anhänge: %d.","Tagged: %d.":"Markiert: %d.","Importing notes...":"Importiere Notizen...","The notes have been imported: %s":"Die Notizen wurden importiert: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Zeigt die Notizen im momentanen Notizbuch an. Benutze `ls /` um eine Liste aller Notizbücher anzuzeigen.","Displays only the first top notes.":"Zeigt nur die ersten Notizen an.","Sorts the item by (eg. title, updated_time, created_time).":"Sortiert nach ( z.B. Titel, Bearbeitungszeitpunkt, Erstellungszeitpunkt)","Reverses the sorting order.":"Dreht die Sortierreihenfolge um.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Zeigt nur bestimmte Item Typen an. Kann `n` für Notizen sein, `t` für To-Dos, oder `nt` für Notizen und To-Dos ( z.B. zeigt `-tt` nur To-Dos an, während `-ttd` Notizen und To-Dos anzeigt).","Either \"text\" or \"json\"":"Entweder \"text\" oder \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Verwende ausführliches Listen Format. Das Format lautet: ID, NOTIZEN_ANZAHL (für Notizbuch), DATUM, TODO_BEARBEITET (für To-Dos), TITEL","Please select a notebook first.":"Bitte wähle erst ein Notizbuch aus.","Creates a new notebook.":"Erstellt ein neues Notizbuch.","Creates a new note.":"Erstellt eine neue Notiz.","Notes can only be created within a notebook.":"Notizen können nur in einem Notizbuch erstellt werden.","Creates a new to-do.":"Erstellt ein neues To-Do.","Moves the notes matching to [notebook].":"Verschiebt die Notizen, die mit übereinstimmen, zu [Notizbuch]","Renames the given (note or notebook) to .":"Benennt das angegebene ( Notiz oder Notizbuch ) zu um.","Deletes the given notebook.":"Löscht das ausgewählte Notizbuch.","Deletes the notebook without asking for confirmation.":"Löscht das Notizbuch, ohne nach einer Bestätigung zu fragen.","Delete notebook? All notes within this notebook will also be deleted.":"Notizbuch wirklich löschen? Alle Notizen darin werden ebenfalls gelöscht.","Deletes the notes matching .":"Löscht die Notizen, die mit übereinstimmen.","Deletes the notes without asking for confirmation.":"Löscht die Notizen, ohne nach einer Bestätigung zu fragen.","%d notes match this pattern. Delete them?":"%d Notizen stimmen mit diesem Muster überein. Sollen sie gelöscht werden?","Delete note?":"Notiz löschen?","Searches for the given in all the notes.":"Sucht nach dem angegebenen in allen Notizen.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Setzt die Eigenschaft der gegebenen auf den gegebenen [Wert]. Mögliche Werte sind:\n\n%s","Displays summary about the notes and notebooks.":"Zeigt eine Zusammenfassung der Notizen und Notizbücher an.","Synchronises with remote storage.":"Synchronisiert mit Remotespeicher.","Sync to provided target (defaults to sync.target config value)":"Mit dem angegebenen Ziel synchronisieren (voreingestellt auf den sync.target Optionswert)","Authentication was not completed (did not receive an authentication token).":"Authentifizierung wurde nicht abgeschlossen (keinen Authentifizierung-Token erhalten).","Not authentified with %s. Please provide any missing credentials.":"Keine Authentifizierung mit %s. Gib bitte alle fehlenden Zugangsdaten an.","Synchronisation is already in progress.":"Synchronisation wird bereits ausgeführt.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Eine Sperrdatei ist vorhanden. Wenn du dir sicher bist, dass keine Synchronisation im Gange ist, kannst du die Sperrdatei \"%s\" löschen und fortfahren.","Synchronisation target: %s (%s)":"Synchronisationsziel: %s (%s)","Cannot initialize synchroniser.":"Kann Synchronisierer nicht initialisieren.","Starting synchronisation...":"Starte Synchronisation...","Cancelling... Please wait.":"Abbrechen... Bitte warten."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" kann \"add\", \"remove\" or \"list\" sein, um eine [Markierung] zu [Notiz] zuzuweisen oder zu entfernen, oder um mit [Markierung] markierte Notizen anzuzeigen. Mit dem Befehl `tag list` können alle Markierungen angezeigt werden.","Invalid command: \"%s\"":"Ungültiger Befehl: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" kann entweder \"toggle\" oder \"clear\" sein. Benutze \"toggle\", um ein To-Do abzuschließen, oder es zu beginnen (Wenn das Ziel eine normale Notiz ist, wird diese in ein To-Do umgewandelt). Benutze \"clear\", um es zurück in ein To-Do zu verwandeln.","Marks a to-do as non-completed.":"Makiert ein To-Do als nicht-abgeschlossen.","Switches to [notebook] - all further operations will happen within this notebook.":"Wechselt zu [Notizbuch] - alle weiteren Aktionen werden in diesem Notizbuch ausgeführt.","Displays version information":"Zeigt die Versionsnummer an","%s %s (%s)":"%s %s (%s)","Enum":"Aufzählung","Type: %s.":"Typ: %s.","Possible values: %s.":"Mögliche Werte: %s.","Default: %s":"Standard: %s","Possible keys/values:":"Mögliche Werte:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Schwerwiegender Fehler:","The application has been authorised - you may now close this browser tab.":"Das Programm wurde autorisiert - Du kannst diesen Browsertab nun schließen.","The application has been successfully authorised.":"Das Programm wurde erfolgreich autorisiert.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Bitte öffne die folgende URL in deinem Browser, um das Programm zu authentifizieren. Das Programm wird einen Ordner in \"Apps/Joplin\" erstellen und wird nur in diesem Ordner schreiben und lesen. Es wird weder Zugriff auf Dateien außerhalb dieses Ordners haben, noch auf andere persönliche Daten. Es werden keine Daten mit Dritten geteilt.","Search:":"Suchen:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Willkommen bei Joplin!\n\nTippe `:help shortcuts` für eine Liste der Shortcuts oder `:help` für Nutzungsinformationen ein.\n\nUm zum Beispiel ein Notizbuch zu erstellen, drücke `mb`; um eine Notiz zu erstellen drücke `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Ein oder mehrere Objekte sind derzeit verschlüsselt und es kann erforderlich sein, ein Master-Passwort zu hinterlegen. Gib dazu bitte `e2ee decrypt` ein. Wenn du das Passwort bereits eingegeben hast, werden die verschlüsselten Objekte im Hintergrund entschlüsselt und stehen in Kürze zur Verfügung.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Datei","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Neue Notiz","New to-do":"Neues To-Do","New notebook":"Neues Notizbuch","Import":"Importieren","Export":"Export","Hide %s":"","Quit":"Verlassen","Edit":"Bearbeiten","Copy":"Kopieren","Cut":"Ausschneiden","Paste":"Einfügen","Search in all the notes":"Alle Notizen durchsuchen","View":"","Toggle editor layout":"","Tools":"Werkzeuge","Synchronisation status":"Status der Synchronisation","Encryption options":"Verschlüsselungsoptionen","General Options":"Allgemeine Einstellungen","Help":"Hilfe","Website and documentation":"Webseite und Dokumentation","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Über Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Abbrechen","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Notizen und Einstellungen gespeichert in: %s","Save":"Speichern","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Durch die Deaktivierung der Verschlüsselung werden *alle* Notizen und Anhänge neu synchronisiert und unverschlüsselt an das Synchronisierungsziel gesendet. Möchtest du fortfahren?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Durch das Aktivieren der Verschlüsselung werden alle Notizen und Anhänge neu synchronisiert und verschlüsselt an das Synchronisationsziel gesendet. Achte darauf, dass du das Passwort nicht verlierst, da dies aus Sicherheitsgründen die einzige Möglichkeit ist, deine Daten zu entschlüsseln! Um die Verschlüsselung zu aktivieren, gib bitte unten dein Passwort ein.","Disable encryption":"Verschlüsselung deaktivieren","Enable encryption":"Verschlüsselung aktivieren","Master Keys":"Hauptschlüssel","Active":"Aktiv","ID":"ID","Source":"Quelle","Created":"Erstellt","Updated":"Aktualisiert","Password":"Passwort","Password OK":"Passwort OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Hinweis: Nur ein Hauptschlüssel wird für die Verschlüsselung verwendet (der als \"aktiv\" markierte). Jeder der Schlüssel kann für die Entschlüsselung verwendet werden, abhängig davon, wie die jeweiligen Notizen oder Notizbücher ursprünglich verschlüsselt wurden.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"Die Verschlüsselung ist:","Back":"Zurück","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Neues Notizbuch \"%s\" wird erstellt und die Datei \"%s\" wird hinein importiert","Please create a notebook first.":"Bitte erstelle zuerst ein Notizbuch.","Please create a notebook first":"Bitte erstelle zuerst ein Notizbuch","Notebook title:":"Notizbuch Titel:","Add or remove tags:":"Füge hinzu oder entferne Markierungen:","Separate each tag by a comma.":"Trenne jede Markierung mit einem Komma.","Rename notebook:":"Benne Notizbuch um:","Set alarm:":"Alarm erstellen:","Search":"Suchen","Layout":"Layout","Some items cannot be synchronised.":"Manche Objekte können nicht synchronisiert werden.","View them now":"Zeige sie jetzt an","Some items cannot be decrypted.":"Einige Objekte können nicht entschlüsselt werden.","Set the password":"Setze ein Passwort","Add or remove tags":"Markierungen hinzufügen oder entfernen","Switch between note and to-do type":"Zwischen Notiz und To-Do Typ wechseln","Delete":"Löschen","Delete notes?":"Notizen löschen?","No notes in here. Create one by clicking on \"New note\".":"Hier sind noch keine Notizen. Erstelle eine, indem du auf \"Neue Notiz\" drückst.","There is currently no notebook. Create one by clicking on \"New notebook\".":"Momentan existieren noch keine Notizbücher. Erstelle eines, indem du auf den (+) Knopf drückst.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Nicht unterstützter Link oder Nachricht: %s","Attach file":"Datei anhängen","Tags":"Markierungen","Set alarm":"Alarm erstellen","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Aktualisieren","Clear":"Leeren","OneDrive Login":"OneDrive Login","Options":"Optionen","Synchronisation Status":"Synchronisations Status","Encryption Options":"Verschlüsselungsoptionen","Remove this tag from all the notes?":"Diese Markierung von allen Notizen entfernen?","Remove this search from the sidebar?":"Diese Suche von der Seitenleiste entfernen?","Rename":"Umbenennen","Synchronise":"Synchronisieren","Notebooks":"Notizbücher","Searches":"Suchen","Please select where the sync status should be exported to":"Bitte wähle aus, wohin der Synchronisations Status exportiert werden soll","Usage: %s":"Nutzung: %s","Unknown flag: %s":"Unbekanntes Argument: %s","File system":"Dateisystem","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Nur für Tests)","WebDAV":"WebDAV","Unknown log level: %s":"Unbekanntes Log Level: %s","Unknown level ID: %s":"Unbekannte Level ID: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Kann Token nicht erneuern: Authentifikationsdaten nicht vorhanden. Ein Neustart der Synchronisation könnte das Problem beheben.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Konnte nicht mit OneDrive synchronisieren.\n\nDieser Fehler kommt oft vor, wenn OneDrive Business benutzt wird, das leider nicht unterstützt wird.\n\nBitte benutze stattdessen einen normalen OneDrive Account.","Cannot access %s":"Kann nicht auf %s zugreifen","Created local items: %d.":"Lokale Objekte erstellt: %d.","Updated local items: %d.":"Lokale Objekte aktualisiert: %d.","Created remote items: %d.":"Remote Objekte erstellt: %d.","Updated remote items: %d.":"Remote Objekte aktualisiert: %d.","Deleted local items: %d.":"Lokale Objekte gelöscht: %d.","Deleted remote items: %d.":"Remote Objekte gelöscht: %d.","Fetched items: %d/%d.":"Geladene Objekte: %d/%d.","State: \"%s\".":"Status: \"%s\".","Cancelling...":"Abbrechen...","Completed: %s":"Abgeschlossen: %s","Synchronisation is already in progress. State: %s":"Synchronisation ist bereits im Gange. Status: %s","Encrypted":"Verschlüsselt","Encrypted items cannot be modified":"Verschlüsselte Objekte können nicht verändert werden.","Conflicts":"Konflikte","A notebook with this title already exists: \"%s\"":"Ein Notizbuch mit diesem Titel existiert bereits : \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Notizbuch kann nicht \"%s\" genannt werden. Dies ist ein reservierter Titel.","Untitled":"Unbenannt","This note does not have geolocation information.":"Diese Notiz hat keine Standort-Informationen.","Cannot copy note to \"%s\" notebook":"Kann Notiz nicht zu Notizbuch \"%s\" kopieren","Cannot move note to \"%s\" notebook":"Kann Notiz nicht zu Notizbuch \"%s\" verschieben","Text editor":"Textverarbeitungsprogramm","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Das Textverarbeitungsprogramm, mit dem Notizen geöffnet werden. Wenn keines ausgewählt wurde, wird Joplin versuchen das standard-Textverarbeitungsprogramm zu erkennen.","Language":"Sprache","Date format":"Datumsformat","Time format":"Zeitformat","Theme":"Thema","Light":"Hell","Dark":"Dunkel","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Momentanen Standort zusammen mit Notizen speichern","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Die Applikation automatisch aktualisieren","Synchronisation interval":"Synchronisationsinterval","%d minutes":"%d Minuten","%d hour":"%d Stunde","%d hours":"%d Stunden","Show advanced options":"Erweiterte Optionen anzeigen","Synchronisation target":"Synchronisationsziel","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Das Ziel, mit dem synchronisiert werden soll. Jedes Synchronisationsziel kann zusätzliche Parameter haben, die als `sync.NUM.NAME` (alle unten dokumentiert) bezeichnet werden.","Directory to synchronise with (absolute path)":"Verzeichnis zum synchronisieren (absoluter Pfad)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Der Pfad, mit dem synchronisiert werden soll, wenn die Dateisystem-Synchronisation aktiviert ist. Siehe `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Nextcloud Benutzername","Nextcloud password":"Nextcloud Passwort","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV username","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Ungültiger Optionswert: \"%s\". Mögliche Werte sind: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Objekte können nicht synchronisiert werden","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Diese Objekte verbleiben auf dem Gerät, werden aber nicht zum Synchronisationsziel hochgeladen. Um diese Objekte zu finden, suchen Sie entweder nach dem Titel oder der ID (die oben in Klammern angezeigt wird).","Sync status (synced items / total items)":"Synchronisationsstatus (synchronisierte Objekte / gesamte Objekte)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Insgesamt: %d/%d","Conflicted: %d":"In Konflikt %d","To delete: %d":"Zu löschen: %d","Folders":"Ordner","%s: %d notes":"%s: %d Notizen","Coming alarms":"Anstehende Alarme","On %s: %s":"Auf %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Momentan existieren noch keine Notizen. Erstelle eine, indem du auf den (+) Knopf drückst.","Delete these notes?":"Sollen diese Notizen gelöscht werden?","Log":"Protokoll","Export Debug Report":"Fehlerbericht exportieren","Encryption Config":"Verschlüsselungskonfiguration","Configuration":"Konfiguration","Move to notebook...":"In Notizbuch verschieben...","Move %d notes to notebook \"%s\"?":"%d Notizen in das Notizbuch \"%s\" verschieben?","Press to set the decryption password.":"Tippe hier, um das Entschlüsselungspasswort festzulegen.","Select date":"Datum auswählen","Confirm":"Bestätigen","Cancel synchronisation":"Synchronisation abbrechen","Joplin website":"","Master Key %s":"Hauptschlüssel %s","Created: %s":"Erstellt: %s","Password:":"Passwort:","Password cannot be empty":"Passwort darf nicht leer sein","Enable":"Aktivieren","The notebook could not be saved: %s":"Dieses Notizbuch konnte nicht gespeichert werden: %s","Edit notebook":"Notizbuch bearbeiten","Show all":"","Errors only":"","This note has been modified:":"Diese Notiz wurde verändert:","Save changes":"Änderungen speichern","Discard changes":"Änderungen verwerfen","Unsupported image type: %s":"Nicht unterstütztes Fotoformat: %s","Attach photo":"Foto anhängen","Attach any file":"Beliebige Datei anhängen","Convert to note":"In eine Notiz umwandeln","Convert to todo":"In ein To-Do umwandeln","Hide metadata":"Metadaten verstecken","Show metadata":"Metadaten anzeigen","View on map":"Auf der Karte anzeigen","Delete notebook":"Notizbuch löschen","Login with OneDrive":"Mit OneDrive anmelden","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Drücke auf den (+) Knopf, um eine neue Notiz oder ein neues Notizbuch zu erstellen. Tippe auf die Seitenleiste, um auf deine existierenden Notizbücher zuzugreifen.","You currently have no notebook. Create one by clicking on (+) button.":"Du hast noch kein Notizbuch. Erstelle eines, indem du auf den (+) Knopf drückst.","Welcome":"Willkommen"} \ No newline at end of file diff --git a/ReactNativeClient/locales/en_GB.json b/ReactNativeClient/locales/en_GB.json index a42ad2b0e2..5e75965f47 100644 --- a/ReactNativeClient/locales/en_GB.json +++ b/ReactNativeClient/locales/en_GB.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"","Please select the note or notebook to be deleted first.":"","Press Ctrl+D or type \"exit\" to exit the application":"","More than one item match \"%s\". Please narrow down your query.":"","No notebook selected.":"","No notebook has been specified.":"","Y":"","n":"","N":"","y":"","Cancelling background synchronisation... Please wait.":"","No such command: %s":"","The command \"%s\" is only available in GUI mode":"","Cannot change encrypted item":"","Missing required argument: %s":"","%s: %s":"","Your choice: ":"","Invalid answer: %s":"","Attaches the given file to the note.":"","Cannot find \"%s\".":"","Displays the given note.":"","Displays the complete information about note.":"","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"","Also displays unset and hidden config variables.":"","%s = %s (%s)":"","%s = %s":"","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"","Marks a to-do as done.":"","Note is not a to-do: \"%s\"":"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"","Disabled":"","Encryption is: %s":"","Edit note.":"","No text editor is defined. Please set it using `config editor `":"","No active notebook.":"","Note does not exist: \"%s\". Create it?":"","Starting to edit note. Close the editor to get back to the prompt.":"","Error opening note in editor: %s":"","Note has been saved.":"","Exits the application.":"","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"","Destination format: %s":"","Exports only the given note.":"","Exports only the given notebook.":"","Displays a geolocation URL for the note.":"","Displays usage information.":"","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"","The possible commands are:":"","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"","To move from one pane to another, press Tab or Shift+Tab.":"","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"","To maximise/minimise the console, press \"TC\".":"","To enter command line mode, press \":\"":"","To exit command line mode, press ESCAPE":"","For the list of keyboard shortcuts and config options, type `help keymap`":"","Imports data into Joplin.":"","Source format: %s":"","Do not ask for confirmation.":"","Found: %d.":"","Created: %d.":"","Updated: %d.":"","Skipped: %d.":"","Resources: %d.":"","Tagged: %d.":"","Importing notes...":"","The notes have been imported: %s":"","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"","Displays only the first top notes.":"","Sorts the item by (eg. title, updated_time, created_time).":"","Reverses the sorting order.":"","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"","Either \"text\" or \"json\"":"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"","Please select a notebook first.":"","Creates a new notebook.":"","Creates a new note.":"","Notes can only be created within a notebook.":"","Creates a new to-do.":"","Moves the notes matching to [notebook].":"","Renames the given (note or notebook) to .":"","Deletes the given notebook.":"","Deletes the notebook without asking for confirmation.":"","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"","Deletes the notes without asking for confirmation.":"","%d notes match this pattern. Delete them?":"","Delete note?":"","Searches for the given in all the notes.":"","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"","Displays summary about the notes and notebooks.":"","Synchronises with remote storage.":"","Sync to provided target (defaults to sync.target config value)":"","Authentication was not completed (did not receive an authentication token).":"","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"","Synchronisation target: %s (%s)":"","Cannot initialize synchroniser.":"","Starting synchronisation...":"","Cancelling... Please wait.":""," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":"","Invalid command: \"%s\"":""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"","Marks a to-do as non-completed.":"","Switches to [notebook] - all further operations will happen within this notebook.":"","Displays version information":"","%s %s (%s)":"","Enum":"","Type: %s.":"","Possible values: %s.":"","Default: %s":"","Possible keys/values:":"","Fatal error:":"","The application has been authorised - you may now close this browser tab.":"","The application has been successfully authorised.":"","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"","Search:":"","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"","New to-do":"","New notebook":"","Import":"","Export":"","Hide %s":"","Quit":"","Edit":"","Copy":"","Cut":"","Paste":"","Search in all the notes":"","View":"","Toggle editor layout":"","Tools":"","Synchronisation status":"","Encryption options":"","General Options":"","Help":"","Website and documentation":"","Check for updates...":"","About Joplin":"","%s %s (%s, %s)":"","Open %s":"","Exit":"","OK":"","Cancel":"","Release notes:\n\n%s":"","An update is available, do you want to download it now?":"","Yes":"","No":"","Current version is up-to-date.":"","Check synchronisation configuration":"","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"","Updated":"","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"","Encryption is:":"","Back":"","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"","Please create a notebook first.":"","Please create a notebook first":"","Notebook title:":"","Add or remove tags:":"","Separate each tag by a comma.":"","Rename notebook:":"","Set alarm:":"","Search":"","Layout":"","Some items cannot be synchronised.":"","View them now":"","Some items cannot be decrypted.":"","Set the password":"","Add or remove tags":"","Switch between note and to-do type":"","Delete":"","Delete notes?":"","No notes in here. Create one by clicking on \"New note\".":"","There is currently no notebook. Create one by clicking on \"New notebook\".":"","Open...":"","Save as...":"","Unsupported link or message: %s":"","Attach file":"","Tags":"","Set alarm":"","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"","note":"","Creating new %s...":"","Refresh":"","Clear":"","OneDrive Login":"","Options":"","Synchronisation Status":"","Encryption Options":"","Remove this tag from all the notes?":"","Remove this search from the sidebar?":"","Rename":"","Synchronise":"","Notebooks":"","Searches":"","Please select where the sync status should be exported to":"","Usage: %s":"","Unknown flag: %s":"","File system":"","Nextcloud":"","OneDrive":"","OneDrive Dev (For testing only)":"","WebDAV":"","Unknown log level: %s":"","Unknown level ID: %s":"","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"","Cannot access %s":"","Created local items: %d.":"","Updated local items: %d.":"","Created remote items: %d.":"","Updated remote items: %d.":"","Deleted local items: %d.":"","Deleted remote items: %d.":"","Fetched items: %d/%d.":"","State: \"%s\".":"","Cancelling...":"","Completed: %s":"","Synchronisation is already in progress. State: %s":"","Encrypted":"","Encrypted items cannot be modified":"","Conflicts":"","A notebook with this title already exists: \"%s\"":"","Notebooks cannot be named \"%s\", which is a reserved title.":"","Untitled":"","This note does not have geolocation information.":"","Cannot copy note to \"%s\" notebook":"","Cannot move note to \"%s\" notebook":"","Text editor":"","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"","Language":"","Date format":"","Time format":"","Theme":"","Light":"","Dark":"","Uncompleted to-dos on top":"","Sort notes by":"","Reverse sort order":"","Save geo-location with notes":"","When creating a new to-do:":"","Focus title":"","Focus body":"","When creating a new note:":"","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"","Synchronisation interval":"","%d minutes":"","%d hour":"","%d hours":"","Show advanced options":"","Synchronisation target":"","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"","Joplin Export File":"","Markdown":"","Joplin Export Directory":"","Evernote Export File":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"","Items that cannot be synchronised":"","%s (%s): %s":"","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"","%s: %d/%d":"","Total: %d/%d":"","Conflicted: %d":"","To delete: %d":"","Folders":"","%s: %d notes":"","Coming alarms":"","On %s: %s":"","There are currently no notes. Create one by clicking on the (+) button.":"","Delete these notes?":"","Log":"","Export Debug Report":"","Encryption Config":"","Configuration":"","Move to notebook...":"","Move %d notes to notebook \"%s\"?":"","Press to set the decryption password.":"","Select date":"","Confirm":"","Cancel synchronisation":"","Master Key %s":"","Created: %s":"","Password:":"","Password cannot be empty":"","Enable":"","The notebook could not be saved: %s":"","Edit notebook":"","Show all":"","Errors only":"","This note has been modified:":"","Save changes":"","Discard changes":"","Unsupported image type: %s":"","Attach photo":"","Attach any file":"","Convert to note":"","Convert to todo":"","Hide metadata":"","Show metadata":"","View on map":"","Delete notebook":"","Login with OneDrive":"","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"","You currently have no notebook. Create one by clicking on (+) button.":"","Welcome":""} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"","Please select the note or notebook to be deleted first.":"","Press Ctrl+D or type \"exit\" to exit the application":"","More than one item match \"%s\". Please narrow down your query.":"","No notebook selected.":"","No notebook has been specified.":"","Y":"","n":"","N":"","y":"","Cancelling background synchronisation... Please wait.":"","No such command: %s":"","The command \"%s\" is only available in GUI mode":"","Cannot change encrypted item":"","Missing required argument: %s":"","%s: %s":"","Your choice: ":"","Invalid answer: %s":"","Attaches the given file to the note.":"","Cannot find \"%s\".":"","Displays the given note.":"","Displays the complete information about note.":"","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"","Also displays unset and hidden config variables.":"","%s = %s (%s)":"","%s = %s":"","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"","Marks a to-do as done.":"","Note is not a to-do: \"%s\"":"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"","Disabled":"","Encryption is: %s":"","Edit note.":"","No text editor is defined. Please set it using `config editor `":"","No active notebook.":"","Note does not exist: \"%s\". Create it?":"","Starting to edit note. Close the editor to get back to the prompt.":"","Error opening note in editor: %s":"","Note has been saved.":"","Exits the application.":"","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"","Destination format: %s":"","Exports only the given note.":"","Exports only the given notebook.":"","Displays a geolocation URL for the note.":"","Displays usage information.":"","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"","The possible commands are:":"","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"","To move from one pane to another, press Tab or Shift+Tab.":"","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"","To maximise/minimise the console, press \"TC\".":"","To enter command line mode, press \":\"":"","To exit command line mode, press ESCAPE":"","For the list of keyboard shortcuts and config options, type `help keymap`":"","Imports data into Joplin.":"","Source format: %s":"","Do not ask for confirmation.":"","Found: %d.":"","Created: %d.":"","Updated: %d.":"","Skipped: %d.":"","Resources: %d.":"","Tagged: %d.":"","Importing notes...":"","The notes have been imported: %s":"","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"","Displays only the first top notes.":"","Sorts the item by (eg. title, updated_time, created_time).":"","Reverses the sorting order.":"","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"","Either \"text\" or \"json\"":"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"","Please select a notebook first.":"","Creates a new notebook.":"","Creates a new note.":"","Notes can only be created within a notebook.":"","Creates a new to-do.":"","Moves the notes matching to [notebook].":"","Renames the given (note or notebook) to .":"","Deletes the given notebook.":"","Deletes the notebook without asking for confirmation.":"","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"","Deletes the notes without asking for confirmation.":"","%d notes match this pattern. Delete them?":"","Delete note?":"","Searches for the given in all the notes.":"","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"","Displays summary about the notes and notebooks.":"","Synchronises with remote storage.":"","Sync to provided target (defaults to sync.target config value)":"","Authentication was not completed (did not receive an authentication token).":"","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"","Synchronisation target: %s (%s)":"","Cannot initialize synchroniser.":"","Starting synchronisation...":"","Cancelling... Please wait.":""," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":"","Invalid command: \"%s\"":""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"","Marks a to-do as non-completed.":"","Switches to [notebook] - all further operations will happen within this notebook.":"","Displays version information":"","%s %s (%s)":"","Enum":"","Type: %s.":"","Possible values: %s.":"","Default: %s":"","Possible keys/values:":"","Type `joplin help` for usage information.":"","Fatal error:":"","The application has been authorised - you may now close this browser tab.":"","The application has been successfully authorised.":"","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"","Search:":"","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"","New to-do":"","New notebook":"","Import":"","Export":"","Hide %s":"","Quit":"","Edit":"","Copy":"","Cut":"","Paste":"","Search in all the notes":"","View":"","Toggle editor layout":"","Tools":"","Synchronisation status":"","Encryption options":"","General Options":"","Help":"","Website and documentation":"","Make a donation":"","Check for updates...":"","About Joplin":"","%s %s (%s, %s)":"","Open %s":"","Exit":"","OK":"","Cancel":"","Release notes:\n\n%s":"","An update is available, do you want to download it now?":"","Yes":"","No":"","Current version is up-to-date.":"","Check synchronisation configuration":"","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"","Updated":"","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"","Encryption is:":"","Back":"","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"","Please create a notebook first.":"","Please create a notebook first":"","Notebook title:":"","Add or remove tags:":"","Separate each tag by a comma.":"","Rename notebook:":"","Set alarm:":"","Search":"","Layout":"","Some items cannot be synchronised.":"","View them now":"","Some items cannot be decrypted.":"","Set the password":"","Add or remove tags":"","Switch between note and to-do type":"","Delete":"","Delete notes?":"","No notes in here. Create one by clicking on \"New note\".":"","There is currently no notebook. Create one by clicking on \"New notebook\".":"","Open...":"","Save as...":"","Unsupported link or message: %s":"","Attach file":"","Tags":"","Set alarm":"","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"","note":"","Creating new %s...":"","Refresh":"","Clear":"","OneDrive Login":"","Options":"","Synchronisation Status":"","Encryption Options":"","Remove this tag from all the notes?":"","Remove this search from the sidebar?":"","Rename":"","Synchronise":"","Notebooks":"","Searches":"","Please select where the sync status should be exported to":"","Usage: %s":"","Unknown flag: %s":"","File system":"","Nextcloud":"","OneDrive":"","OneDrive Dev (For testing only)":"","WebDAV":"","Unknown log level: %s":"","Unknown level ID: %s":"","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"","Cannot access %s":"","Created local items: %d.":"","Updated local items: %d.":"","Created remote items: %d.":"","Updated remote items: %d.":"","Deleted local items: %d.":"","Deleted remote items: %d.":"","Fetched items: %d/%d.":"","State: \"%s\".":"","Cancelling...":"","Completed: %s":"","Synchronisation is already in progress. State: %s":"","Encrypted":"","Encrypted items cannot be modified":"","Conflicts":"","A notebook with this title already exists: \"%s\"":"","Notebooks cannot be named \"%s\", which is a reserved title.":"","Untitled":"","This note does not have geolocation information.":"","Cannot copy note to \"%s\" notebook":"","Cannot move note to \"%s\" notebook":"","Text editor":"","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"","Language":"","Date format":"","Time format":"","Theme":"","Light":"","Dark":"","Uncompleted to-dos on top":"","Sort notes by":"","Reverse sort order":"","Save geo-location with notes":"","When creating a new to-do:":"","Focus title":"","Focus body":"","When creating a new note:":"","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"","Synchronisation interval":"","%d minutes":"","%d hour":"","%d hours":"","Show advanced options":"","Synchronisation target":"","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"","Joplin Export File":"","Markdown":"","Joplin Export Directory":"","Evernote Export File":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"","Items that cannot be synchronised":"","%s (%s): %s":"","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"","%s: %d/%d":"","Total: %d/%d":"","Conflicted: %d":"","To delete: %d":"","Folders":"","%s: %d notes":"","Coming alarms":"","On %s: %s":"","There are currently no notes. Create one by clicking on the (+) button.":"","Delete these notes?":"","Log":"","Export Debug Report":"","Encryption Config":"","Configuration":"","Move to notebook...":"","Move %d notes to notebook \"%s\"?":"","Press to set the decryption password.":"","Select date":"","Confirm":"","Cancel synchronisation":"","Joplin website":"","Master Key %s":"","Created: %s":"","Password:":"","Password cannot be empty":"","Enable":"","The notebook could not be saved: %s":"","Edit notebook":"","Show all":"","Errors only":"","This note has been modified:":"","Save changes":"","Discard changes":"","Unsupported image type: %s":"","Attach photo":"","Attach any file":"","Convert to note":"","Convert to todo":"","Hide metadata":"","Show metadata":"","View on map":"","Delete notebook":"","Login with OneDrive":"","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"","You currently have no notebook. Create one by clicking on (+) button.":"","Welcome":""} \ No newline at end of file diff --git a/ReactNativeClient/locales/es_ES.json b/ReactNativeClient/locales/es_ES.json index af502d821d..0514e56891 100644 --- a/ReactNativeClient/locales/es_ES.json +++ b/ReactNativeClient/locales/es_ES.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Desmarque las notas asociadas para eliminar una etiqueta.","Please select the note or notebook to be deleted first.":"Seleccione primero la nota o libreta que desea eliminar.","Press Ctrl+D or type \"exit\" to exit the application":"Pulse Ctrl+D o escriba «salir» para salir de la aplicación","More than one item match \"%s\". Please narrow down your query.":"Hay más de un elemento que coincide con «%s», intente mejorar su consulta.","No notebook selected.":"No se ha seleccionado ninguna libreta.","No notebook has been specified.":"Ninguna libreta fue especificada","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Cancelando sincronización de segundo plano... Por favor espere.","No such command: %s":"El comando no existe: %s","The command \"%s\" is only available in GUI mode":"El comando «%s» solamente está disponible en modo GUI","Cannot change encrypted item":"No se puede cambiar el elemento cifrado","Missing required argument: %s":"Falta un argumento requerido: %s","%s: %s":"%s: %s","Your choice: ":"Su elección: ","Invalid answer: %s":"Respuesta inválida: %s","Attaches the given file to the note.":"Adjuntar archivo a la nota.","Cannot find \"%s\".":"No se encuentra \"%s\".","Displays the given note.":"Mostrar la nota dada.","Displays the complete information about note.":"Mostrar la información completa acerca de la nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtener o configurar un valor. Si no se provee el [valor], se mostrará el valor de [nombre]. Si no se provee [nombre] ni [valor], se listará la configuración actual.","Also displays unset and hidden config variables.":"También muestra variables ocultas o no configuradas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica las notas que coincidan con en la libreta. Si no se especifica una libreta la nota se duplica en la libreta actual.","Marks a to-do as done.":"Marca una tarea como hecha.","Note is not a to-do: \"%s\"":"La nota no es una tarea: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Maneja la configuración E2EE. Comandos disponibles `enable`, `disable`, `decrypt`, `status` y `target-status`.","Enter master password:":"Introduzca la contraseña maestra:","Operation cancelled":"Operación cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando descifrado... Por favor espere, puede tardar varios minutos dependiendo de cuanto haya que descifrar.","Completed decryption.":"Descifrado completado.","Enabled":"Habilitado","Disabled":"Deshabilitado","Encryption is: %s":"El cifrado es: %s","Edit note.":"Editar una nota.","No text editor is defined. Please set it using `config editor `":"No hay editor de texto definido. Por favor configure uno usando `config editor `","No active notebook.":"No hay libreta activa.","Note does not exist: \"%s\". Create it?":"La nota no existe: \"%s\". ¿Crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Iniciando la edición de una nota. Cierre el editor para regresar al prompt.","Error opening note in editor: %s":"Error abriendo la nota en el editor: %s","Note has been saved.":"La nota ha sido guardada.","Exits the application.":"Sale de la aplicación.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exporta únicamente la nota indicada.","Exports only the given notebook.":"Exporta únicamente la libreta indicada.","Displays a geolocation URL for the note.":"Muestra la URL de la geolocalización de la nota.","Displays usage information.":"Muestra información de uso.","For information on how to customise the shortcuts please visit %s":"Para información de cómo personalizar los atajos por favor visite %s","Shortcuts are not available in CLI mode.":"Atajos no disponibles en modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Escriba `help [command]` para obtener más información sobre el comando, o escriba `help all` para obtener toda la información acerca del uso del programa.","The possible commands are:":"Los posibles comandos son:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Con cualquier comando, una nota o libreta puede ser referida por su título o ID, o utilizando atajos `$n` o `$b`, respectivamente, para la nota o libreta seleccionada. Se puede utilizar `$c` para hacer referencia al elemento seleccionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover desde un panel a otro, presione Tabulador o Mayúsuclas+Tabulador.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Para desplazar en las listas y areas de texto (incluyendo la consola) utilice las flechas y re pág/av pág.","To maximise/minimise the console, press \"TC\".":"Para maximizar/minimizar la consola, presione \"TC\".","To enter command line mode, press \":\"":"Para entrar a modo línea de comando, presione \":\"","To exit command line mode, press ESCAPE":"Para salir de modo línea de comando, presione ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Para una lista de los atajos de teclado disponibles, escriba `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"No requiere confirmación.","Found: %d.":"Encontrado: %d.","Created: %d.":"Creado: %d.","Updated: %d.":"Actualizado: %d.","Skipped: %d.":"Omitido: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Etiquetado: %d.","Importing notes...":"Importando notas...","The notes have been imported: %s":"Las notas han sido importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Muestra las notas en la libreta actual. Usa `ls /` para mostrar la lista de libretas.","Displays only the first top notes.":"Muestra las primeras notas.","Sorts the item by (eg. title, updated_time, created_time).":"Ordena los elementos por campo ( ej. title, updated_time, created_time).","Reverses the sorting order.":"Invierte el orden.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Muestra únicamente los elementos de los tipos especificados. Pueden ser `n` para notas, `t` para tareas, o `nt` para libretas y tareas (ej. `-tt` mostrará unicamente las tareas, mientras `-ttd` mostrará notas y tareas).","Either \"text\" or \"json\"":"Puede ser \"text\" o \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usar formato largo de lista. El formato es ID, NOTE_COUNT ( para libretas), DATE,TODO_CHECKED ( para tareas), TITLE","Please select a notebook first.":"Por favor seleccione la libreta.","Creates a new notebook.":"Crea una nueva libreta.","Creates a new note.":"Crea una nueva nota.","Notes can only be created within a notebook.":"Notas solamente pueden ser creadas dentro de una libreta.","Creates a new to-do.":"Crea una nueva lista de tareas.","Moves the notes matching to [notebook].":"Mueve las notas que coincidan con a la [libreta].","Renames the given (note or notebook) to .":"Renombra el elemento dado (nota o libreta) a .","Deletes the given notebook.":"Elimina la libreta dada.","Deletes the notebook without asking for confirmation.":"Elimina una libreta sin pedir confirmación.","Delete notebook? All notes within this notebook will also be deleted.":"¿Desea eliminar la libreta? Todas las notas dentro de esta libreta también serán eliminadas.","Deletes the notes matching .":"Elimina las notas que coinciden con .","Deletes the notes without asking for confirmation.":"Elimina las notas sin pedir confirmación.","%d notes match this pattern. Delete them?":"%d notas coinciden con el patrón. ¿Eliminarlas?","Delete note?":"¿Eliminar nota?","Searches for the given in all the notes.":"Buscar el patrón en todas las notas.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Asigna el valor [value] a la propiedad de la nota indicada . Propiedades disponibles:\n\n%s","Displays summary about the notes and notebooks.":"Muestra un resumen acerca de las notas y las libretas.","Synchronises with remote storage.":"Sincroniza con el almacenamiento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincroniza con el destino indicado (por defecto al valor de configuración sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticación no completada (no se recibió token de autenticación).","Not authentified with %s. Please provide any missing credentials.":"No autenticado con %s. Por favor provea las credenciales.","Synchronisation is already in progress.":"Sincronzación en progreso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ya hay un archivo de bloqueo. Si está seguro de que no hay una sincronización en curso puede eliminar el archivo de bloqueo «%s» y reanudar la operación.","Synchronisation target: %s (%s)":"Destino de la sincronización: %s (%s)","Cannot initialize synchroniser.":"No se puede inicializar sincronizador.","Starting synchronisation...":"Iniciando sincronización...","Cancelling... Please wait.":"Cancelando... Por favor espere."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" puede ser \"add\", \"remove\" o \"list\" para asignar o eliminar [tag] de [note], o para listar las notas asociadas con [tag]. El comando `tag list` puede ser usado para listar todas las etiquetas.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" puede ser \"toggle\" o \"clear\". Usa \"toggle\" para cambiar la tarea dada entre estado completado y sin completar. (Si el objetivo es una nota regular se convertirá en una tarea). Usa \"clear\" para convertir la tarea a una nota regular.","Marks a to-do as non-completed.":"Marca una tarea como no completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Cambia una [libreta] - todas las demás operaciones se realizan en ésta libreta.","Displays version information":"Muestra información de la versión","%s %s (%s)":"%s %s (%s)","Enum":"Enumeración","Type: %s.":"Tipo: %s.","Possible values: %s.":"Posibles valores: %s.","Default: %s":"Por defecto: %s","Possible keys/values:":"Claves/valores posbiles:","Fatal error:":"Error fatal:","The application has been authorised - you may now close this browser tab.":"La aplicación ha sido autorizada - ahora puede cerrar esta pestaña de su navegador.","The application has been successfully authorised.":"La aplicacion ha sido autorizada éxitosamente.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra la siguiente URL en su navegador para autenticar la aplicación. La aplicación creará un directorio en «Apps/Joplin» y solo leerá y escribirá archivos en ese directorio. No tendrá acceso a ningún archivo fuera de ese directorio ni a ningún otro archivo personal. No se compartirá información con terceros.","Search:":"Buscar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenido a Joplin.\n\nEscriba «:help shortcuts» para obtener una lista con los atajos de teclado, o simplemente «:help» para información general.\n\nPor ejemplo, para crear una libreta escriba «mb», para crear una nota escriba «mn».","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Uno o más elementos están cifrados y debe proporcionar la contraseña maestra. Para hacerlo por favor escriba `e2ee decrypt`. Si ya ha proporcionado la contraseña, los elementos están siendo descifrados en segundo plano y estarán disponibles en breve.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Archivo","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Nueva nota","New to-do":"Nueva lista de tareas","New notebook":"Nueva libreta","Import":"Importar","Export":"Export","Hide %s":"Oculta %s","Quit":"Salir","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Pegar","Search in all the notes":"Buscar en todas las notas","View":"Ver","Toggle editor layout":"Cambia el diseño del editor","Tools":"Herramientas","Synchronisation status":"Estado de la sincronización","Encryption options":"Opciones de cifrado","General Options":"Opciones generales","Help":"Ayuda","Website and documentation":"Sitio web y documentación","Check for updates...":"Comprobar actualizaciones...","About Joplin":"Acerca de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Abrir %s","Exit":"Salir","OK":"OK","Cancel":"Cancelar","Release notes:\n\n%s":"Notas de la versión:\n\n%s","An update is available, do you want to download it now?":"Hay disponible una actualización. ¿Quiere descargarla ahora?","Yes":"Sí","No":"No","Current version is up-to-date.":"La versión actual está actualizada.","Check synchronisation configuration":"Comprobar sincronización","Notes and settings are stored in: %s":"Las notas y los ajustes se guardan en: %s","Save":"Guardar","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Deshabilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán descifrados al destino. ¿Desea continuar?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Habilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán cifrados al destino. No pierda la contraseña, por cuestiones de seguridad, ¡es la *única* forma de descifrar los datos! Para habilitar el cifrado, por favor introduzca su contraseña más abajo.","Disable encryption":"Deshabilitar cifrado","Enable encryption":"Habilitar cifrado","Master Keys":"Clave maestra","Active":"Activo","ID":"ID","Source":"Origen","Created":"Creado","Updated":"Actualizado","Password":"Contraseña","Password OK":"Contraseña OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Nota: Solo una clave maestra va a ser utilizar para el cifrado (la marcada como \"activa\"). Cualquiera de las claves puede ser utilizada para descifrar, dependiendo de como fueron cifradas originalmente las notas o las libretas.","Missing Master Keys":"No se encuentra la clave maestra","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"La clave maestra con estos ID son utilizadas para descifrar algunos de tus elementos, pero la apliación no tiene acceso a ellas. Serán descargadas a través de la sincronización.","Status":"Estado","Encryption is:":"El cifrado está:","Back":"Atrás","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Se creará la nueva libreta «%s» y se importará en ella el archivo «%s»","Please create a notebook first.":"Por favor cree una libreta primero.","Please create a notebook first":"Por favor cree una libreta primero","Notebook title:":"Título de libreta:","Add or remove tags:":"Agregar o borrar etiquetas: ","Separate each tag by a comma.":"Separar cada etiqueta por una coma.","Rename notebook:":"Renombrar libreta:","Set alarm:":"Ajustar alarma:","Search":"Buscar","Layout":"Diseño","Some items cannot be synchronised.":"No se han podido sincronizar algunos de los elementos.","View them now":"Verlos ahora","Some items cannot be decrypted.":"No se han podido descifrar algunos elementos.","Set the password":"Establecer la contraseña","Add or remove tags":"Añadir o borrar etiquetas","Switch between note and to-do type":"Cambiar entre nota y lista de tareas","Delete":"Eliminar","Delete notes?":"¿Desea eliminar notas?","No notes in here. Create one by clicking on \"New note\".":"No hay ninguna nota. Cree una pulsando «Nota nueva».","There is currently no notebook. Create one by clicking on \"New notebook\".":"No hay ninguna libreta. Cree una pulsando en «Libreta nueva».","Open...":"Abrir...","Save as...":"Guardar como...","Unsupported link or message: %s":"Enlace o mensaje no soportado: %s","Attach file":"Adjuntar archivo","Tags":"Etiquetas","Set alarm":"Establecer alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"lista de tareas","note":"nota","Creating new %s...":"Creando nuevo %s...","Refresh":"Refrescar","Clear":"Limpiar","OneDrive Login":"Inicio de sesión de OneDrive","Options":"Opciones","Synchronisation Status":"Estado de la sincronización","Encryption Options":"Opciones de cifrado","Remove this tag from all the notes?":"¿Desea eliminar esta etiqueta de todas las notas?","Remove this search from the sidebar?":"¿Desea eliminar esta búsqueda de la barra lateral?","Rename":"Renombrar","Synchronise":"Sincronizar","Notebooks":"Libretas","Searches":"Búsquedas","Please select where the sync status should be exported to":"Seleccione a dónde se debería exportar el estado de sincronización","Usage: %s":"Uso: %s","Unknown flag: %s":"Etiqueta desconocida: %s","File system":"Sistema de archivos","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Solo para pruebas)","WebDAV":"WebDAV","Unknown log level: %s":"Nivel de log desconocido: %s","Unknown level ID: %s":"ID de nivel desconocido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"No se ha podido actualizar token: faltan datos de autenticación. Reiniciar la sincronización podría solucionar el problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"No se ha podido sincronizar con OneDrive.\n\nEste error suele ocurrir al utilizar OneDrive for Business. Este producto no está soportado.\n\nPodría considerar utilizar una cuenta Personal de OneDrive.","Cannot access %s":"No se ha podido acceder a %s","Created local items: %d.":"Elementos locales creados: %d.","Updated local items: %d.":"Elementos locales actualizados: %d.","Created remote items: %d.":"Elementos remotos creados: %d.","Updated remote items: %d.":"Elementos remotos actualizados: %d.","Deleted local items: %d.":"Elementos locales borrados: %d.","Deleted remote items: %d.":"Elementos remotos borrados: %d.","Fetched items: %d/%d.":"Elementos obtenidos: %d/%d.","State: \"%s\".":"Estado: «%s».","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Synchronisation is already in progress. State: %s":"La sincronización ya está en progreso. Estado: %s","Encrypted":"Cifrado","Encrypted items cannot be modified":"Los elementos cifrados no pueden ser modificados","Conflicts":"Conflictos","A notebook with this title already exists: \"%s\"":"Ya existe una libreta con este nombre: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"No se puede usar el nombre «%s» para una libreta; es un título reservado.","Untitled":"Sin título","This note does not have geolocation information.":"Esta nota no tiene informacion de geolocalización.","Cannot copy note to \"%s\" notebook":"No se ha podido copiar la nota a la libreta «%s»","Cannot move note to \"%s\" notebook":"No se ha podido mover la nota a la libreta «%s»","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"El editor que se usará para abrir una nota. Se intentará auto-detectar el editor predeterminado si no se proporciona ninguno.","Language":"Idioma","Date format":"Formato de fecha","Time format":"Formato de hora","Theme":"Tema","Light":"Claro","Dark":"Oscuro","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Guardar geolocalización en las notas","When creating a new to-do:":"Al crear una nueva lista de tareas:","Focus title":"Foco en el título","Focus body":"Foco en el cuerpo","When creating a new note:":"Cuando se crear una nota nueva:","Show tray icon":"Mostrar icono en la bandeja","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Actualizar la aplicación automáticamente","Synchronisation interval":"Intervalo de sincronización","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opciones avanzadas","Synchronisation target":"Destino de sincronización","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"El destino de la sincronización. Cada destino de la sincronización puede tener parámetros adicionales los cuales son llamados como `sync.NUM.NAME` (todos abajo documentados).","Directory to synchronise with (absolute path)":"Directorio con el que sincronizarse (ruta completa)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"La ruta a la que sincronizar cuando se activa la sincronización con sistema de archivos. Vea «sync.target».","Nextcloud WebDAV URL":"Servidor WebDAV de Nextcloud","Nextcloud username":"Usuario de Nextcloud","Nextcloud password":"Contraseña de Nextcloud","WebDAV URL":"Servidor WebDAV","WebDAV username":"Usuario de WebDAV","WebDAV password":"Contraseña de WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Opción inválida: «%s». Los valores posibles son: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Elementos que no se pueden sincronizar","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Estos elementos se mantendrán en el dispositivo pero no serán enviados al destino de sincronización. Para encontrar dichos elementos busca en el título o en el ID (el cual se muestra arriba entre corchetes).","Sync status (synced items / total items)":"Estado de sincronización (elementos sincronizados/elementos totales)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Conflictos: %d","To delete: %d":"Borrar: %d","Folders":"Carpetas","%s: %d notes":"%s: %d notas","Coming alarms":"Alarmas próximas","On %s: %s":"En %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"No hay notas. Cree una pulsando en el botón (+).","Delete these notes?":"¿Desea borrar estas notas?","Log":"Log","Export Debug Report":"Exportar informe de depuración","Encryption Config":"Configuración de cifrado","Configuration":"Configuración","Move to notebook...":"Mover a la libreta...","Move %d notes to notebook \"%s\"?":"¿Desea mover %d notas a libreta «%s»?","Press to set the decryption password.":"Presione para establecer la contraseña de descifrado.","Select date":"Seleccione fecha","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronización","Master Key %s":"Clave maestra %s","Created: %s":"Creado: %s","Password:":"Contraseña:","Password cannot be empty":"La contraseña no puede estar vacía","Enable":"Habilitado","The notebook could not be saved: %s":"No se ha podido guardar esta libreta: %s","Edit notebook":"Editar libreta","Show all":"Mostrar todo","Errors only":"Solo errores","This note has been modified:":"Esta nota ha sido modificada:","Save changes":"Guardar cambios","Discard changes":"Descartar cambios","Unsupported image type: %s":"Tipo de imagen no soportado: %s","Attach photo":"Adjuntar foto","Attach any file":"Adjuntar cualquier archivo","Convert to note":"Convertir a nota","Convert to todo":"Convertir a lista de tareas","Hide metadata":"Ocultar metadatos","Show metadata":"Mostrar metadatos","View on map":"Ver en un mapa","Delete notebook":"Borrar libreta","Login with OneDrive":"Acceder con OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Pulse en el botón (+) para crear una nueva nota o libreta. Pulse en el menú lateral para acceder a las libretas existentes.","You currently have no notebook. Create one by clicking on (+) button.":"No hay ninguna libreta. Cree una nueva libreta pulsando en el botón (+).","Welcome":"Bienvenido"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Desmarque las notas asociadas para eliminar una etiqueta.","Please select the note or notebook to be deleted first.":"Seleccione primero la nota o libreta que desea eliminar.","Press Ctrl+D or type \"exit\" to exit the application":"Pulse Ctrl+D o escriba «salir» para salir de la aplicación","More than one item match \"%s\". Please narrow down your query.":"Hay más de un elemento que coincide con «%s», intente mejorar su consulta.","No notebook selected.":"No se ha seleccionado ninguna libreta.","No notebook has been specified.":"Ninguna libreta fue especificada","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Cancelando sincronización de segundo plano... Por favor espere.","No such command: %s":"El comando no existe: %s","The command \"%s\" is only available in GUI mode":"El comando «%s» solamente está disponible en modo GUI","Cannot change encrypted item":"No se puede cambiar el elemento cifrado","Missing required argument: %s":"Falta un argumento requerido: %s","%s: %s":"%s: %s","Your choice: ":"Su elección: ","Invalid answer: %s":"Respuesta inválida: %s","Attaches the given file to the note.":"Adjuntar archivo a la nota.","Cannot find \"%s\".":"No se encuentra \"%s\".","Displays the given note.":"Mostrar la nota dada.","Displays the complete information about note.":"Mostrar la información completa acerca de la nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtener o configurar un valor. Si no se provee el [valor], se mostrará el valor de [nombre]. Si no se provee [nombre] ni [valor], se listará la configuración actual.","Also displays unset and hidden config variables.":"También muestra variables ocultas o no configuradas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica las notas que coincidan con en la libreta. Si no se especifica una libreta la nota se duplica en la libreta actual.","Marks a to-do as done.":"Marca una tarea como hecha.","Note is not a to-do: \"%s\"":"La nota no es una tarea: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Maneja la configuración E2EE. Comandos disponibles `enable`, `disable`, `decrypt`, `status` y `target-status`.","Enter master password:":"Introduzca la contraseña maestra:","Operation cancelled":"Operación cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando descifrado... Por favor espere, puede tardar varios minutos dependiendo de cuanto haya que descifrar.","Completed decryption.":"Descifrado completado.","Enabled":"Habilitado","Disabled":"Deshabilitado","Encryption is: %s":"El cifrado es: %s","Edit note.":"Editar una nota.","No text editor is defined. Please set it using `config editor `":"No hay editor de texto definido. Por favor configure uno usando `config editor `","No active notebook.":"No hay libreta activa.","Note does not exist: \"%s\". Create it?":"La nota no existe: \"%s\". ¿Crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Iniciando la edición de una nota. Cierre el editor para regresar al prompt.","Error opening note in editor: %s":"Error abriendo la nota en el editor: %s","Note has been saved.":"La nota ha sido guardada.","Exits the application.":"Sale de la aplicación.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporta datos de Joplin al directorio indicado. Por defecto, se exportará la base de datos completa incluyendo libretas, notas, etiquetas y recursos.","Destination format: %s":"Formato de destino: %s","Exports only the given note.":"Exporta únicamente la nota indicada.","Exports only the given notebook.":"Exporta únicamente la libreta indicada.","Displays a geolocation URL for the note.":"Muestra la URL de la geolocalización de la nota.","Displays usage information.":"Muestra información de uso.","For information on how to customise the shortcuts please visit %s":"Para información de cómo personalizar los atajos por favor visite %s","Shortcuts are not available in CLI mode.":"Atajos no disponibles en modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Escriba `help [command]` para obtener más información sobre el comando, o escriba `help all` para obtener toda la información acerca del uso del programa.","The possible commands are:":"Los posibles comandos son:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Con cualquier comando, una nota o libreta puede ser referida por su título o ID, o utilizando atajos `$n` o `$b`, respectivamente, para la nota o libreta seleccionada. Se puede utilizar `$c` para hacer referencia al elemento seleccionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover desde un panel a otro, presione Tabulador o Mayúsuclas+Tabulador.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Para desplazar en las listas y areas de texto (incluyendo la consola) utilice las flechas y re pág/av pág.","To maximise/minimise the console, press \"TC\".":"Para maximizar/minimizar la consola, presione \"TC\".","To enter command line mode, press \":\"":"Para entrar a modo línea de comando, presione \":\"","To exit command line mode, press ESCAPE":"Para salir de modo línea de comando, presione ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Para una lista de los atajos de teclado disponibles, escriba `help keymap`","Imports data into Joplin.":"Importa los datos en Joplin.","Source format: %s":"Formato de origen: %s","Do not ask for confirmation.":"No requiere confirmación.","Found: %d.":"Encontrado: %d.","Created: %d.":"Creado: %d.","Updated: %d.":"Actualizado: %d.","Skipped: %d.":"Omitido: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Etiquetado: %d.","Importing notes...":"Importando notas...","The notes have been imported: %s":"Las notas han sido importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Muestra las notas en la libreta actual. Usa `ls /` para mostrar la lista de libretas.","Displays only the first top notes.":"Muestra las primeras notas.","Sorts the item by (eg. title, updated_time, created_time).":"Ordena los elementos por campo ( ej. title, updated_time, created_time).","Reverses the sorting order.":"Invierte el orden.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Muestra únicamente los elementos de los tipos especificados. Pueden ser `n` para notas, `t` para tareas, o `nt` para libretas y tareas (ej. `-tt` mostrará unicamente las tareas, mientras `-ttd` mostrará notas y tareas).","Either \"text\" or \"json\"":"Puede ser \"text\" o \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usar formato largo de lista. El formato es ID, NOTE_COUNT ( para libretas), DATE,TODO_CHECKED ( para tareas), TITLE","Please select a notebook first.":"Por favor seleccione la libreta.","Creates a new notebook.":"Crea una nueva libreta.","Creates a new note.":"Crea una nueva nota.","Notes can only be created within a notebook.":"Notas solamente pueden ser creadas dentro de una libreta.","Creates a new to-do.":"Crea una nueva lista de tareas.","Moves the notes matching to [notebook].":"Mueve las notas que coincidan con a la [libreta].","Renames the given (note or notebook) to .":"Renombra el elemento dado (nota o libreta) a .","Deletes the given notebook.":"Elimina la libreta dada.","Deletes the notebook without asking for confirmation.":"Elimina una libreta sin pedir confirmación.","Delete notebook? All notes within this notebook will also be deleted.":"¿Desea eliminar la libreta? Todas las notas dentro de esta libreta también serán eliminadas.","Deletes the notes matching .":"Elimina las notas que coinciden con .","Deletes the notes without asking for confirmation.":"Elimina las notas sin pedir confirmación.","%d notes match this pattern. Delete them?":"%d notas coinciden con el patrón. ¿Eliminarlas?","Delete note?":"¿Eliminar nota?","Searches for the given in all the notes.":"Buscar el patrón en todas las notas.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Asigna el valor [value] a la propiedad de la nota indicada . Propiedades disponibles:\n\n%s","Displays summary about the notes and notebooks.":"Muestra un resumen acerca de las notas y las libretas.","Synchronises with remote storage.":"Sincroniza con el almacenamiento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincroniza con el destino indicado (por defecto al valor de configuración sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticación no completada (no se recibió token de autenticación).","Not authentified with %s. Please provide any missing credentials.":"No autenticado con %s. Por favor provea las credenciales.","Synchronisation is already in progress.":"Sincronzación en progreso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ya hay un archivo de bloqueo. Si está seguro de que no hay una sincronización en curso puede eliminar el archivo de bloqueo «%s» y reanudar la operación.","Synchronisation target: %s (%s)":"Destino de la sincronización: %s (%s)","Cannot initialize synchroniser.":"No se puede inicializar sincronizador.","Starting synchronisation...":"Iniciando sincronización...","Cancelling... Please wait.":"Cancelando... Por favor espere."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" puede ser \"add\", \"remove\" o \"list\" para asignar o eliminar [tag] de [note], o para listar las notas asociadas con [tag]. El comando `tag list` puede ser usado para listar todas las etiquetas.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" puede ser \"toggle\" o \"clear\". Usa \"toggle\" para cambiar la tarea dada entre estado completado y sin completar. (Si el objetivo es una nota regular se convertirá en una tarea). Usa \"clear\" para convertir la tarea a una nota regular.","Marks a to-do as non-completed.":"Marca una tarea como no completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Cambia una [libreta] - todas las demás operaciones se realizan en ésta libreta.","Displays version information":"Muestra información de la versión","%s %s (%s)":"%s %s (%s)","Enum":"Enumeración","Type: %s.":"Tipo: %s.","Possible values: %s.":"Posibles valores: %s.","Default: %s":"Por defecto: %s","Possible keys/values:":"Claves/valores posbiles:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Error fatal:","The application has been authorised - you may now close this browser tab.":"La aplicación ha sido autorizada - ahora puede cerrar esta pestaña de su navegador.","The application has been successfully authorised.":"La aplicacion ha sido autorizada éxitosamente.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra la siguiente URL en su navegador para autenticar la aplicación. La aplicación creará un directorio en «Apps/Joplin» y solo leerá y escribirá archivos en ese directorio. No tendrá acceso a ningún archivo fuera de ese directorio ni a ningún otro archivo personal. No se compartirá información con terceros.","Search:":"Buscar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenido a Joplin.\n\nEscriba «:help shortcuts» para obtener una lista con los atajos de teclado, o simplemente «:help» para información general.\n\nPor ejemplo, para crear una libreta escriba «mb», para crear una nota escriba «mn».","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Uno o más elementos están cifrados y debe proporcionar la contraseña maestra. Para hacerlo por favor escriba `e2ee decrypt`. Si ya ha proporcionado la contraseña, los elementos están siendo descifrados en segundo plano y estarán disponibles en breve.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportando el formato de \"%s\" a \"%s\". Por favor espere...","File":"Archivo","Directory":"Directorio","Importing from \"%s\" as \"%s\" format. Please wait...":"Importando el formato de \"%s\" a \"%s\". Por favor espere...","New note":"Nueva nota","New to-do":"Nueva lista de tareas","New notebook":"Nueva libreta","Import":"Importar","Export":"Exportar","Hide %s":"Oculta %s","Quit":"Salir","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Pegar","Search in all the notes":"Buscar en todas las notas","View":"Ver","Toggle editor layout":"Cambia el diseño del editor","Tools":"Herramientas","Synchronisation status":"Estado de la sincronización","Encryption options":"Opciones de cifrado","General Options":"Opciones generales","Help":"Ayuda","Website and documentation":"Sitio web y documentación","Make a donation":"Make a donation","Check for updates...":"Comprobar actualizaciones...","About Joplin":"Acerca de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Abrir %s","Exit":"Salir","OK":"OK","Cancel":"Cancelar","Release notes:\n\n%s":"Notas de la versión:\n\n%s","An update is available, do you want to download it now?":"Hay disponible una actualización. ¿Quiere descargarla ahora?","Yes":"Sí","No":"No","Current version is up-to-date.":"La versión actual está actualizada.","Check synchronisation configuration":"Comprobar sincronización","Notes and settings are stored in: %s":"Las notas y los ajustes se guardan en: %s","Save":"Guardar","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Deshabilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán descifrados al destino. ¿Desea continuar?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Habilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán cifrados al destino. No pierda la contraseña, por cuestiones de seguridad, ¡es la *única* forma de descifrar los datos! Para habilitar el cifrado, por favor introduzca su contraseña más abajo.","Disable encryption":"Deshabilitar cifrado","Enable encryption":"Habilitar cifrado","Master Keys":"Clave maestra","Active":"Activo","ID":"ID","Source":"Origen","Created":"Creado","Updated":"Actualizado","Password":"Contraseña","Password OK":"Contraseña OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Nota: Solo una clave maestra va a ser utilizar para el cifrado (la marcada como \"activa\"). Cualquiera de las claves puede ser utilizada para descifrar, dependiendo de como fueron cifradas originalmente las notas o las libretas.","Missing Master Keys":"No se encuentra la clave maestra","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"La clave maestra con estos ID son utilizadas para descifrar algunos de tus elementos, pero la apliación no tiene acceso a ellas. Serán descargadas a través de la sincronización.","Status":"Estado","Encryption is:":"El cifrado está:","Back":"Atrás","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Se creará la nueva libreta «%s» y se importará en ella el archivo «%s»","Please create a notebook first.":"Por favor cree una libreta primero.","Please create a notebook first":"Por favor cree una libreta primero","Notebook title:":"Título de libreta:","Add or remove tags:":"Agregar o borrar etiquetas: ","Separate each tag by a comma.":"Separar cada etiqueta por una coma.","Rename notebook:":"Renombrar libreta:","Set alarm:":"Ajustar alarma:","Search":"Buscar","Layout":"Diseño","Some items cannot be synchronised.":"No se han podido sincronizar algunos de los elementos.","View them now":"Verlos ahora","Some items cannot be decrypted.":"No se han podido descifrar algunos elementos.","Set the password":"Establecer la contraseña","Add or remove tags":"Añadir o borrar etiquetas","Switch between note and to-do type":"Cambiar entre nota y lista de tareas","Delete":"Eliminar","Delete notes?":"¿Desea eliminar notas?","No notes in here. Create one by clicking on \"New note\".":"No hay ninguna nota. Cree una pulsando «Nota nueva».","There is currently no notebook. Create one by clicking on \"New notebook\".":"No hay ninguna libreta. Cree una pulsando en «Libreta nueva».","Open...":"Abrir...","Save as...":"Guardar como...","Unsupported link or message: %s":"Enlace o mensaje no soportado: %s","Attach file":"Adjuntar archivo","Tags":"Etiquetas","Set alarm":"Establecer alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota no tiene contenido. Pulse en \"%s\" para cambiar al editor y editar la nota.","to-do":"lista de tareas","note":"nota","Creating new %s...":"Creando nuevo %s...","Refresh":"Refrescar","Clear":"Limpiar","OneDrive Login":"Inicio de sesión de OneDrive","Options":"Opciones","Synchronisation Status":"Estado de la sincronización","Encryption Options":"Opciones de cifrado","Remove this tag from all the notes?":"¿Desea eliminar esta etiqueta de todas las notas?","Remove this search from the sidebar?":"¿Desea eliminar esta búsqueda de la barra lateral?","Rename":"Renombrar","Synchronise":"Sincronizar","Notebooks":"Libretas","Searches":"Búsquedas","Please select where the sync status should be exported to":"Seleccione a dónde se debería exportar el estado de sincronización","Usage: %s":"Uso: %s","Unknown flag: %s":"Etiqueta desconocida: %s","File system":"Sistema de archivos","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Solo para pruebas)","WebDAV":"WebDAV","Unknown log level: %s":"Nivel de log desconocido: %s","Unknown level ID: %s":"ID de nivel desconocido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"No se ha podido actualizar token: faltan datos de autenticación. Reiniciar la sincronización podría solucionar el problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"No se ha podido sincronizar con OneDrive.\n\nEste error suele ocurrir al utilizar OneDrive for Business. Este producto no está soportado.\n\nPodría considerar utilizar una cuenta Personal de OneDrive.","Cannot access %s":"No se ha podido acceder a %s","Created local items: %d.":"Elementos locales creados: %d.","Updated local items: %d.":"Elementos locales actualizados: %d.","Created remote items: %d.":"Elementos remotos creados: %d.","Updated remote items: %d.":"Elementos remotos actualizados: %d.","Deleted local items: %d.":"Elementos locales borrados: %d.","Deleted remote items: %d.":"Elementos remotos borrados: %d.","Fetched items: %d/%d.":"Elementos obtenidos: %d/%d.","State: \"%s\".":"Estado: «%s».","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Synchronisation is already in progress. State: %s":"La sincronización ya está en progreso. Estado: %s","Encrypted":"Cifrado","Encrypted items cannot be modified":"Los elementos cifrados no pueden ser modificados","Conflicts":"Conflictos","A notebook with this title already exists: \"%s\"":"Ya existe una libreta con este nombre: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"No se puede usar el nombre «%s» para una libreta; es un título reservado.","Untitled":"Sin título","This note does not have geolocation information.":"Esta nota no tiene informacion de geolocalización.","Cannot copy note to \"%s\" notebook":"No se ha podido copiar la nota a la libreta «%s»","Cannot move note to \"%s\" notebook":"No se ha podido mover la nota a la libreta «%s»","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"El editor que se usará para abrir una nota. Se intentará auto-detectar el editor predeterminado si no se proporciona ninguno.","Language":"Idioma","Date format":"Formato de fecha","Time format":"Formato de hora","Theme":"Tema","Light":"Claro","Dark":"Oscuro","Uncompleted to-dos on top":"Mostrar tareas incompletas al inicio de las listas","Sort notes by":"Ordenar notas por","Reverse sort order":"Invierte el orden","Save geo-location with notes":"Guardar geolocalización en las notas","When creating a new to-do:":"Al crear una nueva lista de tareas:","Focus title":"Foco en el título","Focus body":"Foco en el cuerpo","When creating a new note:":"Cuando se crear una nota nueva:","Show tray icon":"Mostrar icono en la bandeja","Global zoom percentage":"Establecer el porcentaje de aumento de la aplicación","Editor font family":"Fuente del editor","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"El nombre de la fuente no se comprobado. Si es incorrecto o está vacío, se utilizará una fuente genérica monoespaciada.","Automatically update the application":"Actualizar la aplicación automáticamente","Synchronisation interval":"Intervalo de sincronización","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opciones avanzadas","Synchronisation target":"Destino de sincronización","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"El destino de la sincronización. Cada destino de la sincronización puede tener parámetros adicionales los cuales son llamados como `sync.NUM.NAME` (todos abajo documentados).","Directory to synchronise with (absolute path)":"Directorio con el que sincronizarse (ruta completa)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"La ruta a la que sincronizar cuando se activa la sincronización con sistema de archivos. Vea «sync.target».","Nextcloud WebDAV URL":"Servidor WebDAV de Nextcloud","Nextcloud username":"Usuario de Nextcloud","Nextcloud password":"Contraseña de Nextcloud","WebDAV URL":"Servidor WebDAV","WebDAV username":"Usuario de WebDAV","WebDAV password":"Contraseña de WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Opción inválida: «%s». Los valores posibles son: %s.","Joplin Export File":"Archivo de exportación de Joplin","Markdown":"Markdown","Joplin Export Directory":"Directorio para exportar de Joplin","Evernote Export File":"Archivo exportado de Evernote","Cannot load \"%s\" module for format \"%s\"":"No se puede cargar el módulo \"%s\" para el formato \"%s\"","Please specify import format for %s":"Por favor especifique el formato para importar de %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"El elemento se encuentra cifrado: %s \"%s\". Por favor espere a que todos los elementos estén descifrados y pruebe de nuevo.","There is no data to export.":"No hay datos para exportar.","Please specify the notebook where the notes should be imported to.":"Por favor especifique la libreta donde las notas deben ser importadas.","Items that cannot be synchronised":"Elementos que no se pueden sincronizar","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Estos elementos se mantendrán en el dispositivo pero no serán enviados al destino de sincronización. Para encontrar dichos elementos busca en el título o en el ID (el cual se muestra arriba entre corchetes).","Sync status (synced items / total items)":"Estado de sincronización (elementos sincronizados/elementos totales)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Conflictos: %d","To delete: %d":"Borrar: %d","Folders":"Carpetas","%s: %d notes":"%s: %d notas","Coming alarms":"Alarmas próximas","On %s: %s":"En %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"No hay notas. Cree una pulsando en el botón (+).","Delete these notes?":"¿Desea borrar estas notas?","Log":"Log","Export Debug Report":"Exportar informe de depuración","Encryption Config":"Configuración de cifrado","Configuration":"Configuración","Move to notebook...":"Mover a la libreta...","Move %d notes to notebook \"%s\"?":"¿Desea mover %d notas a libreta «%s»?","Press to set the decryption password.":"Presione para establecer la contraseña de descifrado.","Select date":"Seleccione fecha","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronización","Joplin website":"","Master Key %s":"Clave maestra %s","Created: %s":"Creado: %s","Password:":"Contraseña:","Password cannot be empty":"La contraseña no puede estar vacía","Enable":"Habilitado","The notebook could not be saved: %s":"No se ha podido guardar esta libreta: %s","Edit notebook":"Editar libreta","Show all":"Mostrar todo","Errors only":"Solo errores","This note has been modified:":"Esta nota ha sido modificada:","Save changes":"Guardar cambios","Discard changes":"Descartar cambios","Unsupported image type: %s":"Tipo de imagen no soportado: %s","Attach photo":"Adjuntar foto","Attach any file":"Adjuntar cualquier archivo","Convert to note":"Convertir a nota","Convert to todo":"Convertir a lista de tareas","Hide metadata":"Ocultar metadatos","Show metadata":"Mostrar metadatos","View on map":"Ver en un mapa","Delete notebook":"Borrar libreta","Login with OneDrive":"Acceder con OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Pulse en el botón (+) para crear una nueva nota o libreta. Pulse en el menú lateral para acceder a las libretas existentes.","You currently have no notebook. Create one by clicking on (+) button.":"No hay ninguna libreta. Cree una nueva libreta pulsando en el botón (+).","Welcome":"Bienvenido"} \ No newline at end of file diff --git a/ReactNativeClient/locales/eu.json b/ReactNativeClient/locales/eu.json index 96a2df09c7..6f9ede9d6c 100644 --- a/ReactNativeClient/locales/eu.json +++ b/ReactNativeClient/locales/eu.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Etiketa ezabatzeko, kendu etiketa duten oharrei","Please select the note or notebook to be deleted first.":"Aurretik aukeratu ezabatzeko oharra edo koadernoa, mesedez.","Press Ctrl+D or type \"exit\" to exit the application":"Sakatu Ktrl+D edo idatzi \"exit\" aplikaziotik irteteko","More than one item match \"%s\". Please narrow down your query.":"Elementu bat baino gehiago bat dator \"%s\" bilaketarekin. Mugatu zure bilaketa, mesedez.","No notebook selected.":"Ez dago koadernorik aukeratuta","No notebook has been specified.":"Ez dago koadernorik aukeratuta.","Y":"B","n":"e","N":"E","y":"b","Cancelling background synchronisation... Please wait.":"Atzeko sinkronizazioa uzten... Mesedez itxaron.","No such command: %s":"Ez dago komandorik: %s","The command \"%s\" is only available in GUI mode":"\"%s\" komandoa soilik eskuragarri GUI moduan","Cannot change encrypted item":"Ezinezkoa zifratutako itema aldatzea","Missing required argument: %s":"Beharrezko argumentua faltan: %s","%s: %s":"%s: %s","Your choice: ":"Zure aukera:","Invalid answer: %s":"Erantzun baliogabea: %s","Attaches the given file to the note.":"Erantsi fitxategia notan","Cannot find \"%s\".":"Ezin aurkitu \"%s\"","Displays the given note.":"Oharra erakutsi","Displays the complete information about note.":"Erakutsi oharrari buruzko informazio guztia.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Konfigurazio balioa hartu edo ezartzen du. Baldin eta [balioa] ez bada ematen, [izena]ren balioa erakutsiko du. Ez bada ematen [izena] ez [balioa], oraingo konfigurazioaren zerrenda erakutsiko da.","Also displays unset and hidden config variables.":"Ezkutuko edo zehaztu gabeko konfigurazio aldagaiak ere erakusten ditu.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"rekin bat datozen oharrak [koaderno]ra kopiatzen ditu. Koadernorik ez bada zehazten, oharra oraingo koadernoan bikoiztuko da","Marks a to-do as done.":"Markatu zeregina egindakotzat.","Note is not a to-do: \"%s\"":"Oharra ez da zeregina: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"E2EEren konfigurazioa erabiltzen du. Komandoak dira `enable`, `disable`, `decrypt`, `status` eta `target-status`.","Enter master password:":"Sartu pasahitz nagusia:","Operation cancelled":" Eragiketa utzita","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Deszifratzearen hasiera... Mesedez itxaron, prozesua luzea izan daiteke, zenbat dagoen prozesatzeko.","Completed decryption.":"Deszifratuta.","Enabled":"Gaituta","Disabled":"Desgaituta","Encryption is: %s":"Zifratzea da: %s","Edit note.":"Oharra editatu.","No text editor is defined. Please set it using `config editor `":"Testu editorerik ez dago definituta. Egin hau erabilita, mesedez: `config editor `","No active notebook.":"Ez dago koadernorik aukeratuta.","Note does not exist: \"%s\". Create it?":"Ez dago oharrik: \"%s\". Sortu?","Starting to edit note. Close the editor to get back to the prompt.":"Oharra editatzearen hasiera. Itxi editorea prompt-era bueltatzeko.","Error opening note in editor: %s":"Errorea editorean oharra zabaltzean: %s","Note has been saved.":"Oharra gorde da.","Exits the application.":"Irten aplikaziotik.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Esportatu emandako oharra soilik.","Exports only the given notebook.":"Esportatu emandako koadernoa soilik.","Displays a geolocation URL for the note.":"Erakutsi URL geolokalizazioa oharrean.","Displays usage information.":"Erakutsi erabilera datuak.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"CLI moduan ez dago lasterbiderik erabilgarri.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Idatzi `help [command]` komandoari buruzko informazio gehiagorako; edo idatzi `help all` erabilerari buruzko informazio osoa lortzeko.","The possible commands are:":"Litezkeen komandoak hauek dira:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Edozein komandotan, oharra edo koadernoari erreferentzia egin ahal zaio izenburuz edo ID erabilita, edo `$n` edo `$b` lasterbideak erabilita, aukeratuta dagoen oharra edo koadernoa erabiltzeko. `$c` ere erabil daiteke aukeratutako elementua erabiltzeko.","To move from one pane to another, press Tab or Shift+Tab.":"Panel batetik bestera mugitzeko, sakatu Tab edo Shifft + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Erabili geziak edo page up/down list eta testu guneen artean aldatzeko (kontsola hau ere kontuan izanda).","To maximise/minimise the console, press \"TC\".":"Kontsola maximizatu edo minimizatzeko, saka \"TC\" .","To enter command line mode, press \":\"":"Komando lerroa sartzeko, idatzi \":\"","To exit command line mode, press ESCAPE":"Komando lerrotik irteteko, sakatu ESC, mesedez","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Ez galdetu berresteko.","Found: %d.":"Aurkitua: %d","Created: %d.":"Sortuta: %d.","Updated: %d.":"Eguneratuta: %d.","Skipped: %d.":"Saltatuta: %d.","Resources: %d.":"Baliabideak: %d.","Tagged: %d.":"Etiketatuta: %d.","Importing notes...":"Oharrak inportatzen...","The notes have been imported: %s":"Oharrak inportatu dira: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Oraingo koadernoko oharrak erakusten ditu. Erabili `ls /` koadernoen zerrenda erakusteko.","Displays only the first top notes.":"Erakusten ditu soilik gorengo oharrak.","Sorts the item by (eg. title, updated_time, created_time).":"Itemak antolatzen ditu arabera (esate baterako, izenburua, eguneratze_unea, sortze_unea).","Reverses the sorting order.":"Alderantziz antolatzen du.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Zehaztutako item motak baino ez du erakusten. Izan daiteke `n` oharretarako, `t` zereginetarako, edo `nt` ohar eta zereginetarako (esate batrako, `-tt` zereginak erakutsiko ditu soilik, `-ttd` berriz zereginak eta oharrak.","Either \"text\" or \"json\"":"Either \"text\" or \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Zerrenda luzearen formatua erabili. Formatua hau da, ID, NOTE_COUNT (libururako), DATE, TODO_CHECKED (zereginetarako), TITLE","Please select a notebook first.":"Aurretik aukeratu formatua, mesedez.","Creates a new notebook.":"Koaderno berria sortzen du.","Creates a new note.":"Ohar berria sortzen du.","Notes can only be created within a notebook.":"Oharrak soilik sor daitezke koaderno baten barruan.","Creates a new to-do.":"Zeregin berria sortu.","Moves the notes matching to [notebook].":"Oharrak eramaten ditu bilatuta [notebook]era.","Renames the given (note or notebook) to .":"Ber izendatu emandako (oharra edo koadernoa) izen berriaz.","Deletes the given notebook.":"Ezabatu emandako koadernoak.","Deletes the notebook without asking for confirmation.":"Ezabatu koadernoak berrespenik gabe.","Delete notebook? All notes within this notebook will also be deleted.":"Koadernoa ezabatu? Dituen ohar guztiak ere ezabatuko dira.","Deletes the notes matching .":"Ezabatu bat datozen oharrak: .","Deletes the notes without asking for confirmation.":"Ezabatu oharrak berrespenik eskatu gabe.","%d notes match this pattern. Delete them?":"%d oharrak bat datoz ereduarekin. Ezabatu nahi dituzu?","Delete note?":"Oharra ezabatu?","Searches for the given in all the notes.":"Emandako bilatzen du ohar guztietan.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Emandako ren ezaugarrian emandako [value] balioa ezartzen du. Litezkeen ezaugarriak dira:\n\n%s","Displays summary about the notes and notebooks.":"Oharren eta koadernoen laburpena erakusten du.","Synchronises with remote storage.":"Urruneko biltegiarekin sinkronizatzen du.","Sync to provided target (defaults to sync.target config value)":"Sync to provided target (defaults to sync.target config value)","Authentication was not completed (did not receive an authentication token).":"Autentifikazioa ez da egin osorik (ez du token-ik hartu).","Not authentified with %s. Please provide any missing credentials.":"Ez da autentifikatu %s -rekin. Eman galdutako kredentzialak.","Synchronisation is already in progress.":"Sinkronizazio prozesua dagoeneko abian da.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Giltzatzeko fitxategia dagoeneko eutsita dagoeneko. Baldin eta badakizu ez dena sinkronizaziorik egiten ari, ken dezakezu giltzatzeko fitxategia \"%s\"-n eta berrekin eragiketari.","Synchronisation target: %s (%s)":"Sinkronizazio helburua: %s (%s)","Cannot initialize synchroniser.":"Ezin has daiteke sinkronizazio prozesua.","Starting synchronisation...":"Sinkronizazioa hasten...","Cancelling... Please wait.":"Bertan behera uzten... itxaron, mesedez."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" izan daiteke \"add\", \"remove\" edo \"list\" [oharra]tik [etiketa] esleitu edo kentzeko, edo [etiketa]rekin elkartutako oharrak zerrendatzeko. Etiketa guztiak zerrendatzeko `tag list` komandoa erabil daiteke. ","Invalid command: \"%s\"":"Komando baliogabea: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" erabil daiteke \"txandakatzeko\" edo \"garbitzeko\". Erabili \"txandakatu\", emandako zeregina txandakatzeko bete ala ez-betea txandaketzeko (helburua ohar arrunta bada, zeregin bihurtuko da. Erabili \"garbitu\" zeregina ohar arrunt bilakatzeko.","Marks a to-do as non-completed.":"Markatu zeregina betegabe moduan.","Switches to [notebook] - all further operations will happen within this notebook.":"Aldatu [koaderno]ra - hurrengo eragiketak koaderno horretan jazoko dira.","Displays version information":"Erakutsi bertsioko informazioa","%s %s (%s)":"%s %s (%s)","Enum":"Zenbakitu","Type: %s.":"Idatz: %s.","Possible values: %s.":"Litezkeen balioak: %s.","Default: %s":"Lehenetsia: %s","Possible keys/values:":"Litezkeen balioak:","Fatal error:":"Aio! Agur! :_( ","The application has been authorised - you may now close this browser tab.":"Aplikazioak baimena hartu du - Orain fitxa hau zarratu dezakezu.","The application has been successfully authorised.":"Aplikazioak baimena hartu du.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.","Search:":"Bilatu:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Ongi etorri Joplin-era!\n\nIdatz `:help shortcuts` lasterbideak ikusteko, edo soilik `:help`erabilerako informaziorako.\n\nEsate baterako, koadernoa sortzeko sakatu `mb`: oharra sortzeko sakatu `mn`","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Item bat edo gehiago orain zifratuta daude eta baliteke zuk pasahitz nagusia ordezkatu behar izatea. Horixe egiteko, mesedez, idatz `e2ee decrypt`. Dagoeneko pasahitza ordezkatua baduzu, itemak deszifratzen ari izango dira atzeko planoan eta laster izango dira eskuragarri.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Fitxategia","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Ohar berria","New to-do":"Zeregin berria","New notebook":"Koaderno berria","Import":"Inportatu","Export":"Export","Hide %s":"","Quit":"Irten","Edit":"Editatu","Copy":"Kopiatu","Cut":"Moztu","Paste":"Itsatsi","Search in all the notes":"Bilatu ohar guztietan","View":"","Toggle editor layout":"","Tools":"Tresnak","Synchronisation status":"Sinkronizazioaren egoera","Encryption options":"Zifratzeko aukerak","General Options":"Ezarpenak","Help":"Laguntza","Website and documentation":"Web orria eta dokumentazioa (en)","Check for updates...":"","About Joplin":"Joplin-i buruz","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Utzi","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Oharrak eta ezarpenak hemen daude gordeta: %s","Save":"Gorde","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Zifratua desgaitzeak esan nahi du zure ohar eta eranskin *guztiak* berriro deszifratuta sinkronizatuko eta bidaliko direla sinkronizazio helburura. Segitu nahi duzu?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Zifratua gaitzeak esan nahi du zure ohar eta eranskin *guztiak* zifratuta sinkronizatuko eta bidaliko direla sinkronizazio helburura. Ez galdu pasahitza, bera izango baita datuak deszifratzeko bide *bakarra*! Zifratua baimentzeko, mesedez, aurretik sartu zure pasahitza.","Disable encryption":"Zifratzea desgaitu","Enable encryption":"Zifratua gaitu","Master Keys":"Pasahitz nagusia","Active":"Aktibo","ID":"ID","Source":"Iturburua","Created":"Sortua","Updated":"Eguneratua","Password":"Pasahitza","Password OK":"Pasahitza ondo","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Egoera","Encryption is:":"Zifratua da:","Back":"Atzera","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"\"%s\" koaderno berria sortuko da eta \"%s\" Fitxategia inportatuko da bertara","Please create a notebook first.":"Aurretik sortu koadernoa, mesedez.","Please create a notebook first":"Aurretik sortu koadernoa, mesedez","Notebook title:":"Koadernoaren izenburua: ","Add or remove tags:":"Gehitu edo ezabatu etiketak:","Separate each tag by a comma.":"Banatu etiketak koma erabiliaz.","Rename notebook:":"Berrizendatu koadernoa:","Set alarm:":"Ezarri alarma:","Search":"Bilatu","Layout":"Diseinua","Some items cannot be synchronised.":"Zenbait item ezin dira sinkronizatu.","View them now":"Ikusi hori orain","Some items cannot be decrypted.":"Zenbait item ezin dira deszifratu.","Set the password":"Ezarri pasahitza","Add or remove tags":"Gehitu edo ezabatu etiketak","Switch between note and to-do type":"Aldatu oharra eta zeregin eren artean.","Delete":"Ezabatu","Delete notes?":"Oharrak ezabatu?","No notes in here. Create one by clicking on \"New note\".":"Hemen ez dago oharrik. Sortu bat \"Ohar berria\" sakatuta.","There is currently no notebook. Create one by clicking on \"New notebook\".":"Momentuz ez dago koadernorik. Sortu bat \"Koaderno berria\" sakatuta.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Esteka edo mezu ez dago onartua: %s","Attach file":"Erantsi fitxategia","Tags":"Etiketak","Set alarm":"Ezarri alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Refresh","Clear":"Garbitu","OneDrive Login":"Logeatu OneDriven","Options":"Aukerak","Synchronisation Status":"Sinkronizazioaren egoera","Encryption Options":"Zifratzeko aukerak","Remove this tag from all the notes?":"Kendu etiketa hori ohar guztietatik?","Remove this search from the sidebar?":"Kendu bilaketa hori ohar guztietatik?","Rename":"Berrizendatu","Synchronise":"Sinkronizatu","Notebooks":"Koadernoak","Searches":"Bilaketak","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Erabili: %s","Unknown flag: %s":"Marka ezezaguna: %s","File system":"Fitxategi sistema","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (aprobetarako soilik)","WebDAV":"WebDAV","Unknown log level: %s":"Egunkari maila ezezaguna: %s","Unknown level ID: %s":"IDa maila ezezaguna: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Tokena ezin eguneratu daiteke: egiaztatze-datuak desagertuta daude. Agian, berriro sinkronizatzeak arazoa konpon lezake.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.","Cannot access %s":"Ezin atzituta %s","Created local items: %d.":"Item lokalak sortuta: %d.","Updated local items: %d.":"Item lokalak eguneratuta: %d.","Created remote items: %d.":"Urruneko itemak sortuta: %d.","Updated remote items: %d.":"Urruneko itemak eguneratuta: %d.","Deleted local items: %d.":"Item lokala ezabatuta: %d.","Deleted remote items: %d.":"Urruneko itemak ezabatuta: %d.","Fetched items: %d/%d.":"Itemak eskuratuta: %d%d.","State: \"%s\".":"Egoera: \"%s\".","Cancelling...":"Bertan behera uzten...","Completed: %s":"Osatuta: %s","Synchronisation is already in progress. State: %s":"Sinkronizazioa hasita dago. Egoera: %s","Encrypted":"Zifratuta","Encrypted items cannot be modified":"Zifratutako itemak ezin aldatu daitezke","Conflicts":"Gatazkak","A notebook with this title already exists: \"%s\"":"Dagoeneko bada koaderno bat izen horrekin: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Koadernoak ezin izendatu daitezke \"%s\", izen hori Joplinek gordeta dauka","Untitled":"Titulu gabekoa","This note does not have geolocation information.":"Ohar honek ez du geokokapen informaziorik.","Cannot copy note to \"%s\" notebook":"Ezin kopia daiteke oharra \"%s\" koadernora","Cannot move note to \"%s\" notebook":"Ezin eraman daiteke oharra \"%s\" koadernora","Text editor":"Testu editorea","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Editorea erabiliko da oharra zabaltzeko. Ez badago zehaztutakorik lehenetsia igartzen ahaleginduko da.","Language":"Hizkuntza","Date format":"Data-formatua","Time format":"Ordu formatua","Theme":"Gaia","Light":"Argia","Dark":"Iluna","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Gore geokokapena oharrekin","When creating a new to-do:":"When creating a new to-do:","Focus title":"","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Automatikoki eguneratu aplikazioa","Synchronisation interval":"Sinkronizazio tartea","%d minutes":"%d minutuak","%d hour":"% ordua","%d hours":"% orduak","Show advanced options":"Erakutsi aukera aurreratuak","Synchronisation target":"Sinkronizazio helbudua","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Sinkronizazio helburua. Sinkronizazio aukera bakoitzak izan ditzake parametro gehigarriak, horrela izendatuta `sync.NUM.NAME` (dena beherago dokumentatuta).","Directory to synchronise with (absolute path)":"Sinkronizatzeko direktorioa (bide-izena osorik)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Sinkronizazio sistema gaituta dagoenerako bide-izena. Ikus `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Nextcloud erabiltzaile-izena","Nextcloud password":"Nextcloud pasahitza","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV username","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Balio aukera baliogabea: \"%s\". Litezkeen balioak: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Itemok ezin sinkronizatu","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Itemok gailuan geratuko dira baina ez dira sinkronizatuko. Horiek aurkitzeko bilaketak egin titulu edo goiko parentesien arteko IDaren arabera.","Sync status (synced items / total items)":"Sinkronizazio egoera (sinkronizatutako itemak/itemak guztira)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Denera: %d/%d","Conflicted: %d":"Gatazkatsua: %d","To delete: %d":"Ezabatzeko: %d","Folders":"Karpetak","%s: %d notes":"%s: %d oharrak","Coming alarms":"Hurrengo alarmak","On %s: %s":"On %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Ez dago oharrik. Sortu bat (+) botoian klik eginaz.","Delete these notes?":"Oharrok ezabatu?","Log":"Egunkaria","Export Debug Report":"Esportatu arazketa txostena","Encryption Config":"Zifratze Ezarpenak","Configuration":"Konfigurazioa","Move to notebook...":"Mugitu ... koadernora","Move %d notes to notebook \"%s\"?":"Mugitu %d oharrak \"%s\" koadernora?","Press to set the decryption password.":"Sakatu deszifratze pasahitza ezartzeko.","Select date":"Data aukeratu","Confirm":"Baieztatu","Cancel synchronisation":"Sinkronizazioa utzi","Master Key %s":"Pasahitz Nagusia %s","Created: %s":"Sortuta: %s","Password:":"Pasahitza:","Password cannot be empty":"Pasahitza ezin utz daiteke hutsik","Enable":"Gaituta","The notebook could not be saved: %s":"Koadernoa ezin gorde daiteke: %s","Edit notebook":"Editatu koadernoa","Show all":"","Errors only":"","This note has been modified:":"Ohar hau mugitua izan da:","Save changes":"Gorde aldaketak","Discard changes":"Bertan behera utzi aldaketak","Unsupported image type: %s":"Irudi formatua ez onartua: %s","Attach photo":"Argazkia erantsi","Attach any file":"Erantsi fitxategiren bat","Convert to note":"Oharra bihurtu","Convert to todo":"Zeregina bihurtu","Hide metadata":"Ezkutatu metadatuak","Show metadata":"Erakutsi metadatuak","View on map":"Ikusi mapan","Delete notebook":"Ezabatu koadernoa","Login with OneDrive":"Login with OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Sakatu (+) botoian ohar edo koaderno berria sortzeko. Klik alboko menuan dagoeneko badiren koadernoak.","You currently have no notebook. Create one by clicking on (+) button.":"Oraindik ez duzu koadernorik. Sortu bat (+) botoian sakatuta.","Welcome":"Ongi etorri!"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Etiketa ezabatzeko, kendu etiketa duten oharrei","Please select the note or notebook to be deleted first.":"Aurretik aukeratu ezabatzeko oharra edo koadernoa, mesedez.","Press Ctrl+D or type \"exit\" to exit the application":"Sakatu Ktrl+D edo idatzi \"exit\" aplikaziotik irteteko","More than one item match \"%s\". Please narrow down your query.":"Elementu bat baino gehiago bat dator \"%s\" bilaketarekin. Mugatu zure bilaketa, mesedez.","No notebook selected.":"Ez dago koadernorik aukeratuta","No notebook has been specified.":"Ez dago koadernorik aukeratuta.","Y":"B","n":"e","N":"E","y":"b","Cancelling background synchronisation... Please wait.":"Atzeko sinkronizazioa uzten... Mesedez itxaron.","No such command: %s":"Ez dago komandorik: %s","The command \"%s\" is only available in GUI mode":"\"%s\" komandoa soilik eskuragarri GUI moduan","Cannot change encrypted item":"Ezinezkoa zifratutako itema aldatzea","Missing required argument: %s":"Beharrezko argumentua faltan: %s","%s: %s":"%s: %s","Your choice: ":"Zure aukera:","Invalid answer: %s":"Erantzun baliogabea: %s","Attaches the given file to the note.":"Erantsi fitxategia notan","Cannot find \"%s\".":"Ezin aurkitu \"%s\"","Displays the given note.":"Oharra erakutsi","Displays the complete information about note.":"Erakutsi oharrari buruzko informazio guztia.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Konfigurazio balioa hartu edo ezartzen du. Baldin eta [balioa] ez bada ematen, [izena]ren balioa erakutsiko du. Ez bada ematen [izena] ez [balioa], oraingo konfigurazioaren zerrenda erakutsiko da.","Also displays unset and hidden config variables.":"Ezkutuko edo zehaztu gabeko konfigurazio aldagaiak ere erakusten ditu.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"rekin bat datozen oharrak [koaderno]ra kopiatzen ditu. Koadernorik ez bada zehazten, oharra oraingo koadernoan bikoiztuko da","Marks a to-do as done.":"Markatu zeregina egindakotzat.","Note is not a to-do: \"%s\"":"Oharra ez da zeregina: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"E2EEren konfigurazioa erabiltzen du. Komandoak dira `enable`, `disable`, `decrypt`, `status` eta `target-status`.","Enter master password:":"Sartu pasahitz nagusia:","Operation cancelled":" Eragiketa utzita","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Deszifratzearen hasiera... Mesedez itxaron, prozesua luzea izan daiteke, zenbat dagoen prozesatzeko.","Completed decryption.":"Deszifratuta.","Enabled":"Gaituta","Disabled":"Desgaituta","Encryption is: %s":"Zifratzea da: %s","Edit note.":"Oharra editatu.","No text editor is defined. Please set it using `config editor `":"Testu editorerik ez dago definituta. Egin hau erabilita, mesedez: `config editor `","No active notebook.":"Ez dago koadernorik aukeratuta.","Note does not exist: \"%s\". Create it?":"Ez dago oharrik: \"%s\". Sortu?","Starting to edit note. Close the editor to get back to the prompt.":"Oharra editatzearen hasiera. Itxi editorea prompt-era bueltatzeko.","Error opening note in editor: %s":"Errorea editorean oharra zabaltzean: %s","Note has been saved.":"Oharra gorde da.","Exits the application.":"Irten aplikaziotik.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Esportatu emandako oharra soilik.","Exports only the given notebook.":"Esportatu emandako koadernoa soilik.","Displays a geolocation URL for the note.":"Erakutsi URL geolokalizazioa oharrean.","Displays usage information.":"Erakutsi erabilera datuak.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"CLI moduan ez dago lasterbiderik erabilgarri.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Idatzi `help [command]` komandoari buruzko informazio gehiagorako; edo idatzi `help all` erabilerari buruzko informazio osoa lortzeko.","The possible commands are:":"Litezkeen komandoak hauek dira:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Edozein komandotan, oharra edo koadernoari erreferentzia egin ahal zaio izenburuz edo ID erabilita, edo `$n` edo `$b` lasterbideak erabilita, aukeratuta dagoen oharra edo koadernoa erabiltzeko. `$c` ere erabil daiteke aukeratutako elementua erabiltzeko.","To move from one pane to another, press Tab or Shift+Tab.":"Panel batetik bestera mugitzeko, sakatu Tab edo Shifft + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Erabili geziak edo page up/down list eta testu guneen artean aldatzeko (kontsola hau ere kontuan izanda).","To maximise/minimise the console, press \"TC\".":"Kontsola maximizatu edo minimizatzeko, saka \"TC\" .","To enter command line mode, press \":\"":"Komando lerroa sartzeko, idatzi \":\"","To exit command line mode, press ESCAPE":"Komando lerrotik irteteko, sakatu ESC, mesedez","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Ez galdetu berresteko.","Found: %d.":"Aurkitua: %d","Created: %d.":"Sortuta: %d.","Updated: %d.":"Eguneratuta: %d.","Skipped: %d.":"Saltatuta: %d.","Resources: %d.":"Baliabideak: %d.","Tagged: %d.":"Etiketatuta: %d.","Importing notes...":"Oharrak inportatzen...","The notes have been imported: %s":"Oharrak inportatu dira: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Oraingo koadernoko oharrak erakusten ditu. Erabili `ls /` koadernoen zerrenda erakusteko.","Displays only the first top notes.":"Erakusten ditu soilik gorengo oharrak.","Sorts the item by (eg. title, updated_time, created_time).":"Itemak antolatzen ditu arabera (esate baterako, izenburua, eguneratze_unea, sortze_unea).","Reverses the sorting order.":"Alderantziz antolatzen du.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Zehaztutako item motak baino ez du erakusten. Izan daiteke `n` oharretarako, `t` zereginetarako, edo `nt` ohar eta zereginetarako (esate batrako, `-tt` zereginak erakutsiko ditu soilik, `-ttd` berriz zereginak eta oharrak.","Either \"text\" or \"json\"":"Either \"text\" or \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Zerrenda luzearen formatua erabili. Formatua hau da, ID, NOTE_COUNT (libururako), DATE, TODO_CHECKED (zereginetarako), TITLE","Please select a notebook first.":"Aurretik aukeratu formatua, mesedez.","Creates a new notebook.":"Koaderno berria sortzen du.","Creates a new note.":"Ohar berria sortzen du.","Notes can only be created within a notebook.":"Oharrak soilik sor daitezke koaderno baten barruan.","Creates a new to-do.":"Zeregin berria sortu.","Moves the notes matching to [notebook].":"Oharrak eramaten ditu bilatuta [notebook]era.","Renames the given (note or notebook) to .":"Ber izendatu emandako (oharra edo koadernoa) izen berriaz.","Deletes the given notebook.":"Ezabatu emandako koadernoak.","Deletes the notebook without asking for confirmation.":"Ezabatu koadernoak berrespenik gabe.","Delete notebook? All notes within this notebook will also be deleted.":"Koadernoa ezabatu? Dituen ohar guztiak ere ezabatuko dira.","Deletes the notes matching .":"Ezabatu bat datozen oharrak: .","Deletes the notes without asking for confirmation.":"Ezabatu oharrak berrespenik eskatu gabe.","%d notes match this pattern. Delete them?":"%d oharrak bat datoz ereduarekin. Ezabatu nahi dituzu?","Delete note?":"Oharra ezabatu?","Searches for the given in all the notes.":"Emandako bilatzen du ohar guztietan.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Emandako ren ezaugarrian emandako [value] balioa ezartzen du. Litezkeen ezaugarriak dira:\n\n%s","Displays summary about the notes and notebooks.":"Oharren eta koadernoen laburpena erakusten du.","Synchronises with remote storage.":"Urruneko biltegiarekin sinkronizatzen du.","Sync to provided target (defaults to sync.target config value)":"Sync to provided target (defaults to sync.target config value)","Authentication was not completed (did not receive an authentication token).":"Autentifikazioa ez da egin osorik (ez du token-ik hartu).","Not authentified with %s. Please provide any missing credentials.":"Ez da autentifikatu %s -rekin. Eman galdutako kredentzialak.","Synchronisation is already in progress.":"Sinkronizazio prozesua dagoeneko abian da.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Giltzatzeko fitxategia dagoeneko eutsita dagoeneko. Baldin eta badakizu ez dena sinkronizaziorik egiten ari, ken dezakezu giltzatzeko fitxategia \"%s\"-n eta berrekin eragiketari.","Synchronisation target: %s (%s)":"Sinkronizazio helburua: %s (%s)","Cannot initialize synchroniser.":"Ezin has daiteke sinkronizazio prozesua.","Starting synchronisation...":"Sinkronizazioa hasten...","Cancelling... Please wait.":"Bertan behera uzten... itxaron, mesedez."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" izan daiteke \"add\", \"remove\" edo \"list\" [oharra]tik [etiketa] esleitu edo kentzeko, edo [etiketa]rekin elkartutako oharrak zerrendatzeko. Etiketa guztiak zerrendatzeko `tag list` komandoa erabil daiteke. ","Invalid command: \"%s\"":"Komando baliogabea: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" erabil daiteke \"txandakatzeko\" edo \"garbitzeko\". Erabili \"txandakatu\", emandako zeregina txandakatzeko bete ala ez-betea txandaketzeko (helburua ohar arrunta bada, zeregin bihurtuko da. Erabili \"garbitu\" zeregina ohar arrunt bilakatzeko.","Marks a to-do as non-completed.":"Markatu zeregina betegabe moduan.","Switches to [notebook] - all further operations will happen within this notebook.":"Aldatu [koaderno]ra - hurrengo eragiketak koaderno horretan jazoko dira.","Displays version information":"Erakutsi bertsioko informazioa","%s %s (%s)":"%s %s (%s)","Enum":"Zenbakitu","Type: %s.":"Idatz: %s.","Possible values: %s.":"Litezkeen balioak: %s.","Default: %s":"Lehenetsia: %s","Possible keys/values:":"Litezkeen balioak:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Aio! Agur! :_( ","The application has been authorised - you may now close this browser tab.":"Aplikazioak baimena hartu du - Orain fitxa hau zarratu dezakezu.","The application has been successfully authorised.":"Aplikazioak baimena hartu du.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.","Search:":"Bilatu:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Ongi etorri Joplin-era!\n\nIdatz `:help shortcuts` lasterbideak ikusteko, edo soilik `:help`erabilerako informaziorako.\n\nEsate baterako, koadernoa sortzeko sakatu `mb`: oharra sortzeko sakatu `mn`","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Item bat edo gehiago orain zifratuta daude eta baliteke zuk pasahitz nagusia ordezkatu behar izatea. Horixe egiteko, mesedez, idatz `e2ee decrypt`. Dagoeneko pasahitza ordezkatua baduzu, itemak deszifratzen ari izango dira atzeko planoan eta laster izango dira eskuragarri.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Fitxategia","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Ohar berria","New to-do":"Zeregin berria","New notebook":"Koaderno berria","Import":"Inportatu","Export":"Export","Hide %s":"","Quit":"Irten","Edit":"Editatu","Copy":"Kopiatu","Cut":"Moztu","Paste":"Itsatsi","Search in all the notes":"Bilatu ohar guztietan","View":"","Toggle editor layout":"","Tools":"Tresnak","Synchronisation status":"Sinkronizazioaren egoera","Encryption options":"Zifratzeko aukerak","General Options":"Ezarpenak","Help":"Laguntza","Website and documentation":"Web orria eta dokumentazioa (en)","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Joplin-i buruz","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Utzi","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Oharrak eta ezarpenak hemen daude gordeta: %s","Save":"Gorde","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Zifratua desgaitzeak esan nahi du zure ohar eta eranskin *guztiak* berriro deszifratuta sinkronizatuko eta bidaliko direla sinkronizazio helburura. Segitu nahi duzu?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Zifratua gaitzeak esan nahi du zure ohar eta eranskin *guztiak* zifratuta sinkronizatuko eta bidaliko direla sinkronizazio helburura. Ez galdu pasahitza, bera izango baita datuak deszifratzeko bide *bakarra*! Zifratua baimentzeko, mesedez, aurretik sartu zure pasahitza.","Disable encryption":"Zifratzea desgaitu","Enable encryption":"Zifratua gaitu","Master Keys":"Pasahitz nagusia","Active":"Aktibo","ID":"ID","Source":"Iturburua","Created":"Sortua","Updated":"Eguneratua","Password":"Pasahitza","Password OK":"Pasahitza ondo","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Egoera","Encryption is:":"Zifratua da:","Back":"Atzera","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"\"%s\" koaderno berria sortuko da eta \"%s\" Fitxategia inportatuko da bertara","Please create a notebook first.":"Aurretik sortu koadernoa, mesedez.","Please create a notebook first":"Aurretik sortu koadernoa, mesedez","Notebook title:":"Koadernoaren izenburua: ","Add or remove tags:":"Gehitu edo ezabatu etiketak:","Separate each tag by a comma.":"Banatu etiketak koma erabiliaz.","Rename notebook:":"Berrizendatu koadernoa:","Set alarm:":"Ezarri alarma:","Search":"Bilatu","Layout":"Diseinua","Some items cannot be synchronised.":"Zenbait item ezin dira sinkronizatu.","View them now":"Ikusi hori orain","Some items cannot be decrypted.":"Zenbait item ezin dira deszifratu.","Set the password":"Ezarri pasahitza","Add or remove tags":"Gehitu edo ezabatu etiketak","Switch between note and to-do type":"Aldatu oharra eta zeregin eren artean.","Delete":"Ezabatu","Delete notes?":"Oharrak ezabatu?","No notes in here. Create one by clicking on \"New note\".":"Hemen ez dago oharrik. Sortu bat \"Ohar berria\" sakatuta.","There is currently no notebook. Create one by clicking on \"New notebook\".":"Momentuz ez dago koadernorik. Sortu bat \"Koaderno berria\" sakatuta.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Esteka edo mezu ez dago onartua: %s","Attach file":"Erantsi fitxategia","Tags":"Etiketak","Set alarm":"Ezarri alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Refresh","Clear":"Garbitu","OneDrive Login":"Logeatu OneDriven","Options":"Aukerak","Synchronisation Status":"Sinkronizazioaren egoera","Encryption Options":"Zifratzeko aukerak","Remove this tag from all the notes?":"Kendu etiketa hori ohar guztietatik?","Remove this search from the sidebar?":"Kendu bilaketa hori ohar guztietatik?","Rename":"Berrizendatu","Synchronise":"Sinkronizatu","Notebooks":"Koadernoak","Searches":"Bilaketak","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Erabili: %s","Unknown flag: %s":"Marka ezezaguna: %s","File system":"Fitxategi sistema","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (aprobetarako soilik)","WebDAV":"WebDAV","Unknown log level: %s":"Egunkari maila ezezaguna: %s","Unknown level ID: %s":"IDa maila ezezaguna: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Tokena ezin eguneratu daiteke: egiaztatze-datuak desagertuta daude. Agian, berriro sinkronizatzeak arazoa konpon lezake.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.","Cannot access %s":"Ezin atzituta %s","Created local items: %d.":"Item lokalak sortuta: %d.","Updated local items: %d.":"Item lokalak eguneratuta: %d.","Created remote items: %d.":"Urruneko itemak sortuta: %d.","Updated remote items: %d.":"Urruneko itemak eguneratuta: %d.","Deleted local items: %d.":"Item lokala ezabatuta: %d.","Deleted remote items: %d.":"Urruneko itemak ezabatuta: %d.","Fetched items: %d/%d.":"Itemak eskuratuta: %d%d.","State: \"%s\".":"Egoera: \"%s\".","Cancelling...":"Bertan behera uzten...","Completed: %s":"Osatuta: %s","Synchronisation is already in progress. State: %s":"Sinkronizazioa hasita dago. Egoera: %s","Encrypted":"Zifratuta","Encrypted items cannot be modified":"Zifratutako itemak ezin aldatu daitezke","Conflicts":"Gatazkak","A notebook with this title already exists: \"%s\"":"Dagoeneko bada koaderno bat izen horrekin: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Koadernoak ezin izendatu daitezke \"%s\", izen hori Joplinek gordeta dauka","Untitled":"Titulu gabekoa","This note does not have geolocation information.":"Ohar honek ez du geokokapen informaziorik.","Cannot copy note to \"%s\" notebook":"Ezin kopia daiteke oharra \"%s\" koadernora","Cannot move note to \"%s\" notebook":"Ezin eraman daiteke oharra \"%s\" koadernora","Text editor":"Testu editorea","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Editorea erabiliko da oharra zabaltzeko. Ez badago zehaztutakorik lehenetsia igartzen ahaleginduko da.","Language":"Hizkuntza","Date format":"Data-formatua","Time format":"Ordu formatua","Theme":"Gaia","Light":"Argia","Dark":"Iluna","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Gore geokokapena oharrekin","When creating a new to-do:":"When creating a new to-do:","Focus title":"","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Automatikoki eguneratu aplikazioa","Synchronisation interval":"Sinkronizazio tartea","%d minutes":"%d minutuak","%d hour":"% ordua","%d hours":"% orduak","Show advanced options":"Erakutsi aukera aurreratuak","Synchronisation target":"Sinkronizazio helbudua","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Sinkronizazio helburua. Sinkronizazio aukera bakoitzak izan ditzake parametro gehigarriak, horrela izendatuta `sync.NUM.NAME` (dena beherago dokumentatuta).","Directory to synchronise with (absolute path)":"Sinkronizatzeko direktorioa (bide-izena osorik)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Sinkronizazio sistema gaituta dagoenerako bide-izena. Ikus `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Nextcloud erabiltzaile-izena","Nextcloud password":"Nextcloud pasahitza","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV username","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Balio aukera baliogabea: \"%s\". Litezkeen balioak: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Itemok ezin sinkronizatu","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Itemok gailuan geratuko dira baina ez dira sinkronizatuko. Horiek aurkitzeko bilaketak egin titulu edo goiko parentesien arteko IDaren arabera.","Sync status (synced items / total items)":"Sinkronizazio egoera (sinkronizatutako itemak/itemak guztira)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Denera: %d/%d","Conflicted: %d":"Gatazkatsua: %d","To delete: %d":"Ezabatzeko: %d","Folders":"Karpetak","%s: %d notes":"%s: %d oharrak","Coming alarms":"Hurrengo alarmak","On %s: %s":"On %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Ez dago oharrik. Sortu bat (+) botoian klik eginaz.","Delete these notes?":"Oharrok ezabatu?","Log":"Egunkaria","Export Debug Report":"Esportatu arazketa txostena","Encryption Config":"Zifratze Ezarpenak","Configuration":"Konfigurazioa","Move to notebook...":"Mugitu ... koadernora","Move %d notes to notebook \"%s\"?":"Mugitu %d oharrak \"%s\" koadernora?","Press to set the decryption password.":"Sakatu deszifratze pasahitza ezartzeko.","Select date":"Data aukeratu","Confirm":"Baieztatu","Cancel synchronisation":"Sinkronizazioa utzi","Joplin website":"","Master Key %s":"Pasahitz Nagusia %s","Created: %s":"Sortuta: %s","Password:":"Pasahitza:","Password cannot be empty":"Pasahitza ezin utz daiteke hutsik","Enable":"Gaituta","The notebook could not be saved: %s":"Koadernoa ezin gorde daiteke: %s","Edit notebook":"Editatu koadernoa","Show all":"","Errors only":"","This note has been modified:":"Ohar hau mugitua izan da:","Save changes":"Gorde aldaketak","Discard changes":"Bertan behera utzi aldaketak","Unsupported image type: %s":"Irudi formatua ez onartua: %s","Attach photo":"Argazkia erantsi","Attach any file":"Erantsi fitxategiren bat","Convert to note":"Oharra bihurtu","Convert to todo":"Zeregina bihurtu","Hide metadata":"Ezkutatu metadatuak","Show metadata":"Erakutsi metadatuak","View on map":"Ikusi mapan","Delete notebook":"Ezabatu koadernoa","Login with OneDrive":"Login with OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Sakatu (+) botoian ohar edo koaderno berria sortzeko. Klik alboko menuan dagoeneko badiren koadernoak.","You currently have no notebook. Create one by clicking on (+) button.":"Oraindik ez duzu koadernorik. Sortu bat (+) botoian sakatuta.","Welcome":"Ongi etorri!"} \ No newline at end of file diff --git a/ReactNativeClient/locales/fr_FR.json b/ReactNativeClient/locales/fr_FR.json index 6ecc808d82..712f8cc35f 100644 --- a/ReactNativeClient/locales/fr_FR.json +++ b/ReactNativeClient/locales/fr_FR.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Pour supprimer une vignette, enlever là des notes associées.","Please select the note or notebook to be deleted first.":"Veuillez d'abord sélectionner un carnet.","Press Ctrl+D or type \"exit\" to exit the application":"Appuyez sur Ctrl+D ou tapez \"exit\" pour sortir du logiciel","More than one item match \"%s\". Please narrow down your query.":"Plus d'un objet correspond à \"%s\". Veuillez préciser votre requête.","No notebook selected.":"Aucun carnet n'est sélectionné.","No notebook has been specified.":"Aucun carnet n'est spécifié.","Y":"O","n":"n","N":"N","y":"o","Cancelling background synchronisation... Please wait.":"Annulation de la synchronisation... Veuillez patienter.","No such command: %s":"Commande invalide : %s","The command \"%s\" is only available in GUI mode":"La commande \"%s\" est disponible uniquement en mode d'interface graphique","Cannot change encrypted item":"Un objet crypté ne peut pas être modifié","Missing required argument: %s":"Paramètre requis manquant : %s","%s: %s":"%s : %s","Your choice: ":"Votre choix : ","Invalid answer: %s":"Réponse invalide : %s","Attaches the given file to the note.":"Joindre le fichier fourni à la note.","Cannot find \"%s\".":"Impossible de trouver \"%s\".","Displays the given note.":"Affiche la note.","Displays the complete information about note.":"Affiche tous les détails de la note.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtient ou modifie une valeur de configuration. Si la [valeur] n'est pas fournie, la valeur de [nom] sera affichée. Si ni le [nom] ni la [valeur] ne sont fournis, la configuration complète sera affichée.","Also displays unset and hidden config variables.":"Afficher également les variables cachées.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Copier les notes correspondant à vers [carnet]. Si aucun carnet n'est spécifié, la note est dupliquée sur place.","Marks a to-do as done.":"Marquer la tâche comme complétée.","Note is not a to-do: \"%s\"":"La note n'est pas une tâche : \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Gérer la configuration E2EE (Cryptage de bout à bout). Les commandes sont `enable`, `disable`, `decrypt` et `status` et `target-status`.","Enter master password:":"Entrer le mot de passe maître :","Operation cancelled":"Opération annulée","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Démarrage du décryptage... Veuillez patienter car cela pourrait prendre plusieurs minutes selon le nombre d'objets à décrypter.","Completed decryption.":"Décryptage complété.","Enabled":"Activé","Disabled":"Désactivé","Encryption is: %s":"Le cryptage est : %s","Edit note.":"Éditer la note.","No text editor is defined. Please set it using `config editor `":"Aucun éditeur de texte n'est défini. Veuillez le définir en utilisant la commande `config editor `","No active notebook.":"Aucun carnet actif.","Note does not exist: \"%s\". Create it?":"Cette note n'existe pas : \"%s\". La créer ?","Starting to edit note. Close the editor to get back to the prompt.":"Édition de la note en cours. Fermez l'éditeur de texte pour retourner à l'invite de commande.","Error opening note in editor: %s":"Erreur lors de l'ouverture de la note dans l'éditeur de texte : %s","Note has been saved.":"La note a été enregistrée.","Exits the application.":"Quitter le logiciel.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporter les données de Joplin. Par défaut, la base de donnée complète sera exportée, y compris les carnets, notes, tags et ressources.","Destination format: %s":"Format de la destination : %s","Exports only the given note.":"Exporter uniquement la note spécifiée.","Exports only the given notebook.":"Exporter uniquement le carnet spécifié.","Displays a geolocation URL for the note.":"Afficher l'URL de l'emplacement de la note.","Displays usage information.":"Affiche les informations d'utilisation.","For information on how to customise the shortcuts please visit %s":"Pour personnaliser les raccourcis veuillez consulter la documentation à %s","Shortcuts are not available in CLI mode.":"Les raccourcis ne sont pas disponible en mode de ligne de commande.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Tapez `help [command]` pour plus d'information sur une commande ; ou tapez `help all` pour l'aide complète.","The possible commands are:":"Les commandes possibles sont :","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Dans une commande, une note ou carnet peut être référé par titre ou identifiant, ou en utilisant les raccourcis `$n` et `$b` pour, respectivement, la note sélectionnée et le carnet sélectionné. `$c` peut être utilisé pour faire référence à l'objet sélectionné en cours.","To move from one pane to another, press Tab or Shift+Tab.":"Pour aller d'un volet à l'autre, pressez Tab ou Maj+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Utilisez les touches fléchées et page précédente/suivante pour faire défiler les listes et zones de texte (y compris cette console).","To maximise/minimise the console, press \"TC\".":"Pour maximiser ou minimiser la console, pressez \"TC\".","To enter command line mode, press \":\"":"Pour démarrer le mode ligne de commande, pressez \":\"","To exit command line mode, press ESCAPE":"Pour sortir du mode ligne de commande, pressez ECHAP","For the list of keyboard shortcuts and config options, type `help keymap`":"Pour la liste complète des raccourcis disponibles, tapez `help keymap`","Imports data into Joplin.":"Importer des données dans Joplin.","Source format: %s":"Format de la source : %s","Do not ask for confirmation.":"Ne pas demander de confirmation.","Found: %d.":"Trouvés : %d.","Created: %d.":"Créés : %d.","Updated: %d.":"Mis à jour : %d.","Skipped: %d.":"Ignorés : %d.","Resources: %d.":"Ressources : %d.","Tagged: %d.":"Étiquettes : %d.","Importing notes...":"Importation des notes...","The notes have been imported: %s":"Les notes ont été importées : %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Affiche les notes dans le carnet. Utilisez `ls /` pour afficher la liste des carnets.","Displays only the first top notes.":"Affiche uniquement les premières notes.","Sorts the item by (eg. title, updated_time, created_time).":"Trier les notes par (par exemple, title, updated_time, created_time).","Reverses the sorting order.":"Inverser l'ordre.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Affiche uniquement les notes du ou des types spécifiés. Le type peut-être `n` pour les notes, `t` pour les tâches (par exemple, `-tt` affiche uniquement les tâches, tandis que `-ttd` affiche les notes et les tâches).","Either \"text\" or \"json\"":"Soit \"text\" soit \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Utilise le format de liste longue. Le format est ID, NOMBRE_DE_NOTES (pour les carnets), DATE, TACHE_TERMINE (pour les tâches), TITRE","Please select a notebook first.":"Veuillez d'abord sélectionner un carnet.","Creates a new notebook.":"Créer un carnet.","Creates a new note.":"Créer une note.","Notes can only be created within a notebook.":"Les notes ne peuvent être créées que dans un carnet.","Creates a new to-do.":"Créer une nouvelle tâche.","Moves the notes matching to [notebook].":"Déplacer les notes correspondant à vers [notebook].","Renames the given (note or notebook) to .":"Renommer l'objet (note ou carnet) en .","Deletes the given notebook.":"Supprimer le carnet.","Deletes the notebook without asking for confirmation.":"Supprimer le carnet sans demander la confirmation.","Delete notebook? All notes within this notebook will also be deleted.":"Effacer le carnet ? Toutes les notes dans ce carnet seront également effacées.","Deletes the notes matching .":"Supprimer les notes correspondants à .","Deletes the notes without asking for confirmation.":"Supprimer les notes sans demander la confirmation.","%d notes match this pattern. Delete them?":"%d notes correspondent à ce motif. Les supprimer ?","Delete note?":"Supprimer la note ?","Searches for the given in all the notes.":"Chercher le motif dans toutes les notes.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Assigner la valeur [value] à la propriété de la donnée. Les valeurs possibles sont :\n\n%s","Displays summary about the notes and notebooks.":"Afficher un résumé des notes et carnets.","Synchronises with remote storage.":"Synchroniser les notes et carnets.","Sync to provided target (defaults to sync.target config value)":"Synchroniser avec la cible donnée (par défaut, la valeur de configuration `sync.target`).","Authentication was not completed (did not receive an authentication token).":"Impossible d'autoriser le logiciel (jeton d'identification non-reçu).","Not authentified with %s. Please provide any missing credentials.":"Non-connecté à %s. Veuillez fournir les identifiants et mots de passe manquants.","Synchronisation is already in progress.":"La synchronisation est déjà en cours.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"La synchronisation est déjà en cours ou ne s'est pas interrompue correctement. Si vous savez qu'aucune autre synchronisation est en cours, vous pouvez supprimer le fichier \"%s\" pour reprendre l'opération.","Synchronisation target: %s (%s)":"Cible de la synchronisation : %s (%s)","Cannot initialize synchroniser.":"Impossible d'initialiser la synchronisation.","Starting synchronisation...":"Commencement de la synchronisation...","Cancelling... Please wait.":"Annulation... Veuillez attendre."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" peut être \"add\", \"remove\" ou \"list\" pour assigner ou enlever l'étiquette [tag] de la [note], our pour lister les notes associées avec l'étiquette [tag]. La commande `tag list` peut être utilisée pour lister les étiquettes.","Invalid command: \"%s\"":"Commande invalide : \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"Gère le status des tâches. peut être \"toggle\" ou \"clear\". Utilisez \"toggle\" pour basculer la tâche entre le status terminé et non-terminé (Si la cible est une note, elle sera convertie en tâche). Utilisez \"clear\" pour convertir la tâche en note.","Marks a to-do as non-completed.":"Marquer une tâche comme non-complétée.","Switches to [notebook] - all further operations will happen within this notebook.":"Changer de carnet - toutes les opérations à venir se feront dans ce carnet.","Displays version information":"Affiche les informations de version","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Type : %s.","Possible values: %s.":"Valeurs possibles : %s.","Default: %s":"Défaut : %s","Possible keys/values:":"Clefs/Valeurs possibles :","Fatal error:":"Erreur fatale :","The application has been authorised - you may now close this browser tab.":"Le logiciel a été autorisé. Vous pouvez maintenant fermer cet onglet.","The application has been successfully authorised.":"Le logiciel a été autorisé.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Veuillez ouvrir le lien ci-dessous dans votre navigateur pour authentifier le logiciel. Joplin va créer un répertoire \"Apps/Joplin\" et lire/écrira des fichiers uniquement dans ce répertoire. Le logiciel n'aura pas d'accès à aucun fichier en dehors de ce répertoire, ni à d'autres données personnelles. Aucune donnée ne sera partagé avec aucun tier.","Search:":"Recherche :","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenue dans Joplin!\n\nTapez `:help shortcuts` pour la liste des raccourcis claviers, ou simplement `:help` pour une vue d'ensemble.\n\nPar exemple, pour créer un carnet, pressez `mb` ; pour créer une note pressed `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Au moins un objet est actuellement crypté et il se peut que vous deviez fournir votre mot de passe maître. Pour se faire, veuillez taper `e2ee decrypt`. Si vous avez déjà fourni ce mot de passe, les objets cryptés vont être décrypté en tâche de fond et seront disponible prochainement.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exporter vers \"%s\" au format \"%s\". Veuillez patienter...","File":"Fichier","Directory":"Dossier","Importing from \"%s\" as \"%s\" format. Please wait...":"Importer depuis \"%s\" au format \"%s\". Veuillez patienter...","New note":"Nouvelle note","New to-do":"Nouvelle tâche","New notebook":"Nouveau carnet","Import":"Importer","Export":"Exporter","Hide %s":"Cacher %s","Quit":"Quitter","Edit":"Édition","Copy":"Copier","Cut":"Couper","Paste":"Coller","Search in all the notes":"Chercher dans toutes les notes","View":"Affichage","Toggle editor layout":"Basculer l'agencement de l'éditeur","Tools":"Outils","Synchronisation status":"État de la synchronisation","Encryption options":"Options de cryptage","General Options":"Options générales","Help":"Aide","Website and documentation":"Documentation en ligne","Check for updates...":"Vérifier les mises à jour...","About Joplin":"A propos de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Ouvrir %s","Exit":"Quitter","OK":"OK","Cancel":"Annuler","Release notes:\n\n%s":"Notes de version :\n\n%s","An update is available, do you want to download it now?":"Une mise à jour est disponible, souhaitez vous la télécharger maintenant ?","Yes":"Oui","No":"Non","Current version is up-to-date.":"La version actuelle est à jour.","Check synchronisation configuration":"Vérifier config synchronisation","Notes and settings are stored in: %s":"Les notes et paramètres se trouve dans : %s","Save":"Enregistrer","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Désactiver le cryptage signifie que *toutes* les notes et fichiers vont être re-synchronisés et envoyés décryptés sur la cible de la synchronisation. Souhaitez vous continuer ?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Activer le cryptage signifie que *toutes* les notes et fichiers vont être re-synchronisés et envoyés cryptés vers la cible de la synchronisation. Ne perdez pas votre mot de passe car, pour des raisons de sécurité, ce sera la *seule* façon de décrypter les données ! Pour activer le cryptage, veuillez entrer votre mot de passe ci-dessous.","Disable encryption":"Désactiver le cryptage","Enable encryption":"Activer le cryptage","Master Keys":"Clefs maître","Active":"Actif","ID":"ID","Source":"Source","Created":"Créé","Updated":"Mis à jour","Password":"Mot de passe","Password OK":"Mot de passe OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Note : seule une clef maître va être utilisée pour le cryptage (celle marquée comme \"actif\" ci-dessus). N'importe quel clef peut-être utilisée pour le décryptage, selon la façon dont les notes ou carnets étaient cryptés à l'origine.","Missing Master Keys":"Clefs maître manquantes","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"Les clefs maître avec ces identifiants sont utilisées pour crypter certains de vos objets, cependant le logiciel n'y a pour l'instant pas accès. Il est probable qu'elle vont être prochainement disponible via la synchronisation.","Status":"État","Encryption is:":"Le cryptage est :","Back":"Retour","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Un nouveau carnet \"%s\" va être créé et le fichier \"%s\" va être importé dedans","Please create a notebook first.":"Veuillez d'abord sélectionner un carnet.","Please create a notebook first":"Veuillez d'abord créer un carnet d'abord","Notebook title:":"Titre du carnet :","Add or remove tags:":"Modifier les étiquettes :","Separate each tag by a comma.":"Séparez chaque étiquette par une virgule.","Rename notebook:":"Renommer le carnet :","Set alarm:":"Régler alarme :","Search":"Chercher","Layout":"Disposition","Some items cannot be synchronised.":"Certains objets ne peuvent être synchronisés.","View them now":"Les voir maintenant","Some items cannot be decrypted.":"Certains objets ne peuvent être décryptés.","Set the password":"Définir le mot de passe","Add or remove tags":"Gérer les étiquettes","Switch between note and to-do type":"Alterner entre note et tâche","Delete":"Supprimer","Delete notes?":"Supprimer les notes ?","No notes in here. Create one by clicking on \"New note\".":"Pas de notes ici. Créez-en une en pressant le bouton \"Nouvelle note\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Il n'y a pour l'instant aucun carnet. Créez-en un en cliquant sur \"Nouveau carnet\".","Open...":"Ouvrir...","Save as...":"Enregistrer sous...","Unsupported link or message: %s":"Lien ou message non géré : %s","Attach file":"Attacher un fichier","Tags":"Étiquettes","Set alarm":"Régler alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Cette note n'a pas de contenu. Cliquer sur \"%s\" pour basculer vers l'éditeur et éditer cette note.","to-do":"tâche","note":"note","Creating new %s...":"Création de %s...","Refresh":"Rafraîchir","Clear":"Supprimer","OneDrive Login":"Connexion OneDrive","Options":"Options","Synchronisation Status":"État de la synchronisation","Encryption Options":"Options de cryptage","Remove this tag from all the notes?":"Enlever cette étiquette de toutes les notes ?","Remove this search from the sidebar?":"Enlever cette recherche de la barre latérale ?","Rename":"Renommer","Synchronise":"Synchroniser","Notebooks":"Carnets","Searches":"Recherches","Please select where the sync status should be exported to":"Veuillez sélectionner un répertoire ou exporter l'état de la synchronisation","Usage: %s":"Utilisation : %s","Unknown flag: %s":"Paramètre inconnu : %s","File system":"Système de fichier","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dév (Pour tester uniquement)","WebDAV":"WebDAV","Unknown log level: %s":"Paramètre inconnu : %s","Unknown level ID: %s":"Paramètre inconnu : %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Impossible de rafraîchir la connexion à OneDrive. Démarrez la synchronisation à nouveau pour corriger le problème.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Impossible de synchroniser avec OneDrive.\n\nCette erreur se produit lors de l'utilisation de OneDrive for Business, qui malheureusement n'est pas compatible.\n\nVeuillez utiliser à la place un compte OneDrive normal.","Cannot access %s":"Impossible d'accéder à %s","Created local items: %d.":"Objets créés localement : %d.","Updated local items: %d.":"Objets mis à jour localement : %d.","Created remote items: %d.":"Objets distants créés : %d.","Updated remote items: %d.":"Objets distants mis à jour : %d.","Deleted local items: %d.":"Objets supprimés localement : %d.","Deleted remote items: %d.":"Objets distants supprimés : %d.","Fetched items: %d/%d.":"Téléchargés : %d/%d.","State: \"%s\".":"État : \"%s\".","Cancelling...":"Annulation...","Completed: %s":"Terminé : %s","Synchronisation is already in progress. State: %s":"La synchronisation est déjà en cours. État : %s","Encrypted":"Crypté","Encrypted items cannot be modified":"Les objets cryptés ne peuvent être modifiés","Conflicts":"Conflits","A notebook with this title already exists: \"%s\"":"Un carnet avec ce titre existe déjà : \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Les carnets ne peuvent être nommés \"%s\" car c'est un nom réservé.","Untitled":"Sans titre","This note does not have geolocation information.":"Cette note n'a pas d'information d'emplacement.","Cannot copy note to \"%s\" notebook":"Impossible de copier la note vers le carnet \"%s\"","Cannot move note to \"%s\" notebook":"Impossible de déplacer la note vers le carnet \"%s\"","Text editor":"Éditeur de texte","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"L'éditeur de texte pour ouvrir et modifier les notes. Si aucun n'est spécifié, il sera détecté automatiquement.","Language":"Langue","Date format":"Format de la date","Time format":"Format de l'heure","Theme":"Apparence","Light":"Clair","Dark":"Sombre","Uncompleted to-dos on top":"Tâches non-terminées en haut","Sort notes by":"Trier les notes par","Reverse sort order":"Inverser l'ordre.","Save geo-location with notes":"Enregistrer l'emplacement avec les notes","When creating a new to-do:":"Lors de la création d'une tâche :","Focus title":"Curseur sur le titre","Focus body":"Curseur sur corps du message","When creating a new note:":"Lors de la création d'une note :","Show tray icon":"Afficher icône dans la zone de notifications","Global zoom percentage":"Niveau de zoom","Editor font family":"Police de l'éditeur","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"Le nom de la police ne sera pas vérifié. Si incorrect ou vide une police monospace sera utilisée par défaut.","Automatically update the application":"Mettre à jour le logiciel automatiquement","Synchronisation interval":"Intervalle de synchronisation","%d minutes":"%d minutes","%d hour":"%d heure","%d hours":"%d heures","Show advanced options":"Montrer les options avancées","Synchronisation target":"Cible de la synchronisation","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"La cible avec laquelle synchroniser. Chaque cible de synchronisation peut avoir des paramètres supplémentaires sous le nom `sync.NUM.NOM` (documentés ci-dessous).","Directory to synchronise with (absolute path)":"Répertoire avec lequel synchroniser (chemin absolu)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Le chemin du répertoire avec lequel synchroniser lorsque la synchronisation par système de fichier est activée. Voir `sync.target`.","Nextcloud WebDAV URL":"Nextcloud : URL WebDAV","Nextcloud username":"Nextcloud : Nom utilisateur","Nextcloud password":"Nextcloud : Mot de passe","WebDAV URL":"WebDAV : URL","WebDAV username":"WebDAV : Nom utilisateur","WebDAV password":"WebDAV : Mot de passe","Invalid option value: \"%s\". Possible values are: %s.":"Option invalide: \"%s\". Les valeurs possibles sont : %s.","Joplin Export File":"Fichier d'export Joplin","Markdown":"Markdown","Joplin Export Directory":"Dossier d'export Joplin","Evernote Export File":"Fichiers d'export Evernote","Cannot load \"%s\" module for format \"%s\"":"Impossible de charger module \"%s\" pour le format \"%s\"","Please specify import format for %s":"Veuillez spécifier le format d'import pour %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Cet objet est crypté : %s \"%s\". Veuillez attendre que tout soit décrypté et réessayez.","There is no data to export.":"Il n'y a pas de données à exporter.","Please specify the notebook where the notes should be imported to.":"Veuillez sélectionner le carnet où les notes doivent être importées.","Items that cannot be synchronised":"Objets qui ne peuvent pas être synchronisés","%s (%s): %s":"%s (%s) : %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Ces objets resteront sur l'appareil mais ne seront pas envoyé sur la cible de la synchronisation. Pour trouver ces objets, faite une recherche sur le titre ou l'identifiant de l'objet (affiché ci-dessus entre parenthèses).","Sync status (synced items / total items)":"Status de la synchronisation (objets synchro. / total)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total : %d/%d","Conflicted: %d":"Conflits : %d","To delete: %d":"A supprimer : %d","Folders":"Carnets","%s: %d notes":"%s : %d notes","Coming alarms":"Alarmes à venir","On %s: %s":"Le %s : %s","There are currently no notes. Create one by clicking on the (+) button.":"Ce carnet ne contient aucune note. Créez-en une en appuyant sur le bouton (+).","Delete these notes?":"Supprimer ces notes ?","Log":"Journal","Export Debug Report":"Exporter rapport de débogage","Encryption Config":"Config cryptage","Configuration":"Configuration","Move to notebook...":"Déplacer vers...","Move %d notes to notebook \"%s\"?":"Déplacer %d notes vers carnet \"%s\" ?","Press to set the decryption password.":"Définir mot de passe de synchronisation.","Select date":"Sélectionner date","Confirm":"Confirmer","Cancel synchronisation":"Annuler synchronisation","Master Key %s":"Clef maître %s","Created: %s":"Créé : %s","Password:":"Mot de passe :","Password cannot be empty":"Mot de passe ne peut être vide","Enable":"Activer","The notebook could not be saved: %s":"Ce carnet n'a pas pu être sauvegardé : %s","Edit notebook":"Éditer le carnet","Show all":"Afficher tous","Errors only":"Erreurs seulement","This note has been modified:":"Cette note a été modifiée :","Save changes":"Enregistrer les changements","Discard changes":"Ignorer les changements","Unsupported image type: %s":"Type d'image non géré : %s","Attach photo":"Attacher une photo","Attach any file":"Attacher un fichier","Convert to note":"Convertir en note","Convert to todo":"Convertir en tâche","Hide metadata":"Cacher les métadonnées","Show metadata":"Voir métadonnées","View on map":"Voir sur carte","Delete notebook":"Supprimer le carnet","Login with OneDrive":"Se connecter à OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Appuyez sur le bouton (+) pour créer une nouvelle note ou carnet. Ouvrez le menu latéral pour accéder à vos carnets.","You currently have no notebook. Create one by clicking on (+) button.":"Vous n'avez pour l'instant pas de carnets. Créez-en un en pressant le bouton (+).","Welcome":"Bienvenue"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Pour supprimer une vignette, enlever là des notes associées.","Please select the note or notebook to be deleted first.":"Veuillez d'abord sélectionner un carnet.","Press Ctrl+D or type \"exit\" to exit the application":"Appuyez sur Ctrl+D ou tapez \"exit\" pour sortir du logiciel","More than one item match \"%s\". Please narrow down your query.":"Plus d'un objet correspond à \"%s\". Veuillez préciser votre requête.","No notebook selected.":"Aucun carnet n'est sélectionné.","No notebook has been specified.":"Aucun carnet n'est spécifié.","Y":"O","n":"n","N":"N","y":"o","Cancelling background synchronisation... Please wait.":"Annulation de la synchronisation... Veuillez patienter.","No such command: %s":"Commande invalide : %s","The command \"%s\" is only available in GUI mode":"La commande \"%s\" est disponible uniquement en mode d'interface graphique","Cannot change encrypted item":"Un objet crypté ne peut pas être modifié","Missing required argument: %s":"Paramètre requis manquant : %s","%s: %s":"%s : %s","Your choice: ":"Votre choix : ","Invalid answer: %s":"Réponse invalide : %s","Attaches the given file to the note.":"Joindre le fichier fourni à la note.","Cannot find \"%s\".":"Impossible de trouver \"%s\".","Displays the given note.":"Affiche la note.","Displays the complete information about note.":"Affiche tous les détails de la note.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtient ou modifie une valeur de configuration. Si la [valeur] n'est pas fournie, la valeur de [nom] sera affichée. Si ni le [nom] ni la [valeur] ne sont fournis, la configuration complète sera affichée.","Also displays unset and hidden config variables.":"Afficher également les variables cachées.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Copier les notes correspondant à vers [carnet]. Si aucun carnet n'est spécifié, la note est dupliquée sur place.","Marks a to-do as done.":"Marquer la tâche comme complétée.","Note is not a to-do: \"%s\"":"La note n'est pas une tâche : \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Gérer la configuration E2EE (Cryptage de bout à bout). Les commandes sont `enable`, `disable`, `decrypt` et `status` et `target-status`.","Enter master password:":"Entrer le mot de passe maître :","Operation cancelled":"Opération annulée","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Démarrage du décryptage... Veuillez patienter car cela pourrait prendre plusieurs minutes selon le nombre d'objets à décrypter.","Completed decryption.":"Décryptage complété.","Enabled":"Activé","Disabled":"Désactivé","Encryption is: %s":"Le cryptage est : %s","Edit note.":"Éditer la note.","No text editor is defined. Please set it using `config editor `":"Aucun éditeur de texte n'est défini. Veuillez le définir en utilisant la commande `config editor `","No active notebook.":"Aucun carnet actif.","Note does not exist: \"%s\". Create it?":"Cette note n'existe pas : \"%s\". La créer ?","Starting to edit note. Close the editor to get back to the prompt.":"Édition de la note en cours. Fermez l'éditeur de texte pour retourner à l'invite de commande.","Error opening note in editor: %s":"Erreur lors de l'ouverture de la note dans l'éditeur de texte : %s","Note has been saved.":"La note a été enregistrée.","Exits the application.":"Quitter le logiciel.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporter les données de Joplin. Par défaut, la base de donnée complète sera exportée, y compris les carnets, notes, tags et ressources.","Destination format: %s":"Format de la destination : %s","Exports only the given note.":"Exporter uniquement la note spécifiée.","Exports only the given notebook.":"Exporter uniquement le carnet spécifié.","Displays a geolocation URL for the note.":"Afficher l'URL de l'emplacement de la note.","Displays usage information.":"Affiche les informations d'utilisation.","For information on how to customise the shortcuts please visit %s":"Pour personnaliser les raccourcis veuillez consulter la documentation à %s","Shortcuts are not available in CLI mode.":"Les raccourcis ne sont pas disponible en mode de ligne de commande.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Tapez `help [command]` pour plus d'information sur une commande ; ou tapez `help all` pour l'aide complète.","The possible commands are:":"Les commandes possibles sont :","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Dans une commande, une note ou carnet peut être référé par titre ou identifiant, ou en utilisant les raccourcis `$n` et `$b` pour, respectivement, la note sélectionnée et le carnet sélectionné. `$c` peut être utilisé pour faire référence à l'objet sélectionné en cours.","To move from one pane to another, press Tab or Shift+Tab.":"Pour aller d'un volet à l'autre, pressez Tab ou Maj+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Utilisez les touches fléchées et page précédente/suivante pour faire défiler les listes et zones de texte (y compris cette console).","To maximise/minimise the console, press \"TC\".":"Pour maximiser ou minimiser la console, pressez \"TC\".","To enter command line mode, press \":\"":"Pour démarrer le mode ligne de commande, pressez \":\"","To exit command line mode, press ESCAPE":"Pour sortir du mode ligne de commande, pressez ECHAP","For the list of keyboard shortcuts and config options, type `help keymap`":"Pour la liste complète des raccourcis disponibles, tapez `help keymap`","Imports data into Joplin.":"Importer des données dans Joplin.","Source format: %s":"Format de la source : %s","Do not ask for confirmation.":"Ne pas demander de confirmation.","Found: %d.":"Trouvés : %d.","Created: %d.":"Créés : %d.","Updated: %d.":"Mis à jour : %d.","Skipped: %d.":"Ignorés : %d.","Resources: %d.":"Ressources : %d.","Tagged: %d.":"Étiquettes : %d.","Importing notes...":"Importation des notes...","The notes have been imported: %s":"Les notes ont été importées : %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Affiche les notes dans le carnet. Utilisez `ls /` pour afficher la liste des carnets.","Displays only the first top notes.":"Affiche uniquement les premières notes.","Sorts the item by (eg. title, updated_time, created_time).":"Trier les notes par (par exemple, title, updated_time, created_time).","Reverses the sorting order.":"Inverser l'ordre.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Affiche uniquement les notes du ou des types spécifiés. Le type peut-être `n` pour les notes, `t` pour les tâches (par exemple, `-tt` affiche uniquement les tâches, tandis que `-ttd` affiche les notes et les tâches).","Either \"text\" or \"json\"":"Soit \"text\" soit \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Utilise le format de liste longue. Le format est ID, NOMBRE_DE_NOTES (pour les carnets), DATE, TACHE_TERMINE (pour les tâches), TITRE","Please select a notebook first.":"Veuillez d'abord sélectionner un carnet.","Creates a new notebook.":"Créer un carnet.","Creates a new note.":"Créer une note.","Notes can only be created within a notebook.":"Les notes ne peuvent être créées que dans un carnet.","Creates a new to-do.":"Créer une nouvelle tâche.","Moves the notes matching to [notebook].":"Déplacer les notes correspondant à vers [notebook].","Renames the given (note or notebook) to .":"Renommer l'objet (note ou carnet) en .","Deletes the given notebook.":"Supprimer le carnet.","Deletes the notebook without asking for confirmation.":"Supprimer le carnet sans demander la confirmation.","Delete notebook? All notes within this notebook will also be deleted.":"Effacer le carnet ? Toutes les notes dans ce carnet seront également effacées.","Deletes the notes matching .":"Supprimer les notes correspondants à .","Deletes the notes without asking for confirmation.":"Supprimer les notes sans demander la confirmation.","%d notes match this pattern. Delete them?":"%d notes correspondent à ce motif. Les supprimer ?","Delete note?":"Supprimer la note ?","Searches for the given in all the notes.":"Chercher le motif dans toutes les notes.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Assigner la valeur [value] à la propriété de la donnée. Les valeurs possibles sont :\n\n%s","Displays summary about the notes and notebooks.":"Afficher un résumé des notes et carnets.","Synchronises with remote storage.":"Synchroniser les notes et carnets.","Sync to provided target (defaults to sync.target config value)":"Synchroniser avec la cible donnée (par défaut, la valeur de configuration `sync.target`).","Authentication was not completed (did not receive an authentication token).":"Impossible d'autoriser le logiciel (jeton d'identification non-reçu).","Not authentified with %s. Please provide any missing credentials.":"Non-connecté à %s. Veuillez fournir les identifiants et mots de passe manquants.","Synchronisation is already in progress.":"La synchronisation est déjà en cours.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"La synchronisation est déjà en cours ou ne s'est pas interrompue correctement. Si vous savez qu'aucune autre synchronisation est en cours, vous pouvez supprimer le fichier \"%s\" pour reprendre l'opération.","Synchronisation target: %s (%s)":"Cible de la synchronisation : %s (%s)","Cannot initialize synchroniser.":"Impossible d'initialiser la synchronisation.","Starting synchronisation...":"Commencement de la synchronisation...","Cancelling... Please wait.":"Annulation... Veuillez attendre."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" peut être \"add\", \"remove\" ou \"list\" pour assigner ou enlever l'étiquette [tag] de la [note], our pour lister les notes associées avec l'étiquette [tag]. La commande `tag list` peut être utilisée pour lister les étiquettes.","Invalid command: \"%s\"":"Commande invalide : \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"Gère le status des tâches. peut être \"toggle\" ou \"clear\". Utilisez \"toggle\" pour basculer la tâche entre le status terminé et non-terminé (Si la cible est une note, elle sera convertie en tâche). Utilisez \"clear\" pour convertir la tâche en note.","Marks a to-do as non-completed.":"Marquer une tâche comme non-complétée.","Switches to [notebook] - all further operations will happen within this notebook.":"Changer de carnet - toutes les opérations à venir se feront dans ce carnet.","Displays version information":"Affiche les informations de version","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Type : %s.","Possible values: %s.":"Valeurs possibles : %s.","Default: %s":"Défaut : %s","Possible keys/values:":"Clefs/Valeurs possibles :","Type `joplin help` for usage information.":"Tapez `Joplin help` pour afficher l'aide.","Fatal error:":"Erreur fatale :","The application has been authorised - you may now close this browser tab.":"Le logiciel a été autorisé. Vous pouvez maintenant fermer cet onglet.","The application has been successfully authorised.":"Le logiciel a été autorisé.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Veuillez ouvrir le lien ci-dessous dans votre navigateur pour authentifier le logiciel. Joplin va créer un répertoire \"Apps/Joplin\" et lire/écrira des fichiers uniquement dans ce répertoire. Le logiciel n'aura pas d'accès à aucun fichier en dehors de ce répertoire, ni à d'autres données personnelles. Aucune donnée ne sera partagé avec aucun tier.","Search:":"Recherche :","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenue dans Joplin!\n\nTapez `:help shortcuts` pour la liste des raccourcis claviers, ou simplement `:help` pour une vue d'ensemble.\n\nPar exemple, pour créer un carnet, pressez `mb` ; pour créer une note pressed `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Au moins un objet est actuellement crypté et il se peut que vous deviez fournir votre mot de passe maître. Pour se faire, veuillez taper `e2ee decrypt`. Si vous avez déjà fourni ce mot de passe, les objets cryptés vont être décrypté en tâche de fond et seront disponible prochainement.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exporter vers \"%s\" au format \"%s\". Veuillez patienter...","File":"Fichier","Directory":"Dossier","Importing from \"%s\" as \"%s\" format. Please wait...":"Importer depuis \"%s\" au format \"%s\". Veuillez patienter...","New note":"Nouvelle note","New to-do":"Nouvelle tâche","New notebook":"Nouveau carnet","Import":"Importer","Export":"Exporter","Hide %s":"Cacher %s","Quit":"Quitter","Edit":"Édition","Copy":"Copier","Cut":"Couper","Paste":"Coller","Search in all the notes":"Chercher dans toutes les notes","View":"Affichage","Toggle editor layout":"Basculer l'agencement de l'éditeur","Tools":"Outils","Synchronisation status":"État de la synchronisation","Encryption options":"Options de cryptage","General Options":"Options générales","Help":"Aide","Website and documentation":"Documentation en ligne","Make a donation":"Faire un don","Check for updates...":"Vérifier les mises à jour...","About Joplin":"A propos de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Ouvrir %s","Exit":"Quitter","OK":"OK","Cancel":"Annuler","Release notes:\n\n%s":"Notes de version :\n\n%s","An update is available, do you want to download it now?":"Une mise à jour est disponible, souhaitez vous la télécharger maintenant ?","Yes":"Oui","No":"Non","Current version is up-to-date.":"La version actuelle est à jour.","Check synchronisation configuration":"Vérifier config synchronisation","Notes and settings are stored in: %s":"Les notes et paramètres se trouve dans : %s","Save":"Enregistrer","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Désactiver le cryptage signifie que *toutes* les notes et fichiers vont être re-synchronisés et envoyés décryptés sur la cible de la synchronisation. Souhaitez vous continuer ?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Activer le cryptage signifie que *toutes* les notes et fichiers vont être re-synchronisés et envoyés cryptés vers la cible de la synchronisation. Ne perdez pas votre mot de passe car, pour des raisons de sécurité, ce sera la *seule* façon de décrypter les données ! Pour activer le cryptage, veuillez entrer votre mot de passe ci-dessous.","Disable encryption":"Désactiver le cryptage","Enable encryption":"Activer le cryptage","Master Keys":"Clefs maître","Active":"Actif","ID":"ID","Source":"Source","Created":"Créé","Updated":"Mis à jour","Password":"Mot de passe","Password OK":"Mot de passe OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Note : seule une clef maître va être utilisée pour le cryptage (celle marquée comme \"actif\" ci-dessus). N'importe quel clef peut-être utilisée pour le décryptage, selon la façon dont les notes ou carnets étaient cryptés à l'origine.","Missing Master Keys":"Clefs maître manquantes","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"Les clefs maître avec ces identifiants sont utilisées pour crypter certains de vos objets, cependant le logiciel n'y a pour l'instant pas accès. Il est probable qu'elle vont être prochainement disponible via la synchronisation.","Status":"État","Encryption is:":"Le cryptage est :","Back":"Retour","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Un nouveau carnet \"%s\" va être créé et le fichier \"%s\" va être importé dedans","Please create a notebook first.":"Veuillez d'abord sélectionner un carnet.","Please create a notebook first":"Veuillez d'abord créer un carnet d'abord","Notebook title:":"Titre du carnet :","Add or remove tags:":"Modifier les étiquettes :","Separate each tag by a comma.":"Séparez chaque étiquette par une virgule.","Rename notebook:":"Renommer le carnet :","Set alarm:":"Régler alarme :","Search":"Chercher","Layout":"Disposition","Some items cannot be synchronised.":"Certains objets ne peuvent être synchronisés.","View them now":"Les voir maintenant","Some items cannot be decrypted.":"Certains objets ne peuvent être décryptés.","Set the password":"Définir le mot de passe","Add or remove tags":"Gérer les étiquettes","Switch between note and to-do type":"Alterner entre note et tâche","Delete":"Supprimer","Delete notes?":"Supprimer les notes ?","No notes in here. Create one by clicking on \"New note\".":"Pas de notes ici. Créez-en une en pressant le bouton \"Nouvelle note\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Il n'y a pour l'instant aucun carnet. Créez-en un en cliquant sur \"Nouveau carnet\".","Open...":"Ouvrir...","Save as...":"Enregistrer sous...","Unsupported link or message: %s":"Lien ou message non géré : %s","Attach file":"Attacher un fichier","Tags":"Étiquettes","Set alarm":"Régler alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Cette note n'a pas de contenu. Cliquer sur \"%s\" pour basculer vers l'éditeur et éditer cette note.","to-do":"tâche","note":"note","Creating new %s...":"Création de %s...","Refresh":"Rafraîchir","Clear":"Supprimer","OneDrive Login":"Connexion OneDrive","Options":"Options","Synchronisation Status":"État de la synchronisation","Encryption Options":"Options de cryptage","Remove this tag from all the notes?":"Enlever cette étiquette de toutes les notes ?","Remove this search from the sidebar?":"Enlever cette recherche de la barre latérale ?","Rename":"Renommer","Synchronise":"Synchroniser","Notebooks":"Carnets","Searches":"Recherches","Please select where the sync status should be exported to":"Veuillez sélectionner un répertoire ou exporter l'état de la synchronisation","Usage: %s":"Utilisation : %s","Unknown flag: %s":"Paramètre inconnu : %s","File system":"Système de fichier","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dév (Pour tester uniquement)","WebDAV":"WebDAV","Unknown log level: %s":"Paramètre inconnu : %s","Unknown level ID: %s":"Paramètre inconnu : %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Impossible de rafraîchir la connexion à OneDrive. Démarrez la synchronisation à nouveau pour corriger le problème.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Impossible de synchroniser avec OneDrive.\n\nCette erreur se produit lors de l'utilisation de OneDrive for Business, qui malheureusement n'est pas compatible.\n\nVeuillez utiliser à la place un compte OneDrive normal.","Cannot access %s":"Impossible d'accéder à %s","Created local items: %d.":"Objets créés localement : %d.","Updated local items: %d.":"Objets mis à jour localement : %d.","Created remote items: %d.":"Objets distants créés : %d.","Updated remote items: %d.":"Objets distants mis à jour : %d.","Deleted local items: %d.":"Objets supprimés localement : %d.","Deleted remote items: %d.":"Objets distants supprimés : %d.","Fetched items: %d/%d.":"Téléchargés : %d/%d.","State: \"%s\".":"État : \"%s\".","Cancelling...":"Annulation...","Completed: %s":"Terminé : %s","Synchronisation is already in progress. State: %s":"La synchronisation est déjà en cours. État : %s","Encrypted":"Crypté","Encrypted items cannot be modified":"Les objets cryptés ne peuvent être modifiés","Conflicts":"Conflits","A notebook with this title already exists: \"%s\"":"Un carnet avec ce titre existe déjà : \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Les carnets ne peuvent être nommés \"%s\" car c'est un nom réservé.","Untitled":"Sans titre","This note does not have geolocation information.":"Cette note n'a pas d'information d'emplacement.","Cannot copy note to \"%s\" notebook":"Impossible de copier la note vers le carnet \"%s\"","Cannot move note to \"%s\" notebook":"Impossible de déplacer la note vers le carnet \"%s\"","Text editor":"Éditeur de texte","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"L'éditeur de texte pour ouvrir et modifier les notes. Si aucun n'est spécifié, il sera détecté automatiquement.","Language":"Langue","Date format":"Format de la date","Time format":"Format de l'heure","Theme":"Apparence","Light":"Clair","Dark":"Sombre","Uncompleted to-dos on top":"Tâches non-terminées en haut","Sort notes by":"Trier les notes par","Reverse sort order":"Inverser l'ordre.","Save geo-location with notes":"Enregistrer l'emplacement avec les notes","When creating a new to-do:":"Lors de la création d'une tâche :","Focus title":"Curseur sur le titre","Focus body":"Curseur sur corps du message","When creating a new note:":"Lors de la création d'une note :","Show tray icon":"Afficher icône dans la zone de notifications","Global zoom percentage":"Niveau de zoom","Editor font family":"Police de l'éditeur","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"Le nom de la police ne sera pas vérifié. Si incorrect ou vide une police monospace sera utilisée par défaut.","Automatically update the application":"Mettre à jour le logiciel automatiquement","Synchronisation interval":"Intervalle de synchronisation","%d minutes":"%d minutes","%d hour":"%d heure","%d hours":"%d heures","Show advanced options":"Montrer les options avancées","Synchronisation target":"Cible de la synchronisation","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"La cible avec laquelle synchroniser. Chaque cible de synchronisation peut avoir des paramètres supplémentaires sous le nom `sync.NUM.NOM` (documentés ci-dessous).","Directory to synchronise with (absolute path)":"Répertoire avec lequel synchroniser (chemin absolu)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Le chemin du répertoire avec lequel synchroniser lorsque la synchronisation par système de fichier est activée. Voir `sync.target`.","Nextcloud WebDAV URL":"Nextcloud : URL WebDAV","Nextcloud username":"Nextcloud : Nom utilisateur","Nextcloud password":"Nextcloud : Mot de passe","WebDAV URL":"WebDAV : URL","WebDAV username":"WebDAV : Nom utilisateur","WebDAV password":"WebDAV : Mot de passe","Invalid option value: \"%s\". Possible values are: %s.":"Option invalide: \"%s\". Les valeurs possibles sont : %s.","Joplin Export File":"Fichier d'export Joplin","Markdown":"Markdown","Joplin Export Directory":"Dossier d'export Joplin","Evernote Export File":"Fichiers d'export Evernote","Cannot load \"%s\" module for format \"%s\"":"Impossible de charger module \"%s\" pour le format \"%s\"","Please specify import format for %s":"Veuillez spécifier le format d'import pour %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Cet objet est crypté : %s \"%s\". Veuillez attendre que tout soit décrypté et réessayez.","There is no data to export.":"Il n'y a pas de données à exporter.","Please specify the notebook where the notes should be imported to.":"Veuillez sélectionner le carnet où les notes doivent être importées.","Items that cannot be synchronised":"Objets qui ne peuvent pas être synchronisés","%s (%s): %s":"%s (%s) : %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Ces objets resteront sur l'appareil mais ne seront pas envoyé sur la cible de la synchronisation. Pour trouver ces objets, faite une recherche sur le titre ou l'identifiant de l'objet (affiché ci-dessus entre parenthèses).","Sync status (synced items / total items)":"Status de la synchronisation (objets synchro. / total)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total : %d/%d","Conflicted: %d":"Conflits : %d","To delete: %d":"A supprimer : %d","Folders":"Carnets","%s: %d notes":"%s : %d notes","Coming alarms":"Alarmes à venir","On %s: %s":"Le %s : %s","There are currently no notes. Create one by clicking on the (+) button.":"Ce carnet ne contient aucune note. Créez-en une en appuyant sur le bouton (+).","Delete these notes?":"Supprimer ces notes ?","Log":"Journal","Export Debug Report":"Exporter rapport de débogage","Encryption Config":"Config cryptage","Configuration":"Configuration","Move to notebook...":"Déplacer vers...","Move %d notes to notebook \"%s\"?":"Déplacer %d notes vers carnet \"%s\" ?","Press to set the decryption password.":"Définir mot de passe de synchronisation.","Select date":"Sélectionner date","Confirm":"Confirmer","Cancel synchronisation":"Annuler synchronisation","Joplin website":"Site web de Joplin","Master Key %s":"Clef maître %s","Created: %s":"Créé : %s","Password:":"Mot de passe :","Password cannot be empty":"Mot de passe ne peut être vide","Enable":"Activer","The notebook could not be saved: %s":"Ce carnet n'a pas pu être sauvegardé : %s","Edit notebook":"Éditer le carnet","Show all":"Afficher tous","Errors only":"Erreurs seulement","This note has been modified:":"Cette note a été modifiée :","Save changes":"Enregistrer les changements","Discard changes":"Ignorer les changements","Unsupported image type: %s":"Type d'image non géré : %s","Attach photo":"Attacher une photo","Attach any file":"Attacher un fichier","Convert to note":"Convertir en note","Convert to todo":"Convertir en tâche","Hide metadata":"Cacher les métadonnées","Show metadata":"Voir métadonnées","View on map":"Voir sur carte","Delete notebook":"Supprimer le carnet","Login with OneDrive":"Se connecter à OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Appuyez sur le bouton (+) pour créer une nouvelle note ou carnet. Ouvrez le menu latéral pour accéder à vos carnets.","You currently have no notebook. Create one by clicking on (+) button.":"Vous n'avez pour l'instant pas de carnets. Créez-en un en pressant le bouton (+).","Welcome":"Bienvenue"} \ No newline at end of file diff --git a/ReactNativeClient/locales/hr_HR.json b/ReactNativeClient/locales/hr_HR.json index af98d208bf..ba4ffdd88d 100644 --- a/ReactNativeClient/locales/hr_HR.json +++ b/ReactNativeClient/locales/hr_HR.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Da bi mogao obrisati oznaku, skini oznaku s povezanih bilješki.","Please select the note or notebook to be deleted first.":"Odaberi bilješku ili bilježnicu za brisanje.","Press Ctrl+D or type \"exit\" to exit the application":"Pritisni Ctrl+D ili napiši \"exit\" za izlazak iz aplikacije","More than one item match \"%s\". Please narrow down your query.":"Više od jednog rezultata odgovara \"%s\". Promijeni upit.","No notebook selected.":"Nije odabrana bilježnica.","No notebook has been specified.":"Nije specificirana bilježnica.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Prekid sinkronizacije u pozadini... Pričekaj.","No such command: %s":"Ne postoji naredba: %s","The command \"%s\" is only available in GUI mode":"Naredba \"%s\" postoji samo u inačici s grafičkim sučeljem","Cannot change encrypted item":"","Missing required argument: %s":"Nedostaje obavezni argument: %s","%s: %s":"%s: %s","Your choice: ":"Tvoj izbor: ","Invalid answer: %s":"Nevažeći odgovor: %s","Attaches the given file to the note.":"Prilaže datu datoteku bilješci.","Cannot find \"%s\".":"Ne mogu naći \"%s\".","Displays the given note.":"Prikazuje datu bilješku.","Displays the complete information about note.":"Prikazuje potpunu informaciju o bilješci.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.","Also displays unset and hidden config variables.":"Također prikazuje nepostavljene i skrivene konfiguracijske varijable.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.","Marks a to-do as done.":"Označava zadatak završenim.","Note is not a to-do: \"%s\"":"Bilješka nije zadatak: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Onemogućeno","Encryption is: %s":"","Edit note.":"Uredi bilješku.","No text editor is defined. Please set it using `config editor `":"No text editor is defined. Please set it using `config editor `","No active notebook.":"Nema aktivne bilježnice.","Note does not exist: \"%s\". Create it?":"Bilješka ne postoji: \"%s\". Napravi je?","Starting to edit note. Close the editor to get back to the prompt.":"Starting to edit note. Close the editor to get back to the prompt.","Error opening note in editor: %s":"","Note has been saved.":"Bilješka je spremljena.","Exits the application.":"Izlaz iz aplikacije.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Izvozi samo datu bilješku.","Exports only the given notebook.":"Izvozi samo datu bilježnicu.","Displays a geolocation URL for the note.":"Prikazuje geolokacijski URL bilješke.","Displays usage information.":"Prikazuje informacije o korištenju.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Prečaci nisu podržani u naredbenom retku.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Upiši `help [naredba]` za više informacija o naredbi ili `help all` za sve informacije o korištenju.","The possible commands are:":"Moguće naredbe su:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.","To move from one pane to another, press Tab or Shift+Tab.":"Za prijelaz iz jednog okna u drugo, pritisni Tab ili Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use the arrows and page up/down to scroll the lists and text areas (including this console).","To maximise/minimise the console, press \"TC\".":"Za maksimiziranje/minimiziranje konzole, pritisni \"TC\".","To enter command line mode, press \":\"":"Za ulaz u naredbeni redak, pritisni \":\"","To exit command line mode, press ESCAPE":"Za izlaz iz naredbenog retka, pritisni Esc","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Ne pitaj za potvrdu.","Found: %d.":"Nađeno: %d.","Created: %d.":"Stvoreno: %d.","Updated: %d.":"Ažurirano: %d.","Skipped: %d.":"Preskočeno: %d.","Resources: %d.":"Resursi: %d.","Tagged: %d.":"Označeno: %d.","Importing notes...":"Uvozim bilješke...","The notes have been imported: %s":"Bilješke su uvezene: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Prikazuje bilješke u trenutnoj bilježnici. Upiši `ls /` za prikaz liste bilježnica.","Displays only the first top notes.":"Prikaži samo prvih bilješki.","Sorts the item by (eg. title, updated_time, created_time).":"Sorts the item by (eg. title, updated_time, created_time).","Reverses the sorting order.":"Mijenja redoslijed.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.","Either \"text\" or \"json\"":"Ili \"text\" ili \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE","Please select a notebook first.":"Odaberi bilježnicu.","Creates a new notebook.":"Stvara novu bilježnicu.","Creates a new note.":"Stvara novu bilješku.","Notes can only be created within a notebook.":"Bilješke je moguće stvoriti samo u sklopu bilježnice.","Creates a new to-do.":"Stvara novi zadatak.","Moves the notes matching to [notebook].":"Premješta podudarajuće bilješke u [bilježnicu].","Renames the given (note or notebook) to .":"Renames the given (note or notebook) to .","Deletes the given notebook.":"Briše datu bilježnicu.","Deletes the notebook without asking for confirmation.":"Briše bilježnicu bez traženja potvrde.","Delete notebook? All notes within this notebook will also be deleted.":"Obrisati bilježnicu? Sve bilješke u toj bilježnici će također biti obrisane.","Deletes the notes matching .":"Deletes the notes matching .","Deletes the notes without asking for confirmation.":"Briše bilješke bez traženja potvrde.","%d notes match this pattern. Delete them?":"%d bilješki se podudara s pojmom pretraživanja. Obriši ih?","Delete note?":"Obrisati bilješku?","Searches for the given in all the notes.":"Searches for the given in all the notes.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Sets the property of the given to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Prikazuje sažetak o bilješkama i bilježnicama.","Synchronises with remote storage.":"Sinkronizira sa udaljenom pohranom podataka.","Sync to provided target (defaults to sync.target config value)":"Sinkroniziraj sa metom (default je polje sync.target u konfiguraciji)","Authentication was not completed (did not receive an authentication token).":"Authentication was not completed (did not receive an authentication token).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"Sinkronizacija je već u toku.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ako sinkronizacija nije u toku, obriši lock datoteku u \"%s\" i nastavi...","Synchronisation target: %s (%s)":"Meta sinkronizacije: %s (%s)","Cannot initialize synchroniser.":"Ne mogu započeti sinkronizaciju.","Starting synchronisation...":"Započinjem sinkronizaciju...","Cancelling... Please wait.":"Prekidam... Pričekaj."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.","Invalid command: \"%s\"":"Nevažeća naredba: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.","Marks a to-do as non-completed.":"Označava zadatak kao nezavršen.","Switches to [notebook] - all further operations will happen within this notebook.":"Switches to [notebook] - all further operations will happen within this notebook.","Displays version information":"Prikazuje verziju","%s %s (%s)":"%s %s (%s)","Enum":"Enumeracija","Type: %s.":"Vrsta: %s.","Possible values: %s.":"Moguće vrijednosti: %s.","Default: %s":"Default: %s","Possible keys/values:":"Mogući ključevi/vrijednosti:","Fatal error:":"Fatalna greška:","The application has been authorised - you may now close this browser tab.":"Aplikacija je autorizirana - smiješ zatvoriti karticu preglednika.","The application has been successfully authorised.":"Aplikacija je uspješno autorizirana.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Otvori sljedeći URL u pregledniku da bi ovjerio aplikaciju. Aplikacija će stvoriti direktorij u \"Apps/Joplin\" i koristiti će samo taj direktorij za čitanje i pisanje. Aplikacija neće imati pristup osobnim podacima niti ičemu izvan tog direktorija. Nijedan se podatak neće dijeliti s trećom stranom.","Search:":"Traži:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Datoteka","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Nova bilješka","New to-do":"Novi zadatak","New notebook":"Nova bilježnica","Import":"Uvoz","Export":"Export","Hide %s":"","Quit":"Izađi","Edit":"Uredi","Copy":"Kopiraj","Cut":"Izreži","Paste":"Zalijepi","Search in all the notes":"Pretraži u svim bilješkama","View":"","Toggle editor layout":"","Tools":"Alati","Synchronisation status":"Status sinkronizacije","Encryption options":"","General Options":"General Options","Help":"Pomoć","Website and documentation":"Website i dokumentacija","Check for updates...":"","About Joplin":"O Joplinu","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"U redu","Cancel":"Odustani","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Bilješke i postavke su pohranjene u: %s","Save":"Spremi","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"ID","Source":"Izvor","Created":"Stvoreno","Updated":"Ažurirano","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"","Back":"Natrag","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nova bilježnica \"%s\" će biti stvorena i datoteka \"%s\" će biti uvezena u nju","Please create a notebook first.":"Prvo stvori bilježnicu.","Please create a notebook first":"Prvo stvori bilježnicu","Notebook title:":"Naslov bilježnice:","Add or remove tags:":"Dodaj ili makni oznake:","Separate each tag by a comma.":"Odvoji oznake zarezom.","Rename notebook:":"Preimenuj bilježnicu:","Set alarm:":"Postavi upozorenje:","Search":"Traži","Layout":"Izgled","Some items cannot be synchronised.":"Neke stavke se ne mogu sinkronizirati.","View them now":"Pogledaj ih sada","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Dodaj ili makni oznake","Switch between note and to-do type":"Zamijeni bilješku i zadatak","Delete":"Obriši","Delete notes?":"Obriši bilješke?","No notes in here. Create one by clicking on \"New note\".":"Ovdje nema bilješki. Stvori novu pritiskom na \"Nova bilješka\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Ovdje nema bilježnica. Stvori novu pritiskom na \"Nova bilježnica\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Nepodržana poveznica ili poruka: %s","Attach file":"Priloži datoteku","Tags":"Oznake","Set alarm":"Postavi upozorenje","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Osvježi","Clear":"Očisti","OneDrive Login":"OneDrive Login","Options":"Opcije","Synchronisation Status":"Status Sinkronizacije","Encryption Options":"","Remove this tag from all the notes?":"Makni ovu oznaku iz svih bilješki?","Remove this search from the sidebar?":"Makni ovu pretragu iz izbornika?","Rename":"Preimenuj","Synchronise":"Sinkroniziraj","Notebooks":"Bilježnice","Searches":"Pretraživanja","Please select where the sync status should be exported to":"Odaberi lokaciju za izvoz statusa sinkronizacije","Usage: %s":"Korištenje: %s","Unknown flag: %s":"Nepoznata zastavica: %s","File system":"Datotečni sustav","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Samo za testiranje)","WebDAV":"","Unknown log level: %s":"Nepoznata razina logiranja: %s","Unknown level ID: %s":"Nepoznat ID razine: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Nedostaju podaci za ovjeru. Pokušaj ponovo započeti sinkronizaciju.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Ne mogu sinkronizirati OneDrive.\n\nOva greška se često javlja pri korištenju usluge OneDrive for Business koja nije podržana.\n\nMolimo da koristite obični OneDrive korisnički račun.","Cannot access %s":"Ne mogu pristupiti %s","Created local items: %d.":"Stvorene lokalne stavke: %d.","Updated local items: %d.":"Ažurirane lokalne stavke: %d.","Created remote items: %d.":"Stvorene udaljene stavke: %d.","Updated remote items: %d.":"Ažurirane udaljene stavke: %d.","Deleted local items: %d.":"Obrisane lokalne stavke: %d.","Deleted remote items: %d.":"Obrisane udaljene stavke: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"Stanje: \"%s\".","Cancelling...":"Prekidam...","Completed: %s":"Dovršeno: %s","Synchronisation is already in progress. State: %s":"Sinkronizacija je već u toku. Stanje: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Sukobi","A notebook with this title already exists: \"%s\"":"Bilježnica s ovim naslovom već postoji: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Naslov \"%s\" je rezerviran i ne može se koristiti.","Untitled":"Nenaslovljen","This note does not have geolocation information.":"Ova bilješka nema geolokacijske informacije.","Cannot copy note to \"%s\" notebook":"Ne mogu kopirati bilješku u bilježnicu %s","Cannot move note to \"%s\" notebook":"Ne mogu premjestiti bilješku u bilježnicu %s","Text editor":"Uređivač teksta","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Program za uređivanje koji će biti korišten za uređivanje bilješki. Ako ni jedan nije odabran, pokušati će se sa default programom.","Language":"Jezik","Date format":"Format datuma","Time format":"Format vremena","Theme":"Tema","Light":"Svijetla","Dark":"Tamna","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Spremi geolokacijske podatke sa bilješkama","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Automatsko instaliranje nove verzije","Synchronisation interval":"Interval sinkronizacije","%d minutes":"%d minuta","%d hour":"%d sat","%d hours":"%d sati","Show advanced options":"Prikaži napredne opcije","Synchronisation target":"Sinkroniziraj sa","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"Direktorij za sinkroniziranje (apsolutna putanja)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Putanja do direktorija za sinkronizaciju u slučaju kad je sinkronizacija sa datotečnim sustavom omogućena. Vidi `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Nevažeća vrijednost: \"%s\". Moguće vrijednosti su: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Stavke koje se ne mogu sinkronizirati","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Status (sinkronizirane stavke / ukupni broj stavki)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Ukupno: %d/%d","Conflicted: %d":"U sukobu: %d","To delete: %d":"Za brisanje: %d","Folders":"Mape","%s: %d notes":"%s: %d notes","Coming alarms":"Nadolazeća upozorenja","On %s: %s":"On %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Trenutno nema bilješki. Stvori novu klikom na (+) gumb.","Delete these notes?":"Obriši ove bilješke?","Log":"Log","Export Debug Report":"Izvezi Debug izvještaj","Encryption Config":"","Configuration":"Konfiguracija","Move to notebook...":"Premjesti u bilježnicu...","Move %d notes to notebook \"%s\"?":"Premjesti %d bilješke u bilježnicu \"%s\"?","Press to set the decryption password.":"","Select date":"Odaberi datum","Confirm":"Potvrdi","Cancel synchronisation":"Prekini sinkronizaciju","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"Bilježnicu nije moguće snimiti: %s","Edit notebook":"Uredi bilježnicu","Show all":"","Errors only":"","This note has been modified:":"Bilješka je promijenjena:","Save changes":"Spremi promjene","Discard changes":"Odbaci promjene","Unsupported image type: %s":"Nepodržana vrsta slike: %s","Attach photo":"Priloži sliku","Attach any file":"Priloži datoteku","Convert to note":"Pretvori u bilješku","Convert to todo":"Pretvori u zadatak","Hide metadata":"Sakrij metapodatke","Show metadata":"Prikaži metapodatke","View on map":"Vidi na karti","Delete notebook":"Obriši bilježnicu","Login with OneDrive":"Prijavi se u OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Klikni (+) gumb za dodavanje nove bilješke ili bilježnice ili odaberi postojeću bilježnicu iz izbornika.","You currently have no notebook. Create one by clicking on (+) button.":"Trenutno nemaš nijednu bilježnicu. Stvori novu klikom na (+) gumb.","Welcome":"Dobro došli"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Da bi mogao obrisati oznaku, skini oznaku s povezanih bilješki.","Please select the note or notebook to be deleted first.":"Odaberi bilješku ili bilježnicu za brisanje.","Press Ctrl+D or type \"exit\" to exit the application":"Pritisni Ctrl+D ili napiši \"exit\" za izlazak iz aplikacije","More than one item match \"%s\". Please narrow down your query.":"Više od jednog rezultata odgovara \"%s\". Promijeni upit.","No notebook selected.":"Nije odabrana bilježnica.","No notebook has been specified.":"Nije specificirana bilježnica.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Prekid sinkronizacije u pozadini... Pričekaj.","No such command: %s":"Ne postoji naredba: %s","The command \"%s\" is only available in GUI mode":"Naredba \"%s\" postoji samo u inačici s grafičkim sučeljem","Cannot change encrypted item":"","Missing required argument: %s":"Nedostaje obavezni argument: %s","%s: %s":"%s: %s","Your choice: ":"Tvoj izbor: ","Invalid answer: %s":"Nevažeći odgovor: %s","Attaches the given file to the note.":"Prilaže datu datoteku bilješci.","Cannot find \"%s\".":"Ne mogu naći \"%s\".","Displays the given note.":"Prikazuje datu bilješku.","Displays the complete information about note.":"Prikazuje potpunu informaciju o bilješci.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.","Also displays unset and hidden config variables.":"Također prikazuje nepostavljene i skrivene konfiguracijske varijable.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.","Marks a to-do as done.":"Označava zadatak završenim.","Note is not a to-do: \"%s\"":"Bilješka nije zadatak: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Onemogućeno","Encryption is: %s":"","Edit note.":"Uredi bilješku.","No text editor is defined. Please set it using `config editor `":"No text editor is defined. Please set it using `config editor `","No active notebook.":"Nema aktivne bilježnice.","Note does not exist: \"%s\". Create it?":"Bilješka ne postoji: \"%s\". Napravi je?","Starting to edit note. Close the editor to get back to the prompt.":"Starting to edit note. Close the editor to get back to the prompt.","Error opening note in editor: %s":"","Note has been saved.":"Bilješka je spremljena.","Exits the application.":"Izlaz iz aplikacije.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Izvozi samo datu bilješku.","Exports only the given notebook.":"Izvozi samo datu bilježnicu.","Displays a geolocation URL for the note.":"Prikazuje geolokacijski URL bilješke.","Displays usage information.":"Prikazuje informacije o korištenju.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Prečaci nisu podržani u naredbenom retku.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Upiši `help [naredba]` za više informacija o naredbi ili `help all` za sve informacije o korištenju.","The possible commands are:":"Moguće naredbe su:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.","To move from one pane to another, press Tab or Shift+Tab.":"Za prijelaz iz jednog okna u drugo, pritisni Tab ili Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use the arrows and page up/down to scroll the lists and text areas (including this console).","To maximise/minimise the console, press \"TC\".":"Za maksimiziranje/minimiziranje konzole, pritisni \"TC\".","To enter command line mode, press \":\"":"Za ulaz u naredbeni redak, pritisni \":\"","To exit command line mode, press ESCAPE":"Za izlaz iz naredbenog retka, pritisni Esc","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Ne pitaj za potvrdu.","Found: %d.":"Nađeno: %d.","Created: %d.":"Stvoreno: %d.","Updated: %d.":"Ažurirano: %d.","Skipped: %d.":"Preskočeno: %d.","Resources: %d.":"Resursi: %d.","Tagged: %d.":"Označeno: %d.","Importing notes...":"Uvozim bilješke...","The notes have been imported: %s":"Bilješke su uvezene: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Prikazuje bilješke u trenutnoj bilježnici. Upiši `ls /` za prikaz liste bilježnica.","Displays only the first top notes.":"Prikaži samo prvih bilješki.","Sorts the item by (eg. title, updated_time, created_time).":"Sorts the item by (eg. title, updated_time, created_time).","Reverses the sorting order.":"Mijenja redoslijed.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.","Either \"text\" or \"json\"":"Ili \"text\" ili \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE","Please select a notebook first.":"Odaberi bilježnicu.","Creates a new notebook.":"Stvara novu bilježnicu.","Creates a new note.":"Stvara novu bilješku.","Notes can only be created within a notebook.":"Bilješke je moguće stvoriti samo u sklopu bilježnice.","Creates a new to-do.":"Stvara novi zadatak.","Moves the notes matching to [notebook].":"Premješta podudarajuće bilješke u [bilježnicu].","Renames the given (note or notebook) to .":"Renames the given (note or notebook) to .","Deletes the given notebook.":"Briše datu bilježnicu.","Deletes the notebook without asking for confirmation.":"Briše bilježnicu bez traženja potvrde.","Delete notebook? All notes within this notebook will also be deleted.":"Obrisati bilježnicu? Sve bilješke u toj bilježnici će također biti obrisane.","Deletes the notes matching .":"Deletes the notes matching .","Deletes the notes without asking for confirmation.":"Briše bilješke bez traženja potvrde.","%d notes match this pattern. Delete them?":"%d bilješki se podudara s pojmom pretraživanja. Obriši ih?","Delete note?":"Obrisati bilješku?","Searches for the given in all the notes.":"Searches for the given in all the notes.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Sets the property of the given to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Prikazuje sažetak o bilješkama i bilježnicama.","Synchronises with remote storage.":"Sinkronizira sa udaljenom pohranom podataka.","Sync to provided target (defaults to sync.target config value)":"Sinkroniziraj sa metom (default je polje sync.target u konfiguraciji)","Authentication was not completed (did not receive an authentication token).":"Authentication was not completed (did not receive an authentication token).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"Sinkronizacija je već u toku.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ako sinkronizacija nije u toku, obriši lock datoteku u \"%s\" i nastavi...","Synchronisation target: %s (%s)":"Meta sinkronizacije: %s (%s)","Cannot initialize synchroniser.":"Ne mogu započeti sinkronizaciju.","Starting synchronisation...":"Započinjem sinkronizaciju...","Cancelling... Please wait.":"Prekidam... Pričekaj."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.","Invalid command: \"%s\"":"Nevažeća naredba: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.","Marks a to-do as non-completed.":"Označava zadatak kao nezavršen.","Switches to [notebook] - all further operations will happen within this notebook.":"Switches to [notebook] - all further operations will happen within this notebook.","Displays version information":"Prikazuje verziju","%s %s (%s)":"%s %s (%s)","Enum":"Enumeracija","Type: %s.":"Vrsta: %s.","Possible values: %s.":"Moguće vrijednosti: %s.","Default: %s":"Default: %s","Possible keys/values:":"Mogući ključevi/vrijednosti:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Fatalna greška:","The application has been authorised - you may now close this browser tab.":"Aplikacija je autorizirana - smiješ zatvoriti karticu preglednika.","The application has been successfully authorised.":"Aplikacija je uspješno autorizirana.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Otvori sljedeći URL u pregledniku da bi ovjerio aplikaciju. Aplikacija će stvoriti direktorij u \"Apps/Joplin\" i koristiti će samo taj direktorij za čitanje i pisanje. Aplikacija neće imati pristup osobnim podacima niti ičemu izvan tog direktorija. Nijedan se podatak neće dijeliti s trećom stranom.","Search:":"Traži:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Datoteka","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Nova bilješka","New to-do":"Novi zadatak","New notebook":"Nova bilježnica","Import":"Uvoz","Export":"Export","Hide %s":"","Quit":"Izađi","Edit":"Uredi","Copy":"Kopiraj","Cut":"Izreži","Paste":"Zalijepi","Search in all the notes":"Pretraži u svim bilješkama","View":"","Toggle editor layout":"","Tools":"Alati","Synchronisation status":"Status sinkronizacije","Encryption options":"","General Options":"General Options","Help":"Pomoć","Website and documentation":"Website i dokumentacija","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"O Joplinu","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"U redu","Cancel":"Odustani","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Bilješke i postavke su pohranjene u: %s","Save":"Spremi","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"ID","Source":"Izvor","Created":"Stvoreno","Updated":"Ažurirano","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"","Back":"Natrag","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nova bilježnica \"%s\" će biti stvorena i datoteka \"%s\" će biti uvezena u nju","Please create a notebook first.":"Prvo stvori bilježnicu.","Please create a notebook first":"Prvo stvori bilježnicu","Notebook title:":"Naslov bilježnice:","Add or remove tags:":"Dodaj ili makni oznake:","Separate each tag by a comma.":"Odvoji oznake zarezom.","Rename notebook:":"Preimenuj bilježnicu:","Set alarm:":"Postavi upozorenje:","Search":"Traži","Layout":"Izgled","Some items cannot be synchronised.":"Neke stavke se ne mogu sinkronizirati.","View them now":"Pogledaj ih sada","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Dodaj ili makni oznake","Switch between note and to-do type":"Zamijeni bilješku i zadatak","Delete":"Obriši","Delete notes?":"Obriši bilješke?","No notes in here. Create one by clicking on \"New note\".":"Ovdje nema bilješki. Stvori novu pritiskom na \"Nova bilješka\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Ovdje nema bilježnica. Stvori novu pritiskom na \"Nova bilježnica\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Nepodržana poveznica ili poruka: %s","Attach file":"Priloži datoteku","Tags":"Oznake","Set alarm":"Postavi upozorenje","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Osvježi","Clear":"Očisti","OneDrive Login":"OneDrive Login","Options":"Opcije","Synchronisation Status":"Status Sinkronizacije","Encryption Options":"","Remove this tag from all the notes?":"Makni ovu oznaku iz svih bilješki?","Remove this search from the sidebar?":"Makni ovu pretragu iz izbornika?","Rename":"Preimenuj","Synchronise":"Sinkroniziraj","Notebooks":"Bilježnice","Searches":"Pretraživanja","Please select where the sync status should be exported to":"Odaberi lokaciju za izvoz statusa sinkronizacije","Usage: %s":"Korištenje: %s","Unknown flag: %s":"Nepoznata zastavica: %s","File system":"Datotečni sustav","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Samo za testiranje)","WebDAV":"","Unknown log level: %s":"Nepoznata razina logiranja: %s","Unknown level ID: %s":"Nepoznat ID razine: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Nedostaju podaci za ovjeru. Pokušaj ponovo započeti sinkronizaciju.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Ne mogu sinkronizirati OneDrive.\n\nOva greška se često javlja pri korištenju usluge OneDrive for Business koja nije podržana.\n\nMolimo da koristite obični OneDrive korisnički račun.","Cannot access %s":"Ne mogu pristupiti %s","Created local items: %d.":"Stvorene lokalne stavke: %d.","Updated local items: %d.":"Ažurirane lokalne stavke: %d.","Created remote items: %d.":"Stvorene udaljene stavke: %d.","Updated remote items: %d.":"Ažurirane udaljene stavke: %d.","Deleted local items: %d.":"Obrisane lokalne stavke: %d.","Deleted remote items: %d.":"Obrisane udaljene stavke: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"Stanje: \"%s\".","Cancelling...":"Prekidam...","Completed: %s":"Dovršeno: %s","Synchronisation is already in progress. State: %s":"Sinkronizacija je već u toku. Stanje: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Sukobi","A notebook with this title already exists: \"%s\"":"Bilježnica s ovim naslovom već postoji: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Naslov \"%s\" je rezerviran i ne može se koristiti.","Untitled":"Nenaslovljen","This note does not have geolocation information.":"Ova bilješka nema geolokacijske informacije.","Cannot copy note to \"%s\" notebook":"Ne mogu kopirati bilješku u bilježnicu %s","Cannot move note to \"%s\" notebook":"Ne mogu premjestiti bilješku u bilježnicu %s","Text editor":"Uređivač teksta","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Program za uređivanje koji će biti korišten za uređivanje bilješki. Ako ni jedan nije odabran, pokušati će se sa default programom.","Language":"Jezik","Date format":"Format datuma","Time format":"Format vremena","Theme":"Tema","Light":"Svijetla","Dark":"Tamna","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Spremi geolokacijske podatke sa bilješkama","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Automatsko instaliranje nove verzije","Synchronisation interval":"Interval sinkronizacije","%d minutes":"%d minuta","%d hour":"%d sat","%d hours":"%d sati","Show advanced options":"Prikaži napredne opcije","Synchronisation target":"Sinkroniziraj sa","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"Direktorij za sinkroniziranje (apsolutna putanja)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Putanja do direktorija za sinkronizaciju u slučaju kad je sinkronizacija sa datotečnim sustavom omogućena. Vidi `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Nevažeća vrijednost: \"%s\". Moguće vrijednosti su: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Stavke koje se ne mogu sinkronizirati","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Status (sinkronizirane stavke / ukupni broj stavki)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Ukupno: %d/%d","Conflicted: %d":"U sukobu: %d","To delete: %d":"Za brisanje: %d","Folders":"Mape","%s: %d notes":"%s: %d notes","Coming alarms":"Nadolazeća upozorenja","On %s: %s":"On %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Trenutno nema bilješki. Stvori novu klikom na (+) gumb.","Delete these notes?":"Obriši ove bilješke?","Log":"Log","Export Debug Report":"Izvezi Debug izvještaj","Encryption Config":"","Configuration":"Konfiguracija","Move to notebook...":"Premjesti u bilježnicu...","Move %d notes to notebook \"%s\"?":"Premjesti %d bilješke u bilježnicu \"%s\"?","Press to set the decryption password.":"","Select date":"Odaberi datum","Confirm":"Potvrdi","Cancel synchronisation":"Prekini sinkronizaciju","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"Bilježnicu nije moguće snimiti: %s","Edit notebook":"Uredi bilježnicu","Show all":"","Errors only":"","This note has been modified:":"Bilješka je promijenjena:","Save changes":"Spremi promjene","Discard changes":"Odbaci promjene","Unsupported image type: %s":"Nepodržana vrsta slike: %s","Attach photo":"Priloži sliku","Attach any file":"Priloži datoteku","Convert to note":"Pretvori u bilješku","Convert to todo":"Pretvori u zadatak","Hide metadata":"Sakrij metapodatke","Show metadata":"Prikaži metapodatke","View on map":"Vidi na karti","Delete notebook":"Obriši bilježnicu","Login with OneDrive":"Prijavi se u OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Klikni (+) gumb za dodavanje nove bilješke ili bilježnice ili odaberi postojeću bilježnicu iz izbornika.","You currently have no notebook. Create one by clicking on (+) button.":"Trenutno nemaš nijednu bilježnicu. Stvori novu klikom na (+) gumb.","Welcome":"Dobro došli"} \ No newline at end of file diff --git a/ReactNativeClient/locales/it_IT.json b/ReactNativeClient/locales/it_IT.json index 0219cce9d6..e1c3a52ad2 100644 --- a/ReactNativeClient/locales/it_IT.json +++ b/ReactNativeClient/locales/it_IT.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Elimina un'etichetta, togli l'etichetta associata alle note.","Please select the note or notebook to be deleted first.":"Per favore seleziona la nota o il blocco note da eliminare.","Press Ctrl+D or type \"exit\" to exit the application":"Premi Ctrl+D o digita \"exit\" per uscire dall'applicazione","More than one item match \"%s\". Please narrow down your query.":"Più di un elemento corrisponde a \"%s\". Per favore restringi la ricerca.","No notebook selected.":"Nessun blocco note selezionato.","No notebook has been specified.":"Nessun blocco note è statoi specificato.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancellazione della sincronizzazione in background... Attendere prego.","No such command: %s":"Nessun comando: %s","The command \"%s\" is only available in GUI mode":"Il comando \"%s\" è disponibile solo nella modalità grafica","Cannot change encrypted item":"","Missing required argument: %s":"Argomento richiesto mancante: %s","%s: %s":"%s: %s","Your choice: ":"La tua scelta: ","Invalid answer: %s":"Risposta non valida: %s","Attaches the given file to the note.":"Allega il seguente file alla nota.","Cannot find \"%s\".":"Non posso trovare \"%s\".","Displays the given note.":"Mostra la seguente nota.","Displays the complete information about note.":"Mostra le informazioni complete sulla nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Ricevi o imposta un valore di configurazione. se [value] non è impostato, verrà mostrato il valore del [name]. Se sia [name] che [valore] sono impostati, verrà mostrata la configurazione corrente.","Also displays unset and hidden config variables.":"Mostra anche le variabili di configurazione non impostate o nascoste.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica le note che corrispondono a nel [notebook]. Se nessun blocco note è specificato, la nota viene duplicata nel blocco note corrente.","Marks a to-do as done.":"Segna un'attività come completata.","Note is not a to-do: \"%s\"":"La nota non è un'attività: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Disabilitato","Encryption is: %s":"","Edit note.":"Modifica nota.","No text editor is defined. Please set it using `config editor `":"Non è definito nessun editor di testo. Per favore impostalo usando `config editor `","No active notebook.":"Nessun blocco note attivo.","Note does not exist: \"%s\". Create it?":"Non esiste la nota: \"%s\". Desideri crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Comincia a modificare la nota. Chiudi l'editor per tornare al prompt.","Error opening note in editor: %s":"","Note has been saved.":"La nota è stata salvata.","Exits the application.":"Esci dall'applicazione.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Esporta solo la seguente nota.","Exports only the given notebook.":"Esporta solo il seguente blocco note.","Displays a geolocation URL for the note.":"Mostra l'URL di geolocalizzazione per la nota.","Displays usage information.":"Mostra le informazioni di utilizzo.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Le scorciatoie non sono disponibili nella modalità CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"I possibili comandi sono:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In ciascun comando, si deve necessariamente definire una nota o un blocco note usando un titolo, un ID o usando le scorciatoie `$n` or `$b` per , rispettivamente, la nota o il blocco note selezionato `$c` può essere usato per fare riferimento all'elemento selezionato.","To move from one pane to another, press Tab or Shift+Tab.":"Per passare da un pannello all'altro, premi Tab o Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Usa le frecce e pagina su/giù per scorrere le liste e le aree di testo (compresa questa console).","To maximise/minimise the console, press \"TC\".":"Per massimizzare/minimizzare la console, premi \"TC\".","To enter command line mode, press \":\"":"Per entrare nella modalità command line, premi \":\"","To exit command line mode, press ESCAPE":"Per uscire dalla modalità command line, premi ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Non chiedere conferma.","Found: %d.":"Trovato: %d.","Created: %d.":"Creato: %d.","Updated: %d.":"Aggiornato: %d.","Skipped: %d.":"Saltato: %d.","Resources: %d.":"Risorse: %d.","Tagged: %d.":"Etichettato: %d.","Importing notes...":"Importazione delle note...","The notes have been imported: %s":"Le note sono state importate: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Mostra le note nel seguente blocco note. Usa `ls /` per mostrare la lista dei blocchi note.","Displays only the first top notes.":"Mostra solo le prima note.","Sorts the item by (eg. title, updated_time, created_time).":"Ordina per (es. titolo, ultimo aggiornamento, creazione).","Reverses the sorting order.":"Inverti l'ordine.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Mostra solo gli elementi del tipo specificato. Possono essere `n` per le note, `t` per le attività o `nt` per note e attività. (es. `-tt` mostrerà solo le attività, mentre `-ttd` mostrerà sia note che attività.","Either \"text\" or \"json\"":"Sia \"testo\" che \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usa un formato lungo di lista. Il formato è ID, NOTE_COUNT (per i blocchi note), DATE, TODO_CHECKED (per le attività), TITLE","Please select a notebook first.":"Per favore prima seleziona un blocco note.","Creates a new notebook.":"Crea un nuovo blocco note.","Creates a new note.":"Crea una nuova nota.","Notes can only be created within a notebook.":"Le note possono essere create all'interno de blocco note.","Creates a new to-do.":"Crea una nuova attività.","Moves the notes matching to [notebook].":"Sposta le note che corrispondono a in [notebook].","Renames the given (note or notebook) to .":"Rinomina (nota o blocco note) in .","Deletes the given notebook.":"Elimina il seguente blocco note.","Deletes the notebook without asking for confirmation.":"Elimina il blocco note senza richiedere una conferma.","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"Elimina le note che corrispondono a .","Deletes the notes without asking for confirmation.":"Elimina le note senza chiedere conferma.","%d notes match this pattern. Delete them?":"%d note corrispondono. Eliminarle?","Delete note?":"Eliminare la nota?","Searches for the given in all the notes.":"Cerca in tutte le note.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Sets the property of the given to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Mostra un sommario delle note e dei blocchi note.","Synchronises with remote storage.":"Sincronizza con l'archivio remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizza con l'obiettivo fornito (come predefinito il valore di configurazione sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticazione non completata (non è stato ricevuto alcun token di autenticazione).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"La sincronizzazione è in corso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Trovato un file di blocco. Se si è certi che non è in corso alcuna sincronizzazione, è possibile eliminare il file di blocco in \"% s\" e riprendere l'operazione.","Synchronisation target: %s (%s)":"Posizione di sincronizzazione: %s (%s)","Cannot initialize synchroniser.":"Non è possibile inizializzare il sincronizzatore.","Starting synchronisation...":"Inizio sincronizzazione...","Cancelling... Please wait.":"Cancellazione... Attendere per favore."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" può essere \"add\", \"remove\" or \"list\" per assegnare o rimuovere [tag] da [note], o per mostrare le note associate a [tag]. Il comando `tag list` può essere usato per mostrare tutte le etichette.","Invalid command: \"%s\"":"Comando non valido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" può essere \"toggle\" or \"clear\". Usa \"toggle\" per cambiare lo stato dell'attività tra completata/non completata (se l'oggetto è una normale nota, questa verrà convertita in un'attività). Usa \"clear\" convertire le attività in normali note.","Marks a to-do as non-completed.":"Marca un'attività come non completata.","Switches to [notebook] - all further operations will happen within this notebook.":"Passa tra [notebook] - tutte le ulteriori operazioni interesseranno il seguente blocco note.","Displays version information":"Mostra le informazioni sulla versione","%s %s (%s)":"%s %s (%s)","Enum":"Enumerare","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valori possibili: %s.","Default: %s":"Predefinito: %s","Possible keys/values:":"Chiave/valore possibili:","Fatal error:":"Errore fatale:","The application has been authorised - you may now close this browser tab.":"L'applicazione è stata autorizzata - puoi chiudere questo tab del tuo browser.","The application has been successfully authorised.":"L'applicazione è stata autorizzata con successo.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Per favore apri il seguente URL nel tuo browser per autenticare l'applicazione. L'applicazione creerà una directory in \"Apps/Joplin\" e leggerà/scriverà file solo in questa directory. Non avrà accesso a nessun file all'esterno di questa directory o ad alcun dato personale. Nessun dato verrà condiviso con terze parti.","Search:":"Cerca:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"File","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Nuova nota","New to-do":"Nuova attività","New notebook":"Nuovo blocco note","Import":"Importa","Export":"Export","Hide %s":"","Quit":"Esci","Edit":"Modifica","Copy":"Copia","Cut":"Taglia","Paste":"Incolla","Search in all the notes":"Cerca in tutte le note","View":"","Toggle editor layout":"","Tools":"Strumenti","Synchronisation status":"Stato di sincronizzazione","Encryption options":"","General Options":"General Options","Help":"Aiuto","Website and documentation":"Sito web e documentazione","Check for updates...":"","About Joplin":"Informazione si Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Cancella","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Stato","Encryption is:":"","Back":"Indietro","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Il nuovo blocco note \"%s\" verrà creato e \"%s\" vi verrà importato","Please create a notebook first.":"Per favore prima crea un blocco note.","Please create a notebook first":"Per favore prima crea un blocco note","Notebook title:":"Titolo del blocco note:","Add or remove tags:":"Aggiungi or rimuovi etichetta:","Separate each tag by a comma.":"Separa ogni etichetta da una virgola.","Rename notebook:":"Rinomina il blocco note:","Set alarm:":"Imposta allarme:","Search":"Cerca","Layout":"Disposizione","Some items cannot be synchronised.":"Alcuni elementi non possono essere sincronizzati.","View them now":"Mostrali ora","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Aggiungi o rimuovi etichetta","Switch between note and to-do type":"Passa da un tipo di nota a un elenco di attività","Delete":"Elimina","Delete notes?":"Eliminare le note?","No notes in here. Create one by clicking on \"New note\".":"Non è presente nessuna nota. Creane una cliccando \"Nuova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Collegamento o messaggio non supportato: %s","Attach file":"Allega file","Tags":"Etichette","Set alarm":"Imposta allarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Aggiorna","Clear":"Pulisci","OneDrive Login":"Login OneDrive","Options":"Opzioni","Synchronisation Status":"Stato della Sincronizzazione","Encryption Options":"","Remove this tag from all the notes?":"Rimuovere questa etichetta da tutte le note?","Remove this search from the sidebar?":"Rimuovere questa ricerca dalla barra laterale?","Rename":"Rinomina","Synchronise":"Sincronizza","Notebooks":"Blocchi note","Searches":"Ricerche","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Uso: %s","Unknown flag: %s":"Etichetta sconosciuta: %s","File system":"File system","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (solo per test)","WebDAV":"","Unknown log level: %s":"Livello di log sconosciuto: %s","Unknown level ID: %s":"Livello ID sconosciuto: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Non è possibile aggiornare il token. mancano i dati di autenticazione. Ricominciare la sincronizzazione da capo potrebbe risolvere il problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Impossibile sincronizzare con OneDrive.\n\nQuesto errore spesso accade quando si utilizza OneDrive for Business, che purtroppo non può essere supportato.\n\nSi prega di considerare l'idea di utilizzare un account OneDrive normale.","Cannot access %s":"Non è possibile accedere a %s","Created local items: %d.":"Elementi locali creati: %d.","Updated local items: %d.":"Elementi locali aggiornati: %d.","Created remote items: %d.":"Elementi remoti creati: %d.","Updated remote items: %d.":"Elementi remoti aggiornati: %d.","Deleted local items: %d.":"Elementi locali eliminati: %d.","Deleted remote items: %d.":"Elementi remoti eliminati: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"Stato: \"%s\".","Cancelling...":"Cancellazione...","Completed: %s":"Completata: %s","Synchronisation is already in progress. State: %s":"La sincronizzazione è già in corso. Stato: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Conflitti","A notebook with this title already exists: \"%s\"":"Esiste già un blocco note col titolo \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"I blocchi non possono essere chiamati \"%s\". È un titolo riservato.","Untitled":"Senza titolo","This note does not have geolocation information.":"Questa nota non ha informazione sulla geolocalizzazione.","Cannot copy note to \"%s\" notebook":"Non posso copiare la nota nel blocco note \"%s\"","Cannot move note to \"%s\" notebook":"Non posso spostare la nota nel blocco note \"%s\"","Text editor":"Editor di testo","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"L'editor che sarà usato per aprire la nota. Se nessun editor è specificato si cercherà di individuare automaticamente l'editor predefinito.","Language":"Linguaggio","Date format":"Formato della data","Time format":"Formato dell'orario","Theme":"Tema","Light":"Chiaro","Dark":"Scuro","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Salva geo-localizzazione con le note","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Aggiorna automaticamente l'applicazione","Synchronisation interval":"Intervallo di sincronizzazione","%d minutes":"%d minuti","%d hour":"%d ora","%d hours":"%d ore","Show advanced options":"Mostra opzioni avanzate","Synchronisation target":"Destinazione di sincronizzazione","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Il percorso di sincronizzazione quando la sincronizzazione è abilitata. Vedi `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Oprione non valida: \"%s\". I valori possibili sono: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Elementi che non possono essere sincronizzati","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Stato di sincronizzazione (Elementi sincronizzati / Elementi totali)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Totale: %d %d","Conflicted: %d":"In conflitto: %d","To delete: %d":"Da cancellare: %d","Folders":"Cartelle","%s: %d notes":"%s: %d note","Coming alarms":"Avviso imminente","On %s: %s":"Su %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Al momento non ci sono note. Creane una cliccando sul bottone (+).","Delete these notes?":"Cancellare queste note?","Log":"Log","Export Debug Report":"Esporta il Report di Debug","Encryption Config":"","Configuration":"Configurazione","Move to notebook...":"Sposta sul blocco note...","Move %d notes to notebook \"%s\"?":"Spostare le note %d sul blocco note \"%s\"?","Press to set the decryption password.":"","Select date":"Seleziona la data","Confirm":"Conferma","Cancel synchronisation":"Cancella la sincronizzazione","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"Il blocco note non può essere salvato: %s","Edit notebook":"Modifica blocco note","Show all":"","Errors only":"","This note has been modified:":"Questa note è stata modificata:","Save changes":"Salva i cambiamenti","Discard changes":"Ignora modifiche","Unsupported image type: %s":"Tipo di immagine non supportata: %s","Attach photo":"Allega foto","Attach any file":"Allega qualsiasi file","Convert to note":"Converti in nota","Convert to todo":"Converti in Todo","Hide metadata":"Nascondi i Metadati","Show metadata":"Mostra i metadati","View on map":"Guarda sulla mappa","Delete notebook":"Cancella blocco note","Login with OneDrive":"Accedi a OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Fare clic sul pulsante (+) per creare una nuova nota o un nuovo blocco note. Fare clic sul menu laterale per accedere ai tuoi blocchi note esistenti.","You currently have no notebook. Create one by clicking on (+) button.":"Attualmente non hai nessun blocco note. Crearne uno cliccando sul pulsante (+).","Welcome":"Benvenuto"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Elimina un'etichetta, togli l'etichetta associata alle note.","Please select the note or notebook to be deleted first.":"Per favore seleziona la nota o il blocco note da eliminare.","Press Ctrl+D or type \"exit\" to exit the application":"Premi Ctrl+D o digita \"exit\" per uscire dall'applicazione","More than one item match \"%s\". Please narrow down your query.":"Più di un elemento corrisponde a \"%s\". Per favore restringi la ricerca.","No notebook selected.":"Nessun blocco note selezionato.","No notebook has been specified.":"Nessun blocco note è statoi specificato.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancellazione della sincronizzazione in background... Attendere prego.","No such command: %s":"Nessun comando: %s","The command \"%s\" is only available in GUI mode":"Il comando \"%s\" è disponibile solo nella modalità grafica","Cannot change encrypted item":"","Missing required argument: %s":"Argomento richiesto mancante: %s","%s: %s":"%s: %s","Your choice: ":"La tua scelta: ","Invalid answer: %s":"Risposta non valida: %s","Attaches the given file to the note.":"Allega il seguente file alla nota.","Cannot find \"%s\".":"Non posso trovare \"%s\".","Displays the given note.":"Mostra la seguente nota.","Displays the complete information about note.":"Mostra le informazioni complete sulla nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Ricevi o imposta un valore di configurazione. se [value] non è impostato, verrà mostrato il valore del [name]. Se sia [name] che [valore] sono impostati, verrà mostrata la configurazione corrente.","Also displays unset and hidden config variables.":"Mostra anche le variabili di configurazione non impostate o nascoste.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica le note che corrispondono a nel [notebook]. Se nessun blocco note è specificato, la nota viene duplicata nel blocco note corrente.","Marks a to-do as done.":"Segna un'attività come completata.","Note is not a to-do: \"%s\"":"La nota non è un'attività: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Disabilitato","Encryption is: %s":"","Edit note.":"Modifica nota.","No text editor is defined. Please set it using `config editor `":"Non è definito nessun editor di testo. Per favore impostalo usando `config editor `","No active notebook.":"Nessun blocco note attivo.","Note does not exist: \"%s\". Create it?":"Non esiste la nota: \"%s\". Desideri crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Comincia a modificare la nota. Chiudi l'editor per tornare al prompt.","Error opening note in editor: %s":"","Note has been saved.":"La nota è stata salvata.","Exits the application.":"Esci dall'applicazione.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Esporta solo la seguente nota.","Exports only the given notebook.":"Esporta solo il seguente blocco note.","Displays a geolocation URL for the note.":"Mostra l'URL di geolocalizzazione per la nota.","Displays usage information.":"Mostra le informazioni di utilizzo.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Le scorciatoie non sono disponibili nella modalità CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"I possibili comandi sono:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In ciascun comando, si deve necessariamente definire una nota o un blocco note usando un titolo, un ID o usando le scorciatoie `$n` or `$b` per , rispettivamente, la nota o il blocco note selezionato `$c` può essere usato per fare riferimento all'elemento selezionato.","To move from one pane to another, press Tab or Shift+Tab.":"Per passare da un pannello all'altro, premi Tab o Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Usa le frecce e pagina su/giù per scorrere le liste e le aree di testo (compresa questa console).","To maximise/minimise the console, press \"TC\".":"Per massimizzare/minimizzare la console, premi \"TC\".","To enter command line mode, press \":\"":"Per entrare nella modalità command line, premi \":\"","To exit command line mode, press ESCAPE":"Per uscire dalla modalità command line, premi ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Non chiedere conferma.","Found: %d.":"Trovato: %d.","Created: %d.":"Creato: %d.","Updated: %d.":"Aggiornato: %d.","Skipped: %d.":"Saltato: %d.","Resources: %d.":"Risorse: %d.","Tagged: %d.":"Etichettato: %d.","Importing notes...":"Importazione delle note...","The notes have been imported: %s":"Le note sono state importate: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Mostra le note nel seguente blocco note. Usa `ls /` per mostrare la lista dei blocchi note.","Displays only the first top notes.":"Mostra solo le prima note.","Sorts the item by (eg. title, updated_time, created_time).":"Ordina per (es. titolo, ultimo aggiornamento, creazione).","Reverses the sorting order.":"Inverti l'ordine.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Mostra solo gli elementi del tipo specificato. Possono essere `n` per le note, `t` per le attività o `nt` per note e attività. (es. `-tt` mostrerà solo le attività, mentre `-ttd` mostrerà sia note che attività.","Either \"text\" or \"json\"":"Sia \"testo\" che \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usa un formato lungo di lista. Il formato è ID, NOTE_COUNT (per i blocchi note), DATE, TODO_CHECKED (per le attività), TITLE","Please select a notebook first.":"Per favore prima seleziona un blocco note.","Creates a new notebook.":"Crea un nuovo blocco note.","Creates a new note.":"Crea una nuova nota.","Notes can only be created within a notebook.":"Le note possono essere create all'interno de blocco note.","Creates a new to-do.":"Crea una nuova attività.","Moves the notes matching to [notebook].":"Sposta le note che corrispondono a in [notebook].","Renames the given (note or notebook) to .":"Rinomina (nota o blocco note) in .","Deletes the given notebook.":"Elimina il seguente blocco note.","Deletes the notebook without asking for confirmation.":"Elimina il blocco note senza richiedere una conferma.","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"Elimina le note che corrispondono a .","Deletes the notes without asking for confirmation.":"Elimina le note senza chiedere conferma.","%d notes match this pattern. Delete them?":"%d note corrispondono. Eliminarle?","Delete note?":"Eliminare la nota?","Searches for the given in all the notes.":"Cerca in tutte le note.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Sets the property of the given to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Mostra un sommario delle note e dei blocchi note.","Synchronises with remote storage.":"Sincronizza con l'archivio remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizza con l'obiettivo fornito (come predefinito il valore di configurazione sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticazione non completata (non è stato ricevuto alcun token di autenticazione).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"La sincronizzazione è in corso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Trovato un file di blocco. Se si è certi che non è in corso alcuna sincronizzazione, è possibile eliminare il file di blocco in \"% s\" e riprendere l'operazione.","Synchronisation target: %s (%s)":"Posizione di sincronizzazione: %s (%s)","Cannot initialize synchroniser.":"Non è possibile inizializzare il sincronizzatore.","Starting synchronisation...":"Inizio sincronizzazione...","Cancelling... Please wait.":"Cancellazione... Attendere per favore."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" può essere \"add\", \"remove\" or \"list\" per assegnare o rimuovere [tag] da [note], o per mostrare le note associate a [tag]. Il comando `tag list` può essere usato per mostrare tutte le etichette.","Invalid command: \"%s\"":"Comando non valido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" può essere \"toggle\" or \"clear\". Usa \"toggle\" per cambiare lo stato dell'attività tra completata/non completata (se l'oggetto è una normale nota, questa verrà convertita in un'attività). Usa \"clear\" convertire le attività in normali note.","Marks a to-do as non-completed.":"Marca un'attività come non completata.","Switches to [notebook] - all further operations will happen within this notebook.":"Passa tra [notebook] - tutte le ulteriori operazioni interesseranno il seguente blocco note.","Displays version information":"Mostra le informazioni sulla versione","%s %s (%s)":"%s %s (%s)","Enum":"Enumerare","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valori possibili: %s.","Default: %s":"Predefinito: %s","Possible keys/values:":"Chiave/valore possibili:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Errore fatale:","The application has been authorised - you may now close this browser tab.":"L'applicazione è stata autorizzata - puoi chiudere questo tab del tuo browser.","The application has been successfully authorised.":"L'applicazione è stata autorizzata con successo.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Per favore apri il seguente URL nel tuo browser per autenticare l'applicazione. L'applicazione creerà una directory in \"Apps/Joplin\" e leggerà/scriverà file solo in questa directory. Non avrà accesso a nessun file all'esterno di questa directory o ad alcun dato personale. Nessun dato verrà condiviso con terze parti.","Search:":"Cerca:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"File","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Nuova nota","New to-do":"Nuova attività","New notebook":"Nuovo blocco note","Import":"Importa","Export":"Export","Hide %s":"","Quit":"Esci","Edit":"Modifica","Copy":"Copia","Cut":"Taglia","Paste":"Incolla","Search in all the notes":"Cerca in tutte le note","View":"","Toggle editor layout":"","Tools":"Strumenti","Synchronisation status":"Stato di sincronizzazione","Encryption options":"","General Options":"General Options","Help":"Aiuto","Website and documentation":"Sito web e documentazione","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Informazione si Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Cancella","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Stato","Encryption is:":"","Back":"Indietro","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Il nuovo blocco note \"%s\" verrà creato e \"%s\" vi verrà importato","Please create a notebook first.":"Per favore prima crea un blocco note.","Please create a notebook first":"Per favore prima crea un blocco note","Notebook title:":"Titolo del blocco note:","Add or remove tags:":"Aggiungi or rimuovi etichetta:","Separate each tag by a comma.":"Separa ogni etichetta da una virgola.","Rename notebook:":"Rinomina il blocco note:","Set alarm:":"Imposta allarme:","Search":"Cerca","Layout":"Disposizione","Some items cannot be synchronised.":"Alcuni elementi non possono essere sincronizzati.","View them now":"Mostrali ora","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Aggiungi o rimuovi etichetta","Switch between note and to-do type":"Passa da un tipo di nota a un elenco di attività","Delete":"Elimina","Delete notes?":"Eliminare le note?","No notes in here. Create one by clicking on \"New note\".":"Non è presente nessuna nota. Creane una cliccando \"Nuova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Collegamento o messaggio non supportato: %s","Attach file":"Allega file","Tags":"Etichette","Set alarm":"Imposta allarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Aggiorna","Clear":"Pulisci","OneDrive Login":"Login OneDrive","Options":"Opzioni","Synchronisation Status":"Stato della Sincronizzazione","Encryption Options":"","Remove this tag from all the notes?":"Rimuovere questa etichetta da tutte le note?","Remove this search from the sidebar?":"Rimuovere questa ricerca dalla barra laterale?","Rename":"Rinomina","Synchronise":"Sincronizza","Notebooks":"Blocchi note","Searches":"Ricerche","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Uso: %s","Unknown flag: %s":"Etichetta sconosciuta: %s","File system":"File system","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (solo per test)","WebDAV":"","Unknown log level: %s":"Livello di log sconosciuto: %s","Unknown level ID: %s":"Livello ID sconosciuto: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Non è possibile aggiornare il token. mancano i dati di autenticazione. Ricominciare la sincronizzazione da capo potrebbe risolvere il problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Impossibile sincronizzare con OneDrive.\n\nQuesto errore spesso accade quando si utilizza OneDrive for Business, che purtroppo non può essere supportato.\n\nSi prega di considerare l'idea di utilizzare un account OneDrive normale.","Cannot access %s":"Non è possibile accedere a %s","Created local items: %d.":"Elementi locali creati: %d.","Updated local items: %d.":"Elementi locali aggiornati: %d.","Created remote items: %d.":"Elementi remoti creati: %d.","Updated remote items: %d.":"Elementi remoti aggiornati: %d.","Deleted local items: %d.":"Elementi locali eliminati: %d.","Deleted remote items: %d.":"Elementi remoti eliminati: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"Stato: \"%s\".","Cancelling...":"Cancellazione...","Completed: %s":"Completata: %s","Synchronisation is already in progress. State: %s":"La sincronizzazione è già in corso. Stato: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Conflitti","A notebook with this title already exists: \"%s\"":"Esiste già un blocco note col titolo \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"I blocchi non possono essere chiamati \"%s\". È un titolo riservato.","Untitled":"Senza titolo","This note does not have geolocation information.":"Questa nota non ha informazione sulla geolocalizzazione.","Cannot copy note to \"%s\" notebook":"Non posso copiare la nota nel blocco note \"%s\"","Cannot move note to \"%s\" notebook":"Non posso spostare la nota nel blocco note \"%s\"","Text editor":"Editor di testo","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"L'editor che sarà usato per aprire la nota. Se nessun editor è specificato si cercherà di individuare automaticamente l'editor predefinito.","Language":"Linguaggio","Date format":"Formato della data","Time format":"Formato dell'orario","Theme":"Tema","Light":"Chiaro","Dark":"Scuro","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Salva geo-localizzazione con le note","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Aggiorna automaticamente l'applicazione","Synchronisation interval":"Intervallo di sincronizzazione","%d minutes":"%d minuti","%d hour":"%d ora","%d hours":"%d ore","Show advanced options":"Mostra opzioni avanzate","Synchronisation target":"Destinazione di sincronizzazione","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Il percorso di sincronizzazione quando la sincronizzazione è abilitata. Vedi `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Oprione non valida: \"%s\". I valori possibili sono: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Elementi che non possono essere sincronizzati","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Stato di sincronizzazione (Elementi sincronizzati / Elementi totali)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Totale: %d %d","Conflicted: %d":"In conflitto: %d","To delete: %d":"Da cancellare: %d","Folders":"Cartelle","%s: %d notes":"%s: %d note","Coming alarms":"Avviso imminente","On %s: %s":"Su %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Al momento non ci sono note. Creane una cliccando sul bottone (+).","Delete these notes?":"Cancellare queste note?","Log":"Log","Export Debug Report":"Esporta il Report di Debug","Encryption Config":"","Configuration":"Configurazione","Move to notebook...":"Sposta sul blocco note...","Move %d notes to notebook \"%s\"?":"Spostare le note %d sul blocco note \"%s\"?","Press to set the decryption password.":"","Select date":"Seleziona la data","Confirm":"Conferma","Cancel synchronisation":"Cancella la sincronizzazione","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"Il blocco note non può essere salvato: %s","Edit notebook":"Modifica blocco note","Show all":"","Errors only":"","This note has been modified:":"Questa note è stata modificata:","Save changes":"Salva i cambiamenti","Discard changes":"Ignora modifiche","Unsupported image type: %s":"Tipo di immagine non supportata: %s","Attach photo":"Allega foto","Attach any file":"Allega qualsiasi file","Convert to note":"Converti in nota","Convert to todo":"Converti in Todo","Hide metadata":"Nascondi i Metadati","Show metadata":"Mostra i metadati","View on map":"Guarda sulla mappa","Delete notebook":"Cancella blocco note","Login with OneDrive":"Accedi a OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Fare clic sul pulsante (+) per creare una nuova nota o un nuovo blocco note. Fare clic sul menu laterale per accedere ai tuoi blocchi note esistenti.","You currently have no notebook. Create one by clicking on (+) button.":"Attualmente non hai nessun blocco note. Crearne uno cliccando sul pulsante (+).","Welcome":"Benvenuto"} \ No newline at end of file diff --git a/ReactNativeClient/locales/ja_JP.json b/ReactNativeClient/locales/ja_JP.json index 39c29e4dd4..9a2b205ef0 100644 --- a/ReactNativeClient/locales/ja_JP.json +++ b/ReactNativeClient/locales/ja_JP.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"タグを削除するには、関連するノートからタグを外してください。","Please select the note or notebook to be deleted first.":"ます削除するノートかノートブックを選択してください。","Press Ctrl+D or type \"exit\" to exit the application":"アプリケーションを終了するには、Ctrl+Dまたは\"exit\"と入力してください","More than one item match \"%s\". Please narrow down your query.":"一つ以上のアイテムが\"%s\"に一致しました。クエリを絞るようにしてください。","No notebook selected.":"ノートブックが選択されていません。","No notebook has been specified.":"ノートブックが選択されていません。","Y":"","n":"","N":"","y":"","Cancelling background synchronisation... Please wait.":"バックグラウンド同期を中止中… しばらくお待ちください。","No such command: %s":"コマンドが違います:%s","The command \"%s\" is only available in GUI mode":"コマンド \"%s\"は、GUIのみで有効です。","Cannot change encrypted item":"","Missing required argument: %s":"引数が足りません:%s","%s: %s":"","Your choice: ":"選択:","Invalid answer: %s":"無効な入力:%s","Attaches the given file to the note.":"選択されたファイルをノートに添付","Cannot find \"%s\".":"\"%s\"は見つかりませんでした。","Displays the given note.":"選択されたノートを表示","Displays the complete information about note.":"ノートに関するすべての情報を表示","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"設定を行います。[value]がない場合は、[name]で示された設定項目の値を表示します。両方とも指定されていない場合は、現在の設定のリストを表示します。","Also displays unset and hidden config variables.":"未設定または非表示の設定項目も表示します。","%s = %s (%s)":"","%s = %s":"","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"に一致するノートを[notebook]に複製します。[notebook]が指定されていない場合は、現在のノートブックに複製を行います。","Marks a to-do as done.":"ToDoを完了として","Note is not a to-do: \"%s\"":"ノートはToDoリストではありません:\"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"無効","Encryption is: %s":"","Edit note.":"ノートを編集する。","No text editor is defined. Please set it using `config editor `":"テキストエディタが設定されていません。`config editor `で設定を行ってください。","No active notebook.":"有効なbノートブックがありません。","Note does not exist: \"%s\". Create it?":"\"%s\"というノートはありません。お作りいたしますか?","Starting to edit note. Close the editor to get back to the prompt.":"ノートの編集の開始。エディタを閉じると元の画面に戻ることが出来ます。","Error opening note in editor: %s":"","Note has been saved.":"ノートは保存されました。","Exits the application.":"アプリケーションの終了。","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"選択されたノートのみを出力する。","Exports only the given notebook.":"選択されたノートブックのみを出力する。","Displays a geolocation URL for the note.":"ノートの位置情報URLを表示する。","Displays usage information.":"使い方を表示する。","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"CLIモードではショートカットは使用できません。","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"コマンドのさらなる情報は、`help [command]`で見ることが出来ます;または、`help all`ですべての使用方法の情報を表示できます。","The possible commands are:":"有効なコマンドは:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"すべてのコマンドで、ノートまたはノートブックは、題名またはID、または選択中の物はそれぞれショートカット`$n`または`$b`で指定できます。`$c`で選択中のアイテムを参照できます。","To move from one pane to another, press Tab or Shift+Tab.":"ペイン間を移動するには、TabかShift+Tabをおしてください。","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"リストや入力エリアの移動には矢印キーまたはPage Up/Downを使用します。","To maximise/minimise the console, press \"TC\".":"コンソールの最大化・最小化には\"TC\"と入力してください。","To enter command line mode, press \":\"":"コマンドラインモードに入るには、\":\"を入力してください。","To exit command line mode, press ESCAPE":"コマンドラインモードを終了するには、ESCキーを押してください。","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"確認を行わない。","Found: %d.":"見つかりました:%d","Created: %d.":"作成しました:%d","Updated: %d.":"アップデートしました:%d","Skipped: %d.":"スキップしました:%d","Resources: %d.":"リソース:%d","Tagged: %d.":"タグ付き:%d","Importing notes...":"ノートのインポート…","The notes have been imported: %s":"ノートはインポートされました:%s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"現在のノートブック中のノートを表示します。ノートブックのリストを表示するには、`ls /`と入力してください。","Displays only the first top notes.":"上位 件のノートを表示する。","Sorts the item by (eg. title, updated_time, created_time).":"アイテムをで並び替え (例: title, updated_time, created_time).","Reverses the sorting order.":"逆順に並び替える。","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.","Either \"text\" or \"json\"":"\"text\"または\"json\"のどちらか","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"長い形式のリストフォーマットを使用します。フォーマットは:ID, NOTE_COUNT (ノートブックのみ), DATE, TODO_CHECKED (ToDoのみ), TITLE","Please select a notebook first.":"ますはノートブックを選択して下さい。","Creates a new notebook.":"あたらしいノートブックを作成します。","Creates a new note.":"あたらしいノートを作成します。","Notes can only be created within a notebook.":"ノートは、ノートブック内のみで作ることが出来ます。","Creates a new to-do.":"新しいToDoを作成します。","Moves the notes matching to [notebook].":"に一致するアイテムを、[notebook]に移動します。","Renames the given (note or notebook) to .":" (ノートまたはノートブック)の名前を、に変更します。","Deletes the given notebook.":"指定されたノートブックを削除します。","Deletes the notebook without asking for confirmation.":"ノートブックを確認なしで削除します。","Delete notebook? All notes within this notebook will also be deleted.":"ノートブックを削除しますか?中にあるノートはすべて消えてしまいます。","Deletes the notes matching .":"に一致するノートを削除する。","Deletes the notes without asking for confirmation.":"ノートを確認なしで削除します。","%d notes match this pattern. Delete them?":"%d個のノートが一致しました。削除しますか?","Delete note?":"ノートを削除しますか?","Searches for the given in all the notes.":"指定されたをすべてのノートから検索する。","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"のプロパティ を、指示された[value]に設定します。有効なプロパティは:\n\n%s","Displays summary about the notes and notebooks.":"ノートとノートブックのサマリを表示します。","Synchronises with remote storage.":"リモート保存領域と同期します。","Sync to provided target (defaults to sync.target config value)":"指定のターゲットと同期します。(標準: sync.targetの設定値)","Authentication was not completed (did not receive an authentication token).":"認証は完了していません(認証トークンが得られませんでした)","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"同期はすでに実行中です。","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"ロックファイルがすでに保持されています。同期作業が行われていない場合は、\"%s\"にあるロックファイルを削除して、作業を再度行ってください。","Synchronisation target: %s (%s)":"同期先: %s (%s)","Cannot initialize synchroniser.":"同期プロセスを初期化できませんでした。","Starting synchronisation...":"同期を開始中...","Cancelling... Please wait.":"中止中...お待ちください。"," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" は\"add\", \"remove\", \"list\"のいずれかで、指定したノートからタグをつけたり外したり出来ます。`tag list`で、すべてのタグを見ることが出来ます。","Invalid command: \"%s\"":"無効な命令: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"は、\"toggle\"または\"clear\"を指定できます。\"toggle\"を指定すると、指定したToDoの完了済み/未完を反転できます。指定したノートが通常のノートであれば、ToDoに変換されます。\"clear\"を指定すると、ToDoを通常のノートに変換できます。","Marks a to-do as non-completed.":"ToDoを未完としてマーク","Switches to [notebook] - all further operations will happen within this notebook.":"ノートブック [notebook]に切り替え - これ以降の作業は、指定のノートブック内で行われます。","Displays version information":"バージョン情報の表示","%s %s (%s)":"","Enum":"列挙","Type: %s.":"種類: %s.","Possible values: %s.":"取り得る値: %s.","Default: %s":"規定値: %s","Possible keys/values:":"取り得るキーバリュー: ","Fatal error:":"致命的なエラー: ","The application has been authorised - you may now close this browser tab.":"アプリケーションは認証されました - ブラウザを閉じて頂いてかまいません。","The application has been successfully authorised.":"アプリケーションは問題なく認証されました。","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"このアプリケーションを認証するためには下記のURLをブラウザで開いてください。アプリケーションは\"Apps/Joplin\"フォルダを作成し、その中のファイルのみを読み書きします。あなたの個人的なファイルや、ディレクトリ外のファイルにはアクセスしません。第三者にデータが共有されることもありません。","Search:":"検索: ","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Joplinへようこそ!\n\n`:help shortcuts`と入力することで、キーボードショートカットのリストを見ることが出来ます。また、`:help`で使い方を確認できます。\n\n例えば、ノートブックの作成には`mb`で出来、ノートの作成は`mn`で行うことが出来ます。","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"ファイル","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"新しいノート","New to-do":"新しいToDo","New notebook":"新しいノートブック","Import":"インポート","Export":"Export","Hide %s":"","Quit":"終了","Edit":"編集","Copy":"コピー","Cut":"切り取り","Paste":"貼り付け","Search in all the notes":"すべてのノートを検索","View":"","Toggle editor layout":"","Tools":"ツール","Synchronisation status":"同期状況","Encryption options":"","General Options":"General Options","Help":"ヘルプ","Website and documentation":"Webサイトとドキュメント","Check for updates...":"","About Joplin":"Joplinについて","%s %s (%s, %s)":"","Open %s":"","Exit":"","OK":"","Cancel":"キャンセル","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"ノートと設定は、%sに保存されます。","Save":"保存","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"アクティブ","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"注意:\"active\"に指定されたマスターキーのみが暗号化に使用されます。暗号化に使用されたキーの応じて、すべてのキーが暗号解除のために使用されます。","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"状態","Encryption is:":"","Back":"戻る","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"\"%s\"という名前の新しいノートブックが作成され、ファイル\"%s\"がインポートされます。","Please create a notebook first.":"ますはノートブックを作成して下さい。","Please create a notebook first":"ますはノートブックを作成して下さい。","Notebook title:":"ノートブックの題名:","Add or remove tags:":"タグの追加・削除:","Separate each tag by a comma.":"それぞれのタグをカンマ(,)で区切ってください。","Rename notebook:":"ノートブックの名前を変更:","Set alarm:":"アラームをセット:","Search":"検索","Layout":"レイアウト","Some items cannot be synchronised.":"いくつかの項目は同期されませんでした。","View them now":"今すぐ表示","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"タグの追加・削除","Switch between note and to-do type":"ノートとToDoを切り替え","Delete":"削除","Delete notes?":"ノートを削除しますか?","No notes in here. Create one by clicking on \"New note\".":"ノートがありません。新しいノートを作成して下さい。","There is currently no notebook. Create one by clicking on \"New notebook\".":"ノートブックがありません。新しいノートブックを作成してください。","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"","Attach file":"ファイルを添付","Tags":"タグ","Set alarm":"アラームをセット","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"更新","Clear":"クリア","OneDrive Login":"OneDriveログイン","Options":"オプション","Synchronisation Status":"同期状況","Encryption Options":"","Remove this tag from all the notes?":"すべてのノートからこのタグを削除しますか?","Remove this search from the sidebar?":"サイドバーからこの検索を削除しますか?","Rename":"名前の変更","Synchronise":"同期","Notebooks":"ノートブック","Searches":"検索","Please select where the sync status should be exported to":"同期状況の出力先を選択してください","Usage: %s":"使用方法: %s","Unknown flag: %s":"不明なフラグ: %s","File system":"ファイルシステム","Nextcloud":"","OneDrive":"","OneDrive Dev (For testing only)":"","WebDAV":"","Unknown log level: %s":"","Unknown level ID: %s":"","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"トークンの更新が出来ませんでした。認証データがありません。同期を再度行うことで解決することがあります。","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"OneDriveと同期できませんでした。\n\nOneDrive for Business(未サポート)を使用中はこのエラーが起こることがあります。\n\n通常のOneDriveアカウントの使用をご検討ください。","Cannot access %s":"%sにアクセスできません","Created local items: %d.":"ローカルアイテムの作成: %d.","Updated local items: %d.":"ローカルアイテムの更新: %d.","Created remote items: %d.":"リモートアイテムの作成: %d.","Updated remote items: %d.":"リモートアイテムの更新: %d.","Deleted local items: %d.":"ローカルアイテムの削除: %d.","Deleted remote items: %d.":"リモートアイテムの削除: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"状態: \"%s\"。","Cancelling...":"中止中...","Completed: %s":"完了: %s","Synchronisation is already in progress. State: %s":"同期作業はすでに実行中です。状態: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"衝突","A notebook with this title already exists: \"%s\"":"\"%s\"という名前のノートブックはすでに存在しています。","Notebooks cannot be named \"%s\", which is a reserved title.":"\"%s\"と言う名前はシステムで使用するために予約済みです。名前の変更が出来ません。","Untitled":"名称未設定","This note does not have geolocation information.":"このノートには位置情報がありません。","Cannot copy note to \"%s\" notebook":"ノートをノートブック \"%s\"にコピーできませんでした。","Cannot move note to \"%s\" notebook":"ノートをノートブック \"%s\"に移動できませんでした。","Text editor":"テキストエディタ","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"ノートを開くために使用されるエディタです。特に指定がなければ、デフォルトのエディタの検出を試みます。","Language":"言語","Date format":"日付の形式","Time format":"時刻の形式","Theme":"テーマ","Light":"明るい","Dark":"暗い","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"ノートに位置情報を保存","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"アプリケーションの自動更新","Synchronisation interval":"同期間隔","%d minutes":"%d 分","%d hour":"%d 時間","%d hours":"%d 時間","Show advanced options":"詳細な設定の表示","Synchronisation target":"同期先","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"同期先のディレクトリ(絶対パス)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"ファイルシステム同期の有効時に同期を行うパスです。`sync.target`も参考にしてください。","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"無効な設定値: \"%s\"。有効な値は: %sです。","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"同期が出来なかったアイテム","%s (%s): %s":"","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"同期状況 (同期済/総数)","%s: %d/%d":"","Total: %d/%d":"総数: %d/%d","Conflicted: %d":"衝突: %d","To delete: %d":"削除予定: %d","Folders":"フォルダ","%s: %d notes":"%s: %d ノート","Coming alarms":"時間のきたアラーム","On %s: %s":"","There are currently no notes. Create one by clicking on the (+) button.":"ノートがありません。(+)ボタンを押して新しいノートを作成してください。","Delete these notes?":"ノートを削除しますか?","Log":"ログ","Export Debug Report":"デバッグレポートの出力","Encryption Config":"","Configuration":"設定","Move to notebook...":"ノートブックへ移動...","Move %d notes to notebook \"%s\"?":"%d個のノートを\"%s\"に移動しますか?","Press to set the decryption password.":"","Select date":"日付の選択","Confirm":"確認","Cancel synchronisation":"同期の中止","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"ノートブックは保存できませんでした:%s","Edit notebook":"ノートブックの編集","Show all":"","Errors only":"","This note has been modified:":"ノートは変更されています:","Save changes":"変更を保存","Discard changes":"変更を破棄","Unsupported image type: %s":"サポートされていないイメージ形式: %s.","Attach photo":"写真を添付","Attach any file":"ファイルを添付","Convert to note":"ノートに変換","Convert to todo":"ToDoに変換","Hide metadata":"メタデータを隠す","Show metadata":"メタデータを表示","View on map":"地図上に表示","Delete notebook":"ノートブックを削除","Login with OneDrive":"OneDriveログイン","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"(+)ボタンを押してノートやノートブックを作成してください。サイドメニューからあなたのノートブックにアクセスが出来ます。","You currently have no notebook. Create one by clicking on (+) button.":"ノートブックがありません。(+)をクリックして新しいノートブックを作成してください。","Welcome":"ようこそ"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"タグを削除するには、関連するノートからタグを外してください。","Please select the note or notebook to be deleted first.":"ます削除するノートかノートブックを選択してください。","Press Ctrl+D or type \"exit\" to exit the application":"アプリケーションを終了するには、Ctrl+Dまたは\"exit\"と入力してください","More than one item match \"%s\". Please narrow down your query.":"一つ以上のアイテムが\"%s\"に一致しました。クエリを絞るようにしてください。","No notebook selected.":"ノートブックが選択されていません。","No notebook has been specified.":"ノートブックが選択されていません。","Y":"","n":"","N":"","y":"","Cancelling background synchronisation... Please wait.":"バックグラウンド同期を中止中… しばらくお待ちください。","No such command: %s":"コマンドが違います:%s","The command \"%s\" is only available in GUI mode":"コマンド \"%s\"は、GUIのみで有効です。","Cannot change encrypted item":"","Missing required argument: %s":"引数が足りません:%s","%s: %s":"","Your choice: ":"選択:","Invalid answer: %s":"無効な入力:%s","Attaches the given file to the note.":"選択されたファイルをノートに添付","Cannot find \"%s\".":"\"%s\"は見つかりませんでした。","Displays the given note.":"選択されたノートを表示","Displays the complete information about note.":"ノートに関するすべての情報を表示","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"設定を行います。[value]がない場合は、[name]で示された設定項目の値を表示します。両方とも指定されていない場合は、現在の設定のリストを表示します。","Also displays unset and hidden config variables.":"未設定または非表示の設定項目も表示します。","%s = %s (%s)":"","%s = %s":"","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"に一致するノートを[notebook]に複製します。[notebook]が指定されていない場合は、現在のノートブックに複製を行います。","Marks a to-do as done.":"ToDoを完了として","Note is not a to-do: \"%s\"":"ノートはToDoリストではありません:\"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"無効","Encryption is: %s":"","Edit note.":"ノートを編集する。","No text editor is defined. Please set it using `config editor `":"テキストエディタが設定されていません。`config editor `で設定を行ってください。","No active notebook.":"有効なbノートブックがありません。","Note does not exist: \"%s\". Create it?":"\"%s\"というノートはありません。お作りいたしますか?","Starting to edit note. Close the editor to get back to the prompt.":"ノートの編集の開始。エディタを閉じると元の画面に戻ることが出来ます。","Error opening note in editor: %s":"","Note has been saved.":"ノートは保存されました。","Exits the application.":"アプリケーションの終了。","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"選択されたノートのみを出力する。","Exports only the given notebook.":"選択されたノートブックのみを出力する。","Displays a geolocation URL for the note.":"ノートの位置情報URLを表示する。","Displays usage information.":"使い方を表示する。","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"CLIモードではショートカットは使用できません。","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"コマンドのさらなる情報は、`help [command]`で見ることが出来ます;または、`help all`ですべての使用方法の情報を表示できます。","The possible commands are:":"有効なコマンドは:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"すべてのコマンドで、ノートまたはノートブックは、題名またはID、または選択中の物はそれぞれショートカット`$n`または`$b`で指定できます。`$c`で選択中のアイテムを参照できます。","To move from one pane to another, press Tab or Shift+Tab.":"ペイン間を移動するには、TabかShift+Tabをおしてください。","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"リストや入力エリアの移動には矢印キーまたはPage Up/Downを使用します。","To maximise/minimise the console, press \"TC\".":"コンソールの最大化・最小化には\"TC\"と入力してください。","To enter command line mode, press \":\"":"コマンドラインモードに入るには、\":\"を入力してください。","To exit command line mode, press ESCAPE":"コマンドラインモードを終了するには、ESCキーを押してください。","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"確認を行わない。","Found: %d.":"見つかりました:%d","Created: %d.":"作成しました:%d","Updated: %d.":"アップデートしました:%d","Skipped: %d.":"スキップしました:%d","Resources: %d.":"リソース:%d","Tagged: %d.":"タグ付き:%d","Importing notes...":"ノートのインポート…","The notes have been imported: %s":"ノートはインポートされました:%s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"現在のノートブック中のノートを表示します。ノートブックのリストを表示するには、`ls /`と入力してください。","Displays only the first top notes.":"上位 件のノートを表示する。","Sorts the item by (eg. title, updated_time, created_time).":"アイテムをで並び替え (例: title, updated_time, created_time).","Reverses the sorting order.":"逆順に並び替える。","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.","Either \"text\" or \"json\"":"\"text\"または\"json\"のどちらか","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"長い形式のリストフォーマットを使用します。フォーマットは:ID, NOTE_COUNT (ノートブックのみ), DATE, TODO_CHECKED (ToDoのみ), TITLE","Please select a notebook first.":"ますはノートブックを選択して下さい。","Creates a new notebook.":"あたらしいノートブックを作成します。","Creates a new note.":"あたらしいノートを作成します。","Notes can only be created within a notebook.":"ノートは、ノートブック内のみで作ることが出来ます。","Creates a new to-do.":"新しいToDoを作成します。","Moves the notes matching to [notebook].":"に一致するアイテムを、[notebook]に移動します。","Renames the given (note or notebook) to .":" (ノートまたはノートブック)の名前を、に変更します。","Deletes the given notebook.":"指定されたノートブックを削除します。","Deletes the notebook without asking for confirmation.":"ノートブックを確認なしで削除します。","Delete notebook? All notes within this notebook will also be deleted.":"ノートブックを削除しますか?中にあるノートはすべて消えてしまいます。","Deletes the notes matching .":"に一致するノートを削除する。","Deletes the notes without asking for confirmation.":"ノートを確認なしで削除します。","%d notes match this pattern. Delete them?":"%d個のノートが一致しました。削除しますか?","Delete note?":"ノートを削除しますか?","Searches for the given in all the notes.":"指定されたをすべてのノートから検索する。","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"のプロパティ を、指示された[value]に設定します。有効なプロパティは:\n\n%s","Displays summary about the notes and notebooks.":"ノートとノートブックのサマリを表示します。","Synchronises with remote storage.":"リモート保存領域と同期します。","Sync to provided target (defaults to sync.target config value)":"指定のターゲットと同期します。(標準: sync.targetの設定値)","Authentication was not completed (did not receive an authentication token).":"認証は完了していません(認証トークンが得られませんでした)","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"同期はすでに実行中です。","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"ロックファイルがすでに保持されています。同期作業が行われていない場合は、\"%s\"にあるロックファイルを削除して、作業を再度行ってください。","Synchronisation target: %s (%s)":"同期先: %s (%s)","Cannot initialize synchroniser.":"同期プロセスを初期化できませんでした。","Starting synchronisation...":"同期を開始中...","Cancelling... Please wait.":"中止中...お待ちください。"," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" は\"add\", \"remove\", \"list\"のいずれかで、指定したノートからタグをつけたり外したり出来ます。`tag list`で、すべてのタグを見ることが出来ます。","Invalid command: \"%s\"":"無効な命令: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"は、\"toggle\"または\"clear\"を指定できます。\"toggle\"を指定すると、指定したToDoの完了済み/未完を反転できます。指定したノートが通常のノートであれば、ToDoに変換されます。\"clear\"を指定すると、ToDoを通常のノートに変換できます。","Marks a to-do as non-completed.":"ToDoを未完としてマーク","Switches to [notebook] - all further operations will happen within this notebook.":"ノートブック [notebook]に切り替え - これ以降の作業は、指定のノートブック内で行われます。","Displays version information":"バージョン情報の表示","%s %s (%s)":"","Enum":"列挙","Type: %s.":"種類: %s.","Possible values: %s.":"取り得る値: %s.","Default: %s":"規定値: %s","Possible keys/values:":"取り得るキーバリュー: ","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"致命的なエラー: ","The application has been authorised - you may now close this browser tab.":"アプリケーションは認証されました - ブラウザを閉じて頂いてかまいません。","The application has been successfully authorised.":"アプリケーションは問題なく認証されました。","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"このアプリケーションを認証するためには下記のURLをブラウザで開いてください。アプリケーションは\"Apps/Joplin\"フォルダを作成し、その中のファイルのみを読み書きします。あなたの個人的なファイルや、ディレクトリ外のファイルにはアクセスしません。第三者にデータが共有されることもありません。","Search:":"検索: ","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Joplinへようこそ!\n\n`:help shortcuts`と入力することで、キーボードショートカットのリストを見ることが出来ます。また、`:help`で使い方を確認できます。\n\n例えば、ノートブックの作成には`mb`で出来、ノートの作成は`mn`で行うことが出来ます。","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"ファイル","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"新しいノート","New to-do":"新しいToDo","New notebook":"新しいノートブック","Import":"インポート","Export":"Export","Hide %s":"","Quit":"終了","Edit":"編集","Copy":"コピー","Cut":"切り取り","Paste":"貼り付け","Search in all the notes":"すべてのノートを検索","View":"","Toggle editor layout":"","Tools":"ツール","Synchronisation status":"同期状況","Encryption options":"","General Options":"General Options","Help":"ヘルプ","Website and documentation":"Webサイトとドキュメント","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Joplinについて","%s %s (%s, %s)":"","Open %s":"","Exit":"","OK":"","Cancel":"キャンセル","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"ノートと設定は、%sに保存されます。","Save":"保存","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"アクティブ","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"注意:\"active\"に指定されたマスターキーのみが暗号化に使用されます。暗号化に使用されたキーの応じて、すべてのキーが暗号解除のために使用されます。","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"状態","Encryption is:":"","Back":"戻る","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"\"%s\"という名前の新しいノートブックが作成され、ファイル\"%s\"がインポートされます。","Please create a notebook first.":"ますはノートブックを作成して下さい。","Please create a notebook first":"ますはノートブックを作成して下さい。","Notebook title:":"ノートブックの題名:","Add or remove tags:":"タグの追加・削除:","Separate each tag by a comma.":"それぞれのタグをカンマ(,)で区切ってください。","Rename notebook:":"ノートブックの名前を変更:","Set alarm:":"アラームをセット:","Search":"検索","Layout":"レイアウト","Some items cannot be synchronised.":"いくつかの項目は同期されませんでした。","View them now":"今すぐ表示","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"タグの追加・削除","Switch between note and to-do type":"ノートとToDoを切り替え","Delete":"削除","Delete notes?":"ノートを削除しますか?","No notes in here. Create one by clicking on \"New note\".":"ノートがありません。新しいノートを作成して下さい。","There is currently no notebook. Create one by clicking on \"New notebook\".":"ノートブックがありません。新しいノートブックを作成してください。","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"","Attach file":"ファイルを添付","Tags":"タグ","Set alarm":"アラームをセット","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"更新","Clear":"クリア","OneDrive Login":"OneDriveログイン","Options":"オプション","Synchronisation Status":"同期状況","Encryption Options":"","Remove this tag from all the notes?":"すべてのノートからこのタグを削除しますか?","Remove this search from the sidebar?":"サイドバーからこの検索を削除しますか?","Rename":"名前の変更","Synchronise":"同期","Notebooks":"ノートブック","Searches":"検索","Please select where the sync status should be exported to":"同期状況の出力先を選択してください","Usage: %s":"使用方法: %s","Unknown flag: %s":"不明なフラグ: %s","File system":"ファイルシステム","Nextcloud":"","OneDrive":"","OneDrive Dev (For testing only)":"","WebDAV":"","Unknown log level: %s":"","Unknown level ID: %s":"","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"トークンの更新が出来ませんでした。認証データがありません。同期を再度行うことで解決することがあります。","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"OneDriveと同期できませんでした。\n\nOneDrive for Business(未サポート)を使用中はこのエラーが起こることがあります。\n\n通常のOneDriveアカウントの使用をご検討ください。","Cannot access %s":"%sにアクセスできません","Created local items: %d.":"ローカルアイテムの作成: %d.","Updated local items: %d.":"ローカルアイテムの更新: %d.","Created remote items: %d.":"リモートアイテムの作成: %d.","Updated remote items: %d.":"リモートアイテムの更新: %d.","Deleted local items: %d.":"ローカルアイテムの削除: %d.","Deleted remote items: %d.":"リモートアイテムの削除: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"状態: \"%s\"。","Cancelling...":"中止中...","Completed: %s":"完了: %s","Synchronisation is already in progress. State: %s":"同期作業はすでに実行中です。状態: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"衝突","A notebook with this title already exists: \"%s\"":"\"%s\"という名前のノートブックはすでに存在しています。","Notebooks cannot be named \"%s\", which is a reserved title.":"\"%s\"と言う名前はシステムで使用するために予約済みです。名前の変更が出来ません。","Untitled":"名称未設定","This note does not have geolocation information.":"このノートには位置情報がありません。","Cannot copy note to \"%s\" notebook":"ノートをノートブック \"%s\"にコピーできませんでした。","Cannot move note to \"%s\" notebook":"ノートをノートブック \"%s\"に移動できませんでした。","Text editor":"テキストエディタ","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"ノートを開くために使用されるエディタです。特に指定がなければ、デフォルトのエディタの検出を試みます。","Language":"言語","Date format":"日付の形式","Time format":"時刻の形式","Theme":"テーマ","Light":"明るい","Dark":"暗い","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"ノートに位置情報を保存","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"アプリケーションの自動更新","Synchronisation interval":"同期間隔","%d minutes":"%d 分","%d hour":"%d 時間","%d hours":"%d 時間","Show advanced options":"詳細な設定の表示","Synchronisation target":"同期先","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"同期先のディレクトリ(絶対パス)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"ファイルシステム同期の有効時に同期を行うパスです。`sync.target`も参考にしてください。","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"無効な設定値: \"%s\"。有効な値は: %sです。","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"同期が出来なかったアイテム","%s (%s): %s":"","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"同期状況 (同期済/総数)","%s: %d/%d":"","Total: %d/%d":"総数: %d/%d","Conflicted: %d":"衝突: %d","To delete: %d":"削除予定: %d","Folders":"フォルダ","%s: %d notes":"%s: %d ノート","Coming alarms":"時間のきたアラーム","On %s: %s":"","There are currently no notes. Create one by clicking on the (+) button.":"ノートがありません。(+)ボタンを押して新しいノートを作成してください。","Delete these notes?":"ノートを削除しますか?","Log":"ログ","Export Debug Report":"デバッグレポートの出力","Encryption Config":"","Configuration":"設定","Move to notebook...":"ノートブックへ移動...","Move %d notes to notebook \"%s\"?":"%d個のノートを\"%s\"に移動しますか?","Press to set the decryption password.":"","Select date":"日付の選択","Confirm":"確認","Cancel synchronisation":"同期の中止","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"ノートブックは保存できませんでした:%s","Edit notebook":"ノートブックの編集","Show all":"","Errors only":"","This note has been modified:":"ノートは変更されています:","Save changes":"変更を保存","Discard changes":"変更を破棄","Unsupported image type: %s":"サポートされていないイメージ形式: %s.","Attach photo":"写真を添付","Attach any file":"ファイルを添付","Convert to note":"ノートに変換","Convert to todo":"ToDoに変換","Hide metadata":"メタデータを隠す","Show metadata":"メタデータを表示","View on map":"地図上に表示","Delete notebook":"ノートブックを削除","Login with OneDrive":"OneDriveログイン","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"(+)ボタンを押してノートやノートブックを作成してください。サイドメニューからあなたのノートブックにアクセスが出来ます。","You currently have no notebook. Create one by clicking on (+) button.":"ノートブックがありません。(+)をクリックして新しいノートブックを作成してください。","Welcome":"ようこそ"} \ No newline at end of file diff --git a/ReactNativeClient/locales/nl_BE.json b/ReactNativeClient/locales/nl_BE.json index c754cc6cd9..e2a8a4540b 100644 --- a/ReactNativeClient/locales/nl_BE.json +++ b/ReactNativeClient/locales/nl_BE.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Untag de geassocieerde notities om een tag te verwijderen.","Please select the note or notebook to be deleted first.":"Selecteer eerst het notitieboek of de notitie om te verwijderen.","Press Ctrl+D or type \"exit\" to exit the application":"Typ Ctrl+D of \"exit\" om de applicatie te sluiten","More than one item match \"%s\". Please narrow down your query.":"Meer dan een item voldoet aan de zoekterm \"%s\". Verfijn uw zoekterm a.u.b.","No notebook selected.":"Geen notitieboek geselecteerd.","No notebook has been specified.":"Geen notitieboek is gespecifieerd","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Achtergrond synchronisatie wordt geannuleerd... Even geduld.","No such command: %s":"Geen commando gevonden: \"%s\"","The command \"%s\" is only available in GUI mode":"Het opgegeven command \"%s\" is alleen beschikbaar in de GUI versie","Cannot change encrypted item":"Kan het versleutelde item niet wijzigen","Missing required argument: %s":"Benodigde argumenten niet voorzien: %s","%s: %s":"%s: %s","Your choice: ":"Uw keuze:","Invalid answer: %s":"Ongeldig antwoord: %s","Attaches the given file to the note.":"Voegt het bestand toe aan de notitie.","Cannot find \"%s\".":"Kan \"%s\" niet vinden.","Displays the given note.":"Toont de opgegeven notitie.","Displays the complete information about note.":"Toont de volledige informatie van een notitie.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Haal een configuratie waarde op of stel een waarde in. Als [value] niet opgegeven is, zal de waarde van [name] getoond worden. Als nog de [name] of [waarde] opgegeven zijn, zal de huidige configuratie opgelijst worden.","Also displays unset and hidden config variables.":"Toont ook niet-geconfigureerde en verborgen configuratie opties. ","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Verveelvoudig de notities die voldoen aan in [notitieboek]. Als er geen notitieboek is meegegeven, de notitie is gedupliceerd in het huidige notitieboek.","Marks a to-do as done.":"Markeer een to-do als voltooid. ","Note is not a to-do: \"%s\"":"Notitie is geen to-do: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Beheert E2EE configuratie. Commando's zijn `enable`, `disable`, `decrypt`, `status` and `target-status`.","Enter master password:":"Voeg hoofdsleutel in:","Operation cancelled":"Operatie geannuleerd","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Ontsleuteling starten... Dit kan enkele minuten duren, afhankelijk van hoeveel er te ontsleutelen is. ","Completed decryption.":"Ontsleuteling voltooid","Enabled":"Ingeschakeld","Disabled":"UItgeschakeld","Encryption is: %s":"Encryptie is: %s","Edit note.":"Bewerk notitie.","No text editor is defined. Please set it using `config editor `":"Geen tekst editor is ingesteld. Stel in met `config editor `","No active notebook.":"Geen actief notitieboek.","Note does not exist: \"%s\". Create it?":"Notitie bestaat niet: \"%s\". Aanmaken?","Starting to edit note. Close the editor to get back to the prompt.":"Bewerken notitie gestart. Sluit de editor om terug naar de prompt te gaan.","Error opening note in editor: %s":"","Note has been saved.":"Notitie is opgeslaan.","Exits the application.":"Sluit de applicatie.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exporteert alleen de opgegeven notitie.","Exports only the given notebook.":"Exporteert alleen het opgegeven notitieboek.","Displays a geolocation URL for the note.":"Toont een geolocatie link voor de notitie.","Displays usage information.":"Toont gebruiksinformatie.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Shortcuts zijn niet beschikbaar in command line modus.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Typ `help [commando]` voor meer informatie over een commando; of typ `help all` voor de volledige gebruiksaanwijzing.","The possible commands are:":"Mogelijke commando's zijn:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In iedere commando kan een notitie of een notitieboek opgegeven worden door de title of het ID of de shortcuts `$n` of `$b` voor, respectievelijk, het huidig geslecteerde notitieboek of huidig geselecteerde notitie. `$c` kan gebruikt worden om te refereren naar het huidige geselecteerde item.","To move from one pane to another, press Tab or Shift+Tab.":"Om van het ene paneel naar het andere te gaan, duw Tab of Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Gebruik de pijltjes en page up/down om door de lijsten en de tekstvelden te scrollen (ook deze console).","To maximise/minimise the console, press \"TC\".":"Om de console te maximaliseren/minimaliseren, typ \"TC\".","To enter command line mode, press \":\"":"Om command line modus te gebruiken, duw \":\"","To exit command line mode, press ESCAPE":"Om command line modus te verlaten, duw ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Vraag niet om bevestiging. ","Found: %d.":"Gevonden: %d.","Created: %d.":"Aangemaakt: %d.","Updated: %d.":"Bijgewerkt: %d.","Skipped: %d.":"Geskipt: %d.","Resources: %d.":"Middelen: %d.","Tagged: %d.":"Getagd: %d.","Importing notes...":"Notities importeren...","The notes have been imported: %s":"Notities zijn geïmporteerd: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Toont de notities in het huidige notitieboek. Gebruik `ls /` om een lijst van notitieboeken te tonen.","Displays only the first top notes.":"Toont enkel de top notities.","Sorts the item by (eg. title, updated_time, created_time).":"Sorteert de items volgens (vb. title, updated_time, created_time).","Reverses the sorting order.":"Draait de sorteervolgorde om.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Toont enkel de items van de specifieke type(s). Kan `n` zijn voor notities, `t` voor to-do's, of `nt` voor notities en to-do's (vb. `-tt` zou alleen to-do's tonen, terwijl `-ttd` notities en to-do's zou tonen).","Either \"text\" or \"json\"":"Of \"text\" of \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Gebruik volgend lijst formaat. Formaat is ID, NOTE_COUNT (voor notitieboek), DATE, TODO_CHECKED (voor to-do's), TITLE","Please select a notebook first.":"Selecteer eerst een notitieboek. ","Creates a new notebook.":"Maakt een nieuw notitieboek aan.","Creates a new note.":"Maakt een nieuwe notitie aan.","Notes can only be created within a notebook.":"Notities kunnen enkel in een notitieboek aangemaakt worden.","Creates a new to-do.":"Maakt nieuwe to-do aan.","Moves the notes matching to [notebook].":"Verplaatst de notities die voldoen aan naar [notitieboek].","Renames the given (note or notebook) to .":"Hernoemt het gegeven (notitie of notitieboek) naar .","Deletes the given notebook.":"Verwijdert het opgegeven notitieboek.","Deletes the notebook without asking for confirmation.":"Verwijdert het notitieboek zonder te vragen om bevestiging.","Delete notebook? All notes within this notebook will also be deleted.":"Notitieboek verwijderen? Alle notities in dit notitieboek zullen ook verwijderd worden.","Deletes the notes matching .":"Verwijder alle notities die voldoen aan .","Deletes the notes without asking for confirmation.":"Verwijder de notities zonder te vragen om bevestiging. ","%d notes match this pattern. Delete them?":"%d notities voldoen aan het patroon. Items verwijderen?","Delete note?":"Notitie verwijderen?","Searches for the given in all the notes.":"Zoektermen voor het opgegeven in alle notities.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Zet de eigenschap van de opgegeven naar de opgegeven [value]. Mogelijke eigenschappen zijn:\n\n%s","Displays summary about the notes and notebooks.":"Toon samenvatting van alle notities en notitieboeken","Synchronises with remote storage.":"Synchroniseert met remote opslag. ","Sync to provided target (defaults to sync.target config value)":"Synchroniseer naar opgegeven doel (standaard sync.target configuratie optie)","Authentication was not completed (did not receive an authentication token).":"Authenticatie was niet voltooid (geen authenticatietoken ontvangen).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"Synchronisatie reeds bezig.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Er is reeds een lockfile. Als u zeker bent dat er geen synchronisatie bezig is, kan de lock file verwijderd worden op \"%s\" en verder gegaan worden met de synchronisatie. ","Synchronisation target: %s (%s)":"Synchronisatiedoel: %s (%s)","Cannot initialize synchroniser.":"Kan de synchronisatie niet starten.","Starting synchronisation...":"Synchronisatie starten...","Cancelling... Please wait.":"Annuleren.. Even geduld."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" kan \"add\", \"remove\" of \"list\" zijn om een [tag] toe te voegen aan een [note] of te verwijderen, of om alle notities geassocieerd met de [tag] op te lijsten. Het commando `tag list` kan gebruikt worden om alle tags op te lijsten.","Invalid command: \"%s\"":"Ongeldig commando: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" kan of \"toggle\" of \"clear\" zijn. Gebruik \"toggle\" om de to-do als voltooid of onvoltooid weer te geven (als het doel een standaard notitie is, zal ze geconverteerd worden naar een to-do). Gebruik \"clear\" om terug te wisselen naar een standaard notitie. ","Marks a to-do as non-completed.":"Markeert een to-do als onvoltooid.","Switches to [notebook] - all further operations will happen within this notebook.":"Wisselt naar [notitieboek] - Alle verdere acties zullen op dit notitieboek toegepast worden.","Displays version information":"Toont versie informatie","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Type: %s.","Possible values: %s.":"Mogelijke waarden: %s.","Default: %s":"Standaard: %s","Possible keys/values:":"Mogelijke sleutels/waarden:","Fatal error:":"Fatale fout:","The application has been authorised - you may now close this browser tab.":"De applicatie is geauthenticeerd - U kan deze tab sluiten.","The application has been successfully authorised.":"De applicatie is succesvol geauthenticeerd.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Open de volgende link in uw browser om de applicatie te authenticeren. De applicatie zal een folder in \"Apps/Joplin\" aanmaken en zal enkel bestanden aanmaken en lezen in deze folder. De applicatie zal geen toegang hebben tot bestanden buiten deze folder of enige andere persoonlijke gegevens. Geen gegevens zullen gedeeld worden met een externe partij. ","Search:":"Zoek:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Welkom bij Joplin!\n\nTyp `:help shortcuts` voor een lijst van shortcuts, of `:help` voor gebruiksinformatie.\n\nOm bijvoorbeeld een notitieboek aan te maken, typ `mb`; om een notitie te maken, typ `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Eén of meerdere items zijn momenteel versleuteld en de hoofdsleutel kan gevraagd worden. Om te ontsleutelen, typ `e2ee decrypt`. Als je de hoofdsleutel al ingegeven hebt, worden de versleutelde items ontsleuteld in de achtergrond. Ze zijn binnenkort beschikbaar.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Bestand","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Nieuwe notitie","New to-do":"Nieuwe to-do","New notebook":"Nieuw notitieboek","Import":"Importeer","Export":"Export","Hide %s":"","Quit":"Stop","Edit":"Bewerk","Copy":"Kopieer","Cut":"Knip","Paste":"Plak","Search in all the notes":"Zoek in alle notities","View":"","Toggle editor layout":"","Tools":"Tools","Synchronisation status":"Synchronisatie status","Encryption options":"Versleutelopties","General Options":"Algemene opties","Help":"Help","Website and documentation":"Website en documentatie","Check for updates...":"","About Joplin":"Over Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Annuleer","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Notities en instellingen zijn opgeslaan in %s","Save":"Sla op","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Encryptie uitschakelen betekent dat *al* uw notities en toevoegingen opnieuw gesynchroniseerd zullen worden en ontsleuteld naar het synchronisatiedoel zullen gestuurd worden. Wil u verder gaan?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Encryptie inschakelen betekent dat *al* uw notities en toevoegingen opnieuw gesynchroniseerd zullen worden en versleuteld verzonden worden naar het synchronisatiedoel. Verlies het wachtwoord niet, aangezien dit de enige manier is om de date de ontsleutelen. Om encryptie in te schakelen, vul uw wachtwoord hieronder in. ","Disable encryption":"Schakel encryptie uit","Enable encryption":"Schakel encryptie in","Master Keys":"Hoofdsleutels","Active":"Actief","ID":"ID","Source":"Bron","Created":"Aangemaakt","Updated":"Bijgewerkt","Password":"Wachtwoord","Password OK":"Wachtwoord OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Opmerking: Slechts één hoofdsleutel zal gebruikt worden voor versleuteling (aangeduid met \"active\"). Alle sleutels kunnen gebruikt worden voor decodering, afhankelijk van hoe de notitieboeken initieel versleuteld zijn.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"Versleuteling is:","Back":"Terug","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nieuw notitieboek \"%s\" zal aangemaakt worden en bestand \"%s\" wordt eraan toegevoegd","Please create a notebook first.":"Maak eerst een notitieboek aan.","Please create a notebook first":"Maak eerst een notitieboek aan","Notebook title:":"Notitieboek titel:","Add or remove tags:":"Voeg tag toe of verwijder tag","Separate each tag by a comma.":"Scheid iedere tag met een komma.","Rename notebook:":"Hernoem notitieboek:","Set alarm:":"Stel melding in:","Search":"Zoeken","Layout":"Layout","Some items cannot be synchronised.":"Sommige items kunnen niet gesynchroniseerd worden.","View them now":"Bekijk ze nu","Some items cannot be decrypted.":"Sommige items kunnen niet gedecodeerd worden.","Set the password":"Stel wachtwoord in","Add or remove tags":"Voeg tag toe of verwijder tag","Switch between note and to-do type":"Wissel tussen notitie en to-do type","Delete":"Verwijderen","Delete notes?":"Notities verwijderen?","No notes in here. Create one by clicking on \"New note\".":"Geen notities. Maak een notitie door op \"Nieuwe notitie\" te klikken.","There is currently no notebook. Create one by clicking on \"New notebook\".":"U heeft momenteel geen notitieboek. Maak een notitieboek door op \"Nieuw notitieboek\" te klikken.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Link of bericht \"%s\" wordt niet ondersteund","Attach file":"Voeg bestand toe","Tags":"Tags","Set alarm":"Zet melding","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Vernieuwen","Clear":"Vrijmaken","OneDrive Login":"OneDrive Login","Options":"Opties","Synchronisation Status":"Synchronisatie status","Encryption Options":"Versleutelopties","Remove this tag from all the notes?":"Deze tag verwijderen van alle notities?","Remove this search from the sidebar?":"Dit item verwijderen van de zijbalk?","Rename":"Hernoem","Synchronise":"Synchroniseer","Notebooks":"Notitieboeken","Searches":"Zoekopdrachten","Please select where the sync status should be exported to":"Selecteer waar de synchronisatie status naar geëxporteerd moet worden","Usage: %s":"Gebruik: %s","Unknown flag: %s":"Onbekende optie: %s","File system":"Bestandssysteem","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Alleen voor testen)","WebDAV":"","Unknown log level: %s":"Onbekend log level: %s","Unknown level ID: %s":"Onbekend level ID: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Kan token niet vernieuwen: authenticatiedata ontbreekt. Herstarten van de synchronisatie kan het probleem eventueel oplossen. ","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Kan niet synchroniseren met OneDrive.\n\nDeze fout gebeurt wanneer OneDrive for Business wordt gebruikt. Dit kan helaas niet ondersteund worden.\n\nOverweeg om een standaard OnDrive account te gebruiken.","Cannot access %s":"Geen toegang tot %s","Created local items: %d.":"Aangemaakte lokale items: %d.","Updated local items: %d.":"Bijgewerkte lokale items: %d.","Created remote items: %d.":"Aangemaakte remote items: %d.","Updated remote items: %d.":"Bijgewerkte remote items: %d.","Deleted local items: %d.":"Verwijderde lokale items: %d.","Deleted remote items: %d.":"Verwijderde remote items: %d.","Fetched items: %d/%d.":"Opgehaalde items: %d/%d.","State: \"%s\".":"Status: \"%s\"","Cancelling...":"Annuleren...","Completed: %s":"Voltooid: %s","Synchronisation is already in progress. State: %s":"Synchronisatie is reeds bezig. Status: %s","Encrypted":"Versleuteld","Encrypted items cannot be modified":"Versleutelde items kunnen niet aangepast worden","Conflicts":"Conflicten","A notebook with this title already exists: \"%s\"":"Er bestaat al een notitieboek met \"%s\" als titel","Notebooks cannot be named \"%s\", which is a reserved title.":"Notitieboeken kunnen niet \"%s\" genoemd worden, dit is een gereserveerd woord.","Untitled":"Untitled","This note does not have geolocation information.":"Deze notitie bevat geen geo-locatie informatie.","Cannot copy note to \"%s\" notebook":"Kan notitie niet naar notitieboek \"%s\" kopiëren.","Cannot move note to \"%s\" notebook":"Kan notitie niet naar notitieboek \"%s\" verplaatsen.","Text editor":"Tekst editor","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"De editor die zal gebruikt worden bij het openen van een notitie. Als er geen meegegeven wordt, zal het programma de standaard editor proberen te detecteren. ","Language":"Taal","Date format":"Datumnotatie","Time format":"Tijdsnotatie","Theme":"Thema","Light":"Licht","Dark":"Donker","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Sla geo-locatie op bij notities","When creating a new to-do:":"When creating a new to-do:","Focus title":"","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Update de applicatie automatisch","Synchronisation interval":"Synchronisatie interval","%d minutes":"%d minuten","%d hour":"%d uur","%d hours":"%d uren","Show advanced options":"Toon geavanceerde opties","Synchronisation target":"Synchronisatiedoel","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"Folder om mee te synchroniseren (absolute pad)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Het pad om mee te synchroniseren als bestandssysteem synchronisatie is ingeschakeld. Zie `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"Nextcloud password","WebDAV URL":"","WebDAV username":"","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Ongeldige optie: \"%s\". Geldige waarden zijn: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Items die niet gesynchroniseerd kunnen worden","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Deze items zullen op het apparaat beschikbaar blijven, maar zullen niet geüpload worden naar het synchronistatiedoel. Om deze items te vinden, zoek naar de titel of het ID (afgebeeld bovenaan tussen haakjes).","Sync status (synced items / total items)":"Sync status (gesynchroniseerde items / totaal aantal items)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Totaal: %d/%d","Conflicted: %d":"Conflict: %d","To delete: %d":"Verwijderen: %d","Folders":"Folders","%s: %d notes":"%s: %d notities","Coming alarms":"Meldingen","On %s: %s":"Op %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Er zijn momenteel geen notities. Maak een notitie door op (+) te klikken.","Delete these notes?":"Deze notities verwijderen?","Log":"Log","Export Debug Report":"Exporteer debug rapport","Encryption Config":"Encryptie configuratie","Configuration":"Configuratie","Move to notebook...":"Verplaats naar notitieboek...","Move %d notes to notebook \"%s\"?":"Verplaats %d notities naar notitieboek \"%s\"?","Press to set the decryption password.":"Klik om het decryptie wachtwoord in te stellen","Select date":"Selecteer datum","Confirm":"Bevestig","Cancel synchronisation":"Annuleer synchronisatie","Master Key %s":"Hoofdsleutel: %s","Created: %s":"Aangemaakt: %s","Password:":"Wachtwoord:","Password cannot be empty":"Wachtwoord kan niet leeg zijn","Enable":"Activeer","The notebook could not be saved: %s":"Het notitieboek kon niet opgeslaan worden: %s","Edit notebook":"Bewerk notitieboek","Show all":"","Errors only":"","This note has been modified:":"Deze notitie werd aangepast:","Save changes":"Sla wijzigingen op","Discard changes":"Verwijder wijzigingen","Unsupported image type: %s":"Afbeeldingstype %s wordt niet ondersteund","Attach photo":"Voeg foto toe","Attach any file":"Voeg bestand toe","Convert to note":"Converteer naar notitie","Convert to todo":"Converteer naar to-do","Hide metadata":"Verberg metadata","Show metadata":"Toon metadata","View on map":"Toon op de kaart","Delete notebook":"Verwijder notitieboek","Login with OneDrive":"Log in met OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Klik op de (+) om een nieuwe notitie of een nieuw notitieboek aan te maken. Klik in het menu om uw bestaande notitieboeken te raadplegen.","You currently have no notebook. Create one by clicking on (+) button.":"U heeft momenteel geen notitieboek. Maak een notitieboek door op (+) te klikken.","Welcome":"Welkom"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Untag de geassocieerde notities om een tag te verwijderen.","Please select the note or notebook to be deleted first.":"Selecteer eerst het notitieboek of de notitie om te verwijderen.","Press Ctrl+D or type \"exit\" to exit the application":"Typ Ctrl+D of \"exit\" om de applicatie te sluiten","More than one item match \"%s\". Please narrow down your query.":"Meer dan een item voldoet aan de zoekterm \"%s\". Verfijn uw zoekterm a.u.b.","No notebook selected.":"Geen notitieboek geselecteerd.","No notebook has been specified.":"Geen notitieboek is gespecifieerd","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Achtergrond synchronisatie wordt geannuleerd... Even geduld.","No such command: %s":"Geen commando gevonden: \"%s\"","The command \"%s\" is only available in GUI mode":"Het opgegeven command \"%s\" is alleen beschikbaar in de GUI versie","Cannot change encrypted item":"Kan het versleutelde item niet wijzigen","Missing required argument: %s":"Benodigde argumenten niet voorzien: %s","%s: %s":"%s: %s","Your choice: ":"Uw keuze:","Invalid answer: %s":"Ongeldig antwoord: %s","Attaches the given file to the note.":"Voegt het bestand toe aan de notitie.","Cannot find \"%s\".":"Kan \"%s\" niet vinden.","Displays the given note.":"Toont de opgegeven notitie.","Displays the complete information about note.":"Toont de volledige informatie van een notitie.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Haal een configuratie waarde op of stel een waarde in. Als [value] niet opgegeven is, zal de waarde van [name] getoond worden. Als nog de [name] of [waarde] opgegeven zijn, zal de huidige configuratie opgelijst worden.","Also displays unset and hidden config variables.":"Toont ook niet-geconfigureerde en verborgen configuratie opties. ","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Verveelvoudig de notities die voldoen aan in [notitieboek]. Als er geen notitieboek is meegegeven, de notitie is gedupliceerd in het huidige notitieboek.","Marks a to-do as done.":"Markeer een to-do als voltooid. ","Note is not a to-do: \"%s\"":"Notitie is geen to-do: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Beheert E2EE configuratie. Commando's zijn `enable`, `disable`, `decrypt`, `status` and `target-status`.","Enter master password:":"Voeg hoofdsleutel in:","Operation cancelled":"Operatie geannuleerd","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Ontsleuteling starten... Dit kan enkele minuten duren, afhankelijk van hoeveel er te ontsleutelen is. ","Completed decryption.":"Ontsleuteling voltooid","Enabled":"Ingeschakeld","Disabled":"UItgeschakeld","Encryption is: %s":"Encryptie is: %s","Edit note.":"Bewerk notitie.","No text editor is defined. Please set it using `config editor `":"Geen tekst editor is ingesteld. Stel in met `config editor `","No active notebook.":"Geen actief notitieboek.","Note does not exist: \"%s\". Create it?":"Notitie bestaat niet: \"%s\". Aanmaken?","Starting to edit note. Close the editor to get back to the prompt.":"Bewerken notitie gestart. Sluit de editor om terug naar de prompt te gaan.","Error opening note in editor: %s":"","Note has been saved.":"Notitie is opgeslaan.","Exits the application.":"Sluit de applicatie.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exporteert alleen de opgegeven notitie.","Exports only the given notebook.":"Exporteert alleen het opgegeven notitieboek.","Displays a geolocation URL for the note.":"Toont een geolocatie link voor de notitie.","Displays usage information.":"Toont gebruiksinformatie.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Shortcuts zijn niet beschikbaar in command line modus.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Typ `help [commando]` voor meer informatie over een commando; of typ `help all` voor de volledige gebruiksaanwijzing.","The possible commands are:":"Mogelijke commando's zijn:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In iedere commando kan een notitie of een notitieboek opgegeven worden door de title of het ID of de shortcuts `$n` of `$b` voor, respectievelijk, het huidig geslecteerde notitieboek of huidig geselecteerde notitie. `$c` kan gebruikt worden om te refereren naar het huidige geselecteerde item.","To move from one pane to another, press Tab or Shift+Tab.":"Om van het ene paneel naar het andere te gaan, duw Tab of Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Gebruik de pijltjes en page up/down om door de lijsten en de tekstvelden te scrollen (ook deze console).","To maximise/minimise the console, press \"TC\".":"Om de console te maximaliseren/minimaliseren, typ \"TC\".","To enter command line mode, press \":\"":"Om command line modus te gebruiken, duw \":\"","To exit command line mode, press ESCAPE":"Om command line modus te verlaten, duw ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Vraag niet om bevestiging. ","Found: %d.":"Gevonden: %d.","Created: %d.":"Aangemaakt: %d.","Updated: %d.":"Bijgewerkt: %d.","Skipped: %d.":"Geskipt: %d.","Resources: %d.":"Middelen: %d.","Tagged: %d.":"Getagd: %d.","Importing notes...":"Notities importeren...","The notes have been imported: %s":"Notities zijn geïmporteerd: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Toont de notities in het huidige notitieboek. Gebruik `ls /` om een lijst van notitieboeken te tonen.","Displays only the first top notes.":"Toont enkel de top notities.","Sorts the item by (eg. title, updated_time, created_time).":"Sorteert de items volgens (vb. title, updated_time, created_time).","Reverses the sorting order.":"Draait de sorteervolgorde om.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Toont enkel de items van de specifieke type(s). Kan `n` zijn voor notities, `t` voor to-do's, of `nt` voor notities en to-do's (vb. `-tt` zou alleen to-do's tonen, terwijl `-ttd` notities en to-do's zou tonen).","Either \"text\" or \"json\"":"Of \"text\" of \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Gebruik volgend lijst formaat. Formaat is ID, NOTE_COUNT (voor notitieboek), DATE, TODO_CHECKED (voor to-do's), TITLE","Please select a notebook first.":"Selecteer eerst een notitieboek. ","Creates a new notebook.":"Maakt een nieuw notitieboek aan.","Creates a new note.":"Maakt een nieuwe notitie aan.","Notes can only be created within a notebook.":"Notities kunnen enkel in een notitieboek aangemaakt worden.","Creates a new to-do.":"Maakt nieuwe to-do aan.","Moves the notes matching to [notebook].":"Verplaatst de notities die voldoen aan naar [notitieboek].","Renames the given (note or notebook) to .":"Hernoemt het gegeven (notitie of notitieboek) naar .","Deletes the given notebook.":"Verwijdert het opgegeven notitieboek.","Deletes the notebook without asking for confirmation.":"Verwijdert het notitieboek zonder te vragen om bevestiging.","Delete notebook? All notes within this notebook will also be deleted.":"Notitieboek verwijderen? Alle notities in dit notitieboek zullen ook verwijderd worden.","Deletes the notes matching .":"Verwijder alle notities die voldoen aan .","Deletes the notes without asking for confirmation.":"Verwijder de notities zonder te vragen om bevestiging. ","%d notes match this pattern. Delete them?":"%d notities voldoen aan het patroon. Items verwijderen?","Delete note?":"Notitie verwijderen?","Searches for the given in all the notes.":"Zoektermen voor het opgegeven in alle notities.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Zet de eigenschap van de opgegeven naar de opgegeven [value]. Mogelijke eigenschappen zijn:\n\n%s","Displays summary about the notes and notebooks.":"Toon samenvatting van alle notities en notitieboeken","Synchronises with remote storage.":"Synchroniseert met remote opslag. ","Sync to provided target (defaults to sync.target config value)":"Synchroniseer naar opgegeven doel (standaard sync.target configuratie optie)","Authentication was not completed (did not receive an authentication token).":"Authenticatie was niet voltooid (geen authenticatietoken ontvangen).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"Synchronisatie reeds bezig.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Er is reeds een lockfile. Als u zeker bent dat er geen synchronisatie bezig is, kan de lock file verwijderd worden op \"%s\" en verder gegaan worden met de synchronisatie. ","Synchronisation target: %s (%s)":"Synchronisatiedoel: %s (%s)","Cannot initialize synchroniser.":"Kan de synchronisatie niet starten.","Starting synchronisation...":"Synchronisatie starten...","Cancelling... Please wait.":"Annuleren.. Even geduld."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" kan \"add\", \"remove\" of \"list\" zijn om een [tag] toe te voegen aan een [note] of te verwijderen, of om alle notities geassocieerd met de [tag] op te lijsten. Het commando `tag list` kan gebruikt worden om alle tags op te lijsten.","Invalid command: \"%s\"":"Ongeldig commando: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" kan of \"toggle\" of \"clear\" zijn. Gebruik \"toggle\" om de to-do als voltooid of onvoltooid weer te geven (als het doel een standaard notitie is, zal ze geconverteerd worden naar een to-do). Gebruik \"clear\" om terug te wisselen naar een standaard notitie. ","Marks a to-do as non-completed.":"Markeert een to-do als onvoltooid.","Switches to [notebook] - all further operations will happen within this notebook.":"Wisselt naar [notitieboek] - Alle verdere acties zullen op dit notitieboek toegepast worden.","Displays version information":"Toont versie informatie","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Type: %s.","Possible values: %s.":"Mogelijke waarden: %s.","Default: %s":"Standaard: %s","Possible keys/values:":"Mogelijke sleutels/waarden:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Fatale fout:","The application has been authorised - you may now close this browser tab.":"De applicatie is geauthenticeerd - U kan deze tab sluiten.","The application has been successfully authorised.":"De applicatie is succesvol geauthenticeerd.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Open de volgende link in uw browser om de applicatie te authenticeren. De applicatie zal een folder in \"Apps/Joplin\" aanmaken en zal enkel bestanden aanmaken en lezen in deze folder. De applicatie zal geen toegang hebben tot bestanden buiten deze folder of enige andere persoonlijke gegevens. Geen gegevens zullen gedeeld worden met een externe partij. ","Search:":"Zoek:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Welkom bij Joplin!\n\nTyp `:help shortcuts` voor een lijst van shortcuts, of `:help` voor gebruiksinformatie.\n\nOm bijvoorbeeld een notitieboek aan te maken, typ `mb`; om een notitie te maken, typ `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Eén of meerdere items zijn momenteel versleuteld en de hoofdsleutel kan gevraagd worden. Om te ontsleutelen, typ `e2ee decrypt`. Als je de hoofdsleutel al ingegeven hebt, worden de versleutelde items ontsleuteld in de achtergrond. Ze zijn binnenkort beschikbaar.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Bestand","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Nieuwe notitie","New to-do":"Nieuwe to-do","New notebook":"Nieuw notitieboek","Import":"Importeer","Export":"Export","Hide %s":"","Quit":"Stop","Edit":"Bewerk","Copy":"Kopieer","Cut":"Knip","Paste":"Plak","Search in all the notes":"Zoek in alle notities","View":"","Toggle editor layout":"","Tools":"Tools","Synchronisation status":"Synchronisatie status","Encryption options":"Versleutelopties","General Options":"Algemene opties","Help":"Help","Website and documentation":"Website en documentatie","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Over Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Annuleer","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Notities en instellingen zijn opgeslaan in %s","Save":"Sla op","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Encryptie uitschakelen betekent dat *al* uw notities en toevoegingen opnieuw gesynchroniseerd zullen worden en ontsleuteld naar het synchronisatiedoel zullen gestuurd worden. Wil u verder gaan?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Encryptie inschakelen betekent dat *al* uw notities en toevoegingen opnieuw gesynchroniseerd zullen worden en versleuteld verzonden worden naar het synchronisatiedoel. Verlies het wachtwoord niet, aangezien dit de enige manier is om de date de ontsleutelen. Om encryptie in te schakelen, vul uw wachtwoord hieronder in. ","Disable encryption":"Schakel encryptie uit","Enable encryption":"Schakel encryptie in","Master Keys":"Hoofdsleutels","Active":"Actief","ID":"ID","Source":"Bron","Created":"Aangemaakt","Updated":"Bijgewerkt","Password":"Wachtwoord","Password OK":"Wachtwoord OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Opmerking: Slechts één hoofdsleutel zal gebruikt worden voor versleuteling (aangeduid met \"active\"). Alle sleutels kunnen gebruikt worden voor decodering, afhankelijk van hoe de notitieboeken initieel versleuteld zijn.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"Versleuteling is:","Back":"Terug","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nieuw notitieboek \"%s\" zal aangemaakt worden en bestand \"%s\" wordt eraan toegevoegd","Please create a notebook first.":"Maak eerst een notitieboek aan.","Please create a notebook first":"Maak eerst een notitieboek aan","Notebook title:":"Notitieboek titel:","Add or remove tags:":"Voeg tag toe of verwijder tag","Separate each tag by a comma.":"Scheid iedere tag met een komma.","Rename notebook:":"Hernoem notitieboek:","Set alarm:":"Stel melding in:","Search":"Zoeken","Layout":"Layout","Some items cannot be synchronised.":"Sommige items kunnen niet gesynchroniseerd worden.","View them now":"Bekijk ze nu","Some items cannot be decrypted.":"Sommige items kunnen niet gedecodeerd worden.","Set the password":"Stel wachtwoord in","Add or remove tags":"Voeg tag toe of verwijder tag","Switch between note and to-do type":"Wissel tussen notitie en to-do type","Delete":"Verwijderen","Delete notes?":"Notities verwijderen?","No notes in here. Create one by clicking on \"New note\".":"Geen notities. Maak een notitie door op \"Nieuwe notitie\" te klikken.","There is currently no notebook. Create one by clicking on \"New notebook\".":"U heeft momenteel geen notitieboek. Maak een notitieboek door op \"Nieuw notitieboek\" te klikken.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Link of bericht \"%s\" wordt niet ondersteund","Attach file":"Voeg bestand toe","Tags":"Tags","Set alarm":"Zet melding","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Vernieuwen","Clear":"Vrijmaken","OneDrive Login":"OneDrive Login","Options":"Opties","Synchronisation Status":"Synchronisatie status","Encryption Options":"Versleutelopties","Remove this tag from all the notes?":"Deze tag verwijderen van alle notities?","Remove this search from the sidebar?":"Dit item verwijderen van de zijbalk?","Rename":"Hernoem","Synchronise":"Synchroniseer","Notebooks":"Notitieboeken","Searches":"Zoekopdrachten","Please select where the sync status should be exported to":"Selecteer waar de synchronisatie status naar geëxporteerd moet worden","Usage: %s":"Gebruik: %s","Unknown flag: %s":"Onbekende optie: %s","File system":"Bestandssysteem","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Alleen voor testen)","WebDAV":"","Unknown log level: %s":"Onbekend log level: %s","Unknown level ID: %s":"Onbekend level ID: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Kan token niet vernieuwen: authenticatiedata ontbreekt. Herstarten van de synchronisatie kan het probleem eventueel oplossen. ","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Kan niet synchroniseren met OneDrive.\n\nDeze fout gebeurt wanneer OneDrive for Business wordt gebruikt. Dit kan helaas niet ondersteund worden.\n\nOverweeg om een standaard OnDrive account te gebruiken.","Cannot access %s":"Geen toegang tot %s","Created local items: %d.":"Aangemaakte lokale items: %d.","Updated local items: %d.":"Bijgewerkte lokale items: %d.","Created remote items: %d.":"Aangemaakte remote items: %d.","Updated remote items: %d.":"Bijgewerkte remote items: %d.","Deleted local items: %d.":"Verwijderde lokale items: %d.","Deleted remote items: %d.":"Verwijderde remote items: %d.","Fetched items: %d/%d.":"Opgehaalde items: %d/%d.","State: \"%s\".":"Status: \"%s\"","Cancelling...":"Annuleren...","Completed: %s":"Voltooid: %s","Synchronisation is already in progress. State: %s":"Synchronisatie is reeds bezig. Status: %s","Encrypted":"Versleuteld","Encrypted items cannot be modified":"Versleutelde items kunnen niet aangepast worden","Conflicts":"Conflicten","A notebook with this title already exists: \"%s\"":"Er bestaat al een notitieboek met \"%s\" als titel","Notebooks cannot be named \"%s\", which is a reserved title.":"Notitieboeken kunnen niet \"%s\" genoemd worden, dit is een gereserveerd woord.","Untitled":"Untitled","This note does not have geolocation information.":"Deze notitie bevat geen geo-locatie informatie.","Cannot copy note to \"%s\" notebook":"Kan notitie niet naar notitieboek \"%s\" kopiëren.","Cannot move note to \"%s\" notebook":"Kan notitie niet naar notitieboek \"%s\" verplaatsen.","Text editor":"Tekst editor","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"De editor die zal gebruikt worden bij het openen van een notitie. Als er geen meegegeven wordt, zal het programma de standaard editor proberen te detecteren. ","Language":"Taal","Date format":"Datumnotatie","Time format":"Tijdsnotatie","Theme":"Thema","Light":"Licht","Dark":"Donker","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Sla geo-locatie op bij notities","When creating a new to-do:":"When creating a new to-do:","Focus title":"","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Update de applicatie automatisch","Synchronisation interval":"Synchronisatie interval","%d minutes":"%d minuten","%d hour":"%d uur","%d hours":"%d uren","Show advanced options":"Toon geavanceerde opties","Synchronisation target":"Synchronisatiedoel","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"Folder om mee te synchroniseren (absolute pad)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Het pad om mee te synchroniseren als bestandssysteem synchronisatie is ingeschakeld. Zie `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"Nextcloud password","WebDAV URL":"","WebDAV username":"","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Ongeldige optie: \"%s\". Geldige waarden zijn: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Items die niet gesynchroniseerd kunnen worden","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Deze items zullen op het apparaat beschikbaar blijven, maar zullen niet geüpload worden naar het synchronistatiedoel. Om deze items te vinden, zoek naar de titel of het ID (afgebeeld bovenaan tussen haakjes).","Sync status (synced items / total items)":"Sync status (gesynchroniseerde items / totaal aantal items)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Totaal: %d/%d","Conflicted: %d":"Conflict: %d","To delete: %d":"Verwijderen: %d","Folders":"Folders","%s: %d notes":"%s: %d notities","Coming alarms":"Meldingen","On %s: %s":"Op %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Er zijn momenteel geen notities. Maak een notitie door op (+) te klikken.","Delete these notes?":"Deze notities verwijderen?","Log":"Log","Export Debug Report":"Exporteer debug rapport","Encryption Config":"Encryptie configuratie","Configuration":"Configuratie","Move to notebook...":"Verplaats naar notitieboek...","Move %d notes to notebook \"%s\"?":"Verplaats %d notities naar notitieboek \"%s\"?","Press to set the decryption password.":"Klik om het decryptie wachtwoord in te stellen","Select date":"Selecteer datum","Confirm":"Bevestig","Cancel synchronisation":"Annuleer synchronisatie","Joplin website":"","Master Key %s":"Hoofdsleutel: %s","Created: %s":"Aangemaakt: %s","Password:":"Wachtwoord:","Password cannot be empty":"Wachtwoord kan niet leeg zijn","Enable":"Activeer","The notebook could not be saved: %s":"Het notitieboek kon niet opgeslaan worden: %s","Edit notebook":"Bewerk notitieboek","Show all":"","Errors only":"","This note has been modified:":"Deze notitie werd aangepast:","Save changes":"Sla wijzigingen op","Discard changes":"Verwijder wijzigingen","Unsupported image type: %s":"Afbeeldingstype %s wordt niet ondersteund","Attach photo":"Voeg foto toe","Attach any file":"Voeg bestand toe","Convert to note":"Converteer naar notitie","Convert to todo":"Converteer naar to-do","Hide metadata":"Verberg metadata","Show metadata":"Toon metadata","View on map":"Toon op de kaart","Delete notebook":"Verwijder notitieboek","Login with OneDrive":"Log in met OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Klik op de (+) om een nieuwe notitie of een nieuw notitieboek aan te maken. Klik in het menu om uw bestaande notitieboeken te raadplegen.","You currently have no notebook. Create one by clicking on (+) button.":"U heeft momenteel geen notitieboek. Maak een notitieboek door op (+) te klikken.","Welcome":"Welkom"} \ No newline at end of file diff --git a/ReactNativeClient/locales/pt_BR.json b/ReactNativeClient/locales/pt_BR.json index cae7a641cd..112ed59ec5 100644 --- a/ReactNativeClient/locales/pt_BR.json +++ b/ReactNativeClient/locales/pt_BR.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Para eliminar uma tag, remova a tag das notas associadas a ela.","Please select the note or notebook to be deleted first.":"Por favor, primeiro, selecione a nota ou caderno a excluir.","Press Ctrl+D or type \"exit\" to exit the application":"Digite Ctrl+D ou \"exit\" para sair da aplicação","More than one item match \"%s\". Please narrow down your query.":"Mais que um item combinam com \"%s\". Por favor, refine sua pesquisa.","No notebook selected.":"Nenhum caderno selecionado.","No notebook has been specified.":"Nenhum caderno foi especificado.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancelando sincronização em segundo plano... Por favor, aguarde.","No such command: %s":"No such command: %s","The command \"%s\" is only available in GUI mode":"O comando \"%s\" está disponível somente em modo gráfico","Cannot change encrypted item":"","Missing required argument: %s":"Argumento requerido faltando: %s","%s: %s":"%s: %s","Your choice: ":"Sua escolha: ","Invalid answer: %s":"Resposta inválida: %s","Attaches the given file to the note.":"Anexa o arquivo dado à nota.","Cannot find \"%s\".":"Não posso encontrar \"%s\".","Displays the given note.":"Exibe a nota informada.","Displays the complete information about note.":"Exibe a informação completa sobre a nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtém ou define um valor de configuração. Se [valor] não for fornecido, ele mostrará o valor de [nome]. Se nem [nome] nem [valor] forem fornecidos, ele listará a configuração atual.","Also displays unset and hidden config variables.":"Também exibe variáveis de configuração não definidas e ocultas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica as notas que correspondem a para o [caderno]. Se nenhum caderno for especificado, a nota será duplicada no caderno atual.","Marks a to-do as done.":"Marca uma tarefa como feita.","Note is not a to-do: \"%s\"":"Nota não é uma tarefa: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Desabilitado","Encryption is: %s":"","Edit note.":"Editar nota.","No text editor is defined. Please set it using `config editor `":"Nenhum editor de texto está definido. Defina-o usando o comando `config edit `","No active notebook.":"Nenhum caderno ativo.","Note does not exist: \"%s\". Create it?":"A nota não existe: \"%s\". Criar?","Starting to edit note. Close the editor to get back to the prompt.":"Começando a editar a nota. Feche o editor para voltar ao prompt.","Error opening note in editor: %s":"","Note has been saved.":"Nota gravada.","Exits the application.":"Sai da aplicação.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exporta apenas a nota fornecida.","Exports only the given notebook.":"Exporta apenas o caderno fornecido.","Displays a geolocation URL for the note.":"Exibe uma URL de geolocalização para a nota.","Displays usage information.":"Exibe informações de uso.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Os atalhos não estão disponíveis no modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"Os comandos possíveis são:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Em qualquer comando, uma nota ou caderno pode ser referenciado por título ou ID, ou usando os atalhos `$n` ou` $b` para, respectivamente, a nota ou caderno selecionado. `$c` pode ser usado para se referenciar ao item atualmente selecionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover de um painel para outro, pressione Tab ou Shift + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use as setas e a Page Up/Page Down para rolar as listas e áreas de texto (incluindo este console).","To maximise/minimise the console, press \"TC\".":"Para maximizar / minimizar o console, pressione \"TC\".","To enter command line mode, press \":\"":"Para entrar no modo de linha de comando, pressione \":\"","To exit command line mode, press ESCAPE":"Para sair do modo de linha de comando, pressione o ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Não pedir confirmação.","Found: %d.":"Encontrado: %d.","Created: %d.":"Criado: %d.","Updated: %d.":"Atualizado: %d.","Skipped: %d.":"Ignorado: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Tag adicionada: %d.","Importing notes...":"Importando notas ...","The notes have been imported: %s":"As notas foram importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Exibe as notas no caderno atual. Use `ls /` para exibir a lista de cadernos.","Displays only the first top notes.":"Exibe apenas as primeiras notas.","Sorts the item by (eg. title, updated_time, created_time).":"Classifica o item por (ex.: title, update_time, created_time).","Reverses the sorting order.":"Inverte a ordem de classificação.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Exibe apenas os itens do(s) tipo(s) específico(s). Pode ser `n` para notas,` t` para tarefas, ou `nt` para notas e tarefas (por exemplo.` -tt` exibiria apenas os itens pendentes, enquanto `-ttd` exibiria notas e tarefas .","Either \"text\" or \"json\"":"Ou \"text\" ou \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use o formato da lista longa. O formato é ID, NOTE_COUNT (para caderno), DATE, TODO_CHECKED (para tarefas), TITLE","Please select a notebook first.":"Por favor, selecione um caderno primeiro.","Creates a new notebook.":"Cria um novo caderno.","Creates a new note.":"Cria uma nova nota.","Notes can only be created within a notebook.":"As notas só podem ser criadas dentro de um caderno.","Creates a new to-do.":"Cria uma nova tarefa.","Moves the notes matching to [notebook].":"Move as notas correspondentes para [caderno].","Renames the given (note or notebook) to .":"Renomeia o dado (nota ou caderno) para .","Deletes the given notebook.":"Exclui o caderno informado.","Deletes the notebook without asking for confirmation.":"Exclui o caderno sem pedir confirmação.","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"Exclui as notas correspondentes ao padrão .","Deletes the notes without asking for confirmation.":"Exclui as notas sem pedir confirmação.","%d notes match this pattern. Delete them?":"%d notas correspondem a este padrão. Apagar todos?","Delete note?":"Apagar nota?","Searches for the given in all the notes.":"Procura o padrão em todas as notas.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Sets the property of the given to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Exibe sumário sobre as notas e cadernos.","Synchronises with remote storage.":"Sincroniza com o armazenamento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizar para destino fornecido (p padrão é o valor de configuração sync.target)","Authentication was not completed (did not receive an authentication token).":"A autenticação não foi concluída (não recebeu um token de autenticação).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"A sincronização já está em andamento.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"O arquivo de bloqueio já está ativo. Se você sabe que nenhuma sincronização está ocorrendo, você pode excluir o arquivo de bloqueio em \"%s\" e retomar a operação.","Synchronisation target: %s (%s)":"Alvo de sincronização: %s (%s)","Cannot initialize synchroniser.":"Não é possível inicializar o sincronizador.","Starting synchronisation...":"Iniciando sincronização...","Cancelling... Please wait.":"Cancelando... Aguarde."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" pode ser \"add\", \"remove\" ou \"list\" para atribuir ou remover [tag] de [nota], ou para listar as notas associadas a [tag]. O comando `taglist` pode ser usado para listar todas as tags.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" pode ser \"toggle\" ou \"clear\". Use \"toggle\" para alternar entre as tarefas entre o estado completo e incompleto (se o alvo for uma nota comum, ele será convertido em uma tarefa a fazer). Use \"clear\" para converter a tarefa em uma nota normal.","Marks a to-do as non-completed.":"Marca uma tarefa como não completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Alterna para [caderno] - todas as operações adicionais acontecerão dentro deste caderno.","Displays version information":"Exibe informações da versão","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valores possíveis: %s.","Default: %s":"Padrão: %s","Possible keys/values:":"Possíveis chaves/valores:","Fatal error:":"Erro fatal:","The application has been authorised - you may now close this browser tab.":"O aplicativo foi autorizado - agora você pode fechar esta guia do navegador.","The application has been successfully authorised.":"O aplicativo foi autorizado com sucesso.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra a seguinte URL no seu navegador para autenticar o aplicativo. O aplicativo criará um diretório em \"Apps/Joplin\" e somente lerá e gravará arquivos neste diretório. Não terá acesso a nenhum arquivo fora deste diretório nem a nenhum outro dado pessoal. Nenhum dado será compartilhado com terceiros.","Search:":"Procurar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Arquivo","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Nova nota","New to-do":"Nova tarefa","New notebook":"Novo caderno","Import":"Importar","Export":"Export","Hide %s":"","Quit":"Sair","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Colar","Search in all the notes":"Pesquisar em todas as notas","View":"","Toggle editor layout":"","Tools":"Ferramentas","Synchronisation status":"Synchronisation status","Encryption options":"","General Options":"General Options","Help":"Ajuda","Website and documentation":"Website e documentação","Check for updates...":"","About Joplin":"Sobre o Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Cancelar","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"","Back":"Voltar","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"O novo caderno \"%s\" será criado e o arquivo \"%s\" será importado para ele","Please create a notebook first.":"Primeiro, crie um caderno.","Please create a notebook first":"Primeiro, crie um caderno","Notebook title:":"Título do caderno:","Add or remove tags:":"Adicionar ou remover tags:","Separate each tag by a comma.":"Separe cada tag por vírgula.","Rename notebook:":"Renomear caderno:","Set alarm:":"Definir alarme:","Search":"Procurar","Layout":"Layout","Some items cannot be synchronised.":"Some items cannot be synchronised.","View them now":"","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Adicionar ou remover tags","Switch between note and to-do type":"Alternar entre os tipos Nota e Tarefa","Delete":"Excluir","Delete notes?":"Excluir notas?","No notes in here. Create one by clicking on \"New note\".":"Não há notas aqui. Crie uma, clicando em \"Nova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Link ou mensagem não suportada: %s","Attach file":"Anexar arquivo","Tags":"Tags","Set alarm":"Definir alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Atualizar","Clear":"Limpar (clear)","OneDrive Login":"Login no OneDrive","Options":"Opções","Synchronisation Status":"Synchronisation Status","Encryption Options":"","Remove this tag from all the notes?":"Remover esta tag de todas as notas?","Remove this search from the sidebar?":"Remover essa pesquisa da barra lateral?","Rename":"Renomear","Synchronise":"Sincronizar","Notebooks":"Cadernos","Searches":"Pesquisas","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Uso: %s","Unknown flag: %s":"Flag desconhecido: %s","File system":"Sistema de arquivos","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (apenas para testes)","WebDAV":"","Unknown log level: %s":"Nível de log desconhecido: %s","Unknown level ID: %s":"Nível ID desconhecido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Não é possível atualizar token: faltam dados de autenticação. Iniciar a sincronização novamente pode corrigir o problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Não foi possível sincronizar com o OneDrive.\n\nEste erro geralmente acontece ao usar o OneDrive for Business, que infelizmente não pode ser suportado.\n\nConsidere usar uma conta regular do OneDrive.","Cannot access %s":"Não é possível acessar %s","Created local items: %d.":"Itens locais criados: %d.","Updated local items: %d.":"Itens locais atualizados: %d.","Created remote items: %d.":"Itens remotos criados: %d.","Updated remote items: %d.":"Itens remotos atualizados: %d.","Deleted local items: %d.":"Itens locais excluídos: %d.","Deleted remote items: %d.":"Itens remotos excluídos: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"Estado: \"%s\".","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Synchronisation is already in progress. State: %s":"Sincronização já em andamento. Estado: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Conflitos","A notebook with this title already exists: \"%s\"":"Já existe caderno com este título: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Os cadernos não podem ser nomeados como\"%s\", que é um título reservado.","Untitled":"Sem título","This note does not have geolocation information.":"Esta nota não possui informações de geolocalização.","Cannot copy note to \"%s\" notebook":"Não é possível copiar a nota para o caderno \"%s\" ","Cannot move note to \"%s\" notebook":"Não é possível mover a nota para o caderno \"%s\"","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"O editor que será usado para abrir uma nota. Se nenhum for indicado, ele tentará detectar automaticamente o editor padrão.","Language":"Idioma","Date format":"Formato de data","Time format":"Formato de hora","Theme":"Tema","Light":"Light","Dark":"Dark","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Salvar geolocalização com notas","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Atualizar automaticamente o aplicativo","Synchronisation interval":"Intervalo de sincronização","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opções avançadas","Synchronisation target":"Alvo de sincronização","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"O caminho para sincronizar, quando a sincronização do sistema de arquivos está habilitada. Veja `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Valor da opção inválida: \"%s\". Os valores possíveis são: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Status de sincronização (sincronizados / totais)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Em conflito: %d","To delete: %d":"Para excluir: %d","Folders":"Pastas","%s: %d notes":"%s: %d notas","Coming alarms":"Próximos alarmes","On %s: %s":"Em %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Atualmente, não há notas. Crie uma, clicando no botão (+).","Delete these notes?":"Excluir estas notas?","Log":"Log","Export Debug Report":"Exportar Relatório de Debug","Encryption Config":"","Configuration":"Configuração","Move to notebook...":"Mover para o caderno...","Move %d notes to notebook \"%s\"?":"Mover %d notas para o caderno \"%s\"?","Press to set the decryption password.":"","Select date":"Selecionar data","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronização","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"O caderno não pôde ser salvo: %s","Edit notebook":"Editar caderno","Show all":"","Errors only":"","This note has been modified:":"Esta nota foi modificada:","Save changes":"Gravar alterações","Discard changes":"Descartar alterações","Unsupported image type: %s":"Tipo de imagem não suportada: %s","Attach photo":"Anexar foto","Attach any file":"Anexar qualquer arquivo","Convert to note":"Converter para nota","Convert to todo":"Converter para tarefa","Hide metadata":"Ocultar metadados","Show metadata":"Exibir metadados","View on map":"Ver no mapa","Delete notebook":"Excluir caderno","Login with OneDrive":"Login com OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Clique no botão (+) para criar uma nova nota ou caderno. Clique no menu lateral para acessar seus cadernos existentes.","You currently have no notebook. Create one by clicking on (+) button.":"Você não possui cadernos. Crie um clicando no botão (+).","Welcome":"Bem-vindo"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Para eliminar uma tag, remova a tag das notas associadas a ela.","Please select the note or notebook to be deleted first.":"Por favor, primeiro, selecione a nota ou caderno a excluir.","Press Ctrl+D or type \"exit\" to exit the application":"Digite Ctrl+D ou \"exit\" para sair da aplicação","More than one item match \"%s\". Please narrow down your query.":"Mais que um item combinam com \"%s\". Por favor, refine sua pesquisa.","No notebook selected.":"Nenhum caderno selecionado.","No notebook has been specified.":"Nenhum caderno foi especificado.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancelando sincronização em segundo plano... Por favor, aguarde.","No such command: %s":"No such command: %s","The command \"%s\" is only available in GUI mode":"O comando \"%s\" está disponível somente em modo gráfico","Cannot change encrypted item":"","Missing required argument: %s":"Argumento requerido faltando: %s","%s: %s":"%s: %s","Your choice: ":"Sua escolha: ","Invalid answer: %s":"Resposta inválida: %s","Attaches the given file to the note.":"Anexa o arquivo dado à nota.","Cannot find \"%s\".":"Não posso encontrar \"%s\".","Displays the given note.":"Exibe a nota informada.","Displays the complete information about note.":"Exibe a informação completa sobre a nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtém ou define um valor de configuração. Se [valor] não for fornecido, ele mostrará o valor de [nome]. Se nem [nome] nem [valor] forem fornecidos, ele listará a configuração atual.","Also displays unset and hidden config variables.":"Também exibe variáveis de configuração não definidas e ocultas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica as notas que correspondem a para o [caderno]. Se nenhum caderno for especificado, a nota será duplicada no caderno atual.","Marks a to-do as done.":"Marca uma tarefa como feita.","Note is not a to-do: \"%s\"":"Nota não é uma tarefa: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Desabilitado","Encryption is: %s":"","Edit note.":"Editar nota.","No text editor is defined. Please set it using `config editor `":"Nenhum editor de texto está definido. Defina-o usando o comando `config edit `","No active notebook.":"Nenhum caderno ativo.","Note does not exist: \"%s\". Create it?":"A nota não existe: \"%s\". Criar?","Starting to edit note. Close the editor to get back to the prompt.":"Começando a editar a nota. Feche o editor para voltar ao prompt.","Error opening note in editor: %s":"","Note has been saved.":"Nota gravada.","Exits the application.":"Sai da aplicação.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exporta apenas a nota fornecida.","Exports only the given notebook.":"Exporta apenas o caderno fornecido.","Displays a geolocation URL for the note.":"Exibe uma URL de geolocalização para a nota.","Displays usage information.":"Exibe informações de uso.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Os atalhos não estão disponíveis no modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"Os comandos possíveis são:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Em qualquer comando, uma nota ou caderno pode ser referenciado por título ou ID, ou usando os atalhos `$n` ou` $b` para, respectivamente, a nota ou caderno selecionado. `$c` pode ser usado para se referenciar ao item atualmente selecionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover de um painel para outro, pressione Tab ou Shift + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use as setas e a Page Up/Page Down para rolar as listas e áreas de texto (incluindo este console).","To maximise/minimise the console, press \"TC\".":"Para maximizar / minimizar o console, pressione \"TC\".","To enter command line mode, press \":\"":"Para entrar no modo de linha de comando, pressione \":\"","To exit command line mode, press ESCAPE":"Para sair do modo de linha de comando, pressione o ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Não pedir confirmação.","Found: %d.":"Encontrado: %d.","Created: %d.":"Criado: %d.","Updated: %d.":"Atualizado: %d.","Skipped: %d.":"Ignorado: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Tag adicionada: %d.","Importing notes...":"Importando notas ...","The notes have been imported: %s":"As notas foram importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Exibe as notas no caderno atual. Use `ls /` para exibir a lista de cadernos.","Displays only the first top notes.":"Exibe apenas as primeiras notas.","Sorts the item by (eg. title, updated_time, created_time).":"Classifica o item por (ex.: title, update_time, created_time).","Reverses the sorting order.":"Inverte a ordem de classificação.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Exibe apenas os itens do(s) tipo(s) específico(s). Pode ser `n` para notas,` t` para tarefas, ou `nt` para notas e tarefas (por exemplo.` -tt` exibiria apenas os itens pendentes, enquanto `-ttd` exibiria notas e tarefas .","Either \"text\" or \"json\"":"Ou \"text\" ou \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use o formato da lista longa. O formato é ID, NOTE_COUNT (para caderno), DATE, TODO_CHECKED (para tarefas), TITLE","Please select a notebook first.":"Por favor, selecione um caderno primeiro.","Creates a new notebook.":"Cria um novo caderno.","Creates a new note.":"Cria uma nova nota.","Notes can only be created within a notebook.":"As notas só podem ser criadas dentro de um caderno.","Creates a new to-do.":"Cria uma nova tarefa.","Moves the notes matching to [notebook].":"Move as notas correspondentes para [caderno].","Renames the given (note or notebook) to .":"Renomeia o dado (nota ou caderno) para .","Deletes the given notebook.":"Exclui o caderno informado.","Deletes the notebook without asking for confirmation.":"Exclui o caderno sem pedir confirmação.","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"Exclui as notas correspondentes ao padrão .","Deletes the notes without asking for confirmation.":"Exclui as notas sem pedir confirmação.","%d notes match this pattern. Delete them?":"%d notas correspondem a este padrão. Apagar todos?","Delete note?":"Apagar nota?","Searches for the given in all the notes.":"Procura o padrão em todas as notas.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Sets the property of the given to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Exibe sumário sobre as notas e cadernos.","Synchronises with remote storage.":"Sincroniza com o armazenamento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizar para destino fornecido (p padrão é o valor de configuração sync.target)","Authentication was not completed (did not receive an authentication token).":"A autenticação não foi concluída (não recebeu um token de autenticação).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"A sincronização já está em andamento.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"O arquivo de bloqueio já está ativo. Se você sabe que nenhuma sincronização está ocorrendo, você pode excluir o arquivo de bloqueio em \"%s\" e retomar a operação.","Synchronisation target: %s (%s)":"Alvo de sincronização: %s (%s)","Cannot initialize synchroniser.":"Não é possível inicializar o sincronizador.","Starting synchronisation...":"Iniciando sincronização...","Cancelling... Please wait.":"Cancelando... Aguarde."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" pode ser \"add\", \"remove\" ou \"list\" para atribuir ou remover [tag] de [nota], ou para listar as notas associadas a [tag]. O comando `taglist` pode ser usado para listar todas as tags.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" pode ser \"toggle\" ou \"clear\". Use \"toggle\" para alternar entre as tarefas entre o estado completo e incompleto (se o alvo for uma nota comum, ele será convertido em uma tarefa a fazer). Use \"clear\" para converter a tarefa em uma nota normal.","Marks a to-do as non-completed.":"Marca uma tarefa como não completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Alterna para [caderno] - todas as operações adicionais acontecerão dentro deste caderno.","Displays version information":"Exibe informações da versão","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valores possíveis: %s.","Default: %s":"Padrão: %s","Possible keys/values:":"Possíveis chaves/valores:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Erro fatal:","The application has been authorised - you may now close this browser tab.":"O aplicativo foi autorizado - agora você pode fechar esta guia do navegador.","The application has been successfully authorised.":"O aplicativo foi autorizado com sucesso.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra a seguinte URL no seu navegador para autenticar o aplicativo. O aplicativo criará um diretório em \"Apps/Joplin\" e somente lerá e gravará arquivos neste diretório. Não terá acesso a nenhum arquivo fora deste diretório nem a nenhum outro dado pessoal. Nenhum dado será compartilhado com terceiros.","Search:":"Procurar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Arquivo","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Nova nota","New to-do":"Nova tarefa","New notebook":"Novo caderno","Import":"Importar","Export":"Export","Hide %s":"","Quit":"Sair","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Colar","Search in all the notes":"Pesquisar em todas as notas","View":"","Toggle editor layout":"","Tools":"Ferramentas","Synchronisation status":"Synchronisation status","Encryption options":"","General Options":"General Options","Help":"Ajuda","Website and documentation":"Website e documentação","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Sobre o Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Cancelar","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"","Back":"Voltar","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"O novo caderno \"%s\" será criado e o arquivo \"%s\" será importado para ele","Please create a notebook first.":"Primeiro, crie um caderno.","Please create a notebook first":"Primeiro, crie um caderno","Notebook title:":"Título do caderno:","Add or remove tags:":"Adicionar ou remover tags:","Separate each tag by a comma.":"Separe cada tag por vírgula.","Rename notebook:":"Renomear caderno:","Set alarm:":"Definir alarme:","Search":"Procurar","Layout":"Layout","Some items cannot be synchronised.":"Some items cannot be synchronised.","View them now":"","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Adicionar ou remover tags","Switch between note and to-do type":"Alternar entre os tipos Nota e Tarefa","Delete":"Excluir","Delete notes?":"Excluir notas?","No notes in here. Create one by clicking on \"New note\".":"Não há notas aqui. Crie uma, clicando em \"Nova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Link ou mensagem não suportada: %s","Attach file":"Anexar arquivo","Tags":"Tags","Set alarm":"Definir alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Atualizar","Clear":"Limpar (clear)","OneDrive Login":"Login no OneDrive","Options":"Opções","Synchronisation Status":"Synchronisation Status","Encryption Options":"","Remove this tag from all the notes?":"Remover esta tag de todas as notas?","Remove this search from the sidebar?":"Remover essa pesquisa da barra lateral?","Rename":"Renomear","Synchronise":"Sincronizar","Notebooks":"Cadernos","Searches":"Pesquisas","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Uso: %s","Unknown flag: %s":"Flag desconhecido: %s","File system":"Sistema de arquivos","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (apenas para testes)","WebDAV":"","Unknown log level: %s":"Nível de log desconhecido: %s","Unknown level ID: %s":"Nível ID desconhecido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Não é possível atualizar token: faltam dados de autenticação. Iniciar a sincronização novamente pode corrigir o problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Não foi possível sincronizar com o OneDrive.\n\nEste erro geralmente acontece ao usar o OneDrive for Business, que infelizmente não pode ser suportado.\n\nConsidere usar uma conta regular do OneDrive.","Cannot access %s":"Não é possível acessar %s","Created local items: %d.":"Itens locais criados: %d.","Updated local items: %d.":"Itens locais atualizados: %d.","Created remote items: %d.":"Itens remotos criados: %d.","Updated remote items: %d.":"Itens remotos atualizados: %d.","Deleted local items: %d.":"Itens locais excluídos: %d.","Deleted remote items: %d.":"Itens remotos excluídos: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"Estado: \"%s\".","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Synchronisation is already in progress. State: %s":"Sincronização já em andamento. Estado: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Conflitos","A notebook with this title already exists: \"%s\"":"Já existe caderno com este título: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Os cadernos não podem ser nomeados como\"%s\", que é um título reservado.","Untitled":"Sem título","This note does not have geolocation information.":"Esta nota não possui informações de geolocalização.","Cannot copy note to \"%s\" notebook":"Não é possível copiar a nota para o caderno \"%s\" ","Cannot move note to \"%s\" notebook":"Não é possível mover a nota para o caderno \"%s\"","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"O editor que será usado para abrir uma nota. Se nenhum for indicado, ele tentará detectar automaticamente o editor padrão.","Language":"Idioma","Date format":"Formato de data","Time format":"Formato de hora","Theme":"Tema","Light":"Light","Dark":"Dark","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Salvar geolocalização com notas","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Atualizar automaticamente o aplicativo","Synchronisation interval":"Intervalo de sincronização","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opções avançadas","Synchronisation target":"Alvo de sincronização","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"O caminho para sincronizar, quando a sincronização do sistema de arquivos está habilitada. Veja `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Valor da opção inválida: \"%s\". Os valores possíveis são: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Status de sincronização (sincronizados / totais)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Em conflito: %d","To delete: %d":"Para excluir: %d","Folders":"Pastas","%s: %d notes":"%s: %d notas","Coming alarms":"Próximos alarmes","On %s: %s":"Em %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Atualmente, não há notas. Crie uma, clicando no botão (+).","Delete these notes?":"Excluir estas notas?","Log":"Log","Export Debug Report":"Exportar Relatório de Debug","Encryption Config":"","Configuration":"Configuração","Move to notebook...":"Mover para o caderno...","Move %d notes to notebook \"%s\"?":"Mover %d notas para o caderno \"%s\"?","Press to set the decryption password.":"","Select date":"Selecionar data","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronização","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"O caderno não pôde ser salvo: %s","Edit notebook":"Editar caderno","Show all":"","Errors only":"","This note has been modified:":"Esta nota foi modificada:","Save changes":"Gravar alterações","Discard changes":"Descartar alterações","Unsupported image type: %s":"Tipo de imagem não suportada: %s","Attach photo":"Anexar foto","Attach any file":"Anexar qualquer arquivo","Convert to note":"Converter para nota","Convert to todo":"Converter para tarefa","Hide metadata":"Ocultar metadados","Show metadata":"Exibir metadados","View on map":"Ver no mapa","Delete notebook":"Excluir caderno","Login with OneDrive":"Login com OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Clique no botão (+) para criar uma nova nota ou caderno. Clique no menu lateral para acessar seus cadernos existentes.","You currently have no notebook. Create one by clicking on (+) button.":"Você não possui cadernos. Crie um clicando no botão (+).","Welcome":"Bem-vindo"} \ No newline at end of file diff --git a/ReactNativeClient/locales/ru_RU.json b/ReactNativeClient/locales/ru_RU.json index 4e112951c8..414907a853 100644 --- a/ReactNativeClient/locales/ru_RU.json +++ b/ReactNativeClient/locales/ru_RU.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Чтобы удалить тег, уберите его с ассоциированных с ним заметок.","Please select the note or notebook to be deleted first.":"Сначала выберите заметку или блокнот, которые должны быть удалены.","Press Ctrl+D or type \"exit\" to exit the application":"Для выхода из приложения нажмите Ctrl+D или введите «exit»","More than one item match \"%s\". Please narrow down your query.":"Более одного элемента соответствуют «%s». Уточните ваш запрос, пожалуйста.","No notebook selected.":"Не выбран блокнот.","No notebook has been specified.":"Не был указан блокнот.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Отмена фоновой синхронизации... Пожалуйста, ожидайте.","No such command: %s":"Нет такой команды: %s","The command \"%s\" is only available in GUI mode":"Команда «%s» доступна только в режиме GUI","Cannot change encrypted item":"Не удалось изменить зашифрованный элемент","Missing required argument: %s":"Отсутствует требуемый аргумент: %s","%s: %s":"%s: %s","Your choice: ":"Ваш выбор: ","Invalid answer: %s":"Неверный ответ: %s","Attaches the given file to the note.":"Прикрепляет заданный файл к заметке.","Cannot find \"%s\".":"Не удалось найти «%s».","Displays the given note.":"Отображает заданную заметку.","Displays the complete information about note.":"Отображает полную информацию о заметке.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Выводит или задаёт параметр конфигурации. Если [value] не указано, выведет значение [name]. Если не указаны ни [name], ни [value], выведет текущую конфигурацию.","Also displays unset and hidden config variables.":"Также выводит неустановленные или скрытые переменные конфигурации.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Дублирует заметки, содержащие , в [notebook]. Если блокнот не указан, заметки продублируются в текущем.","Marks a to-do as done.":"Отмечает задачу как завершённую.","Note is not a to-do: \"%s\"":"Заметка не является задачей: «%s»","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Управляет конфигурацией E2EE. Команды: `enable`, `disable`, `decrypt`, `status` и `target-status`.","Enter master password:":"Введите мастер-пароль:","Operation cancelled":"Операция отменена","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Запуск расшифровки... Пожалуйста, ожидайте. Время расшифровки зависит от объёма расшифровываемых данных.","Completed decryption.":"Расшифровка завершена.","Enabled":"Включено","Disabled":"Отключено","Encryption is: %s":"Шифрование: %s","Edit note.":"Редактировать заметку.","No text editor is defined. Please set it using `config editor `":"Текстовый редактор не определён. Задайте его, используя `config editor `","No active notebook.":"Нет активного блокнота.","Note does not exist: \"%s\". Create it?":"Заметки не существует: «%s». Создать?","Starting to edit note. Close the editor to get back to the prompt.":"Запуск редактирования заметки. Закройте редактор, чтобы вернуться к командной строке.","Error opening note in editor: %s":"Ошибка при открытии заметки в редакторе: %s","Note has been saved.":"Заметка сохранена.","Exits the application.":"Выход из приложения.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Экспортирует только заданную заметку.","Exports only the given notebook.":"Экспортирует только заданный блокнот.","Displays a geolocation URL for the note.":"Выводит URL геолокации для заметки.","Displays usage information.":"Выводит информацию об использовании.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Ярлыки недоступны в режиме командной строки.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Введите `help [команда]` для получения информации о команде или `help all` для получения полной информации по использованию.","The possible commands are:":"Доступные команды:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"В любой команде можно ссылаться на заметку или блокнот по названию или ID, либо используя ярлыки `$n` или `$b`, указывающие на текущую заметку или блокнот соответственно. С помощью `$c` можно ссылаться на текущий выбранный элемент.","To move from one pane to another, press Tab or Shift+Tab.":"Чтобы переключаться между панелями, нажимайте Tab или Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Используйте стрелки и клавиши перелистывания страницы вверх/вниз для прокрутки списков и текстовых областей (включая эту консоль).","To maximise/minimise the console, press \"TC\".":"Чтобы развернуть/свернуть консоль, нажимайте «TC».","To enter command line mode, press \":\"":"Чтобы войти в режим командной строки, нажмите «:»","To exit command line mode, press ESCAPE":"Чтобы выйти из режима командной строки, нажмите ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Не запрашивать подтверждение.","Found: %d.":"Найдено: %d.","Created: %d.":"Создано: %d.","Updated: %d.":"Обновлено: %d.","Skipped: %d.":"Пропущено: %d.","Resources: %d.":"Ресурсов: %d.","Tagged: %d.":"С тегами: %d.","Importing notes...":"Импорт заметок...","The notes have been imported: %s":"Импортировано заметок: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Выводит заметки текущего блокнота. Используйте `ls /` для вывода списка блокнотов.","Displays only the first top notes.":"Выводит только первые заметок.","Sorts the item by (eg. title, updated_time, created_time).":"Сортирует элементы по (например, title, updated_time, created_time).","Reverses the sorting order.":"Обращает порядок сортировки.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Выводит только элементы указанного типа. Может быть `n` для заметок, `t` для задач или `nt` для заметок и задач (например, `-tt` выведет только задачи, в то время как `-ttd` выведет заметки и задачи).","Either \"text\" or \"json\"":"«text» или «json»","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Использовать формат длинного списка. Форматом является ID, NOTE_COUNT (для блокнотов), DATE, TODO_CHECKED (для задач), TITLE","Please select a notebook first.":"Сначала выберите блокнот.","Creates a new notebook.":"Создаёт новый блокнот.","Creates a new note.":"Создаёт новую заметку.","Notes can only be created within a notebook.":"Заметки могут быть созданы только в блокноте.","Creates a new to-do.":"Создаёт новую задачу.","Moves the notes matching to [notebook].":"Перемещает заметки, содержащие в [notebook].","Renames the given (note or notebook) to .":"Переименовывает заданный (заметку или блокнот) в .","Deletes the given notebook.":"Удаляет заданный блокнот.","Deletes the notebook without asking for confirmation.":"Удаляет блокнот без запроса подтверждения.","Delete notebook? All notes within this notebook will also be deleted.":"Удалить блокнот? Все заметки в этом блокноте также будут удалены.","Deletes the notes matching .":"Удаляет заметки, соответствующие .","Deletes the notes without asking for confirmation.":"Удаляет заметки без запроса подтверждения.","%d notes match this pattern. Delete them?":"%d заметок соответствуют этому шаблону. Удалить их?","Delete note?":"Удалить заметку?","Searches for the given in all the notes.":"Запросы для заданного во всех заметках.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Устанавливает для свойства заданной заданное [value]. Возможные свойства:\n\n%s","Displays summary about the notes and notebooks.":"Выводит общую информацию о заметках и блокнотах.","Synchronises with remote storage.":"Синхронизирует с удалённым хранилищем.","Sync to provided target (defaults to sync.target config value)":"Синхронизация с заданной целью (по умолчанию — значение конфигурации sync.target)","Authentication was not completed (did not receive an authentication token).":"Аутентификация не была завершена (не получен токен аутентификации).","Not authentified with %s. Please provide any missing credentials.":"Не аутентифицировано с %s. Пожалуйста, предоставьте все недостающие данные.","Synchronisation is already in progress.":"Синхронизация уже выполняется.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Файл блокировки уже установлен. Если вам известно, что синхронизация не производится, вы можете удалить файл блокировки в «%s» и возобновить операцию.","Synchronisation target: %s (%s)":"Цель синхронизации: %s (%s)","Cannot initialize synchroniser.":"Не удалось инициировать синхронизацию.","Starting synchronisation...":"Начало синхронизации...","Cancelling... Please wait.":"Отмена... Пожалуйста, ожидайте."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" может быть «add», «remove» или «list», чтобы назначить или убрать [tag] с [note], или чтобы вывести список заметок, ассоциированых с [tag]. Команда `tag list` может быть использована для вывода списка всех тегов.","Invalid command: \"%s\"":"Неверная команда: «%s»"," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" может быть «toggle» или «clear». «toggle» используется для переключения статуса заданной задачи на завершённую или незавершённую (если применить к обычной заметке, она будет преобразована в задачу). «clear» используется для преобразования задачи обратно в обычную заметку.","Marks a to-do as non-completed.":"Отмечает задачу как незавершённую.","Switches to [notebook] - all further operations will happen within this notebook.":"Переключает на [блокнот] — все дальнейшие операции будут происходить в этом блокноте.","Displays version information":"Выводит информацию о версии","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Тип: %s.","Possible values: %s.":"Возможные значения: %s.","Default: %s":"По умолчанию: %s","Possible keys/values:":"Возможные ключи/значения:","Fatal error:":"Фатальная ошибка:","The application has been authorised - you may now close this browser tab.":"Приложение авторизовано — можно закрыть вкладку браузера.","The application has been successfully authorised.":"Приложение успешно авторизовано.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Откройте следующую ссылку в вашем браузере для аутентификации приложения. Приложением будет создан каталог «Apps/Joplin». Чтение и запись файлов будет осуществляться только в его пределах. У приложения не будет доступа к каким-либо файлам за пределами этого каталога и другим личным данным. Никакая информация не будет передана третьим лицам.","Search:":"Поиск:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Добро пожаловать в Joplin!\n\nВведите `:help shortcuts` для просмотра списка клавиатурных сочетаний или просто `:help` для просмотра информации об использовании.\n\nНапример, для создания блокнота нужно ввести `mb`, для создания заметки — `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Один или несколько элементов сейчас зашифрованы и может потребоваться, чтобы вы предоставили мастер-пароль. Для этого введите, пожалуйста, «e2ee decrypt». Если пароль уже был вами предоставлен, зашифрованные элементы расшифруются в фоновом режиме и вскоре станут доступны.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Файл","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Новая заметка","New to-do":"Новая задача","New notebook":"Новый блокнот","Import":"Импорт","Export":"Export","Hide %s":"","Quit":"Выход","Edit":"Правка","Copy":"Копировать","Cut":"Вырезать","Paste":"Вставить","Search in all the notes":"Поиск во всех заметках","View":"","Toggle editor layout":"","Tools":"Инструменты","Synchronisation status":"Статус синхронизации","Encryption options":"Настройки шифрования","General Options":"Основные настройки","Help":"Помощь","Website and documentation":"Сайт и документация","Check for updates...":"Проверить обновления...","About Joplin":"О Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Отмена","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"An update is available, do you want to download it now?","Yes":"","No":"No","Current version is up-to-date.":"Вы используете самую свежую версию.","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Заметки и настройки сохранены в: %s","Save":"Сохранить","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Отключение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в расшифрованном виде к цели синхронизации. Желаете продолжить?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Включение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в зашифрованном виде к цели синхронизации. Не теряйте пароль, так как в целях безопасности *только* с его помощью можно будет расшифровать данные! Чтобы включить шифрование, введите ваш пароль ниже.","Disable encryption":"Отключить шифрование","Enable encryption":"Включить шифрование","Master Keys":"Мастер-ключи","Active":"Активен","ID":"ID","Source":"Источник","Created":"Создан","Updated":"Обновлён","Password":"Пароль","Password OK":"Пароль OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Внимание: Для шифрования может быть использован только один мастер-ключ (отмеченный как «активный»). Для расшифровки может использоваться любой из ключей, в зависимости от того, как изначально были зашифрованы заметки или блокноты.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Статус","Encryption is:":"Шифрование:","Back":"Назад","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Будет создан новый блокнот «%s» и в него будет импортирован файл «%s»","Please create a notebook first.":"Сначала создайте блокнот.","Please create a notebook first":"Сначала создайте блокнот","Notebook title:":"Название блокнота:","Add or remove tags:":"Добавить или удалить теги:","Separate each tag by a comma.":"Каждый тег отделяется запятой.","Rename notebook:":"Переименовать блокнот:","Set alarm:":"Установить напоминание:","Search":"Поиск","Layout":"Вид","Some items cannot be synchronised.":"Некоторые элементы не могут быть синхронизированы.","View them now":"Просмотреть их сейчас","Some items cannot be decrypted.":"Некоторые элементы не могут быть расшифрованы.","Set the password":"Установить пароль","Add or remove tags":"Добавить или удалить теги","Switch between note and to-do type":"Переключить тип между заметкой и задачей","Delete":"Удалить","Delete notes?":"Удалить заметки?","No notes in here. Create one by clicking on \"New note\".":"Здесь нет заметок. Создайте новую нажатием на «Новая заметка».","There is currently no notebook. Create one by clicking on \"New notebook\".":"Сейчас здесь нет блокнотов. Создайте новый нажав «Новый блокнот».","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Неподдерживаемая ссыка или сообщение: %s","Attach file":"Прикрепить файл","Tags":"Теги","Set alarm":"Установить напоминание","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Обновить","Clear":"Очистить","OneDrive Login":"Вход в OneDrive","Options":"Настройки","Synchronisation Status":"Статус синхронизации","Encryption Options":"Настройки шифрования","Remove this tag from all the notes?":"Убрать этот тег со всех заметок?","Remove this search from the sidebar?":"Убрать этот запрос с боковой панели?","Rename":"Переименовать","Synchronise":"Синхронизировать","Notebooks":"Блокноты","Searches":"Запросы","Please select where the sync status should be exported to":"Выберите, куда должен быть экспортирован статус синхронизации","Usage: %s":"Использование: %s","Unknown flag: %s":"Неизвестный флаг: %s","File system":"Файловая система","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (только для тестирования)","WebDAV":"WebDAV","Unknown log level: %s":"Неизвестный уровень лога: %s","Unknown level ID: %s":"Неизвестный ID уровня: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Не удалось обновить токен: отсутствуют данные аутентификации. Повторный запуск синхронизации может решить проблему.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Не удалось синхронизироваться с OneDrive.\n\nТакая ошибка часто возникает при использовании OneDrive для бизнеса, который, к сожалению, не поддерживается.\n\nПожалуйста, рассмотрите возможность использования обычного аккаунта OneDrive.","Cannot access %s":"Не удалось получить доступ %s","Created local items: %d.":"Создано локальных элементов: %d.","Updated local items: %d.":"Обновлено локальных элементов: %d.","Created remote items: %d.":"Создано удалённых элементов: %d.","Updated remote items: %d.":"Обновлено удалённых элементов: %d.","Deleted local items: %d.":"Удалено локальных элементов: %d.","Deleted remote items: %d.":"Удалено удалённых элементов: %d.","Fetched items: %d/%d.":"Получено элементов: %d/%d.","State: \"%s\".":"Статус: «%s».","Cancelling...":"Отмена...","Completed: %s":"Завершено: %s","Synchronisation is already in progress. State: %s":"Синхронизация уже выполняется. Статус: %s","Encrypted":"Зашифровано","Encrypted items cannot be modified":"Зашифрованные элементы не могут быть изменены","Conflicts":"Конфликты","A notebook with this title already exists: \"%s\"":"Блокнот с таким названием уже существует: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"Блокнот не может быть назван «%s», это зарезервированное название.","Untitled":"Без имени","This note does not have geolocation information.":"Эта заметка не содержит информации о геолокации.","Cannot copy note to \"%s\" notebook":"Не удалось скопировать заметку в блокнот «%s»","Cannot move note to \"%s\" notebook":"Не удалось переместить заметку в блокнот «%s»","Text editor":"Текстовый редактор","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Редактор, в котором будут открываться заметки. Если не задан, будет произведена попытка автоматического определения редактора по умолчанию.","Language":"Язык","Date format":"Формат даты","Time format":"Формат времени","Theme":"Тема","Light":"Светлая","Dark":"Тёмная","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Сохранять информацию о геолокации в заметках","When creating a new to-do:":"При создании новой задачи:","Focus title":"Фокус на названии","Focus body":"Фокус на содержимом","When creating a new note:":"При создании новой заметки:","Show tray icon":"","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Автоматически обновлять приложение","Synchronisation interval":"Интервал синхронизации","%d minutes":"%d минут","%d hour":"%d час","%d hours":"%d часов","Show advanced options":"Показывать расширенные настройки","Synchronisation target":"Цель синхронизации","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Цель синхронизации. Каждая цель синхронизации может иметь дополнительные параметры, именованные как «sync.NUM.NAME» (все описаны ниже).","Directory to synchronise with (absolute path)":"Каталог синхронизации (абсолютный путь)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Путь для синхронизации при включённой синхронизации с файловой системой. См. `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Имя пользователя Nextcloud","Nextcloud password":"Пароль Nextcloud","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV username","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Неверное значение параметра: «%s». Доступные значения: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Элементы, которые не могут быть синхронизированы","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Эти элементы будут оставаться на устройстве, но не будут загружены в целевой объект синхронизации. Чтобы найти эти элементы, воспользуйтесь поиском по названию или ID (который указывается в скобках выше).","Sync status (synced items / total items)":"Статус синхронизации (элементов синхронизировано/всего)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Всего: %d/%d","Conflicted: %d":"Конфликтующих: %d","To delete: %d":"К удалению: %d","Folders":"Папки","%s: %d notes":"%s: %d заметок","Coming alarms":"Грядущие напоминания","On %s: %s":"В %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Сейчас здесь нет заметок. Создаёте новую, нажав кнопку (+).","Delete these notes?":"Удалить эти заметки?","Log":"Лог","Export Debug Report":"Экспортировать отладочный отчёт","Encryption Config":"Конфигурация шифрования","Configuration":"Конфигурация","Move to notebook...":"Переместить в блокнот...","Move %d notes to notebook \"%s\"?":"Переместить %d заметок в блокнот «%s»?","Press to set the decryption password.":"Нажмите, чтобы установить пароль для расшифровки.","Select date":"Выбрать дату","Confirm":"Подтвердить","Cancel synchronisation":"Отменить синхронизацию","Master Key %s":"Мастер-ключ %s","Created: %s":"Создано: %s","Password:":"Пароль:","Password cannot be empty":"Пароль не может быть пустым","Enable":"Включено","The notebook could not be saved: %s":"Не удалось сохранить блокнот: %s","Edit notebook":"Редактировать блокнот","Show all":"","Errors only":"Errors only","This note has been modified:":"Эта заметка была изменена:","Save changes":"Сохранить изменения","Discard changes":"Отменить изменения","Unsupported image type: %s":"Неподдерживаемый формат изображения: %s","Attach photo":"Прикрепить фото","Attach any file":"Прикрепить любой файл","Convert to note":"Преобразовать в заметку","Convert to todo":"Преобразовать в задачу","Hide metadata":"Скрыть метаданные","Show metadata":"Показать метаданные","View on map":"Посмотреть на карте","Delete notebook":"Удалить блокнот","Login with OneDrive":"Войти в OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Нажмите на кнопку (+) для создания новой заметки или нового блокнота. Нажмите на боковое меню для доступа к вашим существующим блокнотам.","You currently have no notebook. Create one by clicking on (+) button.":"У вас сейчас нет блокнота. Создайте его нажатием на кнопку (+).","Welcome":"Добро пожаловать"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Чтобы удалить тег, уберите его с ассоциированных с ним заметок.","Please select the note or notebook to be deleted first.":"Сначала выберите заметку или блокнот, которые должны быть удалены.","Press Ctrl+D or type \"exit\" to exit the application":"Для выхода из приложения нажмите Ctrl+D или введите «exit»","More than one item match \"%s\". Please narrow down your query.":"Более одного элемента соответствуют «%s». Уточните ваш запрос, пожалуйста.","No notebook selected.":"Не выбран блокнот.","No notebook has been specified.":"Не был указан блокнот.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Отмена фоновой синхронизации... Пожалуйста, ожидайте.","No such command: %s":"Нет такой команды: %s","The command \"%s\" is only available in GUI mode":"Команда «%s» доступна только в режиме GUI","Cannot change encrypted item":"Не удалось изменить зашифрованный элемент","Missing required argument: %s":"Отсутствует требуемый аргумент: %s","%s: %s":"%s: %s","Your choice: ":"Ваш выбор: ","Invalid answer: %s":"Неверный ответ: %s","Attaches the given file to the note.":"Прикрепляет заданный файл к заметке.","Cannot find \"%s\".":"Не удалось найти «%s».","Displays the given note.":"Отображает заданную заметку.","Displays the complete information about note.":"Отображает полную информацию о заметке.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Выводит или задаёт параметр конфигурации. Если [value] не указано, выведет значение [name]. Если не указаны ни [name], ни [value], выведет текущую конфигурацию.","Also displays unset and hidden config variables.":"Также выводит неустановленные или скрытые переменные конфигурации.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Дублирует заметки, содержащие , в [notebook]. Если блокнот не указан, заметки продублируются в текущем.","Marks a to-do as done.":"Отмечает задачу как завершённую.","Note is not a to-do: \"%s\"":"Заметка не является задачей: «%s»","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Управляет конфигурацией E2EE. Команды: `enable`, `disable`, `decrypt`, `status` и `target-status`.","Enter master password:":"Введите мастер-пароль:","Operation cancelled":"Операция отменена","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Запуск расшифровки... Пожалуйста, ожидайте. Время расшифровки зависит от объёма расшифровываемых данных.","Completed decryption.":"Расшифровка завершена.","Enabled":"Включено","Disabled":"Отключено","Encryption is: %s":"Шифрование: %s","Edit note.":"Редактировать заметку.","No text editor is defined. Please set it using `config editor `":"Текстовый редактор не определён. Задайте его, используя `config editor `","No active notebook.":"Нет активного блокнота.","Note does not exist: \"%s\". Create it?":"Заметки не существует: «%s». Создать?","Starting to edit note. Close the editor to get back to the prompt.":"Запуск редактирования заметки. Закройте редактор, чтобы вернуться к командной строке.","Error opening note in editor: %s":"Ошибка при открытии заметки в редакторе: %s","Note has been saved.":"Заметка сохранена.","Exits the application.":"Выход из приложения.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Экспортирует только заданную заметку.","Exports only the given notebook.":"Экспортирует только заданный блокнот.","Displays a geolocation URL for the note.":"Выводит URL геолокации для заметки.","Displays usage information.":"Выводит информацию об использовании.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Ярлыки недоступны в режиме командной строки.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Введите `help [команда]` для получения информации о команде или `help all` для получения полной информации по использованию.","The possible commands are:":"Доступные команды:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"В любой команде можно ссылаться на заметку или блокнот по названию или ID, либо используя ярлыки `$n` или `$b`, указывающие на текущую заметку или блокнот соответственно. С помощью `$c` можно ссылаться на текущий выбранный элемент.","To move from one pane to another, press Tab or Shift+Tab.":"Чтобы переключаться между панелями, нажимайте Tab или Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Используйте стрелки и клавиши перелистывания страницы вверх/вниз для прокрутки списков и текстовых областей (включая эту консоль).","To maximise/minimise the console, press \"TC\".":"Чтобы развернуть/свернуть консоль, нажимайте «TC».","To enter command line mode, press \":\"":"Чтобы войти в режим командной строки, нажмите «:»","To exit command line mode, press ESCAPE":"Чтобы выйти из режима командной строки, нажмите ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Не запрашивать подтверждение.","Found: %d.":"Найдено: %d.","Created: %d.":"Создано: %d.","Updated: %d.":"Обновлено: %d.","Skipped: %d.":"Пропущено: %d.","Resources: %d.":"Ресурсов: %d.","Tagged: %d.":"С тегами: %d.","Importing notes...":"Импорт заметок...","The notes have been imported: %s":"Импортировано заметок: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Выводит заметки текущего блокнота. Используйте `ls /` для вывода списка блокнотов.","Displays only the first top notes.":"Выводит только первые заметок.","Sorts the item by (eg. title, updated_time, created_time).":"Сортирует элементы по (например, title, updated_time, created_time).","Reverses the sorting order.":"Обращает порядок сортировки.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Выводит только элементы указанного типа. Может быть `n` для заметок, `t` для задач или `nt` для заметок и задач (например, `-tt` выведет только задачи, в то время как `-ttd` выведет заметки и задачи).","Either \"text\" or \"json\"":"«text» или «json»","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Использовать формат длинного списка. Форматом является ID, NOTE_COUNT (для блокнотов), DATE, TODO_CHECKED (для задач), TITLE","Please select a notebook first.":"Сначала выберите блокнот.","Creates a new notebook.":"Создаёт новый блокнот.","Creates a new note.":"Создаёт новую заметку.","Notes can only be created within a notebook.":"Заметки могут быть созданы только в блокноте.","Creates a new to-do.":"Создаёт новую задачу.","Moves the notes matching to [notebook].":"Перемещает заметки, содержащие в [notebook].","Renames the given (note or notebook) to .":"Переименовывает заданный (заметку или блокнот) в .","Deletes the given notebook.":"Удаляет заданный блокнот.","Deletes the notebook without asking for confirmation.":"Удаляет блокнот без запроса подтверждения.","Delete notebook? All notes within this notebook will also be deleted.":"Удалить блокнот? Все заметки в этом блокноте также будут удалены.","Deletes the notes matching .":"Удаляет заметки, соответствующие .","Deletes the notes without asking for confirmation.":"Удаляет заметки без запроса подтверждения.","%d notes match this pattern. Delete them?":"%d заметок соответствуют этому шаблону. Удалить их?","Delete note?":"Удалить заметку?","Searches for the given in all the notes.":"Запросы для заданного во всех заметках.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Устанавливает для свойства заданной заданное [value]. Возможные свойства:\n\n%s","Displays summary about the notes and notebooks.":"Выводит общую информацию о заметках и блокнотах.","Synchronises with remote storage.":"Синхронизирует с удалённым хранилищем.","Sync to provided target (defaults to sync.target config value)":"Синхронизация с заданной целью (по умолчанию — значение конфигурации sync.target)","Authentication was not completed (did not receive an authentication token).":"Аутентификация не была завершена (не получен токен аутентификации).","Not authentified with %s. Please provide any missing credentials.":"Не аутентифицировано с %s. Пожалуйста, предоставьте все недостающие данные.","Synchronisation is already in progress.":"Синхронизация уже выполняется.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Файл блокировки уже установлен. Если вам известно, что синхронизация не производится, вы можете удалить файл блокировки в «%s» и возобновить операцию.","Synchronisation target: %s (%s)":"Цель синхронизации: %s (%s)","Cannot initialize synchroniser.":"Не удалось инициировать синхронизацию.","Starting synchronisation...":"Начало синхронизации...","Cancelling... Please wait.":"Отмена... Пожалуйста, ожидайте."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" может быть «add», «remove» или «list», чтобы назначить или убрать [tag] с [note], или чтобы вывести список заметок, ассоциированых с [tag]. Команда `tag list` может быть использована для вывода списка всех тегов.","Invalid command: \"%s\"":"Неверная команда: «%s»"," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" может быть «toggle» или «clear». «toggle» используется для переключения статуса заданной задачи на завершённую или незавершённую (если применить к обычной заметке, она будет преобразована в задачу). «clear» используется для преобразования задачи обратно в обычную заметку.","Marks a to-do as non-completed.":"Отмечает задачу как незавершённую.","Switches to [notebook] - all further operations will happen within this notebook.":"Переключает на [блокнот] — все дальнейшие операции будут происходить в этом блокноте.","Displays version information":"Выводит информацию о версии","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Тип: %s.","Possible values: %s.":"Возможные значения: %s.","Default: %s":"По умолчанию: %s","Possible keys/values:":"Возможные ключи/значения:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Фатальная ошибка:","The application has been authorised - you may now close this browser tab.":"Приложение авторизовано — можно закрыть вкладку браузера.","The application has been successfully authorised.":"Приложение успешно авторизовано.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Откройте следующую ссылку в вашем браузере для аутентификации приложения. Приложением будет создан каталог «Apps/Joplin». Чтение и запись файлов будет осуществляться только в его пределах. У приложения не будет доступа к каким-либо файлам за пределами этого каталога и другим личным данным. Никакая информация не будет передана третьим лицам.","Search:":"Поиск:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Добро пожаловать в Joplin!\n\nВведите `:help shortcuts` для просмотра списка клавиатурных сочетаний или просто `:help` для просмотра информации об использовании.\n\nНапример, для создания блокнота нужно ввести `mb`, для создания заметки — `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Один или несколько элементов сейчас зашифрованы и может потребоваться, чтобы вы предоставили мастер-пароль. Для этого введите, пожалуйста, «e2ee decrypt». Если пароль уже был вами предоставлен, зашифрованные элементы расшифруются в фоновом режиме и вскоре станут доступны.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"Файл","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"Новая заметка","New to-do":"Новая задача","New notebook":"Новый блокнот","Import":"Импорт","Export":"Export","Hide %s":"","Quit":"Выход","Edit":"Правка","Copy":"Копировать","Cut":"Вырезать","Paste":"Вставить","Search in all the notes":"Поиск во всех заметках","View":"","Toggle editor layout":"","Tools":"Инструменты","Synchronisation status":"Статус синхронизации","Encryption options":"Настройки шифрования","General Options":"Основные настройки","Help":"Помощь","Website and documentation":"Сайт и документация","Make a donation":"Make a donation","Check for updates...":"Проверить обновления...","About Joplin":"О Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Отмена","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"An update is available, do you want to download it now?","Yes":"","No":"No","Current version is up-to-date.":"Вы используете самую свежую версию.","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Заметки и настройки сохранены в: %s","Save":"Сохранить","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Отключение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в расшифрованном виде к цели синхронизации. Желаете продолжить?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Включение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в зашифрованном виде к цели синхронизации. Не теряйте пароль, так как в целях безопасности *только* с его помощью можно будет расшифровать данные! Чтобы включить шифрование, введите ваш пароль ниже.","Disable encryption":"Отключить шифрование","Enable encryption":"Включить шифрование","Master Keys":"Мастер-ключи","Active":"Активен","ID":"ID","Source":"Источник","Created":"Создан","Updated":"Обновлён","Password":"Пароль","Password OK":"Пароль OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Внимание: Для шифрования может быть использован только один мастер-ключ (отмеченный как «активный»). Для расшифровки может использоваться любой из ключей, в зависимости от того, как изначально были зашифрованы заметки или блокноты.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Статус","Encryption is:":"Шифрование:","Back":"Назад","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Будет создан новый блокнот «%s» и в него будет импортирован файл «%s»","Please create a notebook first.":"Сначала создайте блокнот.","Please create a notebook first":"Сначала создайте блокнот","Notebook title:":"Название блокнота:","Add or remove tags:":"Добавить или удалить теги:","Separate each tag by a comma.":"Каждый тег отделяется запятой.","Rename notebook:":"Переименовать блокнот:","Set alarm:":"Установить напоминание:","Search":"Поиск","Layout":"Вид","Some items cannot be synchronised.":"Некоторые элементы не могут быть синхронизированы.","View them now":"Просмотреть их сейчас","Some items cannot be decrypted.":"Некоторые элементы не могут быть расшифрованы.","Set the password":"Установить пароль","Add or remove tags":"Добавить или удалить теги","Switch between note and to-do type":"Переключить тип между заметкой и задачей","Delete":"Удалить","Delete notes?":"Удалить заметки?","No notes in here. Create one by clicking on \"New note\".":"Здесь нет заметок. Создайте новую нажатием на «Новая заметка».","There is currently no notebook. Create one by clicking on \"New notebook\".":"Сейчас здесь нет блокнотов. Создайте новый нажав «Новый блокнот».","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Неподдерживаемая ссыка или сообщение: %s","Attach file":"Прикрепить файл","Tags":"Теги","Set alarm":"Установить напоминание","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Обновить","Clear":"Очистить","OneDrive Login":"Вход в OneDrive","Options":"Настройки","Synchronisation Status":"Статус синхронизации","Encryption Options":"Настройки шифрования","Remove this tag from all the notes?":"Убрать этот тег со всех заметок?","Remove this search from the sidebar?":"Убрать этот запрос с боковой панели?","Rename":"Переименовать","Synchronise":"Синхронизировать","Notebooks":"Блокноты","Searches":"Запросы","Please select where the sync status should be exported to":"Выберите, куда должен быть экспортирован статус синхронизации","Usage: %s":"Использование: %s","Unknown flag: %s":"Неизвестный флаг: %s","File system":"Файловая система","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (только для тестирования)","WebDAV":"WebDAV","Unknown log level: %s":"Неизвестный уровень лога: %s","Unknown level ID: %s":"Неизвестный ID уровня: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Не удалось обновить токен: отсутствуют данные аутентификации. Повторный запуск синхронизации может решить проблему.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Не удалось синхронизироваться с OneDrive.\n\nТакая ошибка часто возникает при использовании OneDrive для бизнеса, который, к сожалению, не поддерживается.\n\nПожалуйста, рассмотрите возможность использования обычного аккаунта OneDrive.","Cannot access %s":"Не удалось получить доступ %s","Created local items: %d.":"Создано локальных элементов: %d.","Updated local items: %d.":"Обновлено локальных элементов: %d.","Created remote items: %d.":"Создано удалённых элементов: %d.","Updated remote items: %d.":"Обновлено удалённых элементов: %d.","Deleted local items: %d.":"Удалено локальных элементов: %d.","Deleted remote items: %d.":"Удалено удалённых элементов: %d.","Fetched items: %d/%d.":"Получено элементов: %d/%d.","State: \"%s\".":"Статус: «%s».","Cancelling...":"Отмена...","Completed: %s":"Завершено: %s","Synchronisation is already in progress. State: %s":"Синхронизация уже выполняется. Статус: %s","Encrypted":"Зашифровано","Encrypted items cannot be modified":"Зашифрованные элементы не могут быть изменены","Conflicts":"Конфликты","A notebook with this title already exists: \"%s\"":"Блокнот с таким названием уже существует: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"Блокнот не может быть назван «%s», это зарезервированное название.","Untitled":"Без имени","This note does not have geolocation information.":"Эта заметка не содержит информации о геолокации.","Cannot copy note to \"%s\" notebook":"Не удалось скопировать заметку в блокнот «%s»","Cannot move note to \"%s\" notebook":"Не удалось переместить заметку в блокнот «%s»","Text editor":"Текстовый редактор","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Редактор, в котором будут открываться заметки. Если не задан, будет произведена попытка автоматического определения редактора по умолчанию.","Language":"Язык","Date format":"Формат даты","Time format":"Формат времени","Theme":"Тема","Light":"Светлая","Dark":"Тёмная","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Сохранять информацию о геолокации в заметках","When creating a new to-do:":"При создании новой задачи:","Focus title":"Фокус на названии","Focus body":"Фокус на содержимом","When creating a new note:":"При создании новой заметки:","Show tray icon":"","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Автоматически обновлять приложение","Synchronisation interval":"Интервал синхронизации","%d minutes":"%d минут","%d hour":"%d час","%d hours":"%d часов","Show advanced options":"Показывать расширенные настройки","Synchronisation target":"Цель синхронизации","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Цель синхронизации. Каждая цель синхронизации может иметь дополнительные параметры, именованные как «sync.NUM.NAME» (все описаны ниже).","Directory to synchronise with (absolute path)":"Каталог синхронизации (абсолютный путь)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Путь для синхронизации при включённой синхронизации с файловой системой. См. `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Имя пользователя Nextcloud","Nextcloud password":"Пароль Nextcloud","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV username","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Неверное значение параметра: «%s». Доступные значения: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Элементы, которые не могут быть синхронизированы","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Эти элементы будут оставаться на устройстве, но не будут загружены в целевой объект синхронизации. Чтобы найти эти элементы, воспользуйтесь поиском по названию или ID (который указывается в скобках выше).","Sync status (synced items / total items)":"Статус синхронизации (элементов синхронизировано/всего)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Всего: %d/%d","Conflicted: %d":"Конфликтующих: %d","To delete: %d":"К удалению: %d","Folders":"Папки","%s: %d notes":"%s: %d заметок","Coming alarms":"Грядущие напоминания","On %s: %s":"В %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Сейчас здесь нет заметок. Создаёте новую, нажав кнопку (+).","Delete these notes?":"Удалить эти заметки?","Log":"Лог","Export Debug Report":"Экспортировать отладочный отчёт","Encryption Config":"Конфигурация шифрования","Configuration":"Конфигурация","Move to notebook...":"Переместить в блокнот...","Move %d notes to notebook \"%s\"?":"Переместить %d заметок в блокнот «%s»?","Press to set the decryption password.":"Нажмите, чтобы установить пароль для расшифровки.","Select date":"Выбрать дату","Confirm":"Подтвердить","Cancel synchronisation":"Отменить синхронизацию","Joplin website":"","Master Key %s":"Мастер-ключ %s","Created: %s":"Создано: %s","Password:":"Пароль:","Password cannot be empty":"Пароль не может быть пустым","Enable":"Включено","The notebook could not be saved: %s":"Не удалось сохранить блокнот: %s","Edit notebook":"Редактировать блокнот","Show all":"","Errors only":"Errors only","This note has been modified:":"Эта заметка была изменена:","Save changes":"Сохранить изменения","Discard changes":"Отменить изменения","Unsupported image type: %s":"Неподдерживаемый формат изображения: %s","Attach photo":"Прикрепить фото","Attach any file":"Прикрепить любой файл","Convert to note":"Преобразовать в заметку","Convert to todo":"Преобразовать в задачу","Hide metadata":"Скрыть метаданные","Show metadata":"Показать метаданные","View on map":"Посмотреть на карте","Delete notebook":"Удалить блокнот","Login with OneDrive":"Войти в OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Нажмите на кнопку (+) для создания новой заметки или нового блокнота. Нажмите на боковое меню для доступа к вашим существующим блокнотам.","You currently have no notebook. Create one by clicking on (+) button.":"У вас сейчас нет блокнота. Создайте его нажатием на кнопку (+).","Welcome":"Добро пожаловать"} \ No newline at end of file diff --git a/ReactNativeClient/locales/zh_CN.json b/ReactNativeClient/locales/zh_CN.json index 3b34d93ba1..385dff364b 100644 --- a/ReactNativeClient/locales/zh_CN.json +++ b/ReactNativeClient/locales/zh_CN.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"移除相关笔记的标签后才可删除此标签。","Please select the note or notebook to be deleted first.":"请选择最先删除的笔记或笔记本。","Press Ctrl+D or type \"exit\" to exit the application":"按Ctrl+D或输入\"exit\"退出程序","More than one item match \"%s\". Please narrow down your query.":"有多个项目与\"%s\"匹配,请缩小您的查询范围。","No notebook selected.":"未选择笔记本。","No notebook has been specified.":"无指定笔记本。","Y":"是","n":"否","N":"否","y":"是","Cancelling background synchronisation... Please wait.":"正在取消背景同步...请稍后。","No such command: %s":"无以下命令:%s","The command \"%s\" is only available in GUI mode":"命令\"%s\"仅在GUI模式下可用","Cannot change encrypted item":"","Missing required argument: %s":"缺失所需参数:%s","%s: %s":"%s: %s","Your choice: ":"您的选择: ","Invalid answer: %s":"此答案无效:%s","Attaches the given file to the note.":"给笔记附加给定文件。","Cannot find \"%s\".":"无法找到 \"%s\"。","Displays the given note.":"显示给定笔记。","Displays the complete information about note.":"显示关于笔记的全部信息。","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"获取或设置配置变量。若未提供[value],则会显示[name]的值。若[name]及[value]都未提供,则列出当前配置。","Also displays unset and hidden config variables.":"同时显示未设置的与隐藏的配置变量。","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"复制符合的笔记至[notebook]。若无指定笔记本则在当前笔记本内复制该笔记。","Marks a to-do as done.":"标记待办事项为完成。","Note is not a to-do: \"%s\"":"笔记非待办事项:\"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"已禁止","Encryption is: %s":"","Edit note.":"编辑笔记。","No text editor is defined. Please set it using `config editor `":"未定义文本编辑器。请通过 `config editor `设置。","No active notebook.":"无活动笔记本。","Note does not exist: \"%s\". Create it?":"此笔记不存在:\"%s\"。是否创建?","Starting to edit note. Close the editor to get back to the prompt.":"开始编辑笔记。关闭编辑器则返回提示。","Error opening note in editor: %s":"","Note has been saved.":"笔记已被保存。","Exits the application.":"退出程序。","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"仅导出给定笔记。","Exports only the given notebook.":"仅导出给定笔记本。","Displays a geolocation URL for the note.":"显示此笔记的地理定位URL地址。","Displays usage information.":"显示使用信息。","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"快捷键在CLI模式下不可用。","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"可用命令为:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"在任意命令中,笔记或笔记本可通过其标题或ID来引用,也可使用代表当前所选笔记或笔记本的变量`$n`与`$b`。`$c`可用于引用当前所选项目。","To move from one pane to another, press Tab or Shift+Tab.":"按Tab或Shift+Tab切换面板。","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"通过上下左右与page up/down键来滚动列表与文本区域(包含此控制台)。","To maximise/minimise the console, press \"TC\".":"按\"TC\"最大化/最小化控制台。","To enter command line mode, press \":\"":"按\":\"键进入命令行模式","To exit command line mode, press ESCAPE":"按ESC键退出命令行模式","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"不再要求确认。","Found: %d.":"已找到:%d条。","Created: %d.":"已创建:%d条。","Updated: %d.":"已更新:%d条。","Skipped: %d.":"已跳过:%d条。","Resources: %d.":"资源:%d。","Tagged: %d.":"已标签:%d条。","Importing notes...":"正在导入笔记...","The notes have been imported: %s":"以下笔记已被导入:%s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"显示当前笔记本的笔记。使用`ls /`显示笔记本列表。","Displays only the first top notes.":"只显示最上方的条笔记。","Sorts the item by (eg. title, updated_time, created_time).":"使用排序项目(例标题、更新日期、创建日期)。","Reverses the sorting order.":"反转排序顺序。","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"仅显示指定格式的项目。`n`代表笔记,`t`代表待办事项,`nt`代表笔记和待办事项(例,`-tt`则会仅显示待办事项,`-ttd`则会显示笔记和待办事项)。","Either \"text\" or \"json\"":"\"文本\"或\"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"使用长列表格式。格式为ID, NOTE_COUNT(笔记本), DATE, TODO_CHECKED(待办事项),TITLE","Please select a notebook first.":"请先选择笔记本。","Creates a new notebook.":"创建新笔记本。","Creates a new note.":"创建新笔记。","Notes can only be created within a notebook.":"笔记只能创建于笔记本内。","Creates a new to-do.":"创建新待办事项。","Moves the notes matching to [notebook].":"移动符合的笔记至[notebook]。","Renames the given (note or notebook) to .":"重命名给定的(笔记或笔记本)至。","Deletes the given notebook.":"删除给定笔记本。","Deletes the notebook without asking for confirmation.":"删除笔记本(不要求确认)。","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"删除符合的笔记。","Deletes the notes without asking for confirmation.":"删除笔记(不要求确认)。","%d notes match this pattern. Delete them?":"%d条笔记符合此模式。是否删除它们?","Delete note?":"是否删除笔记?","Searches for the given in all the notes.":"在所有笔记内搜索给定的。","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Sets the property of the given to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"显示关于笔记与笔记本的概况。","Synchronises with remote storage.":"与远程储存空间同步。","Sync to provided target (defaults to sync.target config value)":"同步至所提供的目标(默认为同步目标配置值)","Authentication was not completed (did not receive an authentication token).":"认证未完成(未收到认证令牌)。","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"同步正在进行中。","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"锁定文件已被保留。若当前没有任何正在进行的同步,您可以在\"%s\"删除锁定文件并继续操作。","Synchronisation target: %s (%s)":"同步目标:%s (%s)","Cannot initialize synchroniser.":"无法初始化同步。","Starting synchronisation...":"开始同步...","Cancelling... Please wait.":"正在取消...请稍后。"," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":"可添加\"add\"、删除\"remove\",或列出\"list\"于[note],用来指定或移除[tag],也可以列出于[tag]相关的笔记。`tag list`命令可用于列出所有标签。","Invalid command: \"%s\"":"无效命令:\"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"可被切换\"toggle\"或清除\"clear\"。用\"toggle\"可使给定待办事项在已完成与未完成两个状态下切换(若目标为常规笔记,它将被转换成待办事项)。用\"clear\"可把该待办事项转换回常规笔记。","Marks a to-do as non-completed.":"标记待办事项为未完成。","Switches to [notebook] - all further operations will happen within this notebook.":"切换至[notebook] - 所有进一步处理将在此笔记本中进行。","Displays version information":"显示版本信息。","%s %s (%s)":"%s %s (%s)","Enum":"枚举","Type: %s.":"格式:%s。","Possible values: %s.":"可用值: %s。","Default: %s":"默认值: %s","Possible keys/values:":"可用键/值:","Fatal error:":"严重错误:","The application has been authorised - you may now close this browser tab.":"此程序已被授权 - 您可以关闭此浏览页面了。","The application has been successfully authorised.":"此程序已被成功授权。","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"请用网页浏览器打开以下URL来认证此程序。此程序将创建\"Apps/Joplin\"目录,并仅在此目录内写入及读取文件。程序对于在该目录外的文件或任何个人数据没有任何访问权限。同时也不会与第三方共享任何数据。","Search:":"搜索:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"文件","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"新笔记","New to-do":"新待办事项","New notebook":"新笔记本","Import":"导入","Export":"Export","Hide %s":"","Quit":"退出","Edit":"编辑","Copy":"复制","Cut":"剪切","Paste":"粘贴","Search in all the notes":"在所有笔记内搜索","View":"","Toggle editor layout":"","Tools":"工具","Synchronisation status":"同步状态","Encryption options":"","General Options":"General Options","Help":"帮助","Website and documentation":"网站与文档","Check for updates...":"","About Joplin":"关于Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"确认","Cancel":"取消","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"状态","Encryption is:":"","Back":"返回","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"将创建新笔记本\"%s\"并将文件\"%s\"导入至其中","Please create a notebook first.":"请先创建笔记本。","Please create a notebook first":"请先创建笔记本","Notebook title:":"笔记本标题:","Add or remove tags:":"添加或删除标签:","Separate each tag by a comma.":"用逗号\",\"分开每个标签。","Rename notebook:":"重命名笔记本:","Set alarm:":"设置提醒:","Search":"搜索","Layout":"布局","Some items cannot be synchronised.":"一些项目无法被同步。","View them now":"马上查看","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"添加或删除标签","Switch between note and to-do type":"在笔记和待办事项类型之间切换","Delete":"删除","Delete notes?":"是否删除笔记?","No notes in here. Create one by clicking on \"New note\".":"此处无笔记。点击\"新笔记\"创建新笔记。","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"不支持的链接或信息:%s","Attach file":"附加文件","Tags":"标签","Set alarm":"设置提醒","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"刷新","Clear":"清除","OneDrive Login":"登陆OneDrive","Options":"选项","Synchronisation Status":"同步状态","Encryption Options":"","Remove this tag from all the notes?":"从所有笔记中删除此标签?","Remove this search from the sidebar?":"从侧栏中删除此项搜索历史?","Rename":"重命名","Synchronise":"同步","Notebooks":"笔记本","Searches":"搜索历史","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"使用:%s","Unknown flag: %s":"未知标记:%s","File system":"文件系统","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive开发员(仅测试用)","WebDAV":"","Unknown log level: %s":"未知日志level:%s","Unknown level ID: %s":"未知 level ID:%s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"无法刷新令牌:缺失认证数据。请尝试重新启动同步。","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"无法与OneDrive同步。\n\n此错误经常在使用OneDrive for Business时出现。很可惜我们无法支持此服务。\n\n请您考虑使用常规的OneDrive账号。","Cannot access %s":"无法访问%s","Created local items: %d.":"已新建本地项目: %d。","Updated local items: %d.":"已更新本地项目: %d。","Created remote items: %d.":"已新建远程项目: %d。","Updated remote items: %d.":"已更新远程项目: %d。","Deleted local items: %d.":"已删除本地项目: %d。","Deleted remote items: %d.":"已删除远程项目: %d。","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"状态:\"%s\"。","Cancelling...":"正在取消...","Completed: %s":"已完成:\"%s\"","Synchronisation is already in progress. State: %s":"同步正在进行中。状态:%s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"冲突","A notebook with this title already exists: \"%s\"":"以此标题命名的笔记本已存在:\"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"笔记本无法被命名为\"%s\",此标题为保留标题。","Untitled":"无标题","This note does not have geolocation information.":"此笔记不包含地理定位信息。","Cannot copy note to \"%s\" notebook":"无法复制笔记至\"%s\"笔记本","Cannot move note to \"%s\" notebook":"无法移动笔记至\"%s\"笔记本","Text editor":"文本编辑器","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"将用于打开笔记的编辑器。若未提供,将自动尝试检测默认编辑器。","Language":"语言","Date format":"日期格式","Time format":"时间格式","Theme":"主题","Light":"浅色","Dark":"深色","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"保存笔记时同时保存地理定位信息","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"自动更新此程序","Synchronisation interval":"同步间隔","%d minutes":"%d分","%d hour":"%d小时","%d hours":"%d小时","Show advanced options":"显示高级选项","Synchronisation target":"同步目标","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"当文件系统同步开启时的同步路径。参考`sync.target`。","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"无效的选项值:\"%s\"。可用值为:%s。","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"项目无法被同步。","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"同步状态(已同步项目/项目总数)","%s: %d/%d":"%s:%d/%d条","Total: %d/%d":"总数:%d/%d条","Conflicted: %d":"有冲突的:%d条","To delete: %d":"将删除:%d条","Folders":"文件夹","%s: %d notes":"%s: %d条笔记","Coming alarms":"临近提醒","On %s: %s":"%s:%s","There are currently no notes. Create one by clicking on the (+) button.":"当前无笔记。点击(+)创建新笔记。","Delete these notes?":"是否删除这些笔记?","Log":"日志","Export Debug Report":"导出调试报告","Encryption Config":"","Configuration":"配置","Move to notebook...":"移动至笔记本...","Move %d notes to notebook \"%s\"?":"移动%d条笔记至笔记本\"%s\"?","Press to set the decryption password.":"","Select date":"选择日期","Confirm":"确认","Cancel synchronisation":"取消同步","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"此笔记本无法保存:%s","Edit notebook":"编辑笔记本","Show all":"","Errors only":"","This note has been modified:":"此笔记已被修改:","Save changes":"保存更改","Discard changes":"放弃更改","Unsupported image type: %s":"不支持的图片格式:%s","Attach photo":"附加照片","Attach any file":"附加任何文件","Convert to note":"转换至笔记","Convert to todo":"转换至待办事项","Hide metadata":"隐藏元数据","Show metadata":"显示元数据","View on map":"查看地图","Delete notebook":"删除笔记本","Login with OneDrive":"用OneDrive登陆","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"点击(+)按钮创建新笔记或笔记本。点击侧边菜单来访问您现有的笔记本。","You currently have no notebook. Create one by clicking on (+) button.":"您当前没有任何笔记本。点击(+)按钮创建新笔记本。","Welcome":"欢迎"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"移除相关笔记的标签后才可删除此标签。","Please select the note or notebook to be deleted first.":"请选择最先删除的笔记或笔记本。","Press Ctrl+D or type \"exit\" to exit the application":"按Ctrl+D或输入\"exit\"退出程序","More than one item match \"%s\". Please narrow down your query.":"有多个项目与\"%s\"匹配,请缩小您的查询范围。","No notebook selected.":"未选择笔记本。","No notebook has been specified.":"无指定笔记本。","Y":"是","n":"否","N":"否","y":"是","Cancelling background synchronisation... Please wait.":"正在取消背景同步...请稍后。","No such command: %s":"无以下命令:%s","The command \"%s\" is only available in GUI mode":"命令\"%s\"仅在GUI模式下可用","Cannot change encrypted item":"","Missing required argument: %s":"缺失所需参数:%s","%s: %s":"%s: %s","Your choice: ":"您的选择: ","Invalid answer: %s":"此答案无效:%s","Attaches the given file to the note.":"给笔记附加给定文件。","Cannot find \"%s\".":"无法找到 \"%s\"。","Displays the given note.":"显示给定笔记。","Displays the complete information about note.":"显示关于笔记的全部信息。","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"获取或设置配置变量。若未提供[value],则会显示[name]的值。若[name]及[value]都未提供,则列出当前配置。","Also displays unset and hidden config variables.":"同时显示未设置的与隐藏的配置变量。","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"复制符合的笔记至[notebook]。若无指定笔记本则在当前笔记本内复制该笔记。","Marks a to-do as done.":"标记待办事项为完成。","Note is not a to-do: \"%s\"":"笔记非待办事项:\"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"已禁止","Encryption is: %s":"","Edit note.":"编辑笔记。","No text editor is defined. Please set it using `config editor `":"未定义文本编辑器。请通过 `config editor `设置。","No active notebook.":"无活动笔记本。","Note does not exist: \"%s\". Create it?":"此笔记不存在:\"%s\"。是否创建?","Starting to edit note. Close the editor to get back to the prompt.":"开始编辑笔记。关闭编辑器则返回提示。","Error opening note in editor: %s":"","Note has been saved.":"笔记已被保存。","Exits the application.":"退出程序。","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"仅导出给定笔记。","Exports only the given notebook.":"仅导出给定笔记本。","Displays a geolocation URL for the note.":"显示此笔记的地理定位URL地址。","Displays usage information.":"显示使用信息。","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"快捷键在CLI模式下不可用。","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"可用命令为:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"在任意命令中,笔记或笔记本可通过其标题或ID来引用,也可使用代表当前所选笔记或笔记本的变量`$n`与`$b`。`$c`可用于引用当前所选项目。","To move from one pane to another, press Tab or Shift+Tab.":"按Tab或Shift+Tab切换面板。","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"通过上下左右与page up/down键来滚动列表与文本区域(包含此控制台)。","To maximise/minimise the console, press \"TC\".":"按\"TC\"最大化/最小化控制台。","To enter command line mode, press \":\"":"按\":\"键进入命令行模式","To exit command line mode, press ESCAPE":"按ESC键退出命令行模式","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"不再要求确认。","Found: %d.":"已找到:%d条。","Created: %d.":"已创建:%d条。","Updated: %d.":"已更新:%d条。","Skipped: %d.":"已跳过:%d条。","Resources: %d.":"资源:%d。","Tagged: %d.":"已标签:%d条。","Importing notes...":"正在导入笔记...","The notes have been imported: %s":"以下笔记已被导入:%s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"显示当前笔记本的笔记。使用`ls /`显示笔记本列表。","Displays only the first top notes.":"只显示最上方的条笔记。","Sorts the item by (eg. title, updated_time, created_time).":"使用排序项目(例标题、更新日期、创建日期)。","Reverses the sorting order.":"反转排序顺序。","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"仅显示指定格式的项目。`n`代表笔记,`t`代表待办事项,`nt`代表笔记和待办事项(例,`-tt`则会仅显示待办事项,`-ttd`则会显示笔记和待办事项)。","Either \"text\" or \"json\"":"\"文本\"或\"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"使用长列表格式。格式为ID, NOTE_COUNT(笔记本), DATE, TODO_CHECKED(待办事项),TITLE","Please select a notebook first.":"请先选择笔记本。","Creates a new notebook.":"创建新笔记本。","Creates a new note.":"创建新笔记。","Notes can only be created within a notebook.":"笔记只能创建于笔记本内。","Creates a new to-do.":"创建新待办事项。","Moves the notes matching to [notebook].":"移动符合的笔记至[notebook]。","Renames the given (note or notebook) to .":"重命名给定的(笔记或笔记本)至。","Deletes the given notebook.":"删除给定笔记本。","Deletes the notebook without asking for confirmation.":"删除笔记本(不要求确认)。","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"删除符合的笔记。","Deletes the notes without asking for confirmation.":"删除笔记(不要求确认)。","%d notes match this pattern. Delete them?":"%d条笔记符合此模式。是否删除它们?","Delete note?":"是否删除笔记?","Searches for the given in all the notes.":"在所有笔记内搜索给定的。","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Sets the property of the given to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"显示关于笔记与笔记本的概况。","Synchronises with remote storage.":"与远程储存空间同步。","Sync to provided target (defaults to sync.target config value)":"同步至所提供的目标(默认为同步目标配置值)","Authentication was not completed (did not receive an authentication token).":"认证未完成(未收到认证令牌)。","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"同步正在进行中。","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"锁定文件已被保留。若当前没有任何正在进行的同步,您可以在\"%s\"删除锁定文件并继续操作。","Synchronisation target: %s (%s)":"同步目标:%s (%s)","Cannot initialize synchroniser.":"无法初始化同步。","Starting synchronisation...":"开始同步...","Cancelling... Please wait.":"正在取消...请稍后。"," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":"可添加\"add\"、删除\"remove\",或列出\"list\"于[note],用来指定或移除[tag],也可以列出于[tag]相关的笔记。`tag list`命令可用于列出所有标签。","Invalid command: \"%s\"":"无效命令:\"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"可被切换\"toggle\"或清除\"clear\"。用\"toggle\"可使给定待办事项在已完成与未完成两个状态下切换(若目标为常规笔记,它将被转换成待办事项)。用\"clear\"可把该待办事项转换回常规笔记。","Marks a to-do as non-completed.":"标记待办事项为未完成。","Switches to [notebook] - all further operations will happen within this notebook.":"切换至[notebook] - 所有进一步处理将在此笔记本中进行。","Displays version information":"显示版本信息。","%s %s (%s)":"%s %s (%s)","Enum":"枚举","Type: %s.":"格式:%s。","Possible values: %s.":"可用值: %s。","Default: %s":"默认值: %s","Possible keys/values:":"可用键/值:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"严重错误:","The application has been authorised - you may now close this browser tab.":"此程序已被授权 - 您可以关闭此浏览页面了。","The application has been successfully authorised.":"此程序已被成功授权。","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"请用网页浏览器打开以下URL来认证此程序。此程序将创建\"Apps/Joplin\"目录,并仅在此目录内写入及读取文件。程序对于在该目录外的文件或任何个人数据没有任何访问权限。同时也不会与第三方共享任何数据。","Search:":"搜索:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","File":"文件","Directory":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","New note":"新笔记","New to-do":"新待办事项","New notebook":"新笔记本","Import":"导入","Export":"Export","Hide %s":"","Quit":"退出","Edit":"编辑","Copy":"复制","Cut":"剪切","Paste":"粘贴","Search in all the notes":"在所有笔记内搜索","View":"","Toggle editor layout":"","Tools":"工具","Synchronisation status":"同步状态","Encryption options":"","General Options":"General Options","Help":"帮助","Website and documentation":"网站与文档","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"关于Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"确认","Cancel":"取消","Release notes:\n\n%s":"Release notes:\n\n%s","An update is available, do you want to download it now?":"","Yes":"","No":"No","Current version is up-to-date.":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"状态","Encryption is:":"","Back":"返回","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"将创建新笔记本\"%s\"并将文件\"%s\"导入至其中","Please create a notebook first.":"请先创建笔记本。","Please create a notebook first":"请先创建笔记本","Notebook title:":"笔记本标题:","Add or remove tags:":"添加或删除标签:","Separate each tag by a comma.":"用逗号\",\"分开每个标签。","Rename notebook:":"重命名笔记本:","Set alarm:":"设置提醒:","Search":"搜索","Layout":"布局","Some items cannot be synchronised.":"一些项目无法被同步。","View them now":"马上查看","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"添加或删除标签","Switch between note and to-do type":"在笔记和待办事项类型之间切换","Delete":"删除","Delete notes?":"是否删除笔记?","No notes in here. Create one by clicking on \"New note\".":"此处无笔记。点击\"新笔记\"创建新笔记。","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"不支持的链接或信息:%s","Attach file":"附加文件","Tags":"标签","Set alarm":"设置提醒","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"刷新","Clear":"清除","OneDrive Login":"登陆OneDrive","Options":"选项","Synchronisation Status":"同步状态","Encryption Options":"","Remove this tag from all the notes?":"从所有笔记中删除此标签?","Remove this search from the sidebar?":"从侧栏中删除此项搜索历史?","Rename":"重命名","Synchronise":"同步","Notebooks":"笔记本","Searches":"搜索历史","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"使用:%s","Unknown flag: %s":"未知标记:%s","File system":"文件系统","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive开发员(仅测试用)","WebDAV":"","Unknown log level: %s":"未知日志level:%s","Unknown level ID: %s":"未知 level ID:%s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"无法刷新令牌:缺失认证数据。请尝试重新启动同步。","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"无法与OneDrive同步。\n\n此错误经常在使用OneDrive for Business时出现。很可惜我们无法支持此服务。\n\n请您考虑使用常规的OneDrive账号。","Cannot access %s":"无法访问%s","Created local items: %d.":"已新建本地项目: %d。","Updated local items: %d.":"已更新本地项目: %d。","Created remote items: %d.":"已新建远程项目: %d。","Updated remote items: %d.":"已更新远程项目: %d。","Deleted local items: %d.":"已删除本地项目: %d。","Deleted remote items: %d.":"已删除远程项目: %d。","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"状态:\"%s\"。","Cancelling...":"正在取消...","Completed: %s":"已完成:\"%s\"","Synchronisation is already in progress. State: %s":"同步正在进行中。状态:%s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"冲突","A notebook with this title already exists: \"%s\"":"以此标题命名的笔记本已存在:\"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"笔记本无法被命名为\"%s\",此标题为保留标题。","Untitled":"无标题","This note does not have geolocation information.":"此笔记不包含地理定位信息。","Cannot copy note to \"%s\" notebook":"无法复制笔记至\"%s\"笔记本","Cannot move note to \"%s\" notebook":"无法移动笔记至\"%s\"笔记本","Text editor":"文本编辑器","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"将用于打开笔记的编辑器。若未提供,将自动尝试检测默认编辑器。","Language":"语言","Date format":"日期格式","Time format":"时间格式","Theme":"主题","Light":"浅色","Dark":"深色","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"保存笔记时同时保存地理定位信息","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"自动更新此程序","Synchronisation interval":"同步间隔","%d minutes":"%d分","%d hour":"%d小时","%d hours":"%d小时","Show advanced options":"显示高级选项","Synchronisation target":"同步目标","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"当文件系统同步开启时的同步路径。参考`sync.target`。","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"无效的选项值:\"%s\"。可用值为:%s。","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"项目无法被同步。","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"同步状态(已同步项目/项目总数)","%s: %d/%d":"%s:%d/%d条","Total: %d/%d":"总数:%d/%d条","Conflicted: %d":"有冲突的:%d条","To delete: %d":"将删除:%d条","Folders":"文件夹","%s: %d notes":"%s: %d条笔记","Coming alarms":"临近提醒","On %s: %s":"%s:%s","There are currently no notes. Create one by clicking on the (+) button.":"当前无笔记。点击(+)创建新笔记。","Delete these notes?":"是否删除这些笔记?","Log":"日志","Export Debug Report":"导出调试报告","Encryption Config":"","Configuration":"配置","Move to notebook...":"移动至笔记本...","Move %d notes to notebook \"%s\"?":"移动%d条笔记至笔记本\"%s\"?","Press to set the decryption password.":"","Select date":"选择日期","Confirm":"确认","Cancel synchronisation":"取消同步","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"此笔记本无法保存:%s","Edit notebook":"编辑笔记本","Show all":"","Errors only":"","This note has been modified:":"此笔记已被修改:","Save changes":"保存更改","Discard changes":"放弃更改","Unsupported image type: %s":"不支持的图片格式:%s","Attach photo":"附加照片","Attach any file":"附加任何文件","Convert to note":"转换至笔记","Convert to todo":"转换至待办事项","Hide metadata":"隐藏元数据","Show metadata":"显示元数据","View on map":"查看地图","Delete notebook":"删除笔记本","Login with OneDrive":"用OneDrive登陆","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"点击(+)按钮创建新笔记或笔记本。点击侧边菜单来访问您现有的笔记本。","You currently have no notebook. Create one by clicking on (+) button.":"您当前没有任何笔记本。点击(+)按钮创建新笔记本。","Welcome":"欢迎"} \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 99b2de5bee..f2bea97e51 100644 --- a/docs/index.html +++ b/docs/index.html @@ -403,20 +403,20 @@ $$ Basque eu juan.abasolo@ehu.eus -81% +80% Croatian hr_HR -Hrvoje Mandić trbuhom@net.hr -66% +Hrvoje Mandić trbuhom@net.hr +65% Deutsch de_DE -Tobias Strobel git@strobeltobias.de +Tobias Strobel git@strobeltobias.de 83% @@ -430,8 +430,8 @@ $$ Español es_ES -Fernando Martín f@mrtn.es -93% +Fernando Martín f@mrtn.es +99% @@ -445,14 +445,14 @@ $$ Italiano it_IT -68% +67% Nederlands nl_BE -82% +81% @@ -465,22 +465,22 @@ $$ Русский ru_RU -Artyom Karlov artyom.karlov@gmail.com -85% +Artyom Karlov artyom.karlov@gmail.com +84% 中文 (简体) zh_CN -RCJacH RCJacH@outlook.com -68% +RCJacH RCJacH@outlook.com +67% 日本語 ja_JP -66% +65% From 408634671cfaf6af236acd0e51016d697260da72 Mon Sep 17 00:00:00 2001 From: Fernando Date: Fri, 9 Mar 2018 17:28:39 +0100 Subject: [PATCH 17/86] Updated Spanish translation --- CliClient/locales/es_ES.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CliClient/locales/es_ES.po b/CliClient/locales/es_ES.po index 1804b194e5..1a494265ec 100644 --- a/CliClient/locales/es_ES.po +++ b/CliClient/locales/es_ES.po @@ -16,6 +16,8 @@ msgstr "" "X-Generator: Poedit 1.8.11\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-SourceCharset: UTF-8\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" msgid "To delete a tag, untag the associated notes." msgstr "Desmarque las notas asociadas para eliminar una etiqueta." @@ -505,9 +507,8 @@ msgstr "Por defecto: %s" msgid "Possible keys/values:" msgstr "Claves/valores posbiles:" -#, fuzzy msgid "Type `joplin help` for usage information." -msgstr "Muestra información de uso." +msgstr "Escriba `joplin help` para mostrar información de uso." msgid "Fatal error:" msgstr "Error fatal:" @@ -639,9 +640,8 @@ msgstr "Ayuda" msgid "Website and documentation" msgstr "Sitio web y documentación" -#, fuzzy msgid "Make a donation" -msgstr "Sitio web y documentación" +msgstr "Hacer una donación" msgid "Check for updates..." msgstr "Comprobar actualizaciones..." @@ -1302,7 +1302,7 @@ msgid "Cancel synchronisation" msgstr "Cancelar sincronización" msgid "Joplin website" -msgstr "" +msgstr "Sitio web de Joplin" #, javascript-format msgid "Master Key %s" From 250cd47e02c903d26913e65bc5f6a5021f3b1b80 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 9 Mar 2018 17:41:34 +0000 Subject: [PATCH 18/86] Added prettier config file --- prettier.config.js | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 prettier.config.js diff --git a/prettier.config.js b/prettier.config.js new file mode 100644 index 0000000000..6412f49c01 --- /dev/null +++ b/prettier.config.js @@ -0,0 +1,5 @@ +module.exports = { + printWidth: 200, + useTabs: true, + trailingComma: "es5", +}; \ No newline at end of file From 03b5c6aa5eafdb00840c9922761c7b934d04b9a2 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 9 Mar 2018 17:48:08 +0000 Subject: [PATCH 19/86] Added prettier options to ST project --- joplin.sublime-project | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/joplin.sublime-project b/joplin.sublime-project index 6d8b1cfaff..1bca0ecb56 100755 --- a/joplin.sublime-project +++ b/joplin.sublime-project @@ -70,5 +70,11 @@ ], "path": "D:\\Docs\\PROGS\\Node\\tkwidgets" } - ] -} + ], + "settings": { + "js_prettier": { + "auto_format_on_save": true, + "auto_format_on_save_requires_prettier_config": true, + } + } +} \ No newline at end of file From d6a4436313e6fa346544919b3e913e48668624e6 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 9 Mar 2018 17:32:10 +0000 Subject: [PATCH 20/86] Adding prettier to all projects --- CliClient/package-lock.json | 11 +-- CliClient/package.json | 6 +- ElectronClient/app/package-lock.json | 111 +++++++++++++++++++++++++ ElectronClient/app/package.json | 6 +- ReactNativeClient/package-lock.json | 117 +++++++++++++++++++++++++++ ReactNativeClient/package.json | 4 + joplin.sublime-project | 2 +- 7 files changed, 248 insertions(+), 9 deletions(-) diff --git a/CliClient/package-lock.json b/CliClient/package-lock.json index 4b06c5595c..7ee68b4b91 100644 --- a/CliClient/package-lock.json +++ b/CliClient/package-lock.json @@ -983,11 +983,6 @@ "wrappy": "1.0.2" } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, "parse-data-uri": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/parse-data-uri/-/parse-data-uri-0.2.0.tgz", @@ -1017,6 +1012,12 @@ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-2.3.1.tgz", "integrity": "sha1-EdHhK5y2TWPjDBQ6Mw9MH1Z9qF8=" }, + "prettier": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.11.1.tgz", + "integrity": "sha512-T/KD65Ot0PB97xTrG8afQ46x3oiVhnfGjGESSI9NWYcG92+OUPZKkwHqGWXH2t9jK1crnQjubECW0FuOth+hxw==", + "dev": true + }, "process-nextick-args": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", diff --git a/CliClient/package.json b/CliClient/package.json index 9311adfb50..e903765611 100644 --- a/CliClient/package.json +++ b/CliClient/package.json @@ -66,9 +66,11 @@ "yargs-parser": "^7.0.0" }, "devDependencies": { - "jasmine": "^2.6.0" + "jasmine": "^2.6.0", + "prettier": "1.11.1" }, "scripts": { - "test": "jasmine" + "test": "jasmine", + "precommit": "pretty-quick --staged" } } diff --git a/ElectronClient/app/package-lock.json b/ElectronClient/app/package-lock.json index 7048416703..5609ab8b72 100644 --- a/ElectronClient/app/package-lock.json +++ b/ElectronClient/app/package-lock.json @@ -3280,11 +3280,42 @@ "sshpk": "1.13.1" } }, + "husky": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-0.14.3.tgz", + "integrity": "sha512-e21wivqHpstpoiWA/Yi8eFti8E+sQDSS53cpJsPptPs295QTOQR0ZwnHo2TXy1XOpZFD9rPOd3NpmqTK6uMLJA==", + "dev": true, + "requires": { + "is-ci": "1.1.0", + "normalize-path": "1.0.0", + "strip-indent": "2.0.0" + }, + "dependencies": { + "normalize-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz", + "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", + "dev": true + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + } + } + }, "iconv-lite": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" }, + "ignore": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", + "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", + "dev": true + }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", @@ -4014,6 +4045,12 @@ "resolved": "https://registry.npmjs.org/moment/-/moment-2.19.2.tgz", "integrity": "sha512-Rf6jiHPEfxp9+dlzxPTmRHbvoFXsh2L/U8hOupUMpnuecHQmI6cF6lUbJl3QqKPko1u6ujO+FxtcajLVfLpAtA==" }, + "mri": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.0.tgz", + "integrity": "sha1-XAo/KcjM/7ux7JQdzsCdcfoy82o=", + "dev": true + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -4359,6 +4396,12 @@ "dev": true, "optional": true }, + "prettier": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.11.1.tgz", + "integrity": "sha512-T/KD65Ot0PB97xTrG8afQ46x3oiVhnfGjGESSI9NWYcG92+OUPZKkwHqGWXH2t9jK1crnQjubECW0FuOth+hxw==", + "dev": true + }, "pretty-bytes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", @@ -4369,6 +4412,74 @@ "meow": "3.7.0" } }, + "pretty-quick": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-1.4.1.tgz", + "integrity": "sha512-Q4V2GAflSaM739kKH63utbfI2n4s2fCDCyjFC4ykxA9ueb7FknLcLAZSKa3DejHMt5q9Fq395eKTZ9wYwoILBw==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "execa": "0.8.0", + "find-up": "2.1.0", + "ignore": "3.3.7", + "mri": "1.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "execa": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", + "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", + "dev": true, + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } + } + }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", diff --git a/ElectronClient/app/package.json b/ElectronClient/app/package.json index ea8a7680ae..87b1ed2bd0 100644 --- a/ElectronClient/app/package.json +++ b/ElectronClient/app/package.json @@ -8,6 +8,7 @@ "pack": "node_modules/.bin/electron-builder --dir", "dist": "node_modules/.bin/electron-builder", "publish": "build -p always", + "precommit": "pretty-quick --staged", "postinstall": "node compile-jsx.js && node compile-package-info.js && node ../../Tools/copycss.js --copy-fonts", "compile": "node compile-jsx.js && node compile-package-info.js && node ../../Tools/copycss.js --copy-fonts" }, @@ -48,7 +49,10 @@ "babel-cli": "^6.26.0", "babel-preset-react": "^6.24.1", "electron": "^1.7.11", - "electron-builder": "^20.2.0" + "electron-builder": "^20.2.0", + "husky": "^0.14.3", + "prettier": "1.11.1", + "pretty-quick": "^1.4.1" }, "optionalDependencies": { "7zip-bin-mac": "^1.0.1", diff --git a/ReactNativeClient/package-lock.json b/ReactNativeClient/package-lock.json index 34659157b7..fa67652386 100644 --- a/ReactNativeClient/package-lock.json +++ b/ReactNativeClient/package-lock.json @@ -3184,6 +3184,25 @@ "sshpk": "1.13.1" } }, + "husky": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-0.14.3.tgz", + "integrity": "sha512-e21wivqHpstpoiWA/Yi8eFti8E+sQDSS53cpJsPptPs295QTOQR0ZwnHo2TXy1XOpZFD9rPOd3NpmqTK6uMLJA==", + "dev": true, + "requires": { + "is-ci": "1.0.10", + "normalize-path": "1.0.0", + "strip-indent": "2.0.0" + }, + "dependencies": { + "normalize-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz", + "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", + "dev": true + } + } + }, "iconv-lite": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", @@ -3194,6 +3213,12 @@ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" }, + "ignore": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", + "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", + "dev": true + }, "image-size": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.1.tgz", @@ -4806,6 +4831,12 @@ } } }, + "mri": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.0.tgz", + "integrity": "sha1-XAo/KcjM/7ux7JQdzsCdcfoy82o=", + "dev": true + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -5206,11 +5237,91 @@ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" }, + "prettier": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.11.1.tgz", + "integrity": "sha512-T/KD65Ot0PB97xTrG8afQ46x3oiVhnfGjGESSI9NWYcG92+OUPZKkwHqGWXH2t9jK1crnQjubECW0FuOth+hxw==", + "dev": true + }, "pretty-format": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-4.3.1.tgz", "integrity": "sha1-UwvlxCs8BbNkFKeipDN6qArNDo0=" }, + "pretty-quick": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-1.4.1.tgz", + "integrity": "sha512-Q4V2GAflSaM739kKH63utbfI2n4s2fCDCyjFC4ykxA9ueb7FknLcLAZSKa3DejHMt5q9Fq395eKTZ9wYwoILBw==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "execa": "0.8.0", + "find-up": "2.1.0", + "ignore": "3.3.7", + "mri": "1.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "execa": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", + "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", + "dev": true, + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } + } + }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -6588,6 +6699,12 @@ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", diff --git a/ReactNativeClient/package.json b/ReactNativeClient/package.json index b7357bd344..793ad394e1 100644 --- a/ReactNativeClient/package.json +++ b/ReactNativeClient/package.json @@ -7,6 +7,7 @@ "scripts": { "start": "node node_modules/react-native/local-cli/cli.js start", "test": "jest", + "precommit": "pretty-quick --staged", "postinstall": "node ../Tools/copycss.js" }, "dependencies": { @@ -56,7 +57,10 @@ "devDependencies": { "babel-jest": "19.0.0", "babel-preset-react-native": "1.9.1", + "husky": "^0.14.3", "jest": "19.0.2", + "prettier": "1.11.1", + "pretty-quick": "^1.4.1", "react-test-renderer": "16.0.0-alpha.6" }, "jest": { diff --git a/joplin.sublime-project b/joplin.sublime-project index 1bca0ecb56..cab1dbf1dc 100755 --- a/joplin.sublime-project +++ b/joplin.sublime-project @@ -73,7 +73,7 @@ ], "settings": { "js_prettier": { - "auto_format_on_save": true, + "auto_format_on_save": false, "auto_format_on_save_requires_prettier_config": true, } } From e868102c9818873233960512be9fcc1e0393985b Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 9 Mar 2018 17:45:42 +0000 Subject: [PATCH 21/86] Revert "Adding prettier to all projects" This reverts commit d6a4436313e6fa346544919b3e913e48668624e6. --- CliClient/package-lock.json | 11 ++- CliClient/package.json | 6 +- ElectronClient/app/package-lock.json | 111 ------------------------- ElectronClient/app/package.json | 6 +- ReactNativeClient/package-lock.json | 117 --------------------------- ReactNativeClient/package.json | 4 - joplin.sublime-project | 2 +- 7 files changed, 9 insertions(+), 248 deletions(-) diff --git a/CliClient/package-lock.json b/CliClient/package-lock.json index 7ee68b4b91..4b06c5595c 100644 --- a/CliClient/package-lock.json +++ b/CliClient/package-lock.json @@ -983,6 +983,11 @@ "wrappy": "1.0.2" } }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, "parse-data-uri": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/parse-data-uri/-/parse-data-uri-0.2.0.tgz", @@ -1012,12 +1017,6 @@ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-2.3.1.tgz", "integrity": "sha1-EdHhK5y2TWPjDBQ6Mw9MH1Z9qF8=" }, - "prettier": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.11.1.tgz", - "integrity": "sha512-T/KD65Ot0PB97xTrG8afQ46x3oiVhnfGjGESSI9NWYcG92+OUPZKkwHqGWXH2t9jK1crnQjubECW0FuOth+hxw==", - "dev": true - }, "process-nextick-args": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", diff --git a/CliClient/package.json b/CliClient/package.json index e903765611..9311adfb50 100644 --- a/CliClient/package.json +++ b/CliClient/package.json @@ -66,11 +66,9 @@ "yargs-parser": "^7.0.0" }, "devDependencies": { - "jasmine": "^2.6.0", - "prettier": "1.11.1" + "jasmine": "^2.6.0" }, "scripts": { - "test": "jasmine", - "precommit": "pretty-quick --staged" + "test": "jasmine" } } diff --git a/ElectronClient/app/package-lock.json b/ElectronClient/app/package-lock.json index 5609ab8b72..7048416703 100644 --- a/ElectronClient/app/package-lock.json +++ b/ElectronClient/app/package-lock.json @@ -3280,42 +3280,11 @@ "sshpk": "1.13.1" } }, - "husky": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-0.14.3.tgz", - "integrity": "sha512-e21wivqHpstpoiWA/Yi8eFti8E+sQDSS53cpJsPptPs295QTOQR0ZwnHo2TXy1XOpZFD9rPOd3NpmqTK6uMLJA==", - "dev": true, - "requires": { - "is-ci": "1.1.0", - "normalize-path": "1.0.0", - "strip-indent": "2.0.0" - }, - "dependencies": { - "normalize-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz", - "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", - "dev": true - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - } - } - }, "iconv-lite": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" }, - "ignore": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", - "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", - "dev": true - }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", @@ -4045,12 +4014,6 @@ "resolved": "https://registry.npmjs.org/moment/-/moment-2.19.2.tgz", "integrity": "sha512-Rf6jiHPEfxp9+dlzxPTmRHbvoFXsh2L/U8hOupUMpnuecHQmI6cF6lUbJl3QqKPko1u6ujO+FxtcajLVfLpAtA==" }, - "mri": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.0.tgz", - "integrity": "sha1-XAo/KcjM/7ux7JQdzsCdcfoy82o=", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -4396,12 +4359,6 @@ "dev": true, "optional": true }, - "prettier": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.11.1.tgz", - "integrity": "sha512-T/KD65Ot0PB97xTrG8afQ46x3oiVhnfGjGESSI9NWYcG92+OUPZKkwHqGWXH2t9jK1crnQjubECW0FuOth+hxw==", - "dev": true - }, "pretty-bytes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", @@ -4412,74 +4369,6 @@ "meow": "3.7.0" } }, - "pretty-quick": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-1.4.1.tgz", - "integrity": "sha512-Q4V2GAflSaM739kKH63utbfI2n4s2fCDCyjFC4ykxA9ueb7FknLcLAZSKa3DejHMt5q9Fq395eKTZ9wYwoILBw==", - "dev": true, - "requires": { - "chalk": "2.3.2", - "execa": "0.8.0", - "find-up": "2.1.0", - "ignore": "3.3.7", - "mri": "1.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", - "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.3.0" - } - }, - "execa": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", - "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", - "dev": true, - "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "supports-color": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", - "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", diff --git a/ElectronClient/app/package.json b/ElectronClient/app/package.json index 87b1ed2bd0..ea8a7680ae 100644 --- a/ElectronClient/app/package.json +++ b/ElectronClient/app/package.json @@ -8,7 +8,6 @@ "pack": "node_modules/.bin/electron-builder --dir", "dist": "node_modules/.bin/electron-builder", "publish": "build -p always", - "precommit": "pretty-quick --staged", "postinstall": "node compile-jsx.js && node compile-package-info.js && node ../../Tools/copycss.js --copy-fonts", "compile": "node compile-jsx.js && node compile-package-info.js && node ../../Tools/copycss.js --copy-fonts" }, @@ -49,10 +48,7 @@ "babel-cli": "^6.26.0", "babel-preset-react": "^6.24.1", "electron": "^1.7.11", - "electron-builder": "^20.2.0", - "husky": "^0.14.3", - "prettier": "1.11.1", - "pretty-quick": "^1.4.1" + "electron-builder": "^20.2.0" }, "optionalDependencies": { "7zip-bin-mac": "^1.0.1", diff --git a/ReactNativeClient/package-lock.json b/ReactNativeClient/package-lock.json index fa67652386..34659157b7 100644 --- a/ReactNativeClient/package-lock.json +++ b/ReactNativeClient/package-lock.json @@ -3184,25 +3184,6 @@ "sshpk": "1.13.1" } }, - "husky": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-0.14.3.tgz", - "integrity": "sha512-e21wivqHpstpoiWA/Yi8eFti8E+sQDSS53cpJsPptPs295QTOQR0ZwnHo2TXy1XOpZFD9rPOd3NpmqTK6uMLJA==", - "dev": true, - "requires": { - "is-ci": "1.0.10", - "normalize-path": "1.0.0", - "strip-indent": "2.0.0" - }, - "dependencies": { - "normalize-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz", - "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", - "dev": true - } - } - }, "iconv-lite": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", @@ -3213,12 +3194,6 @@ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" }, - "ignore": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", - "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", - "dev": true - }, "image-size": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.1.tgz", @@ -4831,12 +4806,6 @@ } } }, - "mri": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.0.tgz", - "integrity": "sha1-XAo/KcjM/7ux7JQdzsCdcfoy82o=", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -5237,91 +5206,11 @@ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" }, - "prettier": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.11.1.tgz", - "integrity": "sha512-T/KD65Ot0PB97xTrG8afQ46x3oiVhnfGjGESSI9NWYcG92+OUPZKkwHqGWXH2t9jK1crnQjubECW0FuOth+hxw==", - "dev": true - }, "pretty-format": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-4.3.1.tgz", "integrity": "sha1-UwvlxCs8BbNkFKeipDN6qArNDo0=" }, - "pretty-quick": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-1.4.1.tgz", - "integrity": "sha512-Q4V2GAflSaM739kKH63utbfI2n4s2fCDCyjFC4ykxA9ueb7FknLcLAZSKa3DejHMt5q9Fq395eKTZ9wYwoILBw==", - "dev": true, - "requires": { - "chalk": "2.3.2", - "execa": "0.8.0", - "find-up": "2.1.0", - "ignore": "3.3.7", - "mri": "1.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.0" - } - }, - "chalk": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", - "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.3.0" - } - }, - "execa": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", - "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", - "dev": true, - "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", - "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -6699,12 +6588,6 @@ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", diff --git a/ReactNativeClient/package.json b/ReactNativeClient/package.json index 793ad394e1..b7357bd344 100644 --- a/ReactNativeClient/package.json +++ b/ReactNativeClient/package.json @@ -7,7 +7,6 @@ "scripts": { "start": "node node_modules/react-native/local-cli/cli.js start", "test": "jest", - "precommit": "pretty-quick --staged", "postinstall": "node ../Tools/copycss.js" }, "dependencies": { @@ -57,10 +56,7 @@ "devDependencies": { "babel-jest": "19.0.0", "babel-preset-react-native": "1.9.1", - "husky": "^0.14.3", "jest": "19.0.2", - "prettier": "1.11.1", - "pretty-quick": "^1.4.1", "react-test-renderer": "16.0.0-alpha.6" }, "jest": { diff --git a/joplin.sublime-project b/joplin.sublime-project index cab1dbf1dc..1bca0ecb56 100755 --- a/joplin.sublime-project +++ b/joplin.sublime-project @@ -73,7 +73,7 @@ ], "settings": { "js_prettier": { - "auto_format_on_save": false, + "auto_format_on_save": true, "auto_format_on_save_requires_prettier_config": true, } } From c4f19465a676f2e154084707ade6b1766e1aba25 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 9 Mar 2018 17:49:35 +0000 Subject: [PATCH 22/86] Applied prettier to code base --- CliClient/app/ResourceServer.js | 43 +- CliClient/app/app-gui.js | 390 ++- CliClient/app/app.js | 207 +- CliClient/app/autocompletion.js | 129 +- CliClient/app/base-command.js | 24 +- CliClient/app/build-doc.js | 76 +- CliClient/app/cli-integration-tests.js | 189 +- CliClient/app/cli-utils.js | 109 +- CliClient/app/command-attach.js | 24 +- CliClient/app/command-cat.js | 34 +- CliClient/app/command-config.js | 52 +- CliClient/app/command-cp.js | 30 +- CliClient/app/command-done.js | 22 +- CliClient/app/command-dump.js | 22 +- CliClient/app/command-e2ee.js | 94 +- CliClient/app/command-edit.js | 89 +- CliClient/app/command-exit.js | 16 +- CliClient/app/command-export-sync-status.js | 36 +- CliClient/app/command-export.js | 51 +- CliClient/app/command-geoloc.js | 26 +- CliClient/app/command-help.js | 94 +- CliClient/app/command-import.js | 74 +- CliClient/app/command-ls.js | 72 +- CliClient/app/command-mkbook.js | 20 +- CliClient/app/command-mknote.js | 20 +- CliClient/app/command-mktodo.js | 20 +- CliClient/app/command-mv.js | 28 +- CliClient/app/command-ren.js | 26 +- CliClient/app/command-rmbook.js | 32 +- CliClient/app/command-rmnote.js | 34 +- CliClient/app/command-search.js | 38 +- CliClient/app/command-set.js | 36 +- CliClient/app/command-status.js | 36 +- CliClient/app/command-sync.js | 93 +- CliClient/app/command-tag.js | 40 +- CliClient/app/command-todo.js | 34 +- CliClient/app/command-undone.js | 24 +- CliClient/app/command-use.js | 24 +- CliClient/app/command-version.js | 18 +- CliClient/app/fuzzing.js | 2230 ++++++++++++++++- CliClient/app/gui/ConsoleWidget.js | 10 +- CliClient/app/gui/FolderListWidget.js | 70 +- CliClient/app/gui/NoteListWidget.js | 14 +- CliClient/app/gui/NoteMetadataWidget.js | 10 +- CliClient/app/gui/NoteWidget.js | 26 +- CliClient/app/gui/StatusBarWidget.js | 44 +- CliClient/app/help-utils.js | 56 +- CliClient/app/main.js | 83 +- CliClient/app/onedrive-api-node-utils.js | 67 +- CliClient/tests/ArrayUtils.js | 63 +- CliClient/tests/encryption.js | 118 +- CliClient/tests/models_Setting.js | 61 +- CliClient/tests/services_InteropService.js | 381 +-- CliClient/tests/synchronizer.js | 1457 ++++++----- CliClient/tests/test-utils.js | 173 +- CliClientDemo/index.js | 30 +- ElectronClient/app/ElectronAppWrapper.js | 84 +- ElectronClient/app/InteropServiceHelper.js | 26 +- ElectronClient/app/app.js | 687 ++--- ElectronClient/app/bridge.js | 63 +- ElectronClient/app/checkForUpdates.js | 86 +- ElectronClient/app/compile-jsx.js | 26 +- ElectronClient/app/compile-package-info.js | 10 +- ElectronClient/app/eventManager.js | 6 +- ElectronClient/app/gui/dialogs.js | 12 +- ElectronClient/app/main-html.js | 93 +- ElectronClient/app/main.js | 32 +- ElectronClient/app/theme.js | 46 +- ElectronClient/app/update-readme-download.js | 77 +- ReactNativeClient/index.android.js | 4 +- ReactNativeClient/index.ios.js | 4 +- ReactNativeClient/index.js | 2 +- ReactNativeClient/lib/ArrayUtils.js | 29 +- ReactNativeClient/lib/BaseApplication.js | 250 +- ReactNativeClient/lib/BaseModel.js | 170 +- ReactNativeClient/lib/BaseSyncTarget.js | 36 +- ReactNativeClient/lib/Cache.js | 10 +- ReactNativeClient/lib/JoplinError.js | 4 +- ReactNativeClient/lib/MdToHtml.js | 255 +- ReactNativeClient/lib/MdToHtml_Katex.js | 30 +- ReactNativeClient/lib/ModelCache.js | 6 +- ReactNativeClient/lib/ObjectUtils.js | 14 +- ReactNativeClient/lib/SyncTargetFilesystem.js | 24 +- ReactNativeClient/lib/SyncTargetMemory.js | 24 +- ReactNativeClient/lib/SyncTargetNextcloud.js | 32 +- ReactNativeClient/lib/SyncTargetOneDrive.js | 44 +- .../lib/SyncTargetOneDriveDev.js | 28 +- ReactNativeClient/lib/SyncTargetRegistry.js | 10 +- ReactNativeClient/lib/SyncTargetWebDAV.js | 44 +- ReactNativeClient/lib/WebDavApi.js | 160 +- ReactNativeClient/lib/components/Dropdown.js | 90 +- ReactNativeClient/lib/components/ItemList.js | 28 +- .../lib/components/ModalDialog.js | 37 +- .../lib/components/action-button.js | 108 +- ReactNativeClient/lib/components/app-nav.js | 65 +- .../lib/components/base-screen.js | 11 +- ReactNativeClient/lib/components/checkbox.js | 29 +- .../lib/components/global-style.js | 36 +- .../lib/components/note-body-viewer.js | 48 +- ReactNativeClient/lib/components/note-item.js | 79 +- ReactNativeClient/lib/components/note-list.js | 68 +- .../lib/components/screen-header.js | 289 +-- .../lib/components/screens/config.js | 162 +- .../components/screens/encryption-config.js | 180 +- .../lib/components/screens/folder.js | 70 +- .../lib/components/screens/log.js | 105 +- .../lib/components/screens/note.js | 337 +-- .../lib/components/screens/notes.js | 175 +- .../lib/components/screens/onedrive-login.js | 81 +- .../lib/components/screens/search.js | 97 +- .../lib/components/screens/status.js | 99 +- .../lib/components/screens/tag.js | 55 +- .../lib/components/screens/welcome.js | 47 +- .../lib/components/select-date-time-dialog.js | 40 +- .../lib/components/shared/config-shared.js | 38 +- .../shared/encryption-config-shared.js | 49 +- .../components/shared/note-screen-shared.js | 52 +- .../lib/components/shared/side-menu-shared.js | 44 +- .../lib/components/side-menu-content.js | 166 +- ReactNativeClient/lib/components/side-menu.js | 25 +- ReactNativeClient/lib/database-driver-node.js | 16 +- .../lib/database-driver-react-native.js | 58 +- ReactNativeClient/lib/database.js | 149 +- ReactNativeClient/lib/dialogs.js | 31 +- ReactNativeClient/lib/event-dispatcher.js | 4 +- .../lib/file-api-driver-local.js | 36 +- .../lib/file-api-driver-memory.js | 36 +- .../lib/file-api-driver-onedrive.js | 108 +- .../lib/file-api-driver-webdav.js | 106 +- ReactNativeClient/lib/file-api.js | 68 +- ReactNativeClient/lib/folders-screen-utils.js | 8 +- ReactNativeClient/lib/fs-driver-base.js | 8 +- ReactNativeClient/lib/fs-driver-dummy.js | 4 +- ReactNativeClient/lib/fs-driver-node.js | 38 +- ReactNativeClient/lib/fs-driver-rn.js | 36 +- ReactNativeClient/lib/geolocation-node.js | 20 +- ReactNativeClient/lib/geolocation-react.js | 34 +- ReactNativeClient/lib/import-enex-md-gen.js | 326 ++- ReactNativeClient/lib/import-enex.js | 140 +- ReactNativeClient/lib/joplin-database.js | 133 +- ReactNativeClient/lib/layout-utils.js | 6 +- ReactNativeClient/lib/locale.js | 29 +- ReactNativeClient/lib/log.js | 4 +- ReactNativeClient/lib/logger.js | 106 +- ReactNativeClient/lib/markdown-utils.js | 10 +- ReactNativeClient/lib/mime-utils.js | 774 +++++- ReactNativeClient/lib/models/Alarm.js | 28 +- ReactNativeClient/lib/models/BaseItem.js | 254 +- ReactNativeClient/lib/models/Folder.js | 96 +- ReactNativeClient/lib/models/MasterKey.js | 20 +- ReactNativeClient/lib/models/Note.js | 236 +- ReactNativeClient/lib/models/NoteTag.js | 16 +- ReactNativeClient/lib/models/Resource.js | 60 +- ReactNativeClient/lib/models/Setting.js | 477 ++-- ReactNativeClient/lib/models/Tag.js | 44 +- ReactNativeClient/lib/net-utils.js | 14 +- ReactNativeClient/lib/onedrive-api.js | 117 +- ReactNativeClient/lib/parameters.js | 24 +- ReactNativeClient/lib/parseUri.js | 26 +- ReactNativeClient/lib/path-utils.js | 36 +- ReactNativeClient/lib/poor-man-intervals.js | 6 +- ReactNativeClient/lib/promise-utils.js | 6 +- ReactNativeClient/lib/react-logger.js | 10 +- ReactNativeClient/lib/reducer.js | 202 +- ReactNativeClient/lib/registry.js | 86 +- .../lib/services/AlarmService.js | 34 +- .../services/AlarmServiceDriver.android.js | 18 +- .../lib/services/AlarmServiceDriver.ios.js | 32 +- .../lib/services/AlarmServiceDriverNode.js | 10 +- .../lib/services/DecryptionWorker.js | 44 +- .../lib/services/EncryptionService.js | 165 +- .../lib/services/EncryptionServiceDriverRN.js | 8 +- .../lib/services/InteropService.js | 169 +- .../services/InteropService_Exporter_Base.js | 10 +- .../services/InteropService_Exporter_Jex.js | 61 +- .../services/InteropService_Exporter_Raw.js | 18 +- .../services/InteropService_Importer_Base.js | 10 +- .../services/InteropService_Importer_Enex.js | 38 +- .../services/InteropService_Importer_Jex.js | 48 +- .../services/InteropService_Importer_Md.js | 48 +- .../services/InteropService_Importer_Raw.js | 67 +- ReactNativeClient/lib/services/NavService.js | 8 +- ReactNativeClient/lib/services/back-button.js | 8 +- ReactNativeClient/lib/services/report.js | 74 +- ReactNativeClient/lib/shim-init-node.js | 141 +- ReactNativeClient/lib/shim-init-react.js | 64 +- ReactNativeClient/lib/shim.js | 90 +- ReactNativeClient/lib/string-utils.js | 255 +- ReactNativeClient/lib/synchronizer.js | 234 +- ReactNativeClient/lib/time-utils.js | 28 +- ReactNativeClient/lib/urlUtils.js | 8 +- ReactNativeClient/lib/uuid.js | 12 +- ReactNativeClient/lib/vendor/sjcl-rn.js | 1144 ++++++++- ReactNativeClient/lib/vendor/sjcl.js | 1144 ++++++++- ReactNativeClient/main.js | 12 +- ReactNativeClient/root.js | 366 ++- Tools/build-translation.js | 160 +- Tools/build-website.js | 39 +- Tools/copycss.js | 24 +- Tools/release-android.js | 82 +- Tools/release-electron.js | 28 +- Tools/tool-utils.js | 90 +- Tools/update-homebrew.js | 28 +- 203 files changed, 13395 insertions(+), 7927 deletions(-) diff --git a/CliClient/app/ResourceServer.js b/CliClient/app/ResourceServer.js index c7425d0390..7e650d1e06 100644 --- a/CliClient/app/ResourceServer.js +++ b/CliClient/app/ResourceServer.js @@ -1,14 +1,13 @@ -const { _ } = require('lib/locale.js'); -const { Logger } = require('lib/logger.js'); -const Resource = require('lib/models/Resource.js'); -const { netUtils } = require('lib/net-utils.js'); +const { _ } = require("lib/locale.js"); +const { Logger } = require("lib/logger.js"); +const Resource = require("lib/models/Resource.js"); +const { netUtils } = require("lib/net-utils.js"); const http = require("http"); const urlParser = require("url"); -const enableServerDestroy = require('server-destroy'); +const enableServerDestroy = require("server-destroy"); class ResourceServer { - constructor() { this.server_ = null; this.logger_ = new Logger(); @@ -30,8 +29,8 @@ class ResourceServer { } baseUrl() { - if (!this.port_) return ''; - return 'http://127.0.0.1:' + this.port_; + if (!this.port_) return ""; + return "http://127.0.0.1:" + this.port_; } setLinkHandler(handler) { @@ -40,35 +39,34 @@ class ResourceServer { async start() { this.port_ = await netUtils.findAvailablePort([9167, 9267, 8167, 8267]); - if (!this.port_) { - this.logger().error('Could not find available port to start resource server. Please report the error at https://github.com/laurent22/joplin'); + if (!this.port_) { + this.logger().error("Could not find available port to start resource server. Please report the error at https://github.com/laurent22/joplin"); return; } this.server_ = http.createServer(); - this.server_.on('request', async (request, response) => { - - const writeResponse = (message) => { + this.server_.on("request", async (request, response) => { + const writeResponse = message => { response.write(message); response.end(); - } + }; const url = urlParser.parse(request.url, true); - let resourceId = url.pathname.split('/'); + let resourceId = url.pathname.split("/"); if (resourceId.length < 2) { - writeResponse('Error: could not get resource ID from path name: ' + url.pathname); + writeResponse("Error: could not get resource ID from path name: " + url.pathname); return; } resourceId = resourceId[1]; - if (!this.linkHandler_) throw new Error('No link handler is defined'); + if (!this.linkHandler_) throw new Error("No link handler is defined"); try { const done = await this.linkHandler_(resourceId, response); - if (!done) throw new Error('Unhandled resource: ' + resourceId); + if (!done) throw new Error("Unhandled resource: " + resourceId); } catch (error) { - response.setHeader('Content-Type', 'text/plain'); + response.setHeader("Content-Type", "text/plain"); response.statusCode = 400; response.write(error.message); } @@ -76,8 +74,8 @@ class ResourceServer { response.end(); }); - this.server_.on('error', (error) => { - this.logger().error('Resource server:', error); + this.server_.on("error", error => { + this.logger().error("Resource server:", error); }); this.server_.listen(this.port_); @@ -91,7 +89,6 @@ class ResourceServer { if (this.server_) this.server_.destroy(); this.server_ = null; } - } -module.exports = ResourceServer; \ No newline at end of file +module.exports = ResourceServer; diff --git a/CliClient/app/app-gui.js b/CliClient/app/app-gui.js index 037cedddc8..b8e824e844 100644 --- a/CliClient/app/app-gui.js +++ b/CliClient/app/app-gui.js @@ -1,40 +1,39 @@ -const { Logger } = require('lib/logger.js'); -const Folder = require('lib/models/Folder.js'); -const Tag = require('lib/models/Tag.js'); -const BaseModel = require('lib/BaseModel.js'); -const Note = require('lib/models/Note.js'); -const Resource = require('lib/models/Resource.js'); -const { cliUtils } = require('./cli-utils.js'); -const { reducer, defaultState } = require('lib/reducer.js'); -const { splitCommandString } = require('lib/string-utils.js'); -const { reg } = require('lib/registry.js'); -const { _ } = require('lib/locale.js'); +const { Logger } = require("lib/logger.js"); +const Folder = require("lib/models/Folder.js"); +const Tag = require("lib/models/Tag.js"); +const BaseModel = require("lib/BaseModel.js"); +const Note = require("lib/models/Note.js"); +const Resource = require("lib/models/Resource.js"); +const { cliUtils } = require("./cli-utils.js"); +const { reducer, defaultState } = require("lib/reducer.js"); +const { splitCommandString } = require("lib/string-utils.js"); +const { reg } = require("lib/registry.js"); +const { _ } = require("lib/locale.js"); -const chalk = require('chalk'); -const tk = require('terminal-kit'); -const TermWrapper = require('tkwidgets/framework/TermWrapper.js'); -const Renderer = require('tkwidgets/framework/Renderer.js'); -const DecryptionWorker = require('lib/services/DecryptionWorker'); +const chalk = require("chalk"); +const tk = require("terminal-kit"); +const TermWrapper = require("tkwidgets/framework/TermWrapper.js"); +const Renderer = require("tkwidgets/framework/Renderer.js"); +const DecryptionWorker = require("lib/services/DecryptionWorker"); -const BaseWidget = require('tkwidgets/BaseWidget.js'); -const ListWidget = require('tkwidgets/ListWidget.js'); -const TextWidget = require('tkwidgets/TextWidget.js'); -const HLayoutWidget = require('tkwidgets/HLayoutWidget.js'); -const VLayoutWidget = require('tkwidgets/VLayoutWidget.js'); -const ReduxRootWidget = require('tkwidgets/ReduxRootWidget.js'); -const RootWidget = require('tkwidgets/RootWidget.js'); -const WindowWidget = require('tkwidgets/WindowWidget.js'); +const BaseWidget = require("tkwidgets/BaseWidget.js"); +const ListWidget = require("tkwidgets/ListWidget.js"); +const TextWidget = require("tkwidgets/TextWidget.js"); +const HLayoutWidget = require("tkwidgets/HLayoutWidget.js"); +const VLayoutWidget = require("tkwidgets/VLayoutWidget.js"); +const ReduxRootWidget = require("tkwidgets/ReduxRootWidget.js"); +const RootWidget = require("tkwidgets/RootWidget.js"); +const WindowWidget = require("tkwidgets/WindowWidget.js"); -const NoteWidget = require('./gui/NoteWidget.js'); -const ResourceServer = require('./ResourceServer.js'); -const NoteMetadataWidget = require('./gui/NoteMetadataWidget.js'); -const FolderListWidget = require('./gui/FolderListWidget.js'); -const NoteListWidget = require('./gui/NoteListWidget.js'); -const StatusBarWidget = require('./gui/StatusBarWidget.js'); -const ConsoleWidget = require('./gui/ConsoleWidget.js'); +const NoteWidget = require("./gui/NoteWidget.js"); +const ResourceServer = require("./ResourceServer.js"); +const NoteMetadataWidget = require("./gui/NoteMetadataWidget.js"); +const FolderListWidget = require("./gui/FolderListWidget.js"); +const NoteListWidget = require("./gui/NoteListWidget.js"); +const StatusBarWidget = require("./gui/StatusBarWidget.js"); +const ConsoleWidget = require("./gui/ConsoleWidget.js"); class AppGui { - constructor(app, store, keymap) { try { this.app_ = app; @@ -47,12 +46,12 @@ class AppGui { // Some keys are directly handled by the tkwidget framework // so they need to be remapped in a different way. this.tkWidgetKeys_ = { - 'focus_next': 'TAB', - 'focus_previous': 'SHIFT_TAB', - 'move_up': 'UP', - 'move_down': 'DOWN', - 'page_down': 'PAGE_DOWN', - 'page_up': 'PAGE_UP', + focus_next: "TAB", + focus_previous: "SHIFT_TAB", + move_up: "UP", + move_down: "DOWN", + page_down: "PAGE_DOWN", + page_up: "PAGE_UP", }; this.renderer_ = null; @@ -61,7 +60,7 @@ class AppGui { this.renderer_ = new Renderer(this.term(), this.rootWidget_); - this.app_.on('modelAction', async (event) => { + this.app_.on("modelAction", async event => { await this.handleModelAction(event.action); }); @@ -95,7 +94,7 @@ class AppGui { } async forceRender() { - this.widget('root').invalidate(); + this.widget("root").invalidate(); await this.renderer_.renderRoot(); } @@ -107,12 +106,12 @@ class AppGui { return this.term().restoreState(state); } - prompt(initialText = '', promptString = ':', options = null) { - return this.widget('statusBar').prompt(initialText, promptString, options); + prompt(initialText = "", promptString = ":", options = null) { + return this.widget("statusBar").prompt(initialText, promptString, options); } stdoutMaxWidth() { - return this.widget('console').innerWidth - 1; + return this.widget("console").innerWidth - 1; } isDummy() { @@ -121,7 +120,7 @@ class AppGui { buildUi() { this.rootWidget_ = new ReduxRootWidget(this.store_); - this.rootWidget_.name = 'root'; + this.rootWidget_.name = "root"; this.rootWidget_.autoShortcutsEnabled = false; const folderList = new FolderListWidget(); @@ -129,21 +128,21 @@ class AppGui { borderBottomWidth: 1, borderRightWidth: 1, }; - folderList.name = 'folderList'; + folderList.name = "folderList"; folderList.vStretch = true; - folderList.on('currentItemChange', async (event) => { + folderList.on("currentItemChange", async event => { const item = folderList.currentItem; - if (item === '-') { + if (item === "-") { let newIndex = event.currentIndex + (event.previousIndex < event.currentIndex ? +1 : -1); let nextItem = folderList.itemAt(newIndex); if (!nextItem) nextItem = folderList.itemAt(event.previousIndex); if (!nextItem) return; // Normally not possible - let actionType = 'FOLDER_SELECT'; - if (nextItem.type_ === BaseModel.TYPE_TAG) actionType = 'TAG_SELECT'; - if (nextItem.type_ === BaseModel.TYPE_SEARCH) actionType = 'SEARCH_SELECT'; + let actionType = "FOLDER_SELECT"; + if (nextItem.type_ === BaseModel.TYPE_TAG) actionType = "TAG_SELECT"; + if (nextItem.type_ === BaseModel.TYPE_SEARCH) actionType = "SEARCH_SELECT"; this.store_.dispatch({ type: actionType, @@ -151,22 +150,22 @@ class AppGui { }); } else if (item.type_ === Folder.modelType()) { this.store_.dispatch({ - type: 'FOLDER_SELECT', + type: "FOLDER_SELECT", id: item ? item.id : null, }); } else if (item.type_ === Tag.modelType()) { this.store_.dispatch({ - type: 'TAG_SELECT', + type: "TAG_SELECT", id: item ? item.id : null, }); } else if (item.type_ === BaseModel.TYPE_SEARCH) { this.store_.dispatch({ - type: 'SEARCH_SELECT', + type: "SEARCH_SELECT", id: item ? item.id : null, }); } }); - this.rootWidget_.connect(folderList, (state) => { + this.rootWidget_.connect(folderList, state => { return { selectedFolderId: state.selectedFolderId, selectedTagId: state.selectedTagId, @@ -179,21 +178,21 @@ class AppGui { }); const noteList = new NoteListWidget(); - noteList.name = 'noteList'; + noteList.name = "noteList"; noteList.vStretch = true; noteList.style = { borderBottomWidth: 1, borderLeftWidth: 1, borderRightWidth: 1, }; - noteList.on('currentItemChange', async () => { + noteList.on("currentItemChange", async () => { let note = noteList.currentItem; this.store_.dispatch({ - type: 'NOTE_SELECT', + type: "NOTE_SELECT", id: note ? note.id : null, }); }); - this.rootWidget_.connect(noteList, (state) => { + this.rootWidget_.connect(noteList, state => { return { selectedNoteId: state.selectedNoteIds.length ? state.selectedNoteIds[0] : null, items: state.notes, @@ -202,12 +201,12 @@ class AppGui { const noteText = new NoteWidget(); noteText.hStretch = true; - noteText.name = 'noteText'; + noteText.name = "noteText"; noteText.style = { borderBottomWidth: 1, borderLeftWidth: 1, }; - this.rootWidget_.connect(noteText, (state) => { + this.rootWidget_.connect(noteText, state => { return { noteId: state.selectedNoteIds.length ? state.selectedNoteIds[0] : null, notes: state.notes, @@ -216,13 +215,13 @@ class AppGui { const noteMetadata = new NoteMetadataWidget(); noteMetadata.hStretch = true; - noteMetadata.name = 'noteMetadata'; + noteMetadata.name = "noteMetadata"; noteMetadata.style = { borderBottomWidth: 1, borderLeftWidth: 1, borderRightWidth: 1, }; - this.rootWidget_.connect(noteMetadata, (state) => { + this.rootWidget_.connect(noteMetadata, state => { return { noteId: state.selectedNoteIds.length ? state.selectedNoteIds[0] : null }; }); noteMetadata.hide(); @@ -238,58 +237,58 @@ class AppGui { statusBar.hStretch = true; const noteLayout = new VLayoutWidget(); - noteLayout.name = 'noteLayout'; - noteLayout.addChild(noteText, { type: 'stretch', factor: 1 }); - noteLayout.addChild(noteMetadata, { type: 'stretch', factor: 1 }); + noteLayout.name = "noteLayout"; + noteLayout.addChild(noteText, { type: "stretch", factor: 1 }); + noteLayout.addChild(noteMetadata, { type: "stretch", factor: 1 }); const hLayout = new HLayoutWidget(); - hLayout.name = 'hLayout'; - hLayout.addChild(folderList, { type: 'stretch', factor: 1 }); - hLayout.addChild(noteList, { type: 'stretch', factor: 1 }); - hLayout.addChild(noteLayout, { type: 'stretch', factor: 2 }); + hLayout.name = "hLayout"; + hLayout.addChild(folderList, { type: "stretch", factor: 1 }); + hLayout.addChild(noteList, { type: "stretch", factor: 1 }); + hLayout.addChild(noteLayout, { type: "stretch", factor: 2 }); const vLayout = new VLayoutWidget(); - vLayout.name = 'vLayout'; - vLayout.addChild(hLayout, { type: 'stretch', factor: 2 }); - vLayout.addChild(consoleWidget, { type: 'stretch', factor: 1 }); - vLayout.addChild(statusBar, { type: 'fixed', factor: 1 }); + vLayout.name = "vLayout"; + vLayout.addChild(hLayout, { type: "stretch", factor: 2 }); + vLayout.addChild(consoleWidget, { type: "stretch", factor: 1 }); + vLayout.addChild(statusBar, { type: "fixed", factor: 1 }); const win1 = new WindowWidget(); win1.addChild(vLayout); - win1.name = 'mainWindow'; + win1.name = "mainWindow"; this.rootWidget_.addChild(win1); } showModalOverlay(text) { - if (!this.widget('overlayWindow')) { + if (!this.widget("overlayWindow")) { const textWidget = new TextWidget(); textWidget.hStretch = true; textWidget.vStretch = true; - textWidget.text = 'testing'; - textWidget.name = 'overlayText'; + textWidget.text = "testing"; + textWidget.name = "overlayText"; const win = new WindowWidget(); - win.name = 'overlayWindow'; + win.name = "overlayWindow"; win.addChild(textWidget); this.rootWidget_.addChild(win); } - this.widget('overlayWindow').activate(); - this.widget('overlayText').text = text; + this.widget("overlayWindow").activate(); + this.widget("overlayText").text = text; } hideModalOverlay() { - if (this.widget('overlayWindow')) this.widget('overlayWindow').hide(); - this.widget('mainWindow').activate(); + if (this.widget("overlayWindow")) this.widget("overlayWindow").hide(); + this.widget("mainWindow").activate(); } addCommandToConsole(cmd) { if (!cmd) return; - const isConfigPassword = cmd.indexOf('config ') >= 0 && cmd.indexOf('password') >= 0; + const isConfigPassword = cmd.indexOf("config ") >= 0 && cmd.indexOf("password") >= 0; if (isConfigPassword) return; - this.stdout(chalk.cyan.bold('> ' + cmd)); + this.stdout(chalk.cyan.bold("> " + cmd)); } setupKeymap(keymap) { @@ -298,15 +297,15 @@ class AppGui { for (let i = 0; i < keymap.length; i++) { const item = Object.assign({}, keymap[i]); - if (!item.command) throw new Error('Missing command for keymap item: ' + JSON.stringify(item)); + if (!item.command) throw new Error("Missing command for keymap item: " + JSON.stringify(item)); - if (!('type' in item)) item.type = 'exec'; + if (!("type" in item)) item.type = "exec"; if (item.command in this.tkWidgetKeys_) { - item.type = 'tkwidgets'; + item.type = "tkwidgets"; } - item.canRunAlongOtherCommands = item.type === 'function' && ['toggle_metadata', 'toggle_console'].indexOf(item.command) >= 0; + item.canRunAlongOtherCommands = item.type === "function" && ["toggle_metadata", "toggle_console"].indexOf(item.command) >= 0; output.push(item); } @@ -319,7 +318,7 @@ class AppGui { } showConsole(doShow = true) { - this.widget('console').show(doShow); + this.widget("console").show(doShow); } hideConsole() { @@ -327,11 +326,11 @@ class AppGui { } consoleIsShown() { - return this.widget('console').shown; + return this.widget("console").shown; } maximizeConsole(doMaximize = true) { - const consoleWidget = this.widget('console'); + const consoleWidget = this.widget("console"); if (consoleWidget.isMaximized__ === undefined) { consoleWidget.isMaximized__ = false; @@ -340,13 +339,13 @@ class AppGui { if (consoleWidget.isMaximized__ === doMaximize) return; let constraints = { - type: 'stretch', + type: "stretch", factor: !doMaximize ? 1 : 4, }; consoleWidget.isMaximized__ = doMaximize; - this.widget('vLayout').setWidgetConstraints(consoleWidget, constraints); + this.widget("vLayout").setWidgetConstraints(consoleWidget, constraints); } minimizeConsole() { @@ -354,11 +353,11 @@ class AppGui { } consoleIsMaximized() { - return this.widget('console').isMaximized__ === true; + return this.widget("console").isMaximized__ === true; } showNoteMetadata(show = true) { - this.widget('noteMetadata').show(show); + this.widget("noteMetadata").show(show); } hideNoteMetadata() { @@ -366,11 +365,11 @@ class AppGui { } toggleNoteMetadata() { - this.showNoteMetadata(!this.widget('noteMetadata').shown); + this.showNoteMetadata(!this.widget("noteMetadata").shown); } widget(name) { - if (name === 'root') return this.rootWidget_; + if (name === "root") return this.rootWidget_; return this.rootWidget_.childByName(name); } @@ -403,10 +402,10 @@ class AppGui { } activeListItem() { - const widget = this.widget('mainWindow').focusedWidget; + const widget = this.widget("mainWindow").focusedWidget; if (!widget) return null; - - if (widget.name == 'noteList' || widget.name == 'folderList') { + + if (widget.name == "noteList" || widget.name == "folderList") { return widget.currentItem; } @@ -414,54 +413,48 @@ class AppGui { } async handleModelAction(action) { - this.logger().info('Action:', action); + this.logger().info("Action:", action); let state = Object.assign({}, defaultState); - state.notes = this.widget('noteList').items; + state.notes = this.widget("noteList").items; let newState = reducer(state, action); if (newState !== state) { - this.widget('noteList').items = newState.notes; + this.widget("noteList").items = newState.notes; } } async processFunctionCommand(cmd) { - - if (cmd === 'activate') { - - const w = this.widget('mainWindow').focusedWidget; - if (w.name === 'folderList') { - this.widget('noteList').focus(); - } else if (w.name === 'noteList' || w.name === 'noteText') { - this.processPromptCommand('edit $n'); + if (cmd === "activate") { + const w = this.widget("mainWindow").focusedWidget; + if (w.name === "folderList") { + this.widget("noteList").focus(); + } else if (w.name === "noteList" || w.name === "noteText") { + this.processPromptCommand("edit $n"); } - - } else if (cmd === 'delete') { - - if (this.widget('folderList').hasFocus) { - const item = this.widget('folderList').selectedJoplinItem; + } else if (cmd === "delete") { + if (this.widget("folderList").hasFocus) { + const item = this.widget("folderList").selectedJoplinItem; if (!item) return; if (item.type_ === BaseModel.TYPE_FOLDER) { - await this.processPromptCommand('rmbook ' + item.id); + await this.processPromptCommand("rmbook " + item.id); } else if (item.type_ === BaseModel.TYPE_TAG) { - this.stdout(_('To delete a tag, untag the associated notes.')); + this.stdout(_("To delete a tag, untag the associated notes.")); } else if (item.type_ === BaseModel.TYPE_SEARCH) { this.store().dispatch({ - type: 'SEARCH_DELETE', + type: "SEARCH_DELETE", id: item.id, }); } - } else if (this.widget('noteList').hasFocus) { - await this.processPromptCommand('rmnote $n'); + } else if (this.widget("noteList").hasFocus) { + await this.processPromptCommand("rmnote $n"); } else { - this.stdout(_('Please select the note or notebook to be deleted first.')); + this.stdout(_("Please select the note or notebook to be deleted first.")); } - - } else if (cmd === 'toggle_console') { - + } else if (cmd === "toggle_console") { if (!this.consoleIsShown()) { this.showConsole(); this.minimizeConsole(); @@ -472,22 +465,15 @@ class AppGui { this.maximizeConsole(); } } - - } else if (cmd === 'toggle_metadata') { - + } else if (cmd === "toggle_metadata") { this.toggleNoteMetadata(); - - } else if (cmd === 'enter_command_line_mode') { - - const cmd = await this.widget('statusBar').prompt(); + } else if (cmd === "enter_command_line_mode") { + const cmd = await this.widget("statusBar").prompt(); if (!cmd) return; this.addCommandToConsole(cmd); - await this.processPromptCommand(cmd); - + await this.processPromptCommand(cmd); } else { - - throw new Error('Unknown command: ' + cmd); - + throw new Error("Unknown command: " + cmd); } } @@ -496,21 +482,21 @@ class AppGui { cmd = cmd.trim(); if (!cmd.length) return; - this.logger().info('Got command: ' + cmd); + this.logger().info("Got command: " + cmd); - try { - let note = this.widget('noteList').currentItem; - let folder = this.widget('folderList').currentItem; + try { + let note = this.widget("noteList").currentItem; + let folder = this.widget("folderList").currentItem; let args = splitCommandString(cmd); for (let i = 0; i < args.length; i++) { - if (args[i] == '$n') { - args[i] = note ? note.id : ''; - } else if (args[i] == '$b') { - args[i] = folder ? folder.id : ''; - } else if (args[i] == '$c') { + if (args[i] == "$n") { + args[i] = note ? note.id : ""; + } else if (args[i] == "$b") { + args[i] = folder ? folder.id : ""; + } else if (args[i] == "$c") { const item = this.activeListItem(); - args[i] = item ? item.id : ''; + args[i] = item ? item.id : ""; } } @@ -519,40 +505,40 @@ class AppGui { this.stdout(error.message); } - this.widget('console').scrollBottom(); - + this.widget("console").scrollBottom(); + // Invalidate so that the screen is redrawn in case inputting a command has moved // the GUI up (in particular due to autocompletion), it's moved back to the right position. - this.widget('root').invalidate(); + this.widget("root").invalidate(); } async updateFolderList() { const folders = await Folder.all(); - this.widget('folderList').items = folders; + this.widget("folderList").items = folders; } async updateNoteList(folderId) { const fields = Note.previewFields(); - fields.splice(fields.indexOf('body'), 1); + fields.splice(fields.indexOf("body"), 1); const notes = folderId ? await Note.previews(folderId, { fields: fields }) : []; - this.widget('noteList').items = notes; + this.widget("noteList").items = notes; } async updateNoteText(note) { - const text = note ? note.body : ''; - this.widget('noteText').text = text; + const text = note ? note.body : ""; + this.widget("noteText").text = text; } // Any key after which a shortcut is not possible. isSpecialKey(name) { - return [':', 'ENTER', 'DOWN', 'UP', 'LEFT', 'RIGHT', 'DELETE', 'BACKSPACE', 'ESCAPE', 'TAB', 'SHIFT_TAB', 'PAGE_UP', 'PAGE_DOWN'].indexOf(name) >= 0; + return [":", "ENTER", "DOWN", "UP", "LEFT", "RIGHT", "DELETE", "BACKSPACE", "ESCAPE", "TAB", "SHIFT_TAB", "PAGE_UP", "PAGE_DOWN"].indexOf(name) >= 0; } fullScreen(enable = true) { if (enable) { this.term().fullscreen(); this.term().hideCursor(); - this.widget('root').invalidate(); + this.widget("root").invalidate(); } else { this.term().fullscreen(false); this.term().showCursor(); @@ -562,10 +548,10 @@ class AppGui { stdout(text) { if (text === null || text === undefined) return; - let lines = text.split('\n'); + let lines = text.split("\n"); for (let i = 0; i < lines.length; i++) { - const v = typeof lines[i] === 'object' ? JSON.stringify(lines[i]) : lines[i]; - this.widget('console').addLine(v); + const v = typeof lines[i] === "object" ? JSON.stringify(lines[i]) : lines[i]; + this.widget("console").addLine(v); } this.updateStatusBarMessage(); @@ -577,40 +563,40 @@ class AppGui { } updateStatusBarMessage() { - const consoleWidget = this.widget('console'); + const consoleWidget = this.widget("console"); - let msg = ''; + let msg = ""; const text = consoleWidget.lastLine; const cmd = this.app().currentCommand(); if (cmd) { msg += cmd.name(); - if (cmd.cancellable()) msg += ' [Press Ctrl+C to cancel]'; - msg += ': '; + if (cmd.cancellable()) msg += " [Press Ctrl+C to cancel]"; + msg += ": "; } if (text && text.length) { msg += text; } - if (msg !== '') this.widget('statusBar').setItemAt(0, msg); + if (msg !== "") this.widget("statusBar").setItemAt(0, msg); } async setupResourceServer() { const linkStyle = chalk.blue.underline; - const noteTextWidget = this.widget('noteText'); - const resourceIdRegex = /^:\/[a-f0-9]+$/i + const noteTextWidget = this.widget("noteText"); + const resourceIdRegex = /^:\/[a-f0-9]+$/i; const noteLinks = {}; const hasProtocol = function(s, protocols) { if (!s) return false; s = s.trim().toLowerCase(); for (let i = 0; i < protocols.length; i++) { - if (s.indexOf(protocols[i] + '://') === 0) return true; + if (s.indexOf(protocols[i] + "://") === 0) return true; } return false; - } + }; // By default, before the server is started, only the regular // URLs appear in blue. @@ -620,7 +606,7 @@ class AppGui { if (resourceIdRegex.test(url)) { return url; - } else if (hasProtocol(url, ['http', 'https'])) { + } else if (hasProtocol(url, ["http", "https"])) { return linkStyle(url); } else { return url; @@ -633,16 +619,16 @@ class AppGui { this.resourceServer_.setLinkHandler(async (path, response) => { const link = noteLinks[path]; - if (link.type === 'url') { - response.writeHead(302, { 'Location': link.url }); + if (link.type === "url") { + response.writeHead(302, { Location: link.url }); return true; } - if (link.type === 'resource') { + if (link.type === "resource") { const resourceId = link.id; let resource = await Resource.load(resourceId); - if (!resource) throw new Error('No resource with ID ' + resourceId); // Should be nearly impossible - if (resource.mime) response.setHeader('Content-Type', resource.mime); + if (!resource) throw new Error("No resource with ID " + resourceId); // Should be nearly impossible + if (resource.mime) response.setHeader("Content-Type", resource.mime); response.write(await Resource.content(resource)); return true; } @@ -659,21 +645,21 @@ class AppGui { if (resourceIdRegex.test(url)) { noteLinks[index] = { - type: 'resource', + type: "resource", id: url.substr(2), - }; - } else if (hasProtocol(url, ['http', 'https', 'file', 'ftp'])) { + }; + } else if (hasProtocol(url, ["http", "https", "file", "ftp"])) { noteLinks[index] = { - type: 'url', + type: "url", url: url, }; - } else if (url.indexOf('#') === 0) { - return ''; // Anchors aren't supported for now + } else if (url.indexOf("#") === 0) { + return ""; // Anchors aren't supported for now } else { return url; } - return linkStyle(this.resourceServer_.baseUrl() + '/' + index); + return linkStyle(this.resourceServer_.baseUrl() + "/" + index); }, }; } @@ -688,17 +674,16 @@ class AppGui { this.renderer_.start(); - const statusBar = this.widget('statusBar'); + const statusBar = this.widget("statusBar"); term.grabInput(); - term.on('key', async (name, matches, data) => { - + term.on("key", async (name, matches, data) => { // ------------------------------------------------------------------------- // Handle special shortcuts // ------------------------------------------------------------------------- - if (name === 'CTRL_D') { + if (name === "CTRL_D") { const cmd = this.app().currentCommand(); if (cmd && cmd.cancellable() && !this.commandCancelCalled_) { @@ -711,13 +696,13 @@ class AppGui { return; } - if (name === 'CTRL_C' ) { + if (name === "CTRL_C") { const cmd = this.app().currentCommand(); if (!cmd || !cmd.cancellable() || this.commandCancelCalled_) { this.stdout(_('Press Ctrl+D or type "exit" to exit the application')); } else { this.commandCancelCalled_ = true; - await cmd.cancel() + await cmd.cancel(); this.commandCancelCalled_ = false; } return; @@ -726,8 +711,8 @@ class AppGui { // ------------------------------------------------------------------------- // Build up current shortcut // ------------------------------------------------------------------------- - - const now = (new Date()).getTime(); + + const now = new Date().getTime(); if (now - this.lastShortcutKeyTime_ > 800 || this.isSpecialKey(name)) { this.currentShortcutKeys_ = [name]; @@ -747,7 +732,7 @@ class AppGui { // Process shortcut and execute associated command // ------------------------------------------------------------------------- - const shortcutKey = this.currentShortcutKeys_.join(''); + const shortcutKey = this.currentShortcutKeys_.join(""); let keymapItem = this.keymapItemByKey(shortcutKey); // If this command is an alias to another command, resolve to the actual command @@ -757,25 +742,25 @@ class AppGui { if (statusBar.promptActive) processShortcutKeys = false; if (processShortcutKeys) { - this.logger().info('Shortcut:', shortcutKey, keymapItem); + this.logger().info("Shortcut:", shortcutKey, keymapItem); this.currentShortcutKeys_ = []; - if (keymapItem.type === 'function') { + if (keymapItem.type === "function") { this.processFunctionCommand(keymapItem.command); - } else if (keymapItem.type === 'prompt') { + } else if (keymapItem.type === "prompt") { let promptOptions = {}; - if ('cursorPosition' in keymapItem) promptOptions.cursorPosition = keymapItem.cursorPosition; - const commandString = await statusBar.prompt(keymapItem.command ? keymapItem.command : '', null, promptOptions); + if ("cursorPosition" in keymapItem) promptOptions.cursorPosition = keymapItem.cursorPosition; + const commandString = await statusBar.prompt(keymapItem.command ? keymapItem.command : "", null, promptOptions); this.addCommandToConsole(commandString); await this.processPromptCommand(commandString); - } else if (keymapItem.type === 'exec') { + } else if (keymapItem.type === "exec") { this.stdout(keymapItem.command); await this.processPromptCommand(keymapItem.command); - } else if (keymapItem.type === 'tkwidgets') { - this.widget('root').handleKey(this.tkWidgetKeys_[keymapItem.command]); + } else if (keymapItem.type === "tkwidgets") { + this.widget("root").handleKey(this.tkWidgetKeys_[keymapItem.command]); } else { - throw new Error('Unknown command type: ' + JSON.stringify(keymapItem)); + throw new Error("Unknown command type: " + JSON.stringify(keymapItem)); } } @@ -789,13 +774,12 @@ class AppGui { console.error(error); } - process.on('unhandledRejection', (reason, p) => { + process.on("unhandledRejection", (reason, p) => { this.fullScreen(false); - console.error('Unhandled promise rejection', p, 'reason:', reason); + console.error("Unhandled promise rejection", p, "reason:", reason); process.exit(1); }); } - } AppGui.INPUT_MODE_NORMAL = 1; diff --git a/CliClient/app/app.js b/CliClient/app/app.js index 605892cd33..38459577c9 100644 --- a/CliClient/app/app.js +++ b/CliClient/app/app.js @@ -1,30 +1,29 @@ -const { BaseApplication } = require('lib/BaseApplication'); -const { createStore, applyMiddleware } = require('redux'); -const { reducer, defaultState } = require('lib/reducer.js'); -const { JoplinDatabase } = require('lib/joplin-database.js'); -const { Database } = require('lib/database.js'); -const { FoldersScreenUtils } = require('lib/folders-screen-utils.js'); -const { DatabaseDriverNode } = require('lib/database-driver-node.js'); -const BaseModel = require('lib/BaseModel.js'); -const Folder = require('lib/models/Folder.js'); -const BaseItem = require('lib/models/BaseItem.js'); -const Note = require('lib/models/Note.js'); -const Tag = require('lib/models/Tag.js'); -const Setting = require('lib/models/Setting.js'); -const { Logger } = require('lib/logger.js'); -const { sprintf } = require('sprintf-js'); -const { reg } = require('lib/registry.js'); -const { fileExtension } = require('lib/path-utils.js'); -const { shim } = require('lib/shim.js'); -const { _, setLocale, defaultLocale, closestSupportedLocale } = require('lib/locale.js'); -const os = require('os'); -const fs = require('fs-extra'); -const { cliUtils } = require('./cli-utils.js'); -const EventEmitter = require('events'); -const Cache = require('lib/Cache'); +const { BaseApplication } = require("lib/BaseApplication"); +const { createStore, applyMiddleware } = require("redux"); +const { reducer, defaultState } = require("lib/reducer.js"); +const { JoplinDatabase } = require("lib/joplin-database.js"); +const { Database } = require("lib/database.js"); +const { FoldersScreenUtils } = require("lib/folders-screen-utils.js"); +const { DatabaseDriverNode } = require("lib/database-driver-node.js"); +const BaseModel = require("lib/BaseModel.js"); +const Folder = require("lib/models/Folder.js"); +const BaseItem = require("lib/models/BaseItem.js"); +const Note = require("lib/models/Note.js"); +const Tag = require("lib/models/Tag.js"); +const Setting = require("lib/models/Setting.js"); +const { Logger } = require("lib/logger.js"); +const { sprintf } = require("sprintf-js"); +const { reg } = require("lib/registry.js"); +const { fileExtension } = require("lib/path-utils.js"); +const { shim } = require("lib/shim.js"); +const { _, setLocale, defaultLocale, closestSupportedLocale } = require("lib/locale.js"); +const os = require("os"); +const fs = require("fs-extra"); +const { cliUtils } = require("./cli-utils.js"); +const EventEmitter = require("events"); +const Cache = require("lib/Cache"); class Application extends BaseApplication { - constructor() { super(); @@ -48,7 +47,7 @@ class Application extends BaseApplication { async guessTypeAndLoadItem(pattern, options = null) { let type = BaseModel.TYPE_NOTE; - if (pattern.indexOf('/') === 0) { + if (pattern.indexOf("/") === 0) { type = BaseModel.TYPE_FOLDER; pattern = pattern.substr(1); } @@ -80,13 +79,13 @@ class Application extends BaseApplication { } async loadItems(type, pattern, options = null) { - if (type === 'folderOrNote') { + if (type === "folderOrNote") { const folders = await this.loadItems(BaseModel.TYPE_FOLDER, pattern, options); if (folders.length) return folders; return await this.loadItems(BaseModel.TYPE_NOTE, pattern, options); } - pattern = pattern ? pattern.toString() : ''; + pattern = pattern ? pattern.toString() : ""; if (type == BaseModel.TYPE_FOLDER && (pattern == Folder.conflictFolderTitle() || pattern == Folder.conflictFolderId())) return [Folder.conflictFolder()]; @@ -95,14 +94,16 @@ class Application extends BaseApplication { const parent = options.parent ? options.parent : app().currentFolder(); const ItemClass = BaseItem.itemClass(type); - if (type == BaseModel.TYPE_NOTE && pattern.indexOf('*') >= 0) { // Handle it as pattern - if (!parent) throw new Error(_('No notebook selected.')); + if (type == BaseModel.TYPE_NOTE && pattern.indexOf("*") >= 0) { + // Handle it as pattern + if (!parent) throw new Error(_("No notebook selected.")); return await Note.previews(parent.id, { titlePattern: pattern }); - } else { // Single item + } else { + // Single item let item = null; if (type == BaseModel.TYPE_NOTE) { - if (!parent) throw new Error(_('No notebook has been specified.')); - item = await ItemClass.loadFolderNoteByField(parent.id, 'title', pattern); + if (!parent) throw new Error(_("No notebook has been specified.")); + item = await ItemClass.loadFolderNoteByField(parent.id, "title", pattern); } else { item = await ItemClass.loadByTitle(pattern); } @@ -124,34 +125,34 @@ class Application extends BaseApplication { } setupCommand(cmd) { - cmd.setStdout((text) => { + cmd.setStdout(text => { return this.stdout(text); }); - cmd.setDispatcher((action) => { + cmd.setDispatcher(action => { if (this.store()) { return this.store().dispatch(action); } else { - return (action) => {}; + return action => {}; } }); cmd.setPrompt(async (message, options) => { if (!options) options = {}; - if (!options.type) options.type = 'boolean'; - if (!options.booleanAnswerDefault) options.booleanAnswerDefault = 'y'; - if (!options.answers) options.answers = options.booleanAnswerDefault === 'y' ? [_('Y'), _('n')] : [_('N'), _('y')]; + if (!options.type) options.type = "boolean"; + if (!options.booleanAnswerDefault) options.booleanAnswerDefault = "y"; + if (!options.answers) options.answers = options.booleanAnswerDefault === "y" ? [_("Y"), _("n")] : [_("N"), _("y")]; - if (options.type == 'boolean') { - message += ' (' + options.answers.join('/') + ')'; + if (options.type == "boolean") { + message += " (" + options.answers.join("/") + ")"; } - let answer = await this.gui().prompt('', message + ' ', options); + let answer = await this.gui().prompt("", message + " ", options); - if (options.type === 'boolean') { + if (options.type === "boolean") { if (answer === null) return false; // Pressed ESCAPE if (!answer) answer = options.answers[0]; - let positiveIndex = options.booleanAnswerDefault == 'y' ? 0 : 1; + let positiveIndex = options.booleanAnswerDefault == "y" ? 0 : 1; return answer.toLowerCase() === options.answers[positiveIndex].toLowerCase(); } else { return answer; @@ -173,7 +174,7 @@ class Application extends BaseApplication { }, 5000); if (await reg.syncTarget().syncStarted()) { - this.stdout(_('Cancelling background synchronisation... Please wait.')); + this.stdout(_("Cancelling background synchronisation... Please wait.")); const sync = await reg.syncTarget().synchronizer(); await sync.cancel(); } @@ -183,12 +184,12 @@ class Application extends BaseApplication { commands(uiType = null) { if (!this.allCommandsLoaded_) { - fs.readdirSync(__dirname).forEach((path) => { - if (path.indexOf('command-') !== 0) return; - const ext = fileExtension(path) - if (ext != 'js') return; + fs.readdirSync(__dirname).forEach(path => { + if (path.indexOf("command-") !== 0) return; + const ext = fileExtension(path); + if (ext != "js") return; - let CommandClass = require('./' + path); + let CommandClass = require("./" + path); let cmd = new CommandClass(); if (!cmd.enabled()) return; cmd = this.setupCommand(cmd); @@ -225,7 +226,7 @@ class Application extends BaseApplication { async commandMetadata() { if (this.commandMetadata_) return this.commandMetadata_; - let output = await this.cache_.getItem('metadata'); + let output = await this.cache_.getItem("metadata"); if (output) { this.commandMetadata_ = output; return Object.assign({}, this.commandMetadata_); @@ -240,7 +241,7 @@ class Application extends BaseApplication { output[n] = cmd.metadata(); } - await this.cache_.setItem('metadata', output, 1000 * 60 * 60 * 24); + await this.cache_.setItem("metadata", output, 1000 * 60 * 60 * 24); this.commandMetadata_ = output; return Object.assign({}, this.commandMetadata_); @@ -255,11 +256,11 @@ class Application extends BaseApplication { let CommandClass = null; try { - CommandClass = require(__dirname + '/command-' + name + '.js'); + CommandClass = require(__dirname + "/command-" + name + ".js"); } catch (error) { - if (error.message && error.message.indexOf('Cannot find module') >= 0) { - let e = new Error(_('No such command: %s', name)); - e.type = 'notFound'; + if (error.message && error.message.indexOf("Cannot find module") >= 0) { + let e = new Error(_("No such command: %s", name)); + e.type = "notFound"; throw e; } else { throw error; @@ -274,31 +275,39 @@ class Application extends BaseApplication { dummyGui() { return { - isDummy: () => { return true; }, - prompt: (initialText = '', promptString = '', options = null) => { return cliUtils.prompt(initialText, promptString, options); }, + isDummy: () => { + return true; + }, + prompt: (initialText = "", promptString = "", options = null) => { + return cliUtils.prompt(initialText, promptString, options); + }, showConsole: () => {}, maximizeConsole: () => {}, - stdout: (text) => { console.info(text); }, - fullScreen: (b=true) => {}, + stdout: text => { + console.info(text); + }, + fullScreen: (b = true) => {}, exit: () => {}, - showModalOverlay: (text) => {}, + showModalOverlay: text => {}, hideModalOverlay: () => {}, - stdoutMaxWidth: () => { return 100; }, + stdoutMaxWidth: () => { + return 100; + }, forceRender: () => {}, termSaveState: () => {}, - termRestoreState: (state) => {}, + termRestoreState: state => {}, }; } async execCommand(argv) { - if (!argv.length) return this.execCommand(['help']); - reg.logger().info('execCommand()', argv); + if (!argv.length) return this.execCommand(["help"]); + reg.logger().info("execCommand()", argv); const commandName = argv[0]; this.activeCommand_ = this.findCommandByName(commandName); let outException = null; try { - if (this.gui().isDummy() && !this.activeCommand_.supportsUi('cli')) throw new Error(_('The command "%s" is only available in GUI mode', this.activeCommand_.name())); + if (this.gui().isDummy() && !this.activeCommand_.supportsUi("cli")) throw new Error(_('The command "%s" is only available in GUI mode', this.activeCommand_.name())); const cmdArgs = cliUtils.makeCommandArgs(this.activeCommand_, argv); await this.activeCommand_.action(cmdArgs); } catch (error) { @@ -314,24 +323,24 @@ class Application extends BaseApplication { async loadKeymaps() { const defaultKeyMap = [ - { "keys": [":"], "type": "function", "command": "enter_command_line_mode" }, - { "keys": ["TAB"], "type": "function", "command": "focus_next" }, - { "keys": ["SHIFT_TAB"], "type": "function", "command": "focus_previous" }, - { "keys": ["UP"], "type": "function", "command": "move_up" }, - { "keys": ["DOWN"], "type": "function", "command": "move_down" }, - { "keys": ["PAGE_UP"], "type": "function", "command": "page_up" }, - { "keys": ["PAGE_DOWN"], "type": "function", "command": "page_down" }, - { "keys": ["ENTER"], "type": "function", "command": "activate" }, - { "keys": ["DELETE", "BACKSPACE"], "type": "function", "command": "delete" }, - { "keys": [" "], "command": "todo toggle $n" }, - { "keys": ["tc"], "type": "function", "command": "toggle_console" }, - { "keys": ["tm"], "type": "function", "command": "toggle_metadata" }, - { "keys": ["/"], "type": "prompt", "command": "search \"\"", "cursorPosition": -2 }, - { "keys": ["mn"], "type": "prompt", "command": "mknote \"\"", "cursorPosition": -2 }, - { "keys": ["mt"], "type": "prompt", "command": "mktodo \"\"", "cursorPosition": -2 }, - { "keys": ["mb"], "type": "prompt", "command": "mkbook \"\"", "cursorPosition": -2 }, - { "keys": ["yn"], "type": "prompt", "command": "cp $n \"\"", "cursorPosition": -2 }, - { "keys": ["dn"], "type": "prompt", "command": "mv $n \"\"", "cursorPosition": -2 } + { keys: [":"], type: "function", command: "enter_command_line_mode" }, + { keys: ["TAB"], type: "function", command: "focus_next" }, + { keys: ["SHIFT_TAB"], type: "function", command: "focus_previous" }, + { keys: ["UP"], type: "function", command: "move_up" }, + { keys: ["DOWN"], type: "function", command: "move_down" }, + { keys: ["PAGE_UP"], type: "function", command: "page_up" }, + { keys: ["PAGE_DOWN"], type: "function", command: "page_down" }, + { keys: ["ENTER"], type: "function", command: "activate" }, + { keys: ["DELETE", "BACKSPACE"], type: "function", command: "delete" }, + { keys: [" "], command: "todo toggle $n" }, + { keys: ["tc"], type: "function", command: "toggle_console" }, + { keys: ["tm"], type: "function", command: "toggle_metadata" }, + { keys: ["/"], type: "prompt", command: 'search ""', cursorPosition: -2 }, + { keys: ["mn"], type: "prompt", command: 'mknote ""', cursorPosition: -2 }, + { keys: ["mt"], type: "prompt", command: 'mktodo ""', cursorPosition: -2 }, + { keys: ["mb"], type: "prompt", command: 'mkbook ""', cursorPosition: -2 }, + { keys: ["yn"], type: "prompt", command: 'cp $n ""', cursorPosition: -2 }, + { keys: ["dn"], type: "prompt", command: 'mv $n ""', cursorPosition: -2 }, ]; // Filter the keymap item by command so that items in keymap.json can override @@ -339,22 +348,22 @@ class Application extends BaseApplication { const itemsByCommand = {}; for (let i = 0; i < defaultKeyMap.length; i++) { - itemsByCommand[defaultKeyMap[i].command] = defaultKeyMap[i] + itemsByCommand[defaultKeyMap[i].command] = defaultKeyMap[i]; } - const filePath = Setting.value('profileDir') + '/keymap.json'; + const filePath = Setting.value("profileDir") + "/keymap.json"; if (await fs.pathExists(filePath)) { try { - let configString = await fs.readFile(filePath, 'utf-8'); - configString = configString.replace(/^\s*\/\/.*/, ''); // Strip off comments + let configString = await fs.readFile(filePath, "utf-8"); + configString = configString.replace(/^\s*\/\/.*/, ""); // Strip off comments const keymap = JSON.parse(configString); for (let keymapIndex = 0; keymapIndex < keymap.length; keymapIndex++) { const item = keymap[keymapIndex]; itemsByCommand[item.command] = item; } } catch (error) { - let msg = error.message ? error.message : ''; - msg = 'Could not load keymap ' + filePath + '\n' + msg; + let msg = error.message ? error.message : ""; + msg = "Could not load keymap " + filePath + "\n" + msg; error.message = msg; throw error; } @@ -372,7 +381,7 @@ class Application extends BaseApplication { async start(argv) { argv = await super.start(argv); - cliUtils.setStdout((object) => { + cliUtils.setStdout(object => { return this.stdout(object); }); @@ -381,7 +390,7 @@ class Application extends BaseApplication { if (argv.length) { this.gui_ = this.dummyGui(); - this.currentFolder_ = await Folder.load(Setting.value('activeFolderId')); + this.currentFolder_ = await Folder.load(Setting.value("activeFolderId")); try { await this.execCommand(argv); @@ -393,12 +402,13 @@ class Application extends BaseApplication { } process.exit(1); } - } else { // Otherwise open the GUI + } else { + // Otherwise open the GUI this.initRedux(); const keymap = await this.loadKeymaps(); - const AppGui = require('./app-gui.js'); + const AppGui = require("./app-gui.js"); this.gui_ = new AppGui(this, this.store(), keymap); this.gui_.setLogger(this.logger_); await this.gui_.start(); @@ -413,17 +423,16 @@ class Application extends BaseApplication { const tags = await Tag.allWithNotes(); this.dispatch({ - type: 'TAG_UPDATE_ALL', + type: "TAG_UPDATE_ALL", items: tags, }); this.store().dispatch({ - type: 'FOLDER_SELECT', - id: Setting.value('activeFolderId'), + type: "FOLDER_SELECT", + id: Setting.value("activeFolderId"), }); } } - } let application_ = null; @@ -434,4 +443,4 @@ function app() { return application_; } -module.exports = { app }; \ No newline at end of file +module.exports = { app }; diff --git a/CliClient/app/autocompletion.js b/CliClient/app/autocompletion.js index ade05f5c13..b72201cdec 100644 --- a/CliClient/app/autocompletion.js +++ b/CliClient/app/autocompletion.js @@ -1,10 +1,10 @@ -var { app } = require('./app.js'); -var Note = require('lib/models/Note.js'); -var Folder = require('lib/models/Folder.js'); -var Tag = require('lib/models/Tag.js'); -var { cliUtils } = require('./cli-utils.js'); -var yargParser = require('yargs-parser'); -var fs = require('fs-extra'); +var { app } = require("./app.js"); +var Note = require("lib/models/Note.js"); +var Folder = require("lib/models/Folder.js"); +var Tag = require("lib/models/Tag.js"); +var { cliUtils } = require("./cli-utils.js"); +var yargParser = require("yargs-parser"); +var fs = require("fs-extra"); async function handleAutocompletionPromise(line) { // Auto-complete the command name @@ -14,11 +14,11 @@ async function handleAutocompletionPromise(line) { //should look for commmands it could be if (words.length == 1) { if (names.indexOf(words[0]) === -1) { - let x = names.filter((n) => n.indexOf(words[0]) === 0); + let x = names.filter(n => n.indexOf(words[0]) === 0); if (x.length === 1) { - return x[0] + ' '; + return x[0] + " "; } - return x.length > 0 ? x.map((a) => a + ' ') : line; + return x.length > 0 ? x.map(a => a + " ") : line; } else { return line; } @@ -31,14 +31,14 @@ async function handleAutocompletionPromise(line) { return line; } //complete an option - let next = words.length > 1 ? words[words.length - 1] : ''; + let next = words.length > 1 ? words[words.length - 1] : ""; let l = []; - if (next[0] === '-') { - for (let i = 0; itoCommandLine(a)); - ret.prefix = toCommandLine(words.slice(0, -1)) + ' '; + let ret = l.map(a => toCommandLine(a)); + ret.prefix = toCommandLine(words.slice(0, -1)) + " "; return ret; } //Complete an argument //Determine the number of positional arguments by counting the number of //words that don't start with a - less one for the command name - const positionalArgs = words.filter((a)=>a.indexOf('-') !== 0).length - 1; + const positionalArgs = words.filter(a => a.indexOf("-") !== 0).length - 1; - let cmdUsage = yargParser(metadata.usage)['_']; + let cmdUsage = yargParser(metadata.usage)["_"]; cmdUsage.splice(0, 1); if (cmdUsage.length >= positionalArgs) { - let argName = cmdUsage[positionalArgs - 1]; argName = cliUtils.parseCommandArg(argName).name; const currentFolder = app().currentFolder(); - if (argName == 'note' || argName == 'note-pattern') { - const notes = currentFolder ? await Note.previews(currentFolder.id, { titlePattern: next + '*' }) : []; - l.push(...notes.map((n) => n.title)); + if (argName == "note" || argName == "note-pattern") { + const notes = currentFolder ? await Note.previews(currentFolder.id, { titlePattern: next + "*" }) : []; + l.push(...notes.map(n => n.title)); } - if (argName == 'notebook') { - const folders = await Folder.search({ titlePattern: next + '*' }); - l.push(...folders.map((n) => n.title)); + if (argName == "notebook") { + const folders = await Folder.search({ titlePattern: next + "*" }); + l.push(...folders.map(n => n.title)); } - if (argName == 'item') { - const notes = currentFolder ? await Note.previews(currentFolder.id, { titlePattern: next + '*' }) : []; - const folders = await Folder.search({ titlePattern: next + '*' }); - l.push(...notes.map((n) => n.title), folders.map((n) => n.title)); + if (argName == "item") { + const notes = currentFolder ? await Note.previews(currentFolder.id, { titlePattern: next + "*" }) : []; + const folders = await Folder.search({ titlePattern: next + "*" }); + l.push(...notes.map(n => n.title), folders.map(n => n.title)); } - if (argName == 'tag') { - let tags = await Tag.search({ titlePattern: next + '*' }); - l.push(...tags.map((n) => n.title)); + if (argName == "tag") { + let tags = await Tag.search({ titlePattern: next + "*" }); + l.push(...tags.map(n => n.title)); } - if (argName == 'file') { - let files = await fs.readdir('.'); + if (argName == "file") { + let files = await fs.readdir("."); l.push(...files); } - if (argName == 'tag-command') { - let c = filterList(['add', 'remove', 'list'], next); + if (argName == "tag-command") { + let c = filterList(["add", "remove", "list"], next); l.push(...c); } - if (argName == 'todo-command') { - let c = filterList(['toggle', 'clear'], next); + if (argName == "todo-command") { + let c = filterList(["toggle", "clear"], next); l.push(...c); } } if (l.length === 1) { return toCommandLine([...words.slice(0, -1), l[0]]); } else if (l.length > 1) { - let ret = l.map(a=>toCommandLine(a)); - ret.prefix = toCommandLine(words.slice(0, -1)) + ' '; + let ret = l.map(a => toCommandLine(a)); + ret.prefix = toCommandLine(words.slice(0, -1)) + " "; return ret; } return line; - } function handleAutocompletion(str, callback) { handleAutocompletionPromise(str).then(function(res) { @@ -127,33 +125,35 @@ function handleAutocompletion(str, callback) { } function toCommandLine(args) { if (Array.isArray(args)) { - return args.map(function(a) { - if(a.indexOf('"') !== -1 || a.indexOf(' ') !== -1) { - return "'" + a + "'"; - } else if (a.indexOf("'") !== -1) { - return '"' + a + '"'; - } else { - return a; - } - }).join(' '); + return args + .map(function(a) { + if (a.indexOf('"') !== -1 || a.indexOf(" ") !== -1) { + return "'" + a + "'"; + } else if (a.indexOf("'") !== -1) { + return '"' + a + '"'; + } else { + return a; + } + }) + .join(" "); } else { - if(args.indexOf('"') !== -1 || args.indexOf(' ') !== -1) { + if (args.indexOf('"') !== -1 || args.indexOf(" ") !== -1) { return "'" + args + "' "; } else if (args.indexOf("'") !== -1) { return '"' + args + '" '; } else { - return args + ' '; + return args + " "; } } } function getArguments(line) { let inSingleQuotes = false; let inDoubleQuotes = false; - let currentWord = ''; + let currentWord = ""; let parsed = []; - for(let i = 0; i { - if (path.indexOf('command-') !== 0) return; - const ext = fileExtension(path) - if (ext != 'js') return; + fs.readdirSync(__dirname).forEach(path => { + if (path.indexOf("command-") !== 0) return; + const ext = fileExtension(path); + if (ext != "js") return; - let CommandClass = require('./' + path); + let CommandClass = require("./" + path); let cmd = new CommandClass(); if (!cmd.enabled()) return; if (cmd.hidden()) return; @@ -75,24 +75,26 @@ function getOptionColWidth(options) { function getHeader() { let output = []; - output.push('NAME'); - output.push(''); - output.push(wrap('joplin - a note taking and to-do app with synchronisation capabilities'), INDENT); + output.push("NAME"); + output.push(""); + output.push(wrap("joplin - a note taking and to-do app with synchronisation capabilities"), INDENT); - output.push(''); + output.push(""); - output.push('DESCRIPTION'); - output.push(''); + output.push("DESCRIPTION"); + output.push(""); let description = []; - description.push('Joplin is a note taking and to-do application, which can handle a large number of notes organised into notebooks.'); - description.push('The notes are searchable, can be copied, tagged and modified with your own text editor.'); + description.push("Joplin is a note taking and to-do application, which can handle a large number of notes organised into notebooks."); + description.push("The notes are searchable, can be copied, tagged and modified with your own text editor."); description.push("\n\n"); - description.push('The notes can be synchronised with various target including the file system (for example with a network directory) or with Microsoft OneDrive.'); + description.push("The notes can be synchronised with various target including the file system (for example with a network directory) or with Microsoft OneDrive."); description.push("\n\n"); - description.push('Notes exported from Evenotes via .enex files can be imported into Joplin, including the formatted content, resources (images, attachments, etc.) and complete metadata (geolocation, updated time, created time, etc.).'); + description.push( + "Notes exported from Evenotes via .enex files can be imported into Joplin, including the formatted content, resources (images, attachments, etc.) and complete metadata (geolocation, updated time, created time, etc.)." + ); - output.push(wrap(description.join(''), INDENT)); + output.push(wrap(description.join(""), INDENT)); return output.join("\n"); } @@ -100,17 +102,17 @@ function getHeader() { function getFooter() { let output = []; - output.push('WEBSITE'); - output.push(''); - output.push(INDENT + 'http://joplin.cozic.net'); + output.push("WEBSITE"); + output.push(""); + output.push(INDENT + "http://joplin.cozic.net"); - output.push(''); + output.push(""); - output.push('LICENSE'); - output.push(''); - let filePath = rootDir + '/LICENSE_' + languageCode(); - if (!fs.existsSync(filePath)) filePath = rootDir + '/LICENSE'; - const licenseText = fs.readFileSync(filePath, 'utf8'); + output.push("LICENSE"); + output.push(""); + let filePath = rootDir + "/LICENSE_" + languageCode(); + if (!fs.existsSync(filePath)) filePath = rootDir + "/LICENSE"; + const licenseText = fs.readFileSync(filePath, "utf8"); output.push(wrap(licenseText, INDENT)); return output.join("\n"); @@ -131,9 +133,9 @@ async function main() { const commandsText = commandBlocks.join("\n\n"); const footerText = getFooter(); - console.info(headerText + "\n\n" + 'USAGE' + "\n\n" + commandsText + "\n\n" + footerText); + console.info(headerText + "\n\n" + "USAGE" + "\n\n" + commandsText + "\n\n" + footerText); } -main().catch((error) => { +main().catch(error => { console.error(error); -}); \ No newline at end of file +}); diff --git a/CliClient/app/cli-integration-tests.js b/CliClient/app/cli-integration-tests.js index b38510af0c..90fdd1cdb0 100644 --- a/CliClient/app/cli-integration-tests.js +++ b/CliClient/app/cli-integration-tests.js @@ -1,30 +1,30 @@ -"use strict" +"use strict"; -const fs = require('fs-extra'); -const { Logger } = require('lib/logger.js'); -const { dirname } = require('lib/path-utils.js'); -const { DatabaseDriverNode } = require('lib/database-driver-node.js'); -const { JoplinDatabase } = require('lib/joplin-database.js'); -const BaseModel = require('lib/BaseModel.js'); -const Folder = require('lib/models/Folder.js'); -const Note = require('lib/models/Note.js'); -const Setting = require('lib/models/Setting.js'); -const { sprintf } = require('sprintf-js'); -const exec = require('child_process').exec +const fs = require("fs-extra"); +const { Logger } = require("lib/logger.js"); +const { dirname } = require("lib/path-utils.js"); +const { DatabaseDriverNode } = require("lib/database-driver-node.js"); +const { JoplinDatabase } = require("lib/joplin-database.js"); +const BaseModel = require("lib/BaseModel.js"); +const Folder = require("lib/models/Folder.js"); +const Note = require("lib/models/Note.js"); +const Setting = require("lib/models/Setting.js"); +const { sprintf } = require("sprintf-js"); +const exec = require("child_process").exec; -process.on('unhandledRejection', (reason, p) => { - console.error('Unhandled promise rejection', p, 'reason:', reason); +process.on("unhandledRejection", (reason, p) => { + console.error("Unhandled promise rejection", p, "reason:", reason); }); -const baseDir = dirname(__dirname) + '/tests/cli-integration'; -const joplinAppPath = __dirname + '/main.js'; +const baseDir = dirname(__dirname) + "/tests/cli-integration"; +const joplinAppPath = __dirname + "/main.js"; const logger = new Logger(); -logger.addTarget('console'); +logger.addTarget("console"); logger.setLevel(Logger.LEVEL_ERROR); const dbLogger = new Logger(); -dbLogger.addTarget('console'); +dbLogger.addTarget("console"); dbLogger.setLevel(Logger.LEVEL_INFO); const db = new JoplinDatabase(new DatabaseDriverNode()); @@ -32,17 +32,17 @@ db.setLogger(dbLogger); function createClient(id) { return { - 'id': id, - 'profileDir': baseDir + '/client' + id, + id: id, + profileDir: baseDir + "/client" + id, }; } const client = createClient(1); function execCommand(client, command, options = {}) { - let exePath = 'node ' + joplinAppPath; - let cmd = exePath + ' --update-geolocation-disabled --env dev --profile ' + client.profileDir + ' ' + command; - logger.info(client.id + ': ' + command); + let exePath = "node " + joplinAppPath; + let cmd = exePath + " --update-geolocation-disabled --env dev --profile " + client.profileDir + " " + command; + logger.info(client.id + ": " + command); return new Promise((resolve, reject) => { exec(cmd, (error, stdout, stderr) => { @@ -58,65 +58,58 @@ function execCommand(client, command, options = {}) { function assertTrue(v) { if (!v) throw new Error(sprintf('Expected "true", got "%s"."', v)); - process.stdout.write('.'); + process.stdout.write("."); } function assertFalse(v) { if (v) throw new Error(sprintf('Expected "false", got "%s"."', v)); - process.stdout.write('.'); + process.stdout.write("."); } function assertEquals(expected, real) { if (expected !== real) throw new Error(sprintf('Expecting "%s", got "%s"', expected, real)); - process.stdout.write('.'); + process.stdout.write("."); } async function clearDatabase() { - await db.transactionExecBatch([ - 'DELETE FROM folders', - 'DELETE FROM notes', - 'DELETE FROM tags', - 'DELETE FROM note_tags', - 'DELETE FROM resources', - 'DELETE FROM deleted_items', - ]); + await db.transactionExecBatch(["DELETE FROM folders", "DELETE FROM notes", "DELETE FROM tags", "DELETE FROM note_tags", "DELETE FROM resources", "DELETE FROM deleted_items"]); } const testUnits = {}; testUnits.testFolders = async () => { - await execCommand(client, 'mkbook nb1'); + await execCommand(client, "mkbook nb1"); let folders = await Folder.all(); assertEquals(1, folders.length); - assertEquals('nb1', folders[0].title); + assertEquals("nb1", folders[0].title); - await execCommand(client, 'mkbook nb1'); + await execCommand(client, "mkbook nb1"); folders = await Folder.all(); assertEquals(1, folders.length); - assertEquals('nb1', folders[0].title); + assertEquals("nb1", folders[0].title); - await execCommand(client, 'rm -r -f nb1'); + await execCommand(client, "rm -r -f nb1"); folders = await Folder.all(); assertEquals(0, folders.length); -} +}; testUnits.testNotes = async () => { - await execCommand(client, 'mkbook nb1'); - await execCommand(client, 'mknote n1'); + await execCommand(client, "mkbook nb1"); + await execCommand(client, "mknote n1"); let notes = await Note.all(); assertEquals(1, notes.length); - assertEquals('n1', notes[0].title); + assertEquals("n1", notes[0].title); - await execCommand(client, 'rm -f n1'); + await execCommand(client, "rm -f n1"); notes = await Note.all(); assertEquals(0, notes.length); - await execCommand(client, 'mknote n1'); - await execCommand(client, 'mknote n2'); + await execCommand(client, "mknote n1"); + await execCommand(client, "mknote n2"); notes = await Note.all(); assertEquals(2, notes.length); @@ -130,86 +123,86 @@ testUnits.testNotes = async () => { notes = await Note.all(); assertEquals(0, notes.length); -} +}; testUnits.testCat = async () => { - await execCommand(client, 'mkbook nb1'); - await execCommand(client, 'mknote mynote'); + await execCommand(client, "mkbook nb1"); + await execCommand(client, "mknote mynote"); - let folder = await Folder.loadByTitle('nb1'); - let note = await Note.loadFolderNoteByField(folder.id, 'title', 'mynote'); + let folder = await Folder.loadByTitle("nb1"); + let note = await Note.loadFolderNoteByField(folder.id, "title", "mynote"); - let r = await execCommand(client, 'cat mynote'); - assertTrue(r.indexOf('mynote') >= 0); + let r = await execCommand(client, "cat mynote"); + assertTrue(r.indexOf("mynote") >= 0); assertFalse(r.indexOf(note.id) >= 0); - r = await execCommand(client, 'cat -v mynote'); + r = await execCommand(client, "cat -v mynote"); assertTrue(r.indexOf(note.id) >= 0); -} +}; testUnits.testConfig = async () => { - await execCommand(client, 'config editor vim'); + await execCommand(client, "config editor vim"); await Setting.load(); - assertEquals('vim', Setting.value('editor')); + assertEquals("vim", Setting.value("editor")); - await execCommand(client, 'config editor subl'); + await execCommand(client, "config editor subl"); await Setting.load(); - assertEquals('subl', Setting.value('editor')); + assertEquals("subl", Setting.value("editor")); - let r = await execCommand(client, 'config'); - assertTrue(r.indexOf('editor') >= 0); - assertTrue(r.indexOf('subl') >= 0); -} + let r = await execCommand(client, "config"); + assertTrue(r.indexOf("editor") >= 0); + assertTrue(r.indexOf("subl") >= 0); +}; testUnits.testCp = async () => { - await execCommand(client, 'mkbook nb2'); - await execCommand(client, 'mkbook nb1'); - await execCommand(client, 'mknote n1'); + await execCommand(client, "mkbook nb2"); + await execCommand(client, "mkbook nb1"); + await execCommand(client, "mknote n1"); - await execCommand(client, 'cp n1'); + await execCommand(client, "cp n1"); - let f1 = await Folder.loadByTitle('nb1'); - let f2 = await Folder.loadByTitle('nb2'); + let f1 = await Folder.loadByTitle("nb1"); + let f2 = await Folder.loadByTitle("nb2"); let notes = await Note.previews(f1.id); assertEquals(2, notes.length); - await execCommand(client, 'cp n1 nb2'); + await execCommand(client, "cp n1 nb2"); let notesF1 = await Note.previews(f1.id); assertEquals(2, notesF1.length); notes = await Note.previews(f2.id); assertEquals(1, notes.length); assertEquals(notesF1[0].title, notes[0].title); -} +}; testUnits.testLs = async () => { - await execCommand(client, 'mkbook nb1'); - await execCommand(client, 'mknote note1'); - await execCommand(client, 'mknote note2'); - let r = await execCommand(client, 'ls'); + await execCommand(client, "mkbook nb1"); + await execCommand(client, "mknote note1"); + await execCommand(client, "mknote note2"); + let r = await execCommand(client, "ls"); - assertTrue(r.indexOf('note1') >= 0); - assertTrue(r.indexOf('note2') >= 0); -} + assertTrue(r.indexOf("note1") >= 0); + assertTrue(r.indexOf("note2") >= 0); +}; testUnits.testMv = async () => { - await execCommand(client, 'mkbook nb2'); - await execCommand(client, 'mkbook nb1'); - await execCommand(client, 'mknote n1'); - await execCommand(client, 'mv n1 nb2'); + await execCommand(client, "mkbook nb2"); + await execCommand(client, "mkbook nb1"); + await execCommand(client, "mknote n1"); + await execCommand(client, "mv n1 nb2"); - let f1 = await Folder.loadByTitle('nb1'); - let f2 = await Folder.loadByTitle('nb2'); + let f1 = await Folder.loadByTitle("nb1"); + let f2 = await Folder.loadByTitle("nb2"); let notes1 = await Note.previews(f1.id); let notes2 = await Note.previews(f2.id); assertEquals(0, notes1.length); assertEquals(1, notes2.length); - await execCommand(client, 'mknote note1'); - await execCommand(client, 'mknote note2'); - await execCommand(client, 'mknote note3'); - await execCommand(client, 'mknote blabla'); + await execCommand(client, "mknote note1"); + await execCommand(client, "mknote note2"); + await execCommand(client, "mknote note3"); + await execCommand(client, "mknote blabla"); await execCommand(client, "mv 'note*' nb2"); notes1 = await Note.previews(f1.id); @@ -217,19 +210,19 @@ testUnits.testMv = async () => { assertEquals(1, notes1.length); assertEquals(4, notes2.length); -} +}; async function main(argv) { await fs.remove(baseDir); - logger.info(await execCommand(client, 'version')); + logger.info(await execCommand(client, "version")); - await db.open({ name: client.profileDir + '/database.sqlite' }); + await db.open({ name: client.profileDir + "/database.sqlite" }); BaseModel.db_ = db; await Setting.load(); - let onlyThisTest = 'testMv'; - onlyThisTest = ''; + let onlyThisTest = "testMv"; + onlyThisTest = ""; for (let n in testUnits) { if (!testUnits.hasOwnProperty(n)) continue; @@ -237,13 +230,13 @@ async function main(argv) { await clearDatabase(); let testName = n.substr(4).toLowerCase(); - process.stdout.write(testName + ': '); + process.stdout.write(testName + ": "); await testUnits[n](); - console.info(''); + console.info(""); } } -main(process.argv).catch((error) => { - console.info(''); +main(process.argv).catch(error => { + console.info(""); logger.error(error); -}); \ No newline at end of file +}); diff --git a/CliClient/app/cli-utils.js b/CliClient/app/cli-utils.js index 895549b728..e97e96091e 100644 --- a/CliClient/app/cli-utils.js +++ b/CliClient/app/cli-utils.js @@ -1,12 +1,12 @@ -const yargParser = require('yargs-parser'); -const { _ } = require('lib/locale.js'); -const { time } = require('lib/time-utils.js'); -const stringPadding = require('string-padding'); +const yargParser = require("yargs-parser"); +const { _ } = require("lib/locale.js"); +const { time } = require("lib/time-utils.js"); +const stringPadding = require("string-padding"); const cliUtils = {}; cliUtils.printArray = function(logFunction, rows, headers = null) { - if (!rows.length) return ''; + if (!rows.length) return ""; const ALIGN_LEFT = 0; const ALIGN_RIGHT = 1; @@ -16,11 +16,11 @@ cliUtils.printArray = function(logFunction, rows, headers = null) { for (let i = 0; i < rows.length; i++) { let row = rows[i]; - + for (let j = 0; j < row.length; j++) { let item = row[j]; let width = item ? item.toString().length : 0; - let align = typeof item == 'number' ? ALIGN_RIGHT : ALIGN_LEFT; + let align = typeof item == "number" ? ALIGN_RIGHT : ALIGN_LEFT; if (!colWidths[j] || colWidths[j] < width) colWidths[j] = width; if (colAligns.length <= j) colAligns[j] = align; } @@ -33,46 +33,46 @@ cliUtils.printArray = function(logFunction, rows, headers = null) { let item = rows[row][col]; let width = colWidths[col]; let dir = colAligns[col] == ALIGN_LEFT ? stringPadding.RIGHT : stringPadding.LEFT; - line.push(stringPadding(item, width, ' ', dir)); + line.push(stringPadding(item, width, " ", dir)); } - logFunction(line.join(' ')); + logFunction(line.join(" ")); } -} +}; cliUtils.parseFlags = function(flags) { let output = {}; - flags = flags.split(','); + flags = flags.split(","); for (let i = 0; i < flags.length; i++) { let f = flags[i].trim(); - if (f.substr(0, 2) == '--') { - f = f.split(' '); + if (f.substr(0, 2) == "--") { + f = f.split(" "); output.long = f[0].substr(2).trim(); if (f.length == 2) { output.arg = cliUtils.parseCommandArg(f[1].trim()); } - } else if (f.substr(0, 1) == '-') { + } else if (f.substr(0, 1) == "-") { output.short = f.substr(1); } } return output; -} +}; cliUtils.parseCommandArg = function(arg) { - if (arg.length <= 2) throw new Error('Invalid command arg: ' + arg); + if (arg.length <= 2) throw new Error("Invalid command arg: " + arg); const c1 = arg[0]; const c2 = arg[arg.length - 1]; const name = arg.substr(1, arg.length - 2); - if (c1 == '<' && c2 == '>') { + if (c1 == "<" && c2 == ">") { return { required: true, name: name }; - } else if (c1 == '[' && c2 == ']') { + } else if (c1 == "[" && c2 == "]") { return { required: false, name: name }; } else { - throw new Error('Invalid command arg: ' + arg); + throw new Error("Invalid command arg: " + arg); } -} +}; cliUtils.makeCommandArgs = function(cmd, argv) { let cmdUsage = cmd.usage(); @@ -83,7 +83,7 @@ cliUtils.makeCommandArgs = function(cmd, argv) { let booleanFlags = []; let aliases = {}; for (let i = 0; i < options.length; i++) { - if (options[i].length != 2) throw new Error('Invalid options: ' + options[i]); + if (options[i].length != 2) throw new Error("Invalid options: " + options[i]); let flags = options[i][0]; let text = options[i][1]; @@ -102,97 +102,96 @@ cliUtils.makeCommandArgs = function(cmd, argv) { let args = yargParser(argv, { boolean: booleanFlags, alias: aliases, - string: ['_'], + string: ["_"], }); - for (let i = 1; i < cmdUsage['_'].length; i++) { - const a = cliUtils.parseCommandArg(cmdUsage['_'][i]); - if (a.required && !args['_'][i]) throw new Error(_('Missing required argument: %s', a.name)); + for (let i = 1; i < cmdUsage["_"].length; i++) { + const a = cliUtils.parseCommandArg(cmdUsage["_"][i]); + if (a.required && !args["_"][i]) throw new Error(_("Missing required argument: %s", a.name)); if (i >= a.length) { output[a.name] = null; } else { - output[a.name] = args['_'][i]; + output[a.name] = args["_"][i]; } } let argOptions = {}; for (let key in args) { if (!args.hasOwnProperty(key)) continue; - if (key == '_') continue; + if (key == "_") continue; argOptions[key] = args[key]; } output.options = argOptions; return output; -} +}; cliUtils.promptMcq = function(message, answers) { - const readline = require('readline'); + const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, - output: process.stdout + output: process.stdout, }); message += "\n\n"; for (let n in answers) { if (!answers.hasOwnProperty(n)) continue; - message += _('%s: %s', n, answers[n]) + "\n"; + message += _("%s: %s", n, answers[n]) + "\n"; } message += "\n"; - message += _('Your choice: '); + message += _("Your choice: "); return new Promise((resolve, reject) => { - rl.question(message, (answer) => { + rl.question(message, answer => { rl.close(); if (!(answer in answers)) { - reject(new Error(_('Invalid answer: %s', answer))); + reject(new Error(_("Invalid answer: %s", answer))); return; } resolve(answer); }); }); -} +}; cliUtils.promptConfirm = function(message, answers = null) { - if (!answers) answers = [_('Y'), _('n')]; - const readline = require('readline'); + if (!answers) answers = [_("Y"), _("n")]; + const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, - output: process.stdout + output: process.stdout, }); - message += ' (' + answers.join('/') + ')'; + message += " (" + answers.join("/") + ")"; return new Promise((resolve, reject) => { - rl.question(message + ' ', (answer) => { + rl.question(message + " ", answer => { const ok = !answer || answer.toLowerCase() == answers[0].toLowerCase(); rl.close(); resolve(ok); }); }); -} +}; // Note: initialText is there to have the same signature as statusBar.prompt() so that // it can be a drop-in replacement, however initialText is not used (and cannot be // with readline.question?). -cliUtils.prompt = function(initialText = '', promptString = ':', options = null) { +cliUtils.prompt = function(initialText = "", promptString = ":", options = null) { if (!options) options = {}; - const readline = require('readline'); - const Writable = require('stream').Writable; + const readline = require("readline"); + const Writable = require("stream").Writable; const mutableStdout = new Writable({ write: function(chunk, encoding, callback) { - if (!this.muted) - process.stdout.write(chunk, encoding); + if (!this.muted) process.stdout.write(chunk, encoding); callback(); - } + }, }); const rl = readline.createInterface({ @@ -204,15 +203,15 @@ cliUtils.prompt = function(initialText = '', promptString = ':', options = null) return new Promise((resolve, reject) => { mutableStdout.muted = false; - rl.question(promptString, (answer) => { + rl.question(promptString, answer => { rl.close(); - if (!!options.secure) this.stdout_(''); + if (!!options.secure) this.stdout_(""); resolve(answer); }); mutableStdout.muted = !!options.secure; }); -} +}; let redrawStarted_ = false; let redrawLastLog_ = null; @@ -220,7 +219,7 @@ let redrawLastUpdateTime_ = 0; cliUtils.setStdout = function(v) { this.stdout_ = v; -} +}; cliUtils.redraw = function(s) { const now = time.unixMs(); @@ -233,8 +232,8 @@ cliUtils.redraw = function(s) { redrawLastLog_ = s; } - redrawStarted_ = true; -} + redrawStarted_ = true; +}; cliUtils.redrawDone = function() { if (!redrawStarted_) return; @@ -245,6 +244,6 @@ cliUtils.redrawDone = function() { redrawLastLog_ = null; redrawStarted_ = false; -} +}; -module.exports = { cliUtils }; \ No newline at end of file +module.exports = { cliUtils }; diff --git a/CliClient/app/command-attach.js b/CliClient/app/command-attach.js index 0b22ef4cd8..b9c1f4b84b 100644 --- a/CliClient/app/command-attach.js +++ b/CliClient/app/command-attach.js @@ -1,32 +1,30 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const BaseModel = require('lib/BaseModel.js'); -const { shim } = require('lib/shim.js'); -const fs = require('fs-extra'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const BaseModel = require("lib/BaseModel.js"); +const { shim } = require("lib/shim.js"); +const fs = require("fs-extra"); class Command extends BaseCommand { - usage() { - return 'attach '; + return "attach "; } description() { - return _('Attaches the given file to the note.'); + return _("Attaches the given file to the note."); } async action(args) { - let title = args['note']; + let title = args["note"]; let note = await app().loadItem(BaseModel.TYPE_NOTE, title, { parent: app().currentFolder() }); this.encryptionCheck(note); if (!note) throw new Error(_('Cannot find "%s".', title)); - const localFilePath = args['file']; + const localFilePath = args["file"]; await shim.attachFileToNote(note, localFilePath); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-cat.js b/CliClient/app/command-cat.js index 04237b681a..cb16f2ed7f 100644 --- a/CliClient/app/command-cat.js +++ b/CliClient/app/command-cat.js @@ -1,28 +1,25 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const BaseModel = require('lib/BaseModel.js'); -const Folder = require('lib/models/Folder.js'); -const Note = require('lib/models/Note.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const BaseModel = require("lib/BaseModel.js"); +const Folder = require("lib/models/Folder.js"); +const Note = require("lib/models/Note.js"); class Command extends BaseCommand { - usage() { - return 'cat '; + return "cat "; } description() { - return _('Displays the given note.'); + return _("Displays the given note."); } options() { - return [ - ['-v, --verbose', _('Displays the complete information about note.')], - ]; + return [["-v, --verbose", _("Displays the complete information about note.")]]; } async action(args) { - let title = args['note']; + let title = args["note"]; let item = await app().loadItem(BaseModel.TYPE_NOTE, title, { parent: app().currentFolder() }); if (!item) throw new Error(_('Cannot find "%s".', title)); @@ -30,10 +27,13 @@ class Command extends BaseCommand { const content = args.options.verbose ? await Note.serialize(item) : await Note.serializeForEdit(item); this.stdout(content); - app().gui().showConsole(); - app().gui().maximizeConsole(); + app() + .gui() + .showConsole(); + app() + .gui() + .maximizeConsole(); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-config.js b/CliClient/app/command-config.js index b790d0045b..d321f78b18 100644 --- a/CliClient/app/command-config.js +++ b/CliClient/app/command-config.js @@ -1,12 +1,11 @@ -const { BaseCommand } = require('./base-command.js'); -const { _, setLocale } = require('lib/locale.js'); -const { app } = require('./app.js'); -const Setting = require('lib/models/Setting.js'); +const { BaseCommand } = require("./base-command.js"); +const { _, setLocale } = require("lib/locale.js"); +const { app } = require("./app.js"); +const Setting = require("lib/models/Setting.js"); class Command extends BaseCommand { - usage() { - return 'config [name] [value]'; + return "config [name] [value]"; } description() { @@ -14,57 +13,62 @@ class Command extends BaseCommand { } options() { - return [ - ['-v, --verbose', _('Also displays unset and hidden config variables.')], - ]; + return [["-v, --verbose", _("Also displays unset and hidden config variables.")]]; } async action(args) { const verbose = args.options.verbose; - const renderKeyValue = (name) => { + const renderKeyValue = name => { const md = Setting.settingMetadata(name); let value = Setting.value(name); - if (typeof value === 'object' || Array.isArray(value)) value = JSON.stringify(value); - if (md.secure) value = '********'; + if (typeof value === "object" || Array.isArray(value)) value = JSON.stringify(value); + if (md.secure) value = "********"; if (Setting.isEnum(name)) { - return _('%s = %s (%s)', name, value, Setting.enumOptionsDoc(name)); + return _("%s = %s (%s)", name, value, Setting.enumOptionsDoc(name)); } else { - return _('%s = %s', name, value); + return _("%s = %s", name, value); } - } + }; if (!args.name && !args.value) { - let keys = Setting.keys(!verbose, 'cli'); + let keys = Setting.keys(!verbose, "cli"); keys.sort(); for (let i = 0; i < keys.length; i++) { const value = Setting.value(keys[i]); if (!verbose && !value) continue; this.stdout(renderKeyValue(keys[i])); } - app().gui().showConsole(); - app().gui().maximizeConsole(); + app() + .gui() + .showConsole(); + app() + .gui() + .maximizeConsole(); return; } if (args.name && !args.value) { this.stdout(renderKeyValue(args.name)); - app().gui().showConsole(); - app().gui().maximizeConsole(); + app() + .gui() + .showConsole(); + app() + .gui() + .maximizeConsole(); return; } Setting.setValue(args.name, args.value); - if (args.name == 'locale') { - setLocale(Setting.value('locale')); + if (args.name == "locale") { + setLocale(Setting.value("locale")); app().onLocaleChanged(); } await Setting.saveAll(); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-cp.js b/CliClient/app/command-cp.js index 05d2938e07..87b6005603 100644 --- a/CliClient/app/command-cp.js +++ b/CliClient/app/command-cp.js @@ -1,39 +1,37 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const BaseModel = require('lib/BaseModel.js'); -const Folder = require('lib/models/Folder.js'); -const Note = require('lib/models/Note.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const BaseModel = require("lib/BaseModel.js"); +const Folder = require("lib/models/Folder.js"); +const Note = require("lib/models/Note.js"); class Command extends BaseCommand { - usage() { - return 'cp [notebook]'; + return "cp [notebook]"; } description() { - return _('Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.'); + return _("Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook."); } async action(args) { let folder = null; - if (args['notebook']) { - folder = await app().loadItem(BaseModel.TYPE_FOLDER, args['notebook']); + if (args["notebook"]) { + folder = await app().loadItem(BaseModel.TYPE_FOLDER, args["notebook"]); } else { folder = app().currentFolder(); } - if (!folder) throw new Error(_('Cannot find "%s".', args['notebook'])); + if (!folder) throw new Error(_('Cannot find "%s".', args["notebook"])); - const notes = await app().loadItems(BaseModel.TYPE_NOTE, args['note']); - if (!notes.length) throw new Error(_('Cannot find "%s".', args['note'])); + const notes = await app().loadItems(BaseModel.TYPE_NOTE, args["note"]); + if (!notes.length) throw new Error(_('Cannot find "%s".', args["note"])); for (let i = 0; i < notes.length; i++) { const newNote = await Note.copyToFolder(notes[i].id, folder.id); Note.updateGeolocation(newNote.id); } } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-done.js b/CliClient/app/command-done.js index b05f3f55b8..708d36d257 100644 --- a/CliClient/app/command-done.js +++ b/CliClient/app/command-done.js @@ -1,19 +1,18 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const BaseModel = require('lib/BaseModel.js'); -const Folder = require('lib/models/Folder.js'); -const Note = require('lib/models/Note.js'); -const { time } = require('lib/time-utils.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const BaseModel = require("lib/BaseModel.js"); +const Folder = require("lib/models/Folder.js"); +const Note = require("lib/models/Note.js"); +const { time } = require("lib/time-utils.js"); class Command extends BaseCommand { - usage() { - return 'done '; + return "done "; } description() { - return _('Marks a to-do as done.'); + return _("Marks a to-do as done."); } static async handleAction(commandInstance, args, isCompleted) { @@ -35,7 +34,6 @@ class Command extends BaseCommand { async action(args) { await Command.handleAction(this, args, true); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-dump.js b/CliClient/app/command-dump.js index 0672c26323..3da46da8d6 100644 --- a/CliClient/app/command-dump.js +++ b/CliClient/app/command-dump.js @@ -1,18 +1,17 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const Folder = require('lib/models/Folder.js'); -const Note = require('lib/models/Note.js'); -const Tag = require('lib/models/Tag.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const Folder = require("lib/models/Folder.js"); +const Note = require("lib/models/Note.js"); +const Tag = require("lib/models/Tag.js"); class Command extends BaseCommand { - usage() { - return 'dump'; + return "dump"; } description() { - return 'Dumps the complete database as JSON.'; + return "Dumps the complete database as JSON."; } hidden() { @@ -35,10 +34,9 @@ class Command extends BaseCommand { } items = items.concat(tags); - + this.stdout(JSON.stringify(items)); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-e2ee.js b/CliClient/app/command-e2ee.js index 2313d2ae57..106ad08cfa 100644 --- a/CliClient/app/command-e2ee.js +++ b/CliClient/app/command-e2ee.js @@ -1,27 +1,26 @@ -const { BaseCommand } = require('./base-command.js'); -const { _ } = require('lib/locale.js'); -const { cliUtils } = require('./cli-utils.js'); -const EncryptionService = require('lib/services/EncryptionService'); -const DecryptionWorker = require('lib/services/DecryptionWorker'); -const MasterKey = require('lib/models/MasterKey'); -const BaseItem = require('lib/models/BaseItem'); -const Setting = require('lib/models/Setting.js'); +const { BaseCommand } = require("./base-command.js"); +const { _ } = require("lib/locale.js"); +const { cliUtils } = require("./cli-utils.js"); +const EncryptionService = require("lib/services/EncryptionService"); +const DecryptionWorker = require("lib/services/DecryptionWorker"); +const MasterKey = require("lib/models/MasterKey"); +const BaseItem = require("lib/models/BaseItem"); +const Setting = require("lib/models/Setting.js"); class Command extends BaseCommand { - usage() { - return 'e2ee [path]'; + return "e2ee [path]"; } description() { - return _('Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.'); + return _("Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`."); } options() { return [ // This is here mostly for testing - shouldn't be used - ['-p, --password ', 'Use this password as master password (For security reasons, it is not recommended to use this option).'], - ['-v, --verbose', 'More verbose output for the `target-status` command'], + ["-p, --password ", "Use this password as master password (For security reasons, it is not recommended to use this option)."], + ["-v, --verbose", "More verbose output for the `target-status` command"], ]; } @@ -30,10 +29,10 @@ class Command extends BaseCommand { const options = args.options; - if (args.command === 'enable') { - const password = options.password ? options.password.toString() : await this.prompt(_('Enter master password:'), { type: 'string', secure: true }); + if (args.command === "enable") { + const password = options.password ? options.password.toString() : await this.prompt(_("Enter master password:"), { type: "string", secure: true }); if (!password) { - this.stdout(_('Operation cancelled')); + this.stdout(_("Operation cancelled")); return; } @@ -41,27 +40,27 @@ class Command extends BaseCommand { return; } - if (args.command === 'disable') { + if (args.command === "disable") { await EncryptionService.instance().disableEncryption(); return; } - if (args.command === 'decrypt') { - this.stdout(_('Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.')); + if (args.command === "decrypt") { + this.stdout(_("Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.")); while (true) { try { await DecryptionWorker.instance().start(); break; } catch (error) { - if (error.code === 'masterKeyNotLoaded') { + if (error.code === "masterKeyNotLoaded") { const masterKeyId = error.masterKeyId; - const password = await this.prompt(_('Enter master password:'), { type: 'string', secure: true }); + const password = await this.prompt(_("Enter master password:"), { type: "string", secure: true }); if (!password) { - this.stdout(_('Operation cancelled')); + this.stdout(_("Operation cancelled")); return; } - Setting.setObjectKey('encryption.passwordCache', masterKeyId, password); + Setting.setObjectKey("encryption.passwordCache", masterKeyId, password); await EncryptionService.instance().loadMasterKeysFromSettings(); continue; } @@ -70,31 +69,31 @@ class Command extends BaseCommand { } } - this.stdout(_('Completed decryption.')); + this.stdout(_("Completed decryption.")); return; } - if (args.command === 'status') { - this.stdout(_('Encryption is: %s', Setting.value('encryption.enabled') ? _('Enabled') : _('Disabled'))); + if (args.command === "status") { + this.stdout(_("Encryption is: %s", Setting.value("encryption.enabled") ? _("Enabled") : _("Disabled"))); return; } - if (args.command === 'target-status') { - const fs = require('fs-extra'); - const pathUtils = require('lib/path-utils.js'); - const fsDriver = new (require('lib/fs-driver-node.js').FsDriverNode)(); + if (args.command === "target-status") { + const fs = require("fs-extra"); + const pathUtils = require("lib/path-utils.js"); + const fsDriver = new (require("lib/fs-driver-node.js")).FsDriverNode(); const targetPath = args.path; - if (!targetPath) throw new Error('Please specify the sync target path.'); + if (!targetPath) throw new Error("Please specify the sync target path."); const dirPaths = function(targetPath) { let paths = []; - fs.readdirSync(targetPath).forEach((path) => { + fs.readdirSync(targetPath).forEach(path => { paths.push(path); }); return paths; - } + }; let itemCount = 0; let resourceCount = 0; @@ -109,17 +108,17 @@ class Command extends BaseCommand { for (let i = 0; i < paths.length; i++) { const path = paths[i]; - const fullPath = targetPath + '/' + path; + const fullPath = targetPath + "/" + path; const stat = await fs.stat(fullPath); // this.stdout(fullPath); - if (path === '.resource') { + if (path === ".resource") { let resourcePaths = dirPaths(fullPath); for (let j = 0; j < resourcePaths.length; j++) { const resourcePath = resourcePaths[j]; resourceCount++; - const fullResourcePath = fullPath + '/' + resourcePath; + const fullResourcePath = fullPath + "/" + resourcePath; const isEncrypted = await EncryptionService.instance().fileIsEncrypted(fullResourcePath); if (isEncrypted) { encryptedResourceCount++; @@ -131,7 +130,7 @@ class Command extends BaseCommand { } else if (stat.isDirectory()) { continue; } else { - const content = await fs.readFile(fullPath, 'utf8'); + const content = await fs.readFile(fullPath, "utf8"); const item = await BaseItem.unserialize(content); const ItemClass = BaseItem.itemClass(item); @@ -153,22 +152,22 @@ class Command extends BaseCommand { } } - this.stdout('Encrypted items: ' + encryptedItemCount + '/' + itemCount); - this.stdout('Encrypted resources: ' + encryptedResourceCount + '/' + resourceCount); - this.stdout('Other items (never encrypted): ' + otherItemCount); + this.stdout("Encrypted items: " + encryptedItemCount + "/" + itemCount); + this.stdout("Encrypted resources: " + encryptedResourceCount + "/" + resourceCount); + this.stdout("Other items (never encrypted): " + otherItemCount); if (options.verbose) { - this.stdout(''); - this.stdout('# Encrypted paths'); - this.stdout(''); + this.stdout(""); + this.stdout("# Encrypted paths"); + this.stdout(""); for (let i = 0; i < encryptedPaths.length; i++) { const path = encryptedPaths[i]; this.stdout(path); } - this.stdout(''); - this.stdout('# Decrypted paths'); - this.stdout(''); + this.stdout(""); + this.stdout("# Decrypted paths"); + this.stdout(""); for (let i = 0; i < decryptedPaths.length; i++) { const path = decryptedPaths[i]; this.stdout(path); @@ -178,7 +177,6 @@ class Command extends BaseCommand { return; } } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-edit.js b/CliClient/app/command-edit.js index 9fb39ec450..781297828e 100644 --- a/CliClient/app/command-edit.js +++ b/CliClient/app/command-edit.js @@ -1,23 +1,22 @@ -const fs = require('fs-extra'); -const { BaseCommand } = require('./base-command.js'); -const { uuid } = require('lib/uuid.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const Folder = require('lib/models/Folder.js'); -const Note = require('lib/models/Note.js'); -const Setting = require('lib/models/Setting.js'); -const BaseModel = require('lib/BaseModel.js'); -const { cliUtils } = require('./cli-utils.js'); -const { time } = require('lib/time-utils.js'); +const fs = require("fs-extra"); +const { BaseCommand } = require("./base-command.js"); +const { uuid } = require("lib/uuid.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const Folder = require("lib/models/Folder.js"); +const Note = require("lib/models/Note.js"); +const Setting = require("lib/models/Setting.js"); +const BaseModel = require("lib/BaseModel.js"); +const { cliUtils } = require("./cli-utils.js"); +const { time } = require("lib/time-utils.js"); class Command extends BaseCommand { - usage() { - return 'edit '; + return "edit "; } description() { - return _('Edit note.'); + return _("Edit note."); } async action(args) { @@ -26,22 +25,22 @@ class Command extends BaseCommand { const onFinishedEditing = async () => { if (tempFilePath) fs.removeSync(tempFilePath); - } + }; const textEditorPath = () => { - if (Setting.value('editor')) return Setting.value('editor'); + if (Setting.value("editor")) return Setting.value("editor"); if (process.env.EDITOR) return process.env.EDITOR; - throw new Error(_('No text editor is defined. Please set it using `config editor `')); - } + throw new Error(_("No text editor is defined. Please set it using `config editor `")); + }; - try { + try { // ------------------------------------------------------------------------- // Load note or create it if it doesn't exist // ------------------------------------------------------------------------- - let title = args['note']; + let title = args["note"]; - if (!app().currentFolder()) throw new Error(_('No active notebook.')); + if (!app().currentFolder()) throw new Error(_("No active notebook.")); let note = await app().loadItem(BaseModel.TYPE_NOTE, title); this.encryptionCheck(note); @@ -58,14 +57,14 @@ class Command extends BaseCommand { // ------------------------------------------------------------------------- let editorPath = textEditorPath(); - let editorArgs = editorPath.split(' '); + let editorArgs = editorPath.split(" "); editorPath = editorArgs[0]; editorArgs = editorArgs.splice(1); const originalContent = await Note.serializeForEdit(note); - tempFilePath = Setting.value('tempDir') + '/' + uuid.create() + '.md'; + tempFilePath = Setting.value("tempDir") + "/" + uuid.create() + ".md"; editorArgs.push(tempFilePath); await fs.writeFile(tempFilePath, originalContent); @@ -74,46 +73,56 @@ class Command extends BaseCommand { // Start editing the file // ------------------------------------------------------------------------- - this.logger().info('Disabling fullscreen...'); + this.logger().info("Disabling fullscreen..."); - app().gui().showModalOverlay(_('Starting to edit note. Close the editor to get back to the prompt.')); - await app().gui().forceRender(); - const termState = app().gui().termSaveState(); + app() + .gui() + .showModalOverlay(_("Starting to edit note. Close the editor to get back to the prompt.")); + await app() + .gui() + .forceRender(); + const termState = app() + .gui() + .termSaveState(); - const spawnSync = require('child_process').spawnSync; - const result = spawnSync(editorPath, editorArgs, { stdio: 'inherit' }); + const spawnSync = require("child_process").spawnSync; + const result = spawnSync(editorPath, editorArgs, { stdio: "inherit" }); - if (result.error) this.stdout(_('Error opening note in editor: %s', result.error.message)); + if (result.error) this.stdout(_("Error opening note in editor: %s", result.error.message)); - app().gui().termRestoreState(termState); - app().gui().hideModalOverlay(); - app().gui().forceRender(); + app() + .gui() + .termRestoreState(termState); + app() + .gui() + .hideModalOverlay(); + app() + .gui() + .forceRender(); // ------------------------------------------------------------------------- // Save the note and clean up // ------------------------------------------------------------------------- - const updatedContent = await fs.readFile(tempFilePath, 'utf8'); + const updatedContent = await fs.readFile(tempFilePath, "utf8"); if (updatedContent !== originalContent) { let updatedNote = await Note.unserializeForEdit(updatedContent); updatedNote.id = note.id; await Note.save(updatedNote); - this.stdout(_('Note has been saved.')); + this.stdout(_("Note has been saved.")); } this.dispatch({ - type: 'NOTE_SELECT', + type: "NOTE_SELECT", id: note.id, }); await onFinishedEditing(); - - } catch(error) { + } catch (error) { await onFinishedEditing(); throw error; } } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-exit.js b/CliClient/app/command-exit.js index 32be81aff7..20a15bdbdf 100644 --- a/CliClient/app/command-exit.js +++ b/CliClient/app/command-exit.js @@ -1,25 +1,23 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); class Command extends BaseCommand { - usage() { - return 'exit'; + return "exit"; } description() { - return _('Exits the application.'); + return _("Exits the application."); } compatibleUis() { - return ['gui']; + return ["gui"]; } async action(args) { await app().exit(); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-export-sync-status.js b/CliClient/app/command-export-sync-status.js index 5b900c4147..578a6f66eb 100644 --- a/CliClient/app/command-export-sync-status.js +++ b/CliClient/app/command-export-sync-status.js @@ -1,19 +1,18 @@ -const { BaseCommand } = require('./base-command.js'); -const { Database } = require('lib/database.js'); -const { app } = require('./app.js'); -const Setting = require('lib/models/Setting.js'); -const { _ } = require('lib/locale.js'); -const { ReportService } = require('lib/services/report.js'); -const fs = require('fs-extra'); +const { BaseCommand } = require("./base-command.js"); +const { Database } = require("lib/database.js"); +const { app } = require("./app.js"); +const Setting = require("lib/models/Setting.js"); +const { _ } = require("lib/locale.js"); +const { ReportService } = require("lib/services/report.js"); +const fs = require("fs-extra"); class Command extends BaseCommand { - usage() { - return 'export-sync-status'; + return "export-sync-status"; } description() { - return 'Export sync status'; + return "Export sync status"; } hidden() { @@ -22,15 +21,18 @@ class Command extends BaseCommand { async action(args) { const service = new ReportService(); - const csv = await service.basicItemList({ format: 'csv' }); - const filePath = Setting.value('profileDir') + '/syncReport-' + (new Date()).getTime() + '.csv'; + const csv = await service.basicItemList({ format: "csv" }); + const filePath = Setting.value("profileDir") + "/syncReport-" + new Date().getTime() + ".csv"; await fs.writeFileSync(filePath, csv); - this.stdout('Sync status exported to ' + filePath); + this.stdout("Sync status exported to " + filePath); - app().gui().showConsole(); - app().gui().maximizeConsole(); + app() + .gui() + .showConsole(); + app() + .gui() + .maximizeConsole(); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-export.js b/CliClient/app/command-export.js index 624bce7522..c92e0de427 100644 --- a/CliClient/app/command-export.js +++ b/CliClient/app/command-export.js @@ -1,61 +1,56 @@ -const { BaseCommand } = require('./base-command.js'); -const InteropService = require('lib/services/InteropService.js'); -const BaseModel = require('lib/BaseModel.js'); -const Note = require('lib/models/Note.js'); -const { reg } = require('lib/registry.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const fs = require('fs-extra'); +const { BaseCommand } = require("./base-command.js"); +const InteropService = require("lib/services/InteropService.js"); +const BaseModel = require("lib/BaseModel.js"); +const Note = require("lib/models/Note.js"); +const { reg } = require("lib/registry.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const fs = require("fs-extra"); class Command extends BaseCommand { - usage() { - return 'export '; + return "export "; } description() { - return _('Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.'); + return _("Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources."); } options() { const service = new InteropService(); - const formats = service.modules() - .filter(m => m.type === 'exporter') - .map(m => m.format + (m.description ? ' (' + m.description + ')' : '')); + const formats = service + .modules() + .filter(m => m.type === "exporter") + .map(m => m.format + (m.description ? " (" + m.description + ")" : "")); return [ - ['--format ', _('Destination format: %s', formats.join(', '))], - ['--note ', _('Exports only the given note.')], - ['--notebook ', _('Exports only the given notebook.')], + ["--format ", _("Destination format: %s", formats.join(", "))], + ["--note ", _("Exports only the given note.")], + ["--notebook ", _("Exports only the given notebook.")], ]; } - + async action(args) { let exportOptions = {}; exportOptions.path = args.path; - exportOptions.format = args.options.format ? args.options.format : 'jex'; + exportOptions.format = args.options.format ? args.options.format : "jex"; if (args.options.note) { - const notes = await app().loadItems(BaseModel.TYPE_NOTE, args.options.note, { parent: app().currentFolder() }); if (!notes.length) throw new Error(_('Cannot find "%s".', args.options.note)); - exportOptions.sourceNoteIds = notes.map((n) => n.id); - + exportOptions.sourceNoteIds = notes.map(n => n.id); } else if (args.options.notebook) { - const folders = await app().loadItems(BaseModel.TYPE_FOLDER, args.options.notebook); if (!folders.length) throw new Error(_('Cannot find "%s".', args.options.notebook)); - exportOptions.sourceFolderIds = folders.map((n) => n.id); - + exportOptions.sourceFolderIds = folders.map(n => n.id); } const service = new InteropService(); const result = await service.export(exportOptions); - result.warnings.map((w) => this.stdout(w)); + result.warnings.map(w => this.stdout(w)); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-geoloc.js b/CliClient/app/command-geoloc.js index eddb3bf694..015c4f54d2 100644 --- a/CliClient/app/command-geoloc.js +++ b/CliClient/app/command-geoloc.js @@ -1,31 +1,31 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const BaseModel = require('lib/BaseModel.js'); -const Folder = require('lib/models/Folder.js'); -const Note = require('lib/models/Note.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const BaseModel = require("lib/BaseModel.js"); +const Folder = require("lib/models/Folder.js"); +const Note = require("lib/models/Note.js"); class Command extends BaseCommand { - usage() { - return 'geoloc '; + return "geoloc "; } description() { - return _('Displays a geolocation URL for the note.'); + return _("Displays a geolocation URL for the note."); } async action(args) { - let title = args['note']; + let title = args["note"]; let item = await app().loadItem(BaseModel.TYPE_NOTE, title, { parent: app().currentFolder() }); if (!item) throw new Error(_('Cannot find "%s".', title)); const url = Note.geolocationUrl(item); this.stdout(url); - app().gui().showConsole(); + app() + .gui() + .showConsole(); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-help.js b/CliClient/app/command-help.js index d743b08bc1..faa2566b78 100644 --- a/CliClient/app/command-help.js +++ b/CliClient/app/command-help.js @@ -1,20 +1,19 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { renderCommandHelp } = require('./help-utils.js'); -const { Database } = require('lib/database.js'); -const Setting = require('lib/models/Setting.js'); -const { wrap } = require('lib/string-utils.js'); -const { _ } = require('lib/locale.js'); -const { cliUtils } = require('./cli-utils.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { renderCommandHelp } = require("./help-utils.js"); +const { Database } = require("lib/database.js"); +const Setting = require("lib/models/Setting.js"); +const { wrap } = require("lib/string-utils.js"); +const { _ } = require("lib/locale.js"); +const { cliUtils } = require("./cli-utils.js"); class Command extends BaseCommand { - usage() { - return 'help [command]'; + return "help [command]"; } description() { - return _('Displays usage information.'); + return _("Displays usage information."); } allCommands() { @@ -28,7 +27,7 @@ class Command extends BaseCommand { output.push(command); } - output.sort((a, b) => a.name() < b.name() ? -1 : +1); + output.sort((a, b) => (a.name() < b.name() ? -1 : +1)); return output; } @@ -36,56 +35,69 @@ class Command extends BaseCommand { async action(args) { const stdoutWidth = app().commandStdoutMaxWidth(); - if (args.command === 'shortcuts' || args.command === 'keymap') { - this.stdout(_('For information on how to customise the shortcuts please visit %s', 'http://joplin.cozic.net/terminal/#shortcuts')); - this.stdout(''); + if (args.command === "shortcuts" || args.command === "keymap") { + this.stdout(_("For information on how to customise the shortcuts please visit %s", "http://joplin.cozic.net/terminal/#shortcuts")); + this.stdout(""); - if (app().gui().isDummy()) { - throw new Error(_('Shortcuts are not available in CLI mode.')); + if ( + app() + .gui() + .isDummy() + ) { + throw new Error(_("Shortcuts are not available in CLI mode.")); } - const keymap = app().gui().keymap(); + const keymap = app() + .gui() + .keymap(); let rows = []; for (let i = 0; i < keymap.length; i++) { const item = keymap[i]; - const keys = item.keys.map((k) => k === ' ' ? '(SPACE)' : k); - rows.push([keys.join(', '), item.command]); + const keys = item.keys.map(k => (k === " " ? "(SPACE)" : k)); + rows.push([keys.join(", "), item.command]); } cliUtils.printArray(this.stdout.bind(this), rows); - } else if (args.command === 'all') { + } else if (args.command === "all") { const commands = this.allCommands(); - const output = commands.map((c) => renderCommandHelp(c)); - this.stdout(output.join('\n\n')); + const output = commands.map(c => renderCommandHelp(c)); + this.stdout(output.join("\n\n")); } else if (args.command) { - const command = app().findCommandByName(args['command']); + const command = app().findCommandByName(args["command"]); if (!command) throw new Error(_('Cannot find "%s".', args.command)); this.stdout(renderCommandHelp(command, stdoutWidth)); } else { - const commandNames = this.allCommands().map((a) => a.name()); + const commandNames = this.allCommands().map(a => a.name()); - this.stdout(_('Type `help [command]` for more information about a command; or type `help all` for the complete usage information.')); - this.stdout(''); - this.stdout(_('The possible commands are:')); - this.stdout(''); - this.stdout(commandNames.join(', ')); - this.stdout(''); - this.stdout(_('In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.')); - this.stdout(''); - this.stdout(_('To move from one pane to another, press Tab or Shift+Tab.')); - this.stdout(_('Use the arrows and page up/down to scroll the lists and text areas (including this console).')); + this.stdout(_("Type `help [command]` for more information about a command; or type `help all` for the complete usage information.")); + this.stdout(""); + this.stdout(_("The possible commands are:")); + this.stdout(""); + this.stdout(commandNames.join(", ")); + this.stdout(""); + this.stdout( + _( + "In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item." + ) + ); + this.stdout(""); + this.stdout(_("To move from one pane to another, press Tab or Shift+Tab.")); + this.stdout(_("Use the arrows and page up/down to scroll the lists and text areas (including this console).")); this.stdout(_('To maximise/minimise the console, press "TC".')); this.stdout(_('To enter command line mode, press ":"')); - this.stdout(_('To exit command line mode, press ESCAPE')); - this.stdout(_('For the list of keyboard shortcuts and config options, type `help keymap`')); + this.stdout(_("To exit command line mode, press ESCAPE")); + this.stdout(_("For the list of keyboard shortcuts and config options, type `help keymap`")); } - app().gui().showConsole(); - app().gui().maximizeConsole(); + app() + .gui() + .showConsole(); + app() + .gui() + .maximizeConsole(); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-import.js b/CliClient/app/command-import.js index 0f44aef62a..d39cdda1d1 100644 --- a/CliClient/app/command-import.js +++ b/CliClient/app/command-import.js @@ -1,35 +1,34 @@ -const { BaseCommand } = require('./base-command.js'); -const InteropService = require('lib/services/InteropService.js'); -const BaseModel = require('lib/BaseModel.js'); -const Note = require('lib/models/Note.js'); -const { filename, basename, fileExtension } = require('lib/path-utils.js'); -const { importEnex } = require('lib/import-enex'); -const { cliUtils } = require('./cli-utils.js'); -const { reg } = require('lib/registry.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const fs = require('fs-extra'); +const { BaseCommand } = require("./base-command.js"); +const InteropService = require("lib/services/InteropService.js"); +const BaseModel = require("lib/BaseModel.js"); +const Note = require("lib/models/Note.js"); +const { filename, basename, fileExtension } = require("lib/path-utils.js"); +const { importEnex } = require("lib/import-enex"); +const { cliUtils } = require("./cli-utils.js"); +const { reg } = require("lib/registry.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const fs = require("fs-extra"); class Command extends BaseCommand { - usage() { - return 'import [notebook]'; + return "import [notebook]"; } description() { - return _('Imports data into Joplin.'); + return _("Imports data into Joplin."); } options() { const service = new InteropService(); - const formats = service.modules().filter(m => m.type === 'importer').map(m => m.format); + const formats = service + .modules() + .filter(m => m.type === "importer") + .map(m => m.format); - return [ - ['--format ', _('Source format: %s', (['auto'].concat(formats)).join(', '))], - ['-f, --force', _('Do not ask for confirmation.')], - ]; + return [["--format ", _("Source format: %s", ["auto"].concat(formats).join(", "))], ["-f, --force", _("Do not ask for confirmation.")]]; } - + async action(args) { let folder = await app().loadItem(BaseModel.TYPE_FOLDER, args.notebook); @@ -37,39 +36,40 @@ class Command extends BaseCommand { const importOptions = {}; importOptions.path = args.path; - importOptions.format = args.options.format ? args.options.format : 'auto'; + importOptions.format = args.options.format ? args.options.format : "auto"; importOptions.destinationFolderId = folder ? folder.id : null; - let lastProgress = ''; + let lastProgress = ""; // onProgress/onError supported by Enex import only - importOptions.onProgress = (progressState) => { + importOptions.onProgress = progressState => { let line = []; - line.push(_('Found: %d.', progressState.loaded)); - line.push(_('Created: %d.', progressState.created)); - if (progressState.updated) line.push(_('Updated: %d.', progressState.updated)); - if (progressState.skipped) line.push(_('Skipped: %d.', progressState.skipped)); - if (progressState.resourcesCreated) line.push(_('Resources: %d.', progressState.resourcesCreated)); - if (progressState.notesTagged) line.push(_('Tagged: %d.', progressState.notesTagged)); - lastProgress = line.join(' '); + line.push(_("Found: %d.", progressState.loaded)); + line.push(_("Created: %d.", progressState.created)); + if (progressState.updated) line.push(_("Updated: %d.", progressState.updated)); + if (progressState.skipped) line.push(_("Skipped: %d.", progressState.skipped)); + if (progressState.resourcesCreated) line.push(_("Resources: %d.", progressState.resourcesCreated)); + if (progressState.notesTagged) line.push(_("Tagged: %d.", progressState.notesTagged)); + lastProgress = line.join(" "); cliUtils.redraw(lastProgress); }; - importOptions.onError = (error) => { + importOptions.onError = error => { let s = error.trace ? error.trace : error.toString(); this.stdout(s); }; - app().gui().showConsole(); - this.stdout(_('Importing notes...')); + app() + .gui() + .showConsole(); + this.stdout(_("Importing notes...")); const service = new InteropService(); const result = await service.import(importOptions); - result.warnings.map((w) => this.stdout(w)); + result.warnings.map(w => this.stdout(w)); cliUtils.redrawDone(); - if (lastProgress) this.stdout(_('The notes have been imported: %s', lastProgress)); + if (lastProgress) this.stdout(_("The notes have been imported: %s", lastProgress)); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-ls.js b/CliClient/app/command-ls.js index 0f65259150..f925977f30 100644 --- a/CliClient/app/command-ls.js +++ b/CliClient/app/command-ls.js @@ -1,41 +1,45 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const BaseModel = require('lib/BaseModel.js'); -const Folder = require('lib/models/Folder.js'); -const Setting = require('lib/models/Setting.js'); -const Note = require('lib/models/Note.js'); -const { sprintf } = require('sprintf-js'); -const { time } = require('lib/time-utils.js'); -const { cliUtils } = require('./cli-utils.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const BaseModel = require("lib/BaseModel.js"); +const Folder = require("lib/models/Folder.js"); +const Setting = require("lib/models/Setting.js"); +const Note = require("lib/models/Note.js"); +const { sprintf } = require("sprintf-js"); +const { time } = require("lib/time-utils.js"); +const { cliUtils } = require("./cli-utils.js"); class Command extends BaseCommand { - usage() { - return 'ls [note-pattern]'; + return "ls [note-pattern]"; } description() { - return _('Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.'); + return _("Displays the notes in the current notebook. Use `ls /` to display the list of notebooks."); } enabled() { return false; } - + options() { return [ - ['-n, --limit ', _('Displays only the first top notes.')], - ['-s, --sort ', _('Sorts the item by (eg. title, updated_time, created_time).')], - ['-r, --reverse', _('Reverses the sorting order.')], - ['-t, --type ', _('Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.')], - ['-f, --format ', _('Either "text" or "json"')], - ['-l, --long', _('Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE')], + ["-n, --limit ", _("Displays only the first top notes.")], + ["-s, --sort ", _("Sorts the item by (eg. title, updated_time, created_time).")], + ["-r, --reverse", _("Reverses the sorting order.")], + [ + "-t, --type ", + _( + "Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos." + ), + ], + ["-f, --format ", _('Either "text" or "json"')], + ["-l, --long", _("Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE")], ]; } async action(args) { - let pattern = args['note-pattern']; + let pattern = args["note-pattern"]; let items = []; let options = args.options; @@ -43,30 +47,30 @@ class Command extends BaseCommand { if (options.limit) queryOptions.limit = options.limit; if (options.sort) { queryOptions.orderBy = options.sort; - queryOptions.orderByDir = 'ASC'; + queryOptions.orderByDir = "ASC"; } - if (options.reverse === true) queryOptions.orderByDir = queryOptions.orderByDir == 'ASC' ? 'DESC' : 'ASC'; + if (options.reverse === true) queryOptions.orderByDir = queryOptions.orderByDir == "ASC" ? "DESC" : "ASC"; queryOptions.caseInsensitive = true; if (options.type) { queryOptions.itemTypes = []; - if (options.type.indexOf('n') >= 0) queryOptions.itemTypes.push('note'); - if (options.type.indexOf('t') >= 0) queryOptions.itemTypes.push('todo'); + if (options.type.indexOf("n") >= 0) queryOptions.itemTypes.push("note"); + if (options.type.indexOf("t") >= 0) queryOptions.itemTypes.push("todo"); } if (pattern) queryOptions.titlePattern = pattern; - queryOptions.uncompletedTodosOnTop = Setting.value('uncompletedTodosOnTop'); + queryOptions.uncompletedTodosOnTop = Setting.value("uncompletedTodosOnTop"); let modelType = null; - if (pattern == '/' || !app().currentFolder()) { + if (pattern == "/" || !app().currentFolder()) { queryOptions.includeConflictFolder = true; items = await Folder.all(queryOptions); modelType = Folder.modelType(); } else { - if (!app().currentFolder()) throw new Error(_('Please select a notebook first.')); + if (!app().currentFolder()) throw new Error(_("Please select a notebook first.")); items = await Note.previews(app().currentFolder().id, queryOptions); modelType = Note.modelType(); } - if (options.format && options.format == 'json') { + if (options.format && options.format == "json") { this.stdout(JSON.stringify(items)); } else { let hasTodos = false; @@ -98,16 +102,16 @@ class Command extends BaseCommand { let title = item.title; if (!shortIdShown && (seenTitles.indexOf(item.title) >= 0 || !item.title)) { - title += ' (' + BaseModel.shortId(item.id) + ')'; + title += " (" + BaseModel.shortId(item.id) + ")"; } else { seenTitles.push(item.title); } if (hasTodos) { if (item.is_todo) { - row.push(sprintf('[%s]', !!item.todo_completed ? 'X' : ' ')); + row.push(sprintf("[%s]", !!item.todo_completed ? "X" : " ")); } else { - row.push(' '); + row.push(" "); } } @@ -118,9 +122,7 @@ class Command extends BaseCommand { cliUtils.printArray(this.stdout.bind(this), rows); } - } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-mkbook.js b/CliClient/app/command-mkbook.js index cc668b49a1..2aa247bdb9 100644 --- a/CliClient/app/command-mkbook.js +++ b/CliClient/app/command-mkbook.js @@ -1,24 +1,22 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const Folder = require('lib/models/Folder.js'); -const { reg } = require('lib/registry.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const Folder = require("lib/models/Folder.js"); +const { reg } = require("lib/registry.js"); class Command extends BaseCommand { - usage() { - return 'mkbook '; + return "mkbook "; } description() { - return _('Creates a new notebook.'); + return _("Creates a new notebook."); } async action(args) { - let folder = await Folder.save({ title: args['new-notebook'] }, { userSideValidation: true }); + let folder = await Folder.save({ title: args["new-notebook"] }, { userSideValidation: true }); app().switchCurrentFolder(folder); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-mknote.js b/CliClient/app/command-mknote.js index 79f4c19a7f..89028a92b5 100644 --- a/CliClient/app/command-mknote.js +++ b/CliClient/app/command-mknote.js @@ -1,23 +1,22 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const Note = require('lib/models/Note.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const Note = require("lib/models/Note.js"); class Command extends BaseCommand { - usage() { - return 'mknote '; + return "mknote "; } description() { - return _('Creates a new note.'); + return _("Creates a new note."); } async action(args) { - if (!app().currentFolder()) throw new Error(_('Notes can only be created within a notebook.')); + if (!app().currentFolder()) throw new Error(_("Notes can only be created within a notebook.")); let note = { - title: args['new-note'], + title: args["new-note"], parent_id: app().currentFolder().id, }; @@ -26,7 +25,6 @@ class Command extends BaseCommand { app().switchCurrentFolder(app().currentFolder()); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-mktodo.js b/CliClient/app/command-mktodo.js index d96fb52751..7a442756f1 100644 --- a/CliClient/app/command-mktodo.js +++ b/CliClient/app/command-mktodo.js @@ -1,23 +1,22 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const Note = require('lib/models/Note.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const Note = require("lib/models/Note.js"); class Command extends BaseCommand { - usage() { - return 'mktodo '; + return "mktodo "; } description() { - return _('Creates a new to-do.'); + return _("Creates a new to-do."); } async action(args) { - if (!app().currentFolder()) throw new Error(_('Notes can only be created within a notebook.')); + if (!app().currentFolder()) throw new Error(_("Notes can only be created within a notebook.")); let note = { - title: args['new-todo'], + title: args["new-todo"], parent_id: app().currentFolder().id, is_todo: 1, }; @@ -27,7 +26,6 @@ class Command extends BaseCommand { app().switchCurrentFolder(app().currentFolder()); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-mv.js b/CliClient/app/command-mv.js index 729bab96ef..734dcfd65b 100644 --- a/CliClient/app/command-mv.js +++ b/CliClient/app/command-mv.js @@ -1,25 +1,24 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const BaseModel = require('lib/BaseModel.js'); -const Folder = require('lib/models/Folder.js'); -const Note = require('lib/models/Note.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const BaseModel = require("lib/BaseModel.js"); +const Folder = require("lib/models/Folder.js"); +const Note = require("lib/models/Note.js"); class Command extends BaseCommand { - usage() { - return 'mv [notebook]'; + return "mv [notebook]"; } description() { - return _('Moves the notes matching to [notebook].'); + return _("Moves the notes matching to [notebook]."); } async action(args) { - const pattern = args['note']; - const destination = args['notebook']; - - const folder = await Folder.loadByField('title', destination); + const pattern = args["note"]; + const destination = args["notebook"]; + + const folder = await Folder.loadByField("title", destination); if (!folder) throw new Error(_('Cannot find "%s".', destination)); const notes = await app().loadItems(BaseModel.TYPE_NOTE, pattern); @@ -29,7 +28,6 @@ class Command extends BaseCommand { await Note.moveToFolder(notes[i].id, folder.id); } } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-ren.js b/CliClient/app/command-ren.js index 45b60671ca..3ed99c1d0f 100644 --- a/CliClient/app/command-ren.js +++ b/CliClient/app/command-ren.js @@ -1,25 +1,24 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const BaseModel = require('lib/BaseModel.js'); -const Folder = require('lib/models/Folder.js'); -const Note = require('lib/models/Note.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const BaseModel = require("lib/BaseModel.js"); +const Folder = require("lib/models/Folder.js"); +const Note = require("lib/models/Note.js"); class Command extends BaseCommand { - usage() { - return 'ren '; + return "ren "; } description() { - return _('Renames the given (note or notebook) to .'); + return _("Renames the given (note or notebook) to ."); } async action(args) { - const pattern = args['item']; - const name = args['name']; + const pattern = args["item"]; + const name = args["name"]; - const item = await app().loadItem('folderOrNote', pattern); + const item = await app().loadItem("folderOrNote", pattern); this.encryptionCheck(item); if (!item) throw new Error(_('Cannot find "%s".', pattern)); @@ -35,7 +34,6 @@ class Command extends BaseCommand { await Note.save(newItem); } } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-rmbook.js b/CliClient/app/command-rmbook.js index 6e9c48474f..1058586e62 100644 --- a/CliClient/app/command-rmbook.js +++ b/CliClient/app/command-rmbook.js @@ -1,40 +1,36 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const BaseItem = require('lib/models/BaseItem.js'); -const Folder = require('lib/models/Folder.js'); -const Note = require('lib/models/Note.js'); -const BaseModel = require('lib/BaseModel.js'); -const { cliUtils } = require('./cli-utils.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const BaseItem = require("lib/models/BaseItem.js"); +const Folder = require("lib/models/Folder.js"); +const Note = require("lib/models/Note.js"); +const BaseModel = require("lib/BaseModel.js"); +const { cliUtils } = require("./cli-utils.js"); class Command extends BaseCommand { - usage() { - return 'rmbook '; + return "rmbook "; } description() { - return _('Deletes the given notebook.'); + return _("Deletes the given notebook."); } options() { - return [ - ['-f, --force', _('Deletes the notebook without asking for confirmation.')], - ]; + return [["-f, --force", _("Deletes the notebook without asking for confirmation.")]]; } async action(args) { - const pattern = args['notebook']; + const pattern = args["notebook"]; const force = args.options && args.options.force === true; const folder = await app().loadItem(BaseModel.TYPE_FOLDER, pattern); if (!folder) throw new Error(_('Cannot find "%s".', pattern)); - const ok = force ? true : await this.prompt(_('Delete notebook? All notes within this notebook will also be deleted.'), { booleanAnswerDefault: 'n' }); + const ok = force ? true : await this.prompt(_("Delete notebook? All notes within this notebook will also be deleted."), { booleanAnswerDefault: "n" }); if (!ok) return; await Folder.delete(folder.id); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-rmnote.js b/CliClient/app/command-rmnote.js index 8e1ecea2f1..136ffbb360 100644 --- a/CliClient/app/command-rmnote.js +++ b/CliClient/app/command-rmnote.js @@ -1,41 +1,37 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const BaseItem = require('lib/models/BaseItem.js'); -const Folder = require('lib/models/Folder.js'); -const Note = require('lib/models/Note.js'); -const BaseModel = require('lib/BaseModel.js'); -const { cliUtils } = require('./cli-utils.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const BaseItem = require("lib/models/BaseItem.js"); +const Folder = require("lib/models/Folder.js"); +const Note = require("lib/models/Note.js"); +const BaseModel = require("lib/BaseModel.js"); +const { cliUtils } = require("./cli-utils.js"); class Command extends BaseCommand { - usage() { - return 'rmnote '; + return "rmnote "; } description() { - return _('Deletes the notes matching .'); + return _("Deletes the notes matching ."); } options() { - return [ - ['-f, --force', _('Deletes the notes without asking for confirmation.')], - ]; + return [["-f, --force", _("Deletes the notes without asking for confirmation.")]]; } async action(args) { - const pattern = args['note-pattern']; + const pattern = args["note-pattern"]; const force = args.options && args.options.force === true; const notes = await app().loadItems(BaseModel.TYPE_NOTE, pattern); if (!notes.length) throw new Error(_('Cannot find "%s".', pattern)); - const ok = force ? true : await this.prompt(notes.length > 1 ? _('%d notes match this pattern. Delete them?', notes.length) : _('Delete note?'), { booleanAnswerDefault: 'n' }); + const ok = force ? true : await this.prompt(notes.length > 1 ? _("%d notes match this pattern. Delete them?", notes.length) : _("Delete note?"), { booleanAnswerDefault: "n" }); if (!ok) return; - let ids = notes.map((n) => n.id); + let ids = notes.map(n => n.id); await Note.batchDelete(ids); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-search.js b/CliClient/app/command-search.js index 3ae14ea2cd..43142f4ec6 100644 --- a/CliClient/app/command-search.js +++ b/CliClient/app/command-search.js @@ -1,30 +1,29 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const BaseModel = require('lib/BaseModel.js'); -const Folder = require('lib/models/Folder.js'); -const Note = require('lib/models/Note.js'); -const { sprintf } = require('sprintf-js'); -const { time } = require('lib/time-utils.js'); -const { uuid } = require('lib/uuid.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const BaseModel = require("lib/BaseModel.js"); +const Folder = require("lib/models/Folder.js"); +const Note = require("lib/models/Note.js"); +const { sprintf } = require("sprintf-js"); +const { time } = require("lib/time-utils.js"); +const { uuid } = require("lib/uuid.js"); class Command extends BaseCommand { - usage() { - return 'search [notebook]'; + return "search [notebook]"; } description() { - return _('Searches for the given in all the notes.'); + return _("Searches for the given in all the notes."); } compatibleUis() { - return ['gui']; + return ["gui"]; } async action(args) { - let pattern = args['pattern']; - let folderTitle = args['notebook']; + let pattern = args["pattern"]; + let folderTitle = args["notebook"]; let folder = null; if (folderTitle) { @@ -35,18 +34,18 @@ class Command extends BaseCommand { const searchId = uuid.create(); this.dispatch({ - type: 'SEARCH_ADD', + type: "SEARCH_ADD", search: { id: searchId, title: pattern, query_pattern: pattern, - query_folder_id: folder ? folder.id : '', + query_folder_id: folder ? folder.id : "", type_: BaseModel.TYPE_SEARCH, }, }); this.dispatch({ - type: 'SEARCH_SELECT', + type: "SEARCH_SELECT", id: searchId, }); @@ -79,7 +78,6 @@ class Command extends BaseCommand { // this.stdout(line); // } } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-set.js b/CliClient/app/command-set.js index 3a01ae5b4e..4904d59b99 100644 --- a/CliClient/app/command-set.js +++ b/CliClient/app/command-set.js @@ -1,16 +1,15 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const BaseModel = require('lib/BaseModel.js'); -const { Database } = require('lib/database.js'); -const Folder = require('lib/models/Folder.js'); -const Note = require('lib/models/Note.js'); -const BaseItem = require('lib/models/BaseItem.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const BaseModel = require("lib/BaseModel.js"); +const { Database } = require("lib/database.js"); +const Folder = require("lib/models/Folder.js"); +const Note = require("lib/models/Note.js"); +const BaseItem = require("lib/models/BaseItem.js"); class Command extends BaseCommand { - usage() { - return 'set [value]'; + return "set [value]"; } description() { @@ -18,18 +17,18 @@ class Command extends BaseCommand { const s = []; for (let i = 0; i < fields.length; i++) { const f = fields[i]; - if (f.name === 'id') continue; - s.push(f.name + ' (' + Database.enumName('fieldType', f.type) + ')'); + if (f.name === "id") continue; + s.push(f.name + " (" + Database.enumName("fieldType", f.type) + ")"); } - return _('Sets the property of the given to the given [value]. Possible properties are:\n\n%s', s.join(', ')); + return _("Sets the property of the given to the given [value]. Possible properties are:\n\n%s", s.join(", ")); } async action(args) { - let title = args['note']; - let propName = args['name']; - let propValue = args['value']; - if (!propValue) propValue = ''; + let title = args["note"]; + let propName = args["name"]; + let propValue = args["value"]; + if (!propValue) propValue = ""; let notes = await app().loadItems(BaseModel.TYPE_NOTE, title); if (!notes.length) throw new Error(_('Cannot find "%s".', title)); @@ -45,7 +44,6 @@ class Command extends BaseCommand { await Note.save(newNote); } } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-status.js b/CliClient/app/command-status.js index 0bda410bff..126a769105 100644 --- a/CliClient/app/command-status.js +++ b/CliClient/app/command-status.js @@ -1,31 +1,30 @@ -const { BaseCommand } = require('./base-command.js'); -const { Database } = require('lib/database.js'); -const { app } = require('./app.js'); -const Setting = require('lib/models/Setting.js'); -const { _ } = require('lib/locale.js'); -const { ReportService } = require('lib/services/report.js'); +const { BaseCommand } = require("./base-command.js"); +const { Database } = require("lib/database.js"); +const { app } = require("./app.js"); +const Setting = require("lib/models/Setting.js"); +const { _ } = require("lib/locale.js"); +const { ReportService } = require("lib/services/report.js"); class Command extends BaseCommand { - usage() { - return 'status'; + return "status"; } description() { - return _('Displays summary about the notes and notebooks.'); + return _("Displays summary about the notes and notebooks."); } async action(args) { let service = new ReportService(); - let report = await service.status(Setting.value('sync.target')); + let report = await service.status(Setting.value("sync.target")); for (let i = 0; i < report.length; i++) { let section = report[i]; - if (i > 0) this.stdout(''); + if (i > 0) this.stdout(""); - this.stdout('# ' + section.title); - this.stdout(''); + this.stdout("# " + section.title); + this.stdout(""); for (let n in section.body) { if (!section.body.hasOwnProperty(n)) continue; @@ -34,10 +33,13 @@ class Command extends BaseCommand { } } - app().gui().showConsole(); - app().gui().maximizeConsole(); + app() + .gui() + .showConsole(); + app() + .gui() + .maximizeConsole(); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-sync.js b/CliClient/app/command-sync.js index e31d18f2c9..6183053c61 100644 --- a/CliClient/app/command-sync.js +++ b/CliClient/app/command-sync.js @@ -1,19 +1,18 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const { OneDriveApiNodeUtils } = require('./onedrive-api-node-utils.js'); -const Setting = require('lib/models/Setting.js'); -const BaseItem = require('lib/models/BaseItem.js'); -const { Synchronizer } = require('lib/synchronizer.js'); -const { reg } = require('lib/registry.js'); -const { cliUtils } = require('./cli-utils.js'); -const md5 = require('md5'); -const locker = require('proper-lockfile'); -const fs = require('fs-extra'); -const SyncTargetRegistry = require('lib/SyncTargetRegistry'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const { OneDriveApiNodeUtils } = require("./onedrive-api-node-utils.js"); +const Setting = require("lib/models/Setting.js"); +const BaseItem = require("lib/models/BaseItem.js"); +const { Synchronizer } = require("lib/synchronizer.js"); +const { reg } = require("lib/registry.js"); +const { cliUtils } = require("./cli-utils.js"); +const md5 = require("md5"); +const locker = require("proper-lockfile"); +const fs = require("fs-extra"); +const SyncTargetRegistry = require("lib/SyncTargetRegistry"); class Command extends BaseCommand { - constructor() { super(); this.syncTargetId_ = null; @@ -22,17 +21,15 @@ class Command extends BaseCommand { } usage() { - return 'sync'; + return "sync"; } description() { - return _('Synchronises with remote storage.'); + return _("Synchronises with remote storage."); } options() { - return [ - ['--target ', _('Sync to provided target (defaults to sync.target config value)')], - ]; + return [["--target ", _("Sync to provided target (defaults to sync.target config value)")]]; } static lockFile(filePath) { @@ -65,23 +62,26 @@ class Command extends BaseCommand { const syncTarget = reg.syncTarget(this.syncTargetId_); const syncTargetMd = SyncTargetRegistry.idToMetadata(this.syncTargetId_); - if (this.syncTargetId_ === 3 || this.syncTargetId_ === 4) { // OneDrive + if (this.syncTargetId_ === 3 || this.syncTargetId_ === 4) { + // OneDrive this.oneDriveApiUtils_ = new OneDriveApiNodeUtils(syncTarget.api()); const auth = await this.oneDriveApiUtils_.oauthDance({ - log: (...s) => { return this.stdout(...s); } + log: (...s) => { + return this.stdout(...s); + }, }); this.oneDriveApiUtils_ = null; - - Setting.setValue('sync.' + this.syncTargetId_ + '.auth', auth ? JSON.stringify(auth) : null); + + Setting.setValue("sync." + this.syncTargetId_ + ".auth", auth ? JSON.stringify(auth) : null); if (!auth) { - this.stdout(_('Authentication was not completed (did not receive an authentication token).')); + this.stdout(_("Authentication was not completed (did not receive an authentication token).")); return false; } return true; } - this.stdout(_('Not authentified with %s. Please provide any missing credentials.', syncTarget.label())); + this.stdout(_("Not authentified with %s. Please provide any missing credentials.", syncTarget.label())); return false; } @@ -100,15 +100,15 @@ class Command extends BaseCommand { this.releaseLockFn_ = null; // Lock is unique per profile/database - const lockFilePath = require('os').tmpdir() + '/synclock_' + md5(escape(Setting.value('profileDir'))); // https://github.com/pvorb/node-md5/issues/41 - if (!await fs.pathExists(lockFilePath)) await fs.writeFile(lockFilePath, 'synclock'); + const lockFilePath = require("os").tmpdir() + "/synclock_" + md5(escape(Setting.value("profileDir"))); // https://github.com/pvorb/node-md5/issues/41 + if (!await fs.pathExists(lockFilePath)) await fs.writeFile(lockFilePath, "synclock"); try { - if (await Command.isLocked(lockFilePath)) throw new Error(_('Synchronisation is already in progress.')); + if (await Command.isLocked(lockFilePath)) throw new Error(_("Synchronisation is already in progress.")); this.releaseLockFn_ = await Command.lockFile(lockFilePath); } catch (error) { - if (error.code == 'ELOCKED') { + if (error.code == "ELOCKED") { const msg = _('Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at "%s" and resume the operation.', error.file); this.stdout(msg); return; @@ -125,39 +125,43 @@ class Command extends BaseCommand { }; try { - this.syncTargetId_ = Setting.value('sync.target'); + this.syncTargetId_ = Setting.value("sync.target"); if (args.options.target) this.syncTargetId_ = args.options.target; const syncTarget = reg.syncTarget(this.syncTargetId_); if (!syncTarget.isAuthenticated()) { - app().gui().showConsole(); - app().gui().maximizeConsole(); + app() + .gui() + .showConsole(); + app() + .gui() + .maximizeConsole(); const authDone = await this.doAuth(); if (!authDone) return cleanUp(); } - + const sync = await syncTarget.synchronizer(); let options = { - onProgress: (report) => { + onProgress: report => { let lines = Synchronizer.reportToLines(report); - if (lines.length) cliUtils.redraw(lines.join(' ')); + if (lines.length) cliUtils.redraw(lines.join(" ")); }, - onMessage: (msg) => { + onMessage: msg => { cliUtils.redrawDone(); this.stdout(msg); }, }; - this.stdout(_('Synchronisation target: %s (%s)', Setting.enumOptionLabel('sync.target', this.syncTargetId_), this.syncTargetId_)); + this.stdout(_("Synchronisation target: %s (%s)", Setting.enumOptionLabel("sync.target", this.syncTargetId_), this.syncTargetId_)); - if (!sync) throw new Error(_('Cannot initialize synchroniser.')); + if (!sync) throw new Error(_("Cannot initialize synchroniser.")); - this.stdout(_('Starting synchronisation...')); + this.stdout(_("Starting synchronisation...")); - const contextKey = 'sync.' + this.syncTargetId_ + '.context'; + const contextKey = "sync." + this.syncTargetId_ + ".context"; let context = Setting.value(contextKey); context = context ? JSON.parse(context) : {}; @@ -167,7 +171,7 @@ class Command extends BaseCommand { let newContext = await sync.start(options); Setting.setValue(contextKey, JSON.stringify(newContext)); } catch (error) { - if (error.code == 'alreadyStarted') { + if (error.code == "alreadyStarted") { this.stdout(error.message); } else { throw error; @@ -189,11 +193,11 @@ class Command extends BaseCommand { return; } - const syncTargetId = this.syncTargetId_ ? this.syncTargetId_ : Setting.value('sync.target'); + const syncTargetId = this.syncTargetId_ ? this.syncTargetId_ : Setting.value("sync.target"); cliUtils.redrawDone(); - this.stdout(_('Cancelling... Please wait.')); + this.stdout(_("Cancelling... Please wait.")); const syncTarget = reg.syncTarget(syncTargetId); @@ -211,7 +215,6 @@ class Command extends BaseCommand { cancellable() { return true; } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-tag.js b/CliClient/app/command-tag.js index f2a38943c5..95ec2e1dbd 100644 --- a/CliClient/app/command-tag.js +++ b/CliClient/app/command-tag.js @@ -1,19 +1,20 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const Tag = require('lib/models/Tag.js'); -const BaseModel = require('lib/BaseModel.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const Tag = require("lib/models/Tag.js"); +const BaseModel = require("lib/BaseModel.js"); class Command extends BaseCommand { - usage() { - return 'tag [tag] [note]'; + return "tag [tag] [note]"; } description() { - return _(' can be "add", "remove" or "list" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.'); + return _( + ' can be "add", "remove" or "list" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.' + ); } - + async action(args) { let tag = null; if (args.tag) tag = await app().loadItem(BaseModel.TYPE_TAG, args.tag); @@ -22,35 +23,38 @@ class Command extends BaseCommand { notes = await app().loadItems(BaseModel.TYPE_NOTE, args.note); } - const command = args['tag-command']; + const command = args["tag-command"]; - if (command == 'remove' && !tag) throw new Error(_('Cannot find "%s".', args.tag)); + if (command == "remove" && !tag) throw new Error(_('Cannot find "%s".', args.tag)); - if (command == 'add') { + if (command == "add") { if (!notes.length) throw new Error(_('Cannot find "%s".', args.note)); if (!tag) tag = await Tag.save({ title: args.tag }, { userSideValidation: true }); for (let i = 0; i < notes.length; i++) { await Tag.addNote(tag.id, notes[i].id); } - } else if (command == 'remove') { + } else if (command == "remove") { if (!tag) throw new Error(_('Cannot find "%s".', args.tag)); if (!notes.length) throw new Error(_('Cannot find "%s".', args.note)); for (let i = 0; i < notes.length; i++) { await Tag.removeNote(tag.id, notes[i].id); } - } else if (command == 'list') { + } else if (command == "list") { if (tag) { let notes = await Tag.notes(tag.id); - notes.map((note) => { this.stdout(note.title); }); + notes.map(note => { + this.stdout(note.title); + }); } else { let tags = await Tag.all(); - tags.map((tag) => { this.stdout(tag.title); }); + tags.map(tag => { + this.stdout(tag.title); + }); } } else { throw new Error(_('Invalid command: "%s"', command)); } } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-todo.js b/CliClient/app/command-todo.js index 1f83e2cdad..6821c2b15b 100644 --- a/CliClient/app/command-todo.js +++ b/CliClient/app/command-todo.js @@ -1,24 +1,25 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const BaseModel = require('lib/BaseModel.js'); -const Folder = require('lib/models/Folder.js'); -const Note = require('lib/models/Note.js'); -const { time } = require('lib/time-utils.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const BaseModel = require("lib/BaseModel.js"); +const Folder = require("lib/models/Folder.js"); +const Note = require("lib/models/Note.js"); +const { time } = require("lib/time-utils.js"); class Command extends BaseCommand { - usage() { - return 'todo '; + return "todo "; } description() { - return _(' can either be "toggle" or "clear". Use "toggle" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use "clear" to convert the to-do back to a regular note.'); + return _( + ' can either be "toggle" or "clear". Use "toggle" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use "clear" to convert the to-do back to a regular note.' + ); } async action(args) { - const action = args['todo-command']; - const pattern = args['note-pattern']; + const action = args["todo-command"]; + const pattern = args["note-pattern"]; const notes = await app().loadItems(BaseModel.TYPE_NOTE, pattern); if (!notes.length) throw new Error(_('Cannot find "%s".', pattern)); @@ -31,20 +32,19 @@ class Command extends BaseCommand { id: note.id, }; - if (action == 'toggle') { + if (action == "toggle") { if (!note.is_todo) { toSave = Note.toggleIsTodo(note); } else { toSave.todo_completed = note.todo_completed ? 0 : time.unixMs(); } - } else if (action == 'clear') { + } else if (action == "clear") { toSave.is_todo = 0; - } + } await Note.save(toSave); } } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-undone.js b/CliClient/app/command-undone.js index 3373c0ee32..29d96ee4eb 100644 --- a/CliClient/app/command-undone.js +++ b/CliClient/app/command-undone.js @@ -1,27 +1,25 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const BaseModel = require('lib/BaseModel.js'); -const Folder = require('lib/models/Folder.js'); -const Note = require('lib/models/Note.js'); -const { time } = require('lib/time-utils.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const BaseModel = require("lib/BaseModel.js"); +const Folder = require("lib/models/Folder.js"); +const Note = require("lib/models/Note.js"); +const { time } = require("lib/time-utils.js"); -const CommandDone = require('./command-done.js'); +const CommandDone = require("./command-done.js"); class Command extends BaseCommand { - usage() { - return 'undone '; + return "undone "; } description() { - return _('Marks a to-do as non-completed.'); + return _("Marks a to-do as non-completed."); } async action(args) { await CommandDone.handleAction(this, args, false); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-use.js b/CliClient/app/command-use.js index c25a635c2e..01b41b8768 100644 --- a/CliClient/app/command-use.js +++ b/CliClient/app/command-use.js @@ -1,17 +1,16 @@ -const { BaseCommand } = require('./base-command.js'); -const { app } = require('./app.js'); -const { _ } = require('lib/locale.js'); -const BaseModel = require('lib/BaseModel.js'); -const Folder = require('lib/models/Folder.js'); +const { BaseCommand } = require("./base-command.js"); +const { app } = require("./app.js"); +const { _ } = require("lib/locale.js"); +const BaseModel = require("lib/BaseModel.js"); +const Folder = require("lib/models/Folder.js"); class Command extends BaseCommand { - usage() { - return 'use '; + return "use "; } description() { - return _('Switches to [notebook] - all further operations will happen within this notebook.'); + return _("Switches to [notebook] - all further operations will happen within this notebook."); } autocomplete() { @@ -19,15 +18,14 @@ class Command extends BaseCommand { } compatibleUis() { - return ['cli']; + return ["cli"]; } async action(args) { - let folder = await app().loadItem(BaseModel.TYPE_FOLDER, args['notebook']); - if (!folder) throw new Error(_('Cannot find "%s".', args['notebook'])); + let folder = await app().loadItem(BaseModel.TYPE_FOLDER, args["notebook"]); + if (!folder) throw new Error(_('Cannot find "%s".', args["notebook"])); app().switchCurrentFolder(folder); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/command-version.js b/CliClient/app/command-version.js index 9a3603b249..4012b07d7d 100644 --- a/CliClient/app/command-version.js +++ b/CliClient/app/command-version.js @@ -1,22 +1,20 @@ -const { BaseCommand } = require('./base-command.js'); -const Setting = require('lib/models/Setting.js'); -const { _ } = require('lib/locale.js'); +const { BaseCommand } = require("./base-command.js"); +const Setting = require("lib/models/Setting.js"); +const { _ } = require("lib/locale.js"); class Command extends BaseCommand { - usage() { - return 'version'; + return "version"; } description() { - return _('Displays version information'); + return _("Displays version information"); } async action(args) { - const p = require('./package.json'); - this.stdout(_('%s %s (%s)', p.name, p.version, Setting.value('env'))); + const p = require("./package.json"); + this.stdout(_("%s %s (%s)", p.name, p.version, Setting.value("env"))); } - } -module.exports = Command; \ No newline at end of file +module.exports = Command; diff --git a/CliClient/app/fuzzing.js b/CliClient/app/fuzzing.js index f28fb0c064..468d2c1c57 100644 --- a/CliClient/app/fuzzing.js +++ b/CliClient/app/fuzzing.js @@ -1,17 +1,17 @@ -"use strict" +"use strict"; -const { time } = require('lib/time-utils.js'); -const { Logger } = require('lib/logger.js'); -const Resource = require('lib/models/Resource.js'); -const { dirname } = require('lib/path-utils.js'); -const { FsDriverNode } = require('./fs-driver-node.js'); -const lodash = require('lodash'); -const exec = require('child_process').exec -const fs = require('fs-extra'); +const { time } = require("lib/time-utils.js"); +const { Logger } = require("lib/logger.js"); +const Resource = require("lib/models/Resource.js"); +const { dirname } = require("lib/path-utils.js"); +const { FsDriverNode } = require("./fs-driver-node.js"); +const lodash = require("lodash"); +const exec = require("child_process").exec; +const fs = require("fs-extra"); -const baseDir = dirname(__dirname) + '/tests/fuzzing'; -const syncDir = baseDir + '/sync'; -const joplinAppPath = __dirname + '/main.js'; +const baseDir = dirname(__dirname) + "/tests/fuzzing"; +const syncDir = baseDir + "/sync"; +const joplinAppPath = __dirname + "/main.js"; let syncDurations = []; const fsDriver = new FsDriverNode(); @@ -19,17 +19,17 @@ Logger.fsDriver_ = fsDriver; Resource.fsDriver_ = fsDriver; const logger = new Logger(); -logger.addTarget('console'); +logger.addTarget("console"); logger.setLevel(Logger.LEVEL_DEBUG); -process.on('unhandledRejection', (reason, p) => { - console.error('Unhandled promise rejection', p, 'reason:', reason); +process.on("unhandledRejection", (reason, p) => { + console.error("Unhandled promise rejection", p, "reason:", reason); }); function createClient(id) { return { - 'id': id, - 'profileDir': baseDir + '/client' + id, + id: id, + profileDir: baseDir + "/client" + id, }; } @@ -39,7 +39,11 @@ async function createClients() { for (let clientId = 0; clientId < 2; clientId++) { let client = createClient(clientId); promises.push(fs.remove(client.profileDir)); - promises.push(execCommand(client, 'config sync.target 2').then(() => { return execCommand(client, 'config sync.2.path ' + syncDir); })); + promises.push( + execCommand(client, "config sync.target 2").then(() => { + return execCommand(client, "config sync.2.path " + syncDir); + }) + ); output.push(client); } @@ -54,24 +58,2025 @@ function randomElement(array) { } function randomWord() { - const words = ['belief','scandalous','flawless','wrestle','sort','moldy','carve','incompetent','cruel','awful','fang','holistic','makeshift','synonymous','questionable','soft','drop','boot','whimsical','stir','idea','adhesive','present','hilarious','unusual','divergent','probable','depend','suck','belong','advise','straight','encouraging','wing','clam','serve','fill','nostalgic','dysfunctional','aggressive','floor','baby','grease','sisters','print','switch','control','victorious','cracker','dream','wistful','adaptable','reminiscent','inquisitive','pushy','unaccountable','receive','guttural','two','protect','skin','unbiased','plastic','loutish','zip','used','divide','communicate','dear','muddled','dinosaurs','grip','trees','well-off','calendar','chickens','irate','deranged','trip','stream','white','poison','attack','obtain','theory','laborer','omniscient','brake','maniacal','curvy','smoke','babies','punch','hammer','toothbrush','same','crown','jagged','peep','difficult','reject','merciful','useless','doctor','mix','wicked','plant','quickest','roll','suffer','curly','brother','frighten','cold','tremendous','move','knot','lame','imaginary','capricious','raspy','aunt','loving','wink','wooden','hop','free','drab','fire','instrument','border','frame','silent','glue','decorate','distance','powerful','pig','admit','fix','pour','flesh','profuse','skinny','learn','filthy','dress','bloody','produce','innocent','meaty','pray','slimy','sun','kindhearted','dime','exclusive','boast','neat','ruthless','recess','grieving','daily','hateful','ignorant','fence','spring','slim','education','overflow','plastic','gaping','chew','detect','right','lunch','gainful','argue','cloistered','horses','orange','shame','bitter','able','sail','magical','exist','force','wheel','best','suit','spurious','partner','request','dog','gusty','money','gaze','lonely','company','pale','tempt','rat','flame','wobble','superficial','stop','protective','stare','tongue','heal','railway','idiotic','roll','puffy','turn','meeting','new','frightening','sophisticated','poke','elderly','room','stimulating','increase','moor','secret','lean','occur','country','damp','evanescent','alluring','oafish','join','thundering','cars','awesome','advice','unruly','ray','wind','anxious','fly','hammer','adventurous','shop','cook','trucks','nonchalant','addition','base','abashed','excuse','giants','dramatic','piquant','coach','possess','poor','finger','wide-eyed','aquatic','welcome','instruct','expert','evasive','hug','cute','return','mice','damage','turkey','quiet','bewildered','tidy','pointless','outrageous','medical','foolish','curve','grandiose','gullible','hapless','gleaming','third','grin','pipe','egg','act','physical','eager','side','milk','tearful','fertile','average','glamorous','strange','yak','terrific','thin','near','snails','flowery','authority','fish','curious','perpetual','healthy','health','match','fade','chemical','economic','drawer','avoid','lying','minister','lick','powder','decay','desire','furry','faint','beam','sordid','fax','tail','bawdy','cherry','letter','clover','ladybug','teeth','behavior','black','amazing','pink','waste','island','forgetful','needless','lock','waves','boundary','receipt','handy','religion','hypnotic','aftermath','explain','sense','mundane','rambunctious','second','preserve','alarm','dusty','event','blow','weigh','value','glorious','jail','sigh','cemetery','serious','yummy','cattle','understood','limit','alert','fear','lucky','tested','surround','dolls','pleasant','disillusioned','discover','tray','night','seemly','liquid','worry','pen','bent','gruesome','war','teeny-tiny','common','judge','symptomatic','bed','trot','unequaled','flowers','friends','damaged','peel','skip','show','twist','worthless','brush','look','behave','imperfect','week','petite','direction','soda','lively','coal','coil','release','berserk','books','impossible','replace','cough','chunky','torpid','discreet','material','bomb','soothe','crack','hope','license','frightened','breathe','maddening','calculator','committee','paltry','green','subsequent','arrest','gigantic','tasty','metal','willing','man','stem','nonstop','route','impulse','government','comfortable','include','literate','multiply','test','vast','exercise','addicted','agreeable','lace','toes','young','water','end','wash','glossy','round','staking','sink','open','spot','trip','fierce','robust','pastoral','drown','dress','machine','calculating','holiday','crabby','disgusting','plan','sleet','sleepy','typical','borrow','possible','curtain','airplane','industry','nut','rough','wacky','rock','enormous','uninterested','sugar','rake','consist','wrist','basket','chop','wet','street','known','settle','bless','cluttered','wild','expand','angle','snake','yawn','hate','flood','rabid','spiteful','anger','market','bizarre','force','majestic','scissors','beg','rifle','foregoing','cactus','funny','eggnog','wish','high-pitched','drop','camp','scarf','car','groan','wonderful','wealthy','cup','lock','available','previous','jam','political','vacation','three','desk','fry','aspiring','productive','clear','bored','flashy','plug','precede','abhorrent','muddle','flimsy','paste','need','reward','frail','obnoxious','creature','whip','unbecoming','lake','unused','chin','tour','zephyr','experience','building','scrub','correct','hover','panicky','scorch','diligent','hulking','ubiquitous','tedious','aberrant','file','accidental','mist','blue-eyed','trite','nondescript','cows','wait','test','snotty','amuck','jump','lackadaisical','grey','tawdry','strong','land','kind','star','ludicrous','stupid','telling','use','bruise','whirl','cream','harsh','aboriginal','substantial','brawny','tease','pollution','weather','degree','dry','film','obey','closed','dependent','want','undesirable','stamp','relax','foot','obscene','successful','wriggle','drain','greasy','escape','cross','odd','boring','absorbed','houses','suppose','suit','moon','ceaseless','explode','clap','pop','courageous','miss','notebook','delirious','form','pretty','sock','grotesque','noxious','record','stop','saw','thing','dislike','cloth','six','jar','unnatural','spiffy','itchy','secretary','move','certain','unkempt','sassy','queue','shrug','crow','heavenly','desert','screw','vessel','mug','encourage','icy','enthusiastic','throat','whistle','ignore','miniature','squeak','scarecrow','fluttering','hang','icicle','lie','juicy','empty','baseball','various','promise','abortive','descriptive','high','spy','faded','talk','air','messup','decorous','sneaky','mark','sack','ultra','chivalrous','lethal','expect','disgusted','reaction','fireman','private','ritzy','manage','actor','rely','uppity','thread','bat','space','underwear','blood','nine','maid','shelf','hanging','shop','prick','wound','sloppy','offer','increase','clear','slap','rude','poised','wretched','cause','quince','tame','remarkable','abject','sail','guide','subdued','spiky','debonair','chicken','tired','hum','land','scared','splendid','guess','cast','rub','magnificent','ants','overwrought','interfere','gorgeous','office','trade','sniff','melted','bore','point','pet','purple','brake','flavor','toe','prickly','zinc','homely','modern','kindly','whisper','bare','annoyed','glass','noisy','null','thoughtless','skirt','dock','rings','mind','neck','macho','wave','history','play','road','profit','word','opposite','dreary','governor','horse','trust','elbow','kiss','crayon','stitch','excited','needy','arrange','easy','alcoholic','safe','lumpy','monkey','smile','capable','untidy','extra-small','memory','selective','reproduce','old-fashioned','overrated','texture','knit','downtown','risk','pot','sofa','righteous','wren','pull','carry','aboard','listen','classy','thank','shocking','condition','root','attempt','swim','frog','hurt','army','title','handsomely','town','guiltless','thaw','spell','selfish','disturbed','tramp','girls','utopian','noiseless','trail','bashful','business','rhetorical','snail','sign','plausible','left','design','tall','violent','wasteful','beautiful','breezy','tap','murder','talented','needle','creator','imagine','flippant','dead','bone','coherent','relation','aromatic','mountainous','face','ask','picture','pedal','colour','obese','group','top','bubble','pinch','optimal','school','bathe','flagrant','check','deliver','pass','tan','crate','hose','debt','faulty','longing','hollow','invincible','afford','lovely','ticket','changeable','subtract','fumbling','responsible','confused','woman','touch','watch','zesty','library','jail','wrap','terrify','brick','popcorn','cooperative','peck','pocket','property','buzz','tiresome','digestion','exciting','nation','juvenile','shade','copper','wanting','deer','waste','man','join','spotty','amused','mountain','waggish','bushes','tense','river','heartbreaking','help','mine','narrow','smash','scrawny','tame','rain','playground','airport','astonishing','level','befitting','animal','heat','painful','cellar','ski','sedate','knowing','vigorous','change','eight','ship','work','strip','robin','tank','challenge','vacuous','representative','regret','tightfisted','erratic','club','imported','therapeutic','rainstorm','luxuriant','relieved','day','system','apologise','male','prepare','malicious','naive','whistle','curl','hobbies','trousers','stereotyped','dad','endurable','grass','hot','bomb','morning','guide','keen','plot','accept','disastrous','macabre','year','spicy','absorbing','sticks','efficient','drain','warm','rice','utter','fact','marked','ratty','chalk','towering','treat','nest','annoy','jealous','stamp','effect','cautious','jelly','feigned','gabby','corn','volleyball','pan','psychedelic','fairies','silent','zonked','bump','trouble','mass','queen','things','bury','sister','quiet','colossal','puncture','four','attend','love','wiry','vegetable','destruction','note','pies','resolute','load','fancy','tacky','periodic','abandoned','vivacious','blush','wrathful','miscreant','call','striped','wiggly','supreme','hand','impolite','rule','deserted','concern','cover','harbor','waiting','soggy','psychotic','ancient','sponge','domineering','elegant','impartial','unlock','abrasive','count','flight','neighborly','roof','bulb','auspicious','automatic','magic','sign','amusing','orange','branch','sulky','attack','fetch','number','jellyfish','start','alike','touch','sour','wary','minor','punish','connect','protest','pie','kaput','doubtful','friendly','simplistic','smart','vanish','applaud','jumbled','ready','yell','support','squash','raise','parallel','super','jazzy','crush','apathetic','water','food','thrill','permit','heady','last','mine','signal','smoke','preach','x-ray','name','birth','minute','steel','bedroom','female','acrid','riddle','attractive','earth','crack','muscle','alive','guarded','sweater','donkey','doubt','lettuce','magenta','live','farm','glib','bow','fascinated','friend','practise','remember','bleach','hungry','voiceless','pin','sparkling','report','arm','sad','shaggy','parcel','wail','flash','territory','functional','wise','screeching','appliance','future','appear','team','rabbit','porter','paint','flat','amusement','ocean','head','geese','wash','embarrassed','tub','boundless','freezing','mushy','surprise','temporary','marble','recondite','telephone','zipper','pine','reign','pump','tangy','reply','toys','purpose','songs','form','delicious','wood','horn','nutty','fruit','lumber','potato','cheat','cloudy','visit','reduce','destroy','deafening','full','warlike','mitten','cover','earthy','seashore','yarn','tenuous','pause','boil','dogs','tough','knife','shy','naughty','existence','fire','eminent','remove','juice','sleep','voyage','balance','unsightly','plough','ill-fated','pumped','motionless','allow','trade','warm','toad','wave','wall','pigs','circle','rejoice','ear','drink','found','taboo','object','old','temper','plant','public','picayune','blot','delight','carpenter','dispensable','tire','cow','furniture','rightful','mute','gentle','gifted','ragged','stiff','retire','compare','sable','hole','judicious','chilly','sparkle','futuristic','love','bubble','travel','name','numberless','succeed','acoustic','lowly','society','injure','agree','reason','party','wool','careful','hook','bell','ball','attach','scream','development','happy','appreciate','disagree','request','march','rampant','scrape','sack','hair','measure','owe','grubby','vein','boy','punishment','smoggy','wry','immense','shoe','pack','brash','cave','sincere','adorable','fantastic','attraction','racial','jittery','defiant','honey','paper','weight','bee','blind','birthday','toothsome','trick','guard','fog','handle','dirty','salt','rinse','nippy','observe','suggestion','weak','instinctive','frequent','detail','verse','quirky','scattered','toy','aware','distribution','repulsive','draconian','bucket','harm','radiate','bang','shrill','living','rhythm','obsequious','drum','inject','skate','beds','smash','order','stitch','ground','nosy','kick','dusty','home','rot','frame','jam','sky','soap','rescue','energetic','grape','massive','deeply','dazzling','park','pull','number','abundant','barbarous','drag','ajar','close','moan','haircut','shade','married','cats','thirsty','dirt','vagabond','fearful','squealing','squalid','zebra','murky','sheet','fat','follow','bikes','unpack','materialistic','surprise','arch','selection','acoustics','helpless','thoughtful','cry','quarrelsome','arrogant','illegal','sudden','elite','tomatoes','spoil','flower','shivering','front','caption','volcano','ugliest','ambitious','pickle','interrupt','nervous','approve','messy','dust','oceanic','brass','tremble','fine','nerve','lunchroom','hard','engine','erect','flower','cynical','irritating','tight','cobweb','gray','invention','snatch','account','sharp','spooky','squeamish','eatable','share','need','moaning','suspect','rush','rural','false','float','bite','careless','sidewalk','cowardly','stroke','educated','ugly','type','wandering','bolt','mint','fit','large','extra-large','defeated','kitty','tacit','abiding','grandfather','trains','lamp','habitual','fast','offbeat','accurate','many','fortunate','lyrical','charge','illustrious','transport','wakeful','cable','ordinary','string','question','train','fancy','kick','enchanting','jobless','ahead','comparison','loose','dance','add','wonder','stale','earn','reflective','bright','true','statuesque','amount','matter','repair','care','ruin','terrible','elastic','spiders','craven','lamentable','decision','swing','connection','gaudy','knowledge','cheap','lazy','step','dinner','rod','agreement','comb','mean','past','knotty','busy','quicksand','match','early','long','onerous','ambiguous','worried','spade','happen','crook','dapper','grate','announce','plate','haunt','friction','actually','chance','example','rapid','zealous','necessary','ink','mere','shock','huge','jaded','spill','store','fuzzy','table','bottle','halting','spark','end','remain','transport','seat','leg','long-term','clip','grumpy','shake','walk','try','action','soup','short','hurry','square','belligerent','thankful','beginner','small','bumpy','silly','badge','marvelous','wealth','open','unequal','scatter','pest','fool','step','groovy','childlike','door','bouncy','believe','incredible','box','unhealthy','swanky','abrupt','depressed','flaky','famous','detailed','regret','envious','natural','apparel','spare','mark','ten','power','glistening','arrive','animated','slip','heap','shaky','unfasten','contain','inexpensive','introduce','shallow','rule','gather','pump','humorous','acceptable','womanly','giddy','silk','yoke','straw','invite','one','red','growth','unadvised','measly','flap','puzzled','regular','painstaking','little','plain','tumble','rest','fabulous','melt','label','truculent','internal','passenger','zippy','bright','earsplitting','tooth','veil','grip','square','stuff','gate','level','stone','observation','time','workable','bird','realise','spotted','coast','quiver','rebel','entertain','rotten','loss','collect','meal','satisfy','military','bake','cagey','redundant','treatment','knock','blink','scale','board','fair','nebulous','sip','homeless','place','complain','joke','bat','winter','choke','frantic','chubby','highfalutin','troubled','whole','rose','delightful','loaf','afraid','sturdy','class','cultured','yielding','broken','kittens','absurd','discovery','next','disarm','dangerous','lively','reflect','chief','teeny','pencil','ban','grade','size','dashing','thought','breath','empty','hellish','shock','sea','weary','payment','limping','premium','grateful','somber','tax','coach','vulgar','stretch','tow','branch','insurance','yam','stormy','wish','snow','cute','milky','battle','far','roasted','slip','adamant','awake','employ','tangible','tickle','jog','hysterical','meddle','parsimonious','judge','educate','respect','sound','oven','gratis','station','train','purring','steady','carriage','humdrum','voracious','jolly','brainy','proud','elfin','cure','motion','record','quizzical','pail','bike','faithful','approval','vague','fall','store','normal','rock','bear','bounce','giant','satisfying','crooked','lopsided','vest','separate','sneeze','teaching','general','meat','festive','historical','line','north','tip','son','damaging','nimble','broad','list','confuse','first','deserve','steep','last','rich','oval','thick','glow','great','clammy','cheer','untidy','scientific','noise','stomach','undress','big','bite-sized','enter','cake','aloof','abnormal','month','grab','well-groomed','silver','art','berry','giraffe','complete','billowy','thumb','squeal','crib','discussion','even','stretch','mellow','angry','grouchy','absent','snow','middle','stingy','mourn','deep','honorable','nice','verdant','reach','lavish','sin','interest','whine','tug','vengeful','rhyme','stay','upset','hesitant','tent','wire','gold','momentous','yellow','cap','delicate','youthful','twig','burly','devilish','chess','wide','misty','useful','memorise','madly','plants','spectacular','accessible','collar','truck','harmony','uncovered','beef','low','channel','abusive','analyse','observant','snobbish','duck','excellent','intend','wreck','testy','care','shoes','charming','demonic','can','wipe','acidic','watch','decisive','brave','greet','imminent','influence','oranges','seal','eggs','knowledgeable','ashamed','shiny','inconclusive','remind','house','solid','quixotic','describe','support']; + const words = [ + "belief", + "scandalous", + "flawless", + "wrestle", + "sort", + "moldy", + "carve", + "incompetent", + "cruel", + "awful", + "fang", + "holistic", + "makeshift", + "synonymous", + "questionable", + "soft", + "drop", + "boot", + "whimsical", + "stir", + "idea", + "adhesive", + "present", + "hilarious", + "unusual", + "divergent", + "probable", + "depend", + "suck", + "belong", + "advise", + "straight", + "encouraging", + "wing", + "clam", + "serve", + "fill", + "nostalgic", + "dysfunctional", + "aggressive", + "floor", + "baby", + "grease", + "sisters", + "print", + "switch", + "control", + "victorious", + "cracker", + "dream", + "wistful", + "adaptable", + "reminiscent", + "inquisitive", + "pushy", + "unaccountable", + "receive", + "guttural", + "two", + "protect", + "skin", + "unbiased", + "plastic", + "loutish", + "zip", + "used", + "divide", + "communicate", + "dear", + "muddled", + "dinosaurs", + "grip", + "trees", + "well-off", + "calendar", + "chickens", + "irate", + "deranged", + "trip", + "stream", + "white", + "poison", + "attack", + "obtain", + "theory", + "laborer", + "omniscient", + "brake", + "maniacal", + "curvy", + "smoke", + "babies", + "punch", + "hammer", + "toothbrush", + "same", + "crown", + "jagged", + "peep", + "difficult", + "reject", + "merciful", + "useless", + "doctor", + "mix", + "wicked", + "plant", + "quickest", + "roll", + "suffer", + "curly", + "brother", + "frighten", + "cold", + "tremendous", + "move", + "knot", + "lame", + "imaginary", + "capricious", + "raspy", + "aunt", + "loving", + "wink", + "wooden", + "hop", + "free", + "drab", + "fire", + "instrument", + "border", + "frame", + "silent", + "glue", + "decorate", + "distance", + "powerful", + "pig", + "admit", + "fix", + "pour", + "flesh", + "profuse", + "skinny", + "learn", + "filthy", + "dress", + "bloody", + "produce", + "innocent", + "meaty", + "pray", + "slimy", + "sun", + "kindhearted", + "dime", + "exclusive", + "boast", + "neat", + "ruthless", + "recess", + "grieving", + "daily", + "hateful", + "ignorant", + "fence", + "spring", + "slim", + "education", + "overflow", + "plastic", + "gaping", + "chew", + "detect", + "right", + "lunch", + "gainful", + "argue", + "cloistered", + "horses", + "orange", + "shame", + "bitter", + "able", + "sail", + "magical", + "exist", + "force", + "wheel", + "best", + "suit", + "spurious", + "partner", + "request", + "dog", + "gusty", + "money", + "gaze", + "lonely", + "company", + "pale", + "tempt", + "rat", + "flame", + "wobble", + "superficial", + "stop", + "protective", + "stare", + "tongue", + "heal", + "railway", + "idiotic", + "roll", + "puffy", + "turn", + "meeting", + "new", + "frightening", + "sophisticated", + "poke", + "elderly", + "room", + "stimulating", + "increase", + "moor", + "secret", + "lean", + "occur", + "country", + "damp", + "evanescent", + "alluring", + "oafish", + "join", + "thundering", + "cars", + "awesome", + "advice", + "unruly", + "ray", + "wind", + "anxious", + "fly", + "hammer", + "adventurous", + "shop", + "cook", + "trucks", + "nonchalant", + "addition", + "base", + "abashed", + "excuse", + "giants", + "dramatic", + "piquant", + "coach", + "possess", + "poor", + "finger", + "wide-eyed", + "aquatic", + "welcome", + "instruct", + "expert", + "evasive", + "hug", + "cute", + "return", + "mice", + "damage", + "turkey", + "quiet", + "bewildered", + "tidy", + "pointless", + "outrageous", + "medical", + "foolish", + "curve", + "grandiose", + "gullible", + "hapless", + "gleaming", + "third", + "grin", + "pipe", + "egg", + "act", + "physical", + "eager", + "side", + "milk", + "tearful", + "fertile", + "average", + "glamorous", + "strange", + "yak", + "terrific", + "thin", + "near", + "snails", + "flowery", + "authority", + "fish", + "curious", + "perpetual", + "healthy", + "health", + "match", + "fade", + "chemical", + "economic", + "drawer", + "avoid", + "lying", + "minister", + "lick", + "powder", + "decay", + "desire", + "furry", + "faint", + "beam", + "sordid", + "fax", + "tail", + "bawdy", + "cherry", + "letter", + "clover", + "ladybug", + "teeth", + "behavior", + "black", + "amazing", + "pink", + "waste", + "island", + "forgetful", + "needless", + "lock", + "waves", + "boundary", + "receipt", + "handy", + "religion", + "hypnotic", + "aftermath", + "explain", + "sense", + "mundane", + "rambunctious", + "second", + "preserve", + "alarm", + "dusty", + "event", + "blow", + "weigh", + "value", + "glorious", + "jail", + "sigh", + "cemetery", + "serious", + "yummy", + "cattle", + "understood", + "limit", + "alert", + "fear", + "lucky", + "tested", + "surround", + "dolls", + "pleasant", + "disillusioned", + "discover", + "tray", + "night", + "seemly", + "liquid", + "worry", + "pen", + "bent", + "gruesome", + "war", + "teeny-tiny", + "common", + "judge", + "symptomatic", + "bed", + "trot", + "unequaled", + "flowers", + "friends", + "damaged", + "peel", + "skip", + "show", + "twist", + "worthless", + "brush", + "look", + "behave", + "imperfect", + "week", + "petite", + "direction", + "soda", + "lively", + "coal", + "coil", + "release", + "berserk", + "books", + "impossible", + "replace", + "cough", + "chunky", + "torpid", + "discreet", + "material", + "bomb", + "soothe", + "crack", + "hope", + "license", + "frightened", + "breathe", + "maddening", + "calculator", + "committee", + "paltry", + "green", + "subsequent", + "arrest", + "gigantic", + "tasty", + "metal", + "willing", + "man", + "stem", + "nonstop", + "route", + "impulse", + "government", + "comfortable", + "include", + "literate", + "multiply", + "test", + "vast", + "exercise", + "addicted", + "agreeable", + "lace", + "toes", + "young", + "water", + "end", + "wash", + "glossy", + "round", + "staking", + "sink", + "open", + "spot", + "trip", + "fierce", + "robust", + "pastoral", + "drown", + "dress", + "machine", + "calculating", + "holiday", + "crabby", + "disgusting", + "plan", + "sleet", + "sleepy", + "typical", + "borrow", + "possible", + "curtain", + "airplane", + "industry", + "nut", + "rough", + "wacky", + "rock", + "enormous", + "uninterested", + "sugar", + "rake", + "consist", + "wrist", + "basket", + "chop", + "wet", + "street", + "known", + "settle", + "bless", + "cluttered", + "wild", + "expand", + "angle", + "snake", + "yawn", + "hate", + "flood", + "rabid", + "spiteful", + "anger", + "market", + "bizarre", + "force", + "majestic", + "scissors", + "beg", + "rifle", + "foregoing", + "cactus", + "funny", + "eggnog", + "wish", + "high-pitched", + "drop", + "camp", + "scarf", + "car", + "groan", + "wonderful", + "wealthy", + "cup", + "lock", + "available", + "previous", + "jam", + "political", + "vacation", + "three", + "desk", + "fry", + "aspiring", + "productive", + "clear", + "bored", + "flashy", + "plug", + "precede", + "abhorrent", + "muddle", + "flimsy", + "paste", + "need", + "reward", + "frail", + "obnoxious", + "creature", + "whip", + "unbecoming", + "lake", + "unused", + "chin", + "tour", + "zephyr", + "experience", + "building", + "scrub", + "correct", + "hover", + "panicky", + "scorch", + "diligent", + "hulking", + "ubiquitous", + "tedious", + "aberrant", + "file", + "accidental", + "mist", + "blue-eyed", + "trite", + "nondescript", + "cows", + "wait", + "test", + "snotty", + "amuck", + "jump", + "lackadaisical", + "grey", + "tawdry", + "strong", + "land", + "kind", + "star", + "ludicrous", + "stupid", + "telling", + "use", + "bruise", + "whirl", + "cream", + "harsh", + "aboriginal", + "substantial", + "brawny", + "tease", + "pollution", + "weather", + "degree", + "dry", + "film", + "obey", + "closed", + "dependent", + "want", + "undesirable", + "stamp", + "relax", + "foot", + "obscene", + "successful", + "wriggle", + "drain", + "greasy", + "escape", + "cross", + "odd", + "boring", + "absorbed", + "houses", + "suppose", + "suit", + "moon", + "ceaseless", + "explode", + "clap", + "pop", + "courageous", + "miss", + "notebook", + "delirious", + "form", + "pretty", + "sock", + "grotesque", + "noxious", + "record", + "stop", + "saw", + "thing", + "dislike", + "cloth", + "six", + "jar", + "unnatural", + "spiffy", + "itchy", + "secretary", + "move", + "certain", + "unkempt", + "sassy", + "queue", + "shrug", + "crow", + "heavenly", + "desert", + "screw", + "vessel", + "mug", + "encourage", + "icy", + "enthusiastic", + "throat", + "whistle", + "ignore", + "miniature", + "squeak", + "scarecrow", + "fluttering", + "hang", + "icicle", + "lie", + "juicy", + "empty", + "baseball", + "various", + "promise", + "abortive", + "descriptive", + "high", + "spy", + "faded", + "talk", + "air", + "messup", + "decorous", + "sneaky", + "mark", + "sack", + "ultra", + "chivalrous", + "lethal", + "expect", + "disgusted", + "reaction", + "fireman", + "private", + "ritzy", + "manage", + "actor", + "rely", + "uppity", + "thread", + "bat", + "space", + "underwear", + "blood", + "nine", + "maid", + "shelf", + "hanging", + "shop", + "prick", + "wound", + "sloppy", + "offer", + "increase", + "clear", + "slap", + "rude", + "poised", + "wretched", + "cause", + "quince", + "tame", + "remarkable", + "abject", + "sail", + "guide", + "subdued", + "spiky", + "debonair", + "chicken", + "tired", + "hum", + "land", + "scared", + "splendid", + "guess", + "cast", + "rub", + "magnificent", + "ants", + "overwrought", + "interfere", + "gorgeous", + "office", + "trade", + "sniff", + "melted", + "bore", + "point", + "pet", + "purple", + "brake", + "flavor", + "toe", + "prickly", + "zinc", + "homely", + "modern", + "kindly", + "whisper", + "bare", + "annoyed", + "glass", + "noisy", + "null", + "thoughtless", + "skirt", + "dock", + "rings", + "mind", + "neck", + "macho", + "wave", + "history", + "play", + "road", + "profit", + "word", + "opposite", + "dreary", + "governor", + "horse", + "trust", + "elbow", + "kiss", + "crayon", + "stitch", + "excited", + "needy", + "arrange", + "easy", + "alcoholic", + "safe", + "lumpy", + "monkey", + "smile", + "capable", + "untidy", + "extra-small", + "memory", + "selective", + "reproduce", + "old-fashioned", + "overrated", + "texture", + "knit", + "downtown", + "risk", + "pot", + "sofa", + "righteous", + "wren", + "pull", + "carry", + "aboard", + "listen", + "classy", + "thank", + "shocking", + "condition", + "root", + "attempt", + "swim", + "frog", + "hurt", + "army", + "title", + "handsomely", + "town", + "guiltless", + "thaw", + "spell", + "selfish", + "disturbed", + "tramp", + "girls", + "utopian", + "noiseless", + "trail", + "bashful", + "business", + "rhetorical", + "snail", + "sign", + "plausible", + "left", + "design", + "tall", + "violent", + "wasteful", + "beautiful", + "breezy", + "tap", + "murder", + "talented", + "needle", + "creator", + "imagine", + "flippant", + "dead", + "bone", + "coherent", + "relation", + "aromatic", + "mountainous", + "face", + "ask", + "picture", + "pedal", + "colour", + "obese", + "group", + "top", + "bubble", + "pinch", + "optimal", + "school", + "bathe", + "flagrant", + "check", + "deliver", + "pass", + "tan", + "crate", + "hose", + "debt", + "faulty", + "longing", + "hollow", + "invincible", + "afford", + "lovely", + "ticket", + "changeable", + "subtract", + "fumbling", + "responsible", + "confused", + "woman", + "touch", + "watch", + "zesty", + "library", + "jail", + "wrap", + "terrify", + "brick", + "popcorn", + "cooperative", + "peck", + "pocket", + "property", + "buzz", + "tiresome", + "digestion", + "exciting", + "nation", + "juvenile", + "shade", + "copper", + "wanting", + "deer", + "waste", + "man", + "join", + "spotty", + "amused", + "mountain", + "waggish", + "bushes", + "tense", + "river", + "heartbreaking", + "help", + "mine", + "narrow", + "smash", + "scrawny", + "tame", + "rain", + "playground", + "airport", + "astonishing", + "level", + "befitting", + "animal", + "heat", + "painful", + "cellar", + "ski", + "sedate", + "knowing", + "vigorous", + "change", + "eight", + "ship", + "work", + "strip", + "robin", + "tank", + "challenge", + "vacuous", + "representative", + "regret", + "tightfisted", + "erratic", + "club", + "imported", + "therapeutic", + "rainstorm", + "luxuriant", + "relieved", + "day", + "system", + "apologise", + "male", + "prepare", + "malicious", + "naive", + "whistle", + "curl", + "hobbies", + "trousers", + "stereotyped", + "dad", + "endurable", + "grass", + "hot", + "bomb", + "morning", + "guide", + "keen", + "plot", + "accept", + "disastrous", + "macabre", + "year", + "spicy", + "absorbing", + "sticks", + "efficient", + "drain", + "warm", + "rice", + "utter", + "fact", + "marked", + "ratty", + "chalk", + "towering", + "treat", + "nest", + "annoy", + "jealous", + "stamp", + "effect", + "cautious", + "jelly", + "feigned", + "gabby", + "corn", + "volleyball", + "pan", + "psychedelic", + "fairies", + "silent", + "zonked", + "bump", + "trouble", + "mass", + "queen", + "things", + "bury", + "sister", + "quiet", + "colossal", + "puncture", + "four", + "attend", + "love", + "wiry", + "vegetable", + "destruction", + "note", + "pies", + "resolute", + "load", + "fancy", + "tacky", + "periodic", + "abandoned", + "vivacious", + "blush", + "wrathful", + "miscreant", + "call", + "striped", + "wiggly", + "supreme", + "hand", + "impolite", + "rule", + "deserted", + "concern", + "cover", + "harbor", + "waiting", + "soggy", + "psychotic", + "ancient", + "sponge", + "domineering", + "elegant", + "impartial", + "unlock", + "abrasive", + "count", + "flight", + "neighborly", + "roof", + "bulb", + "auspicious", + "automatic", + "magic", + "sign", + "amusing", + "orange", + "branch", + "sulky", + "attack", + "fetch", + "number", + "jellyfish", + "start", + "alike", + "touch", + "sour", + "wary", + "minor", + "punish", + "connect", + "protest", + "pie", + "kaput", + "doubtful", + "friendly", + "simplistic", + "smart", + "vanish", + "applaud", + "jumbled", + "ready", + "yell", + "support", + "squash", + "raise", + "parallel", + "super", + "jazzy", + "crush", + "apathetic", + "water", + "food", + "thrill", + "permit", + "heady", + "last", + "mine", + "signal", + "smoke", + "preach", + "x-ray", + "name", + "birth", + "minute", + "steel", + "bedroom", + "female", + "acrid", + "riddle", + "attractive", + "earth", + "crack", + "muscle", + "alive", + "guarded", + "sweater", + "donkey", + "doubt", + "lettuce", + "magenta", + "live", + "farm", + "glib", + "bow", + "fascinated", + "friend", + "practise", + "remember", + "bleach", + "hungry", + "voiceless", + "pin", + "sparkling", + "report", + "arm", + "sad", + "shaggy", + "parcel", + "wail", + "flash", + "territory", + "functional", + "wise", + "screeching", + "appliance", + "future", + "appear", + "team", + "rabbit", + "porter", + "paint", + "flat", + "amusement", + "ocean", + "head", + "geese", + "wash", + "embarrassed", + "tub", + "boundless", + "freezing", + "mushy", + "surprise", + "temporary", + "marble", + "recondite", + "telephone", + "zipper", + "pine", + "reign", + "pump", + "tangy", + "reply", + "toys", + "purpose", + "songs", + "form", + "delicious", + "wood", + "horn", + "nutty", + "fruit", + "lumber", + "potato", + "cheat", + "cloudy", + "visit", + "reduce", + "destroy", + "deafening", + "full", + "warlike", + "mitten", + "cover", + "earthy", + "seashore", + "yarn", + "tenuous", + "pause", + "boil", + "dogs", + "tough", + "knife", + "shy", + "naughty", + "existence", + "fire", + "eminent", + "remove", + "juice", + "sleep", + "voyage", + "balance", + "unsightly", + "plough", + "ill-fated", + "pumped", + "motionless", + "allow", + "trade", + "warm", + "toad", + "wave", + "wall", + "pigs", + "circle", + "rejoice", + "ear", + "drink", + "found", + "taboo", + "object", + "old", + "temper", + "plant", + "public", + "picayune", + "blot", + "delight", + "carpenter", + "dispensable", + "tire", + "cow", + "furniture", + "rightful", + "mute", + "gentle", + "gifted", + "ragged", + "stiff", + "retire", + "compare", + "sable", + "hole", + "judicious", + "chilly", + "sparkle", + "futuristic", + "love", + "bubble", + "travel", + "name", + "numberless", + "succeed", + "acoustic", + "lowly", + "society", + "injure", + "agree", + "reason", + "party", + "wool", + "careful", + "hook", + "bell", + "ball", + "attach", + "scream", + "development", + "happy", + "appreciate", + "disagree", + "request", + "march", + "rampant", + "scrape", + "sack", + "hair", + "measure", + "owe", + "grubby", + "vein", + "boy", + "punishment", + "smoggy", + "wry", + "immense", + "shoe", + "pack", + "brash", + "cave", + "sincere", + "adorable", + "fantastic", + "attraction", + "racial", + "jittery", + "defiant", + "honey", + "paper", + "weight", + "bee", + "blind", + "birthday", + "toothsome", + "trick", + "guard", + "fog", + "handle", + "dirty", + "salt", + "rinse", + "nippy", + "observe", + "suggestion", + "weak", + "instinctive", + "frequent", + "detail", + "verse", + "quirky", + "scattered", + "toy", + "aware", + "distribution", + "repulsive", + "draconian", + "bucket", + "harm", + "radiate", + "bang", + "shrill", + "living", + "rhythm", + "obsequious", + "drum", + "inject", + "skate", + "beds", + "smash", + "order", + "stitch", + "ground", + "nosy", + "kick", + "dusty", + "home", + "rot", + "frame", + "jam", + "sky", + "soap", + "rescue", + "energetic", + "grape", + "massive", + "deeply", + "dazzling", + "park", + "pull", + "number", + "abundant", + "barbarous", + "drag", + "ajar", + "close", + "moan", + "haircut", + "shade", + "married", + "cats", + "thirsty", + "dirt", + "vagabond", + "fearful", + "squealing", + "squalid", + "zebra", + "murky", + "sheet", + "fat", + "follow", + "bikes", + "unpack", + "materialistic", + "surprise", + "arch", + "selection", + "acoustics", + "helpless", + "thoughtful", + "cry", + "quarrelsome", + "arrogant", + "illegal", + "sudden", + "elite", + "tomatoes", + "spoil", + "flower", + "shivering", + "front", + "caption", + "volcano", + "ugliest", + "ambitious", + "pickle", + "interrupt", + "nervous", + "approve", + "messy", + "dust", + "oceanic", + "brass", + "tremble", + "fine", + "nerve", + "lunchroom", + "hard", + "engine", + "erect", + "flower", + "cynical", + "irritating", + "tight", + "cobweb", + "gray", + "invention", + "snatch", + "account", + "sharp", + "spooky", + "squeamish", + "eatable", + "share", + "need", + "moaning", + "suspect", + "rush", + "rural", + "false", + "float", + "bite", + "careless", + "sidewalk", + "cowardly", + "stroke", + "educated", + "ugly", + "type", + "wandering", + "bolt", + "mint", + "fit", + "large", + "extra-large", + "defeated", + "kitty", + "tacit", + "abiding", + "grandfather", + "trains", + "lamp", + "habitual", + "fast", + "offbeat", + "accurate", + "many", + "fortunate", + "lyrical", + "charge", + "illustrious", + "transport", + "wakeful", + "cable", + "ordinary", + "string", + "question", + "train", + "fancy", + "kick", + "enchanting", + "jobless", + "ahead", + "comparison", + "loose", + "dance", + "add", + "wonder", + "stale", + "earn", + "reflective", + "bright", + "true", + "statuesque", + "amount", + "matter", + "repair", + "care", + "ruin", + "terrible", + "elastic", + "spiders", + "craven", + "lamentable", + "decision", + "swing", + "connection", + "gaudy", + "knowledge", + "cheap", + "lazy", + "step", + "dinner", + "rod", + "agreement", + "comb", + "mean", + "past", + "knotty", + "busy", + "quicksand", + "match", + "early", + "long", + "onerous", + "ambiguous", + "worried", + "spade", + "happen", + "crook", + "dapper", + "grate", + "announce", + "plate", + "haunt", + "friction", + "actually", + "chance", + "example", + "rapid", + "zealous", + "necessary", + "ink", + "mere", + "shock", + "huge", + "jaded", + "spill", + "store", + "fuzzy", + "table", + "bottle", + "halting", + "spark", + "end", + "remain", + "transport", + "seat", + "leg", + "long-term", + "clip", + "grumpy", + "shake", + "walk", + "try", + "action", + "soup", + "short", + "hurry", + "square", + "belligerent", + "thankful", + "beginner", + "small", + "bumpy", + "silly", + "badge", + "marvelous", + "wealth", + "open", + "unequal", + "scatter", + "pest", + "fool", + "step", + "groovy", + "childlike", + "door", + "bouncy", + "believe", + "incredible", + "box", + "unhealthy", + "swanky", + "abrupt", + "depressed", + "flaky", + "famous", + "detailed", + "regret", + "envious", + "natural", + "apparel", + "spare", + "mark", + "ten", + "power", + "glistening", + "arrive", + "animated", + "slip", + "heap", + "shaky", + "unfasten", + "contain", + "inexpensive", + "introduce", + "shallow", + "rule", + "gather", + "pump", + "humorous", + "acceptable", + "womanly", + "giddy", + "silk", + "yoke", + "straw", + "invite", + "one", + "red", + "growth", + "unadvised", + "measly", + "flap", + "puzzled", + "regular", + "painstaking", + "little", + "plain", + "tumble", + "rest", + "fabulous", + "melt", + "label", + "truculent", + "internal", + "passenger", + "zippy", + "bright", + "earsplitting", + "tooth", + "veil", + "grip", + "square", + "stuff", + "gate", + "level", + "stone", + "observation", + "time", + "workable", + "bird", + "realise", + "spotted", + "coast", + "quiver", + "rebel", + "entertain", + "rotten", + "loss", + "collect", + "meal", + "satisfy", + "military", + "bake", + "cagey", + "redundant", + "treatment", + "knock", + "blink", + "scale", + "board", + "fair", + "nebulous", + "sip", + "homeless", + "place", + "complain", + "joke", + "bat", + "winter", + "choke", + "frantic", + "chubby", + "highfalutin", + "troubled", + "whole", + "rose", + "delightful", + "loaf", + "afraid", + "sturdy", + "class", + "cultured", + "yielding", + "broken", + "kittens", + "absurd", + "discovery", + "next", + "disarm", + "dangerous", + "lively", + "reflect", + "chief", + "teeny", + "pencil", + "ban", + "grade", + "size", + "dashing", + "thought", + "breath", + "empty", + "hellish", + "shock", + "sea", + "weary", + "payment", + "limping", + "premium", + "grateful", + "somber", + "tax", + "coach", + "vulgar", + "stretch", + "tow", + "branch", + "insurance", + "yam", + "stormy", + "wish", + "snow", + "cute", + "milky", + "battle", + "far", + "roasted", + "slip", + "adamant", + "awake", + "employ", + "tangible", + "tickle", + "jog", + "hysterical", + "meddle", + "parsimonious", + "judge", + "educate", + "respect", + "sound", + "oven", + "gratis", + "station", + "train", + "purring", + "steady", + "carriage", + "humdrum", + "voracious", + "jolly", + "brainy", + "proud", + "elfin", + "cure", + "motion", + "record", + "quizzical", + "pail", + "bike", + "faithful", + "approval", + "vague", + "fall", + "store", + "normal", + "rock", + "bear", + "bounce", + "giant", + "satisfying", + "crooked", + "lopsided", + "vest", + "separate", + "sneeze", + "teaching", + "general", + "meat", + "festive", + "historical", + "line", + "north", + "tip", + "son", + "damaging", + "nimble", + "broad", + "list", + "confuse", + "first", + "deserve", + "steep", + "last", + "rich", + "oval", + "thick", + "glow", + "great", + "clammy", + "cheer", + "untidy", + "scientific", + "noise", + "stomach", + "undress", + "big", + "bite-sized", + "enter", + "cake", + "aloof", + "abnormal", + "month", + "grab", + "well-groomed", + "silver", + "art", + "berry", + "giraffe", + "complete", + "billowy", + "thumb", + "squeal", + "crib", + "discussion", + "even", + "stretch", + "mellow", + "angry", + "grouchy", + "absent", + "snow", + "middle", + "stingy", + "mourn", + "deep", + "honorable", + "nice", + "verdant", + "reach", + "lavish", + "sin", + "interest", + "whine", + "tug", + "vengeful", + "rhyme", + "stay", + "upset", + "hesitant", + "tent", + "wire", + "gold", + "momentous", + "yellow", + "cap", + "delicate", + "youthful", + "twig", + "burly", + "devilish", + "chess", + "wide", + "misty", + "useful", + "memorise", + "madly", + "plants", + "spectacular", + "accessible", + "collar", + "truck", + "harmony", + "uncovered", + "beef", + "low", + "channel", + "abusive", + "analyse", + "observant", + "snobbish", + "duck", + "excellent", + "intend", + "wreck", + "testy", + "care", + "shoes", + "charming", + "demonic", + "can", + "wipe", + "acidic", + "watch", + "decisive", + "brave", + "greet", + "imminent", + "influence", + "oranges", + "seal", + "eggs", + "knowledgeable", + "ashamed", + "shiny", + "inconclusive", + "remind", + "house", + "solid", + "quixotic", + "describe", + "support", + ]; return randomElement(words); } function execCommand(client, command, options = {}) { - let exePath = 'node ' + joplinAppPath; - let cmd = exePath + ' --update-geolocation-disabled --env dev --log-level debug --profile ' + client.profileDir + ' ' + command; - logger.info(client.id + ': ' + command); + let exePath = "node " + joplinAppPath; + let cmd = exePath + " --update-geolocation-disabled --env dev --log-level debug --profile " + client.profileDir + " " + command; + logger.info(client.id + ": " + command); if (options.killAfter) { - logger.info('Kill after: ' + options.killAfter); + logger.info("Kill after: " + options.killAfter); } return new Promise((resolve, reject) => { let childProcess = exec(cmd, (error, stdout, stderr) => { if (error) { - if (error.signal == 'SIGTERM') { - resolve('Process was killed'); + if (error.signal == "SIGTERM") { + resolve("Process was killed"); } else { logger.error(stderr); reject(error); @@ -83,7 +2088,7 @@ function execCommand(client, command, options = {}) { if (options.killAfter) { setTimeout(() => { - logger.info('Sending kill signal...'); + logger.info("Sending kill signal..."); childProcess.kill(); }, options.killAfter); } @@ -91,11 +2096,11 @@ function execCommand(client, command, options = {}) { } async function clientItems(client) { - let itemsJson = await execCommand(client, 'dump'); + let itemsJson = await execCommand(client, "dump"); try { return JSON.parse(itemsJson); } catch (error) { - throw new Error('Cannot parse JSON: ' + itemsJson); + throw new Error("Cannot parse JSON: " + itemsJson); } } @@ -121,50 +2126,66 @@ function randomNote(items) { async function execRandomCommand(client) { let possibleCommands = [ - ['mkbook {word}', 40], // CREATE FOLDER - ['mknote {word}', 70], // CREATE NOTE - [async () => { // DELETE RANDOM ITEM - let items = await clientItems(client); - let item = randomElement(items); - if (!item) return; + ["mkbook {word}", 40], // CREATE FOLDER + ["mknote {word}", 70], // CREATE NOTE + [ + async () => { + // DELETE RANDOM ITEM + let items = await clientItems(client); + let item = randomElement(items); + if (!item) return; - if (item.type_ == 1) { - return execCommand(client, 'rm -f ' + item.id); - } else if (item.type_ == 2) { - return execCommand(client, 'rm -r -f ' + item.id); - } else if (item.type_ == 5) { - // tag - } else { - throw new Error('Unknown type: ' + item.type_); - } - }, 30], - [async () => { // SYNC - let avgSyncDuration = averageSyncDuration(); - let options = {}; - if (!isNaN(avgSyncDuration)) { - if (Math.random() >= 0.5) { - options.killAfter = avgSyncDuration * Math.random(); + if (item.type_ == 1) { + return execCommand(client, "rm -f " + item.id); + } else if (item.type_ == 2) { + return execCommand(client, "rm -r -f " + item.id); + } else if (item.type_ == 5) { + // tag + } else { + throw new Error("Unknown type: " + item.type_); } - } - return execCommand(client, 'sync --random-failures', options); - }, 30], - [async () => { // UPDATE RANDOM ITEM - let items = await clientItems(client); - let item = randomNote(items); - if (!item) return; + }, + 30, + ], + [ + async () => { + // SYNC + let avgSyncDuration = averageSyncDuration(); + let options = {}; + if (!isNaN(avgSyncDuration)) { + if (Math.random() >= 0.5) { + options.killAfter = avgSyncDuration * Math.random(); + } + } + return execCommand(client, "sync --random-failures", options); + }, + 30, + ], + [ + async () => { + // UPDATE RANDOM ITEM + let items = await clientItems(client); + let item = randomNote(items); + if (!item) return; - return execCommand(client, 'set ' + item.id + ' title "' + randomWord() + '"'); - }, 50], - [async () => { // ADD TAG - let items = await clientItems(client); - let note = randomNote(items); - if (!note) return; + return execCommand(client, "set " + item.id + ' title "' + randomWord() + '"'); + }, + 50, + ], + [ + async () => { + // ADD TAG + let items = await clientItems(client); + let note = randomNote(items); + if (!note) return; - let tag = randomTag(items); - let tagTitle = !tag || Math.random() >= 0.9 ? 'tag-' + randomWord() : tag.title; - - return execCommand(client, 'tag add ' + tagTitle + ' ' + note.id); - }, 50], + let tag = randomTag(items); + let tagTitle = !tag || Math.random() >= 0.9 ? "tag-" + randomWord() : tag.title; + + return execCommand(client, "tag add " + tagTitle + " " + note.id); + }, + 50, + ], ]; let cmd = null; @@ -176,10 +2197,10 @@ async function execRandomCommand(client) { cmd = cmd[0]; - if (typeof cmd === 'function') { + if (typeof cmd === "function") { return cmd(); } else { - cmd = cmd.replace('{word}', randomWord()); + cmd = cmd.replace("{word}", randomWord()); return execCommand(client, cmd); } } @@ -190,12 +2211,12 @@ function averageSyncDuration() { function randomNextCheckTime() { let output = time.unixMs() + 1000 + Math.random() * 1000 * 120; - logger.info('Next sync check: ' + time.unixMsToIso(output) + ' (' + (Math.round((output - time.unixMs()) / 1000)) + ' sec.)'); + logger.info("Next sync check: " + time.unixMsToIso(output) + " (" + Math.round((output - time.unixMs()) / 1000) + " sec.)"); return output; } function findItem(items, itemId) { - for (let i = 0; i < items.length; i++) { + for (let i = 0; i < items.length; i++) { if (items[i].id == itemId) return items[i]; } return null; @@ -208,7 +2229,7 @@ function compareItems(item1, item2) { let p1 = item1[n]; let p2 = item2[n]; - if (n == 'notes_') { + if (n == "notes_") { p1.sort(); p2.sort(); if (JSON.stringify(p1) !== JSON.stringify(p2)) { @@ -244,10 +2265,7 @@ function findMissingItems_(items1, items2) { } function findMissingItems(items1, items2) { - return [ - findMissingItems_(items1, items2), - findMissingItems_(items2, items1), - ]; + return [findMissingItems_(items1, items2), findMissingItems_(items2, items1)]; } async function compareClientItems(clientItems) { @@ -256,11 +2274,11 @@ async function compareClientItems(clientItems) { let items = clientItems[i]; itemCounts.push(items.length); } - logger.info('Item count: ' + itemCounts.join(', ')); - + logger.info("Item count: " + itemCounts.join(", ")); + let missingItems = findMissingItems(clientItems[0], clientItems[1]); if (missingItems[0].length || missingItems[1].length) { - logger.error('Items are different'); + logger.error("Items are different"); logger.error(missingItems); process.exit(1); } @@ -272,7 +2290,7 @@ async function compareClientItems(clientItems) { for (let clientId = 1; clientId < clientItems.length; clientId++) { let item2 = findItem(clientItems[clientId], item1.id); if (!item2) { - logger.error('Item not found on client ' + clientId + ':'); + logger.error("Item not found on client " + clientId + ":"); logger.error(item1); process.exit(1); } @@ -288,7 +2306,7 @@ async function compareClientItems(clientItems) { } if (differences.length) { - logger.error('Found differences between items:'); + logger.error("Found differences between items:"); logger.error(differences); process.exit(1); } @@ -296,7 +2314,7 @@ async function compareClientItems(clientItems) { async function main(argv) { await fs.remove(syncDir); - + let clients = await createClients(); let activeCommandCounts = []; let clientId = 0; @@ -310,25 +2328,27 @@ async function main(argv) { clients[clientId].activeCommandCount++; - execRandomCommand(clients[clientId]).catch((error) => { - logger.info('Client ' + clientId + ':'); - logger.error(error); - }).then((r) => { - if (r) { - logger.info('Client ' + clientId + ":\n" + r.trim()) - } - clients[clientId].activeCommandCount--; - }); + execRandomCommand(clients[clientId]) + .catch(error => { + logger.info("Client " + clientId + ":"); + logger.error(error); + }) + .then(r => { + if (r) { + logger.info("Client " + clientId + ":\n" + r.trim()); + } + clients[clientId].activeCommandCount--; + }); } let nextSyncCheckTime = randomNextCheckTime(); - let state = 'commands'; + let state = "commands"; setInterval(async () => { - if (state == 'waitForSyncCheck') return; + if (state == "waitForSyncCheck") return; - if (state == 'syncCheck') { - state = 'waitForSyncCheck'; + if (state == "syncCheck") { + state = "waitForSyncCheck"; let clientItems = []; // Up to 3 sync operations must be performed by each clients in order for them // to be perfectly in sync - in order for each items to send their changes @@ -338,11 +2358,11 @@ async function main(argv) { for (let loopCount = 0; loopCount < 3; loopCount++) { for (let i = 0; i < clients.length; i++) { let beforeTime = time.unixMs(); - await execCommand(clients[i], 'sync'); + await execCommand(clients[i], "sync"); syncDurations.push(time.unixMs() - beforeTime); if (syncDurations.length > 20) syncDurations.splice(0, 1); if (loopCount === 2) { - let dump = await execCommand(clients[i], 'dump'); + let dump = await execCommand(clients[i], "dump"); clientItems[i] = JSON.parse(dump); } } @@ -351,22 +2371,22 @@ async function main(argv) { await compareClientItems(clientItems); nextSyncCheckTime = randomNextCheckTime(); - state = 'commands'; + state = "commands"; return; } - if (state == 'waitForClients') { + if (state == "waitForClients") { for (let i = 0; i < clients.length; i++) { if (clients[i].activeCommandCount > 0) return; } - state = 'syncCheck'; + state = "syncCheck"; return; } - if (state == 'commands') { + if (state == "commands") { if (nextSyncCheckTime <= time.unixMs()) { - state = 'waitForClients'; + state = "waitForClients"; return; } @@ -377,6 +2397,6 @@ async function main(argv) { }, 100); } -main(process.argv).catch((error) => { +main(process.argv).catch(error => { logger.error(error); -}); \ No newline at end of file +}); diff --git a/CliClient/app/gui/ConsoleWidget.js b/CliClient/app/gui/ConsoleWidget.js index e6bc30bd1c..02f5b28008 100644 --- a/CliClient/app/gui/ConsoleWidget.js +++ b/CliClient/app/gui/ConsoleWidget.js @@ -1,7 +1,6 @@ -const TextWidget = require('tkwidgets/TextWidget.js'); +const TextWidget = require("tkwidgets/TextWidget.js"); class ConsoleWidget extends TextWidget { - constructor() { super(); this.lines_ = []; @@ -12,11 +11,11 @@ class ConsoleWidget extends TextWidget { } get name() { - return 'console'; + return "console"; } get lastLine() { - return this.lines_.length ? this.lines_[this.lines_.length-1] : ''; + return this.lines_.length ? this.lines_[this.lines_.length - 1] : ""; } addLine(line) { @@ -46,7 +45,6 @@ class ConsoleWidget extends TextWidget { super.render(); } - } -module.exports = ConsoleWidget; \ No newline at end of file +module.exports = ConsoleWidget; diff --git a/CliClient/app/gui/FolderListWidget.js b/CliClient/app/gui/FolderListWidget.js index 4532d1a7c9..7c4897b21c 100644 --- a/CliClient/app/gui/FolderListWidget.js +++ b/CliClient/app/gui/FolderListWidget.js @@ -1,11 +1,10 @@ -const Folder = require('lib/models/Folder.js'); -const Tag = require('lib/models/Tag.js'); -const BaseModel = require('lib/BaseModel.js'); -const ListWidget = require('tkwidgets/ListWidget.js'); -const _ = require('lib/locale.js')._; +const Folder = require("lib/models/Folder.js"); +const Tag = require("lib/models/Tag.js"); +const BaseModel = require("lib/BaseModel.js"); +const ListWidget = require("tkwidgets/ListWidget.js"); +const _ = require("lib/locale.js")._; class FolderListWidget extends ListWidget { - constructor() { super(); @@ -15,26 +14,26 @@ class FolderListWidget extends ListWidget { this.selectedFolderId_ = null; this.selectedTagId_ = null; this.selectedSearchId_ = null; - this.notesParentType_ = 'Folder'; + this.notesParentType_ = "Folder"; this.updateIndexFromSelectedFolderId_ = false; this.updateItems_ = false; - this.itemRenderer = (item) => { + this.itemRenderer = item => { let output = []; - if (item === '-') { - output.push('-'.repeat(this.innerWidth)); + if (item === "-") { + output.push("-".repeat(this.innerWidth)); } else if (item.type_ === Folder.modelType()) { output.push(Folder.displayTitle(item)); } else if (item.type_ === Tag.modelType()) { - output.push('[' + Folder.displayTitle(item) + ']'); + output.push("[" + Folder.displayTitle(item) + "]"); } else if (item.type_ === BaseModel.TYPE_SEARCH) { - output.push(_('Search:')); + output.push(_("Search:")); output.push(item.title); - } + } // if (item && item.id) output.push(item.id.substr(0, 5)); - - return output.join(' '); + + return output.join(" "); }; } @@ -44,7 +43,7 @@ class FolderListWidget extends ListWidget { set selectedFolderId(v) { this.selectedFolderId_ = v; - this.updateIndexFromSelectedItemId() + this.updateIndexFromSelectedItemId(); this.invalidate(); } @@ -54,7 +53,7 @@ class FolderListWidget extends ListWidget { set selectedSearchId(v) { this.selectedSearchId_ = v; - this.updateIndexFromSelectedItemId() + this.updateIndexFromSelectedItemId(); this.invalidate(); } @@ -64,7 +63,7 @@ class FolderListWidget extends ListWidget { set selectedTagId(v) { this.selectedTagId_ = v; - this.updateIndexFromSelectedItemId() + this.updateIndexFromSelectedItemId(); this.invalidate(); } @@ -75,7 +74,7 @@ class FolderListWidget extends ListWidget { set notesParentType(v) { //if (this.notesParentType_ === v) return; this.notesParentType_ = v; - this.updateIndexFromSelectedItemId() + this.updateIndexFromSelectedItemId(); this.invalidate(); } @@ -86,7 +85,7 @@ class FolderListWidget extends ListWidget { set searches(v) { this.searches_ = v; this.updateItems_ = true; - this.updateIndexFromSelectedItemId() + this.updateIndexFromSelectedItemId(); this.invalidate(); } @@ -97,7 +96,7 @@ class FolderListWidget extends ListWidget { set tags(v) { this.tags_ = v; this.updateItems_ = true; - this.updateIndexFromSelectedItemId() + this.updateIndexFromSelectedItemId(); this.invalidate(); } @@ -108,32 +107,32 @@ class FolderListWidget extends ListWidget { set folders(v) { this.folders_ = v; this.updateItems_ = true; - this.updateIndexFromSelectedItemId() + this.updateIndexFromSelectedItemId(); this.invalidate(); } - + render() { if (this.updateItems_) { - this.logger().debug('Rebuilding items...', this.notesParentType, this.selectedJoplinItemId, this.selectedSearchId); + this.logger().debug("Rebuilding items...", this.notesParentType, this.selectedJoplinItemId, this.selectedSearchId); const wasSelectedItemId = this.selectedJoplinItemId; const previousParentType = this.notesParentType; let newItems = this.folders.slice(); if (this.tags.length) { - if (newItems.length) newItems.push('-'); + if (newItems.length) newItems.push("-"); newItems = newItems.concat(this.tags); } if (this.searches.length) { - if (newItems.length) newItems.push('-'); + if (newItems.length) newItems.push("-"); newItems = newItems.concat(this.searches); } this.items = newItems; this.notesParentType = previousParentType; - this.updateIndexFromSelectedItemId(wasSelectedItemId) + this.updateIndexFromSelectedItemId(wasSelectedItemId); this.updateItems_ = false; } @@ -141,25 +140,24 @@ class FolderListWidget extends ListWidget { } get selectedJoplinItemId() { - if (!this.notesParentType) return ''; - if (this.notesParentType === 'Folder') return this.selectedFolderId; - if (this.notesParentType === 'Tag') return this.selectedTagId; - if (this.notesParentType === 'Search') return this.selectedSearchId; - throw new Error('Unknown parent type: ' + this.notesParentType); + if (!this.notesParentType) return ""; + if (this.notesParentType === "Folder") return this.selectedFolderId; + if (this.notesParentType === "Tag") return this.selectedTagId; + if (this.notesParentType === "Search") return this.selectedSearchId; + throw new Error("Unknown parent type: " + this.notesParentType); } get selectedJoplinItem() { const id = this.selectedJoplinItemId; - const index = this.itemIndexByKey('id', id); + const index = this.itemIndexByKey("id", id); return this.itemAt(index); } updateIndexFromSelectedItemId(itemId = null) { if (itemId === null) itemId = this.selectedJoplinItemId; - const index = this.itemIndexByKey('id', itemId); + const index = this.itemIndexByKey("id", itemId); this.currentIndex = index >= 0 ? index : 0; } - } -module.exports = FolderListWidget; \ No newline at end of file +module.exports = FolderListWidget; diff --git a/CliClient/app/gui/NoteListWidget.js b/CliClient/app/gui/NoteListWidget.js index 30d44df444..0aa7dbb4c3 100644 --- a/CliClient/app/gui/NoteListWidget.js +++ b/CliClient/app/gui/NoteListWidget.js @@ -1,18 +1,17 @@ -const Note = require('lib/models/Note.js'); -const ListWidget = require('tkwidgets/ListWidget.js'); +const Note = require("lib/models/Note.js"); +const ListWidget = require("tkwidgets/ListWidget.js"); class NoteListWidget extends ListWidget { - constructor() { super(); this.selectedNoteId_ = 0; this.updateIndexFromSelectedNoteId_ = false; - this.itemRenderer = (note) => { + this.itemRenderer = note => { let label = Note.displayTitle(note); // + ' ' + note.id; if (note.is_todo) { - label = '[' + (note.todo_completed ? 'X' : ' ') + '] ' + label; + label = "[" + (note.todo_completed ? "X" : " ") + "] " + label; } return label; }; @@ -25,14 +24,13 @@ class NoteListWidget extends ListWidget { render() { if (this.updateIndexFromSelectedNoteId_) { - const index = this.itemIndexByKey('id', this.selectedNoteId_); + const index = this.itemIndexByKey("id", this.selectedNoteId_); this.currentIndex = index >= 0 ? index : 0; this.updateIndexFromSelectedNoteId_ = false; } super.render(); } - } -module.exports = NoteListWidget; \ No newline at end of file +module.exports = NoteListWidget; diff --git a/CliClient/app/gui/NoteMetadataWidget.js b/CliClient/app/gui/NoteMetadataWidget.js index ff68e189d9..9eb5207f9e 100644 --- a/CliClient/app/gui/NoteMetadataWidget.js +++ b/CliClient/app/gui/NoteMetadataWidget.js @@ -1,8 +1,7 @@ -const Note = require('lib/models/Note.js'); -const TextWidget = require('tkwidgets/TextWidget.js'); +const Note = require("lib/models/Note.js"); +const TextWidget = require("tkwidgets/TextWidget.js"); class NoteMetadataWidget extends TextWidget { - constructor() { super(); this.noteId_ = 0; @@ -27,10 +26,9 @@ class NoteMetadataWidget extends TextWidget { if (!this.note_ && this.noteId_) { this.note_ = await Note.load(this.noteId_); - this.text = this.note_ ? await Note.minimalSerializeForDisplay(this.note_) : ''; + this.text = this.note_ ? await Note.minimalSerializeForDisplay(this.note_) : ""; } } - } -module.exports = NoteMetadataWidget; \ No newline at end of file +module.exports = NoteMetadataWidget; diff --git a/CliClient/app/gui/NoteWidget.js b/CliClient/app/gui/NoteWidget.js index d0a29538ea..7f5b9de315 100644 --- a/CliClient/app/gui/NoteWidget.js +++ b/CliClient/app/gui/NoteWidget.js @@ -1,9 +1,8 @@ -const Note = require('lib/models/Note.js'); -const TextWidget = require('tkwidgets/TextWidget.js'); -const { _ } = require('lib/locale.js'); +const Note = require("lib/models/Note.js"); +const TextWidget = require("tkwidgets/TextWidget.js"); +const { _ } = require("lib/locale.js"); class NoteWidget extends TextWidget { - constructor() { super(); this.noteId_ = 0; @@ -34,7 +33,9 @@ class NoteWidget extends TextWidget { } welcomeText() { - return _('Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.'); + return _( + "Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`." + ); } reloadNote() { @@ -42,24 +43,25 @@ class NoteWidget extends TextWidget { this.text = this.welcomeText(); this.scrollTop = 0; } else if (this.noteId_) { - this.doAsync('loadNote', async () => { + this.doAsync("loadNote", async () => { this.note_ = await Note.load(this.noteId_); - + if (this.note_ && this.note_.encryption_applied) { - this.text = _('One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.'); + this.text = _( + "One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon." + ); } else { - this.text = this.note_ ? this.note_.title + "\n\n" + this.note_.body : ''; + this.text = this.note_ ? this.note_.title + "\n\n" + this.note_.body : ""; } if (this.lastLoadedNoteId_ !== this.noteId_) this.scrollTop = 0; this.lastLoadedNoteId_ = this.noteId_; }); } else { - this.text = ''; + this.text = ""; this.scrollTop = 0; } } - } -module.exports = NoteWidget; \ No newline at end of file +module.exports = NoteWidget; diff --git a/CliClient/app/gui/StatusBarWidget.js b/CliClient/app/gui/StatusBarWidget.js index ae911da774..4e3d2270ae 100644 --- a/CliClient/app/gui/StatusBarWidget.js +++ b/CliClient/app/gui/StatusBarWidget.js @@ -1,11 +1,10 @@ -const BaseWidget = require('tkwidgets/BaseWidget.js'); -const chalk = require('chalk'); -const termutils = require('tkwidgets/framework/termutils.js'); -const stripAnsi = require('strip-ansi'); -const { handleAutocompletion } = require('../autocompletion.js'); +const BaseWidget = require("tkwidgets/BaseWidget.js"); +const chalk = require("chalk"); +const termutils = require("tkwidgets/framework/termutils.js"); +const stripAnsi = require("strip-ansi"); +const { handleAutocompletion } = require("../autocompletion.js"); class StatusBarWidget extends BaseWidget { - constructor() { super(); @@ -16,7 +15,7 @@ class StatusBarWidget extends BaseWidget { } get name() { - return 'statusBar'; + return "statusBar"; } get canHaveFocus() { @@ -28,9 +27,9 @@ class StatusBarWidget extends BaseWidget { this.invalidate(); } - async prompt(initialText = '', promptString = null, options = null) { - if (this.promptState_) throw new Error('Another prompt already active'); - if (promptString === null) promptString = ':'; + async prompt(initialText = "", promptString = null, options = null) { + if (this.promptState_) throw new Error("Another prompt already active"); + if (promptString === null) promptString = ":"; if (options === null) options = {}; this.root.globalDisableKeyboard(this); @@ -41,8 +40,8 @@ class StatusBarWidget extends BaseWidget { promptString: stripAnsi(promptString), }; - if ('cursorPosition' in options) this.promptState_.cursorPosition = options.cursorPosition; - if ('secure' in options) this.promptState_.secure = options.secure; + if ("cursorPosition" in options) this.promptState_.cursorPosition = options.cursorPosition; + if ("secure" in options) this.promptState_.secure = options.secure; this.promptState_.promise = new Promise((resolve, reject) => { this.promptState_.resolve = resolve; @@ -75,7 +74,7 @@ class StatusBarWidget extends BaseWidget { super.render(); const doSaveCursor = !this.promptActive; - + if (doSaveCursor) this.term.saveCursor(); this.innerClear(); @@ -87,14 +86,13 @@ class StatusBarWidget extends BaseWidget { //const textStyle = this.promptActive ? (s) => s : chalk.bgBlueBright.white; //const textStyle = (s) => s; - const textStyle = this.promptActive ? (s) => s : chalk.gray; + const textStyle = this.promptActive ? s => s : chalk.gray; - this.term.drawHLine(this.absoluteInnerX, this.absoluteInnerY, this.innerWidth, textStyle(' ')); + this.term.drawHLine(this.absoluteInnerX, this.absoluteInnerY, this.innerWidth, textStyle(" ")); this.term.moveTo(this.absoluteInnerX, this.absoluteInnerY); if (this.promptActive) { - this.term.write(textStyle(this.promptState_.promptString)); if (this.inputEventEmitter_) { @@ -113,11 +111,11 @@ class StatusBarWidget extends BaseWidget { history: this.history, default: this.promptState_.initialText, autoComplete: handleAutocompletion, - autoCompleteHint : true, - autoCompleteMenu : true, + autoCompleteHint: true, + autoCompleteMenu: true, }; - if ('cursorPosition' in this.promptState_) options.cursorPosition = this.promptState_.cursorPosition; + if ("cursorPosition" in this.promptState_) options.cursorPosition = this.promptState_.cursorPosition; if (isSecurePrompt) options.echoChar = true; this.inputEventEmitter_ = this.term.inputField(options, (error, input) => { @@ -125,7 +123,7 @@ class StatusBarWidget extends BaseWidget { const resolveFn = this.promptState_.resolve; if (error) { - this.logger().error('StatusBar: inputField error:', error); + this.logger().error("StatusBar: inputField error:", error); } else { if (input === undefined) { // User cancel @@ -133,7 +131,7 @@ class StatusBarWidget extends BaseWidget { resolveResult = input ? input.trim() : input; // Add the command to history but only if it's longer than one character. // Below that it's usually an answer like "y"/"n", etc. - const isConfigPassword = input.indexOf('config ') >= 0 && input.indexOf('password') >= 0; + const isConfigPassword = input.indexOf("config ") >= 0 && input.indexOf("password") >= 0; if (!isSecurePrompt && input && input.length > 1 && !isConfigPassword) this.history_.push(input); } } @@ -153,19 +151,15 @@ class StatusBarWidget extends BaseWidget { // Only callback once everything has been cleaned up and reset resolveFn(resolveResult); }); - } else { - for (let i = 0; i < this.items_.length; i++) { const s = this.items_[i].substr(0, this.innerWidth - 1); this.term.write(textStyle(s)); } - } if (doSaveCursor) this.term.restoreCursor(); } - } module.exports = StatusBarWidget; diff --git a/CliClient/app/help-utils.js b/CliClient/app/help-utils.js index a56359fc7b..43ca1fe91e 100644 --- a/CliClient/app/help-utils.js +++ b/CliClient/app/help-utils.js @@ -1,12 +1,12 @@ -const fs = require('fs-extra'); -const { wrap } = require('lib/string-utils.js'); -const Setting = require('lib/models/Setting.js'); -const { fileExtension, basename, dirname } = require('lib/path-utils.js'); -const { _, setLocale, languageCode } = require('lib/locale.js'); +const fs = require("fs-extra"); +const { wrap } = require("lib/string-utils.js"); +const Setting = require("lib/models/Setting.js"); +const { fileExtension, basename, dirname } = require("lib/path-utils.js"); +const { _, setLocale, languageCode } = require("lib/locale.js"); const rootDir = dirname(dirname(__dirname)); const MAX_WIDTH = 78; -const INDENT = ' '; +const INDENT = " "; function renderTwoColumnData(options, baseIndent, width) { let output = []; @@ -15,8 +15,8 @@ function renderTwoColumnData(options, baseIndent, width) { for (let i = 0; i < options.length; i++) { let option = options[i]; const flag = option[0]; - const indent = baseIndent + INDENT + ' '.repeat(optionColWidth + 2); - + const indent = baseIndent + INDENT + " ".repeat(optionColWidth + 2); + let r = wrap(option[1], indent, width); r = r.substr(flag.length + (baseIndent + INDENT).length); r = baseIndent + INDENT + flag + r; @@ -29,61 +29,61 @@ function renderTwoColumnData(options, baseIndent, width) { function renderCommandHelp(cmd, width = null) { if (width === null) width = MAX_WIDTH; - const baseIndent = ''; + const baseIndent = ""; let output = []; output.push(baseIndent + cmd.usage()); - output.push(''); + output.push(""); output.push(wrap(cmd.description(), baseIndent + INDENT, width)); const optionString = renderTwoColumnData(cmd.options(), baseIndent, width); if (optionString) { - output.push(''); + output.push(""); output.push(optionString); } - if (cmd.name() === 'config') { - const renderMetadata = (md) => { + if (cmd.name() === "config") { + const renderMetadata = md => { let desc = []; if (md.label) { let label = md.label(); - if (label.length && label[label.length - 1] !== '.') label += '.'; + if (label.length && label[label.length - 1] !== ".") label += "."; desc.push(label); } - const description = Setting.keyDescription(md.key, 'cli'); + const description = Setting.keyDescription(md.key, "cli"); if (description) desc.push(description); - desc.push(_('Type: %s.', md.isEnum ? _('Enum') : Setting.typeToString(md.type))); - if (md.isEnum) desc.push(_('Possible values: %s.', Setting.enumOptionsDoc(md.key, '%s (%s)'))); + desc.push(_("Type: %s.", md.isEnum ? _("Enum") : Setting.typeToString(md.type))); + if (md.isEnum) desc.push(_("Possible values: %s.", Setting.enumOptionsDoc(md.key, "%s (%s)"))); let defaultString = null; - if ('value' in md) { + if ("value" in md) { if (md.type === Setting.TYPE_STRING) { defaultString = md.value ? '"' + md.value + '"' : null; } else if (md.type === Setting.TYPE_INT) { defaultString = (md.value ? md.value : 0).toString(); } else if (md.type === Setting.TYPE_BOOL) { - defaultString = (md.value === true ? 'true' : 'false'); + defaultString = md.value === true ? "true" : "false"; } } - - if (defaultString !== null) desc.push(_('Default: %s', defaultString)); + + if (defaultString !== null) desc.push(_("Default: %s", defaultString)); return [md.key, desc.join("\n")]; }; - output.push(''); - output.push(_('Possible keys/values:')); - output.push(''); + output.push(""); + output.push(_("Possible keys/values:")); + output.push(""); let keysValues = []; - const keys = Setting.keys(true, 'cli'); + const keys = Setting.keys(true, "cli"); for (let i = 0; i < keys.length; i++) { - if (keysValues.length) keysValues.push(['','']); + if (keysValues.length) keysValues.push(["", ""]); const md = Setting.settingMetadata(keys[i]); if (!md.label) continue; keysValues.push(renderMetadata(md)); @@ -91,7 +91,7 @@ function renderCommandHelp(cmd, width = null) { output.push(renderTwoColumnData(keysValues, baseIndent, width)); } - + return output.join("\n"); } @@ -104,4 +104,4 @@ function getOptionColWidth(options) { return output; } -module.exports = { renderCommandHelp }; \ No newline at end of file +module.exports = { renderCommandHelp }; diff --git a/CliClient/app/main.js b/CliClient/app/main.js index 958314e7dd..c2092d03fe 100644 --- a/CliClient/app/main.js +++ b/CliClient/app/main.js @@ -1,30 +1,30 @@ #!/usr/bin/env node // Make it possible to require("/lib/...") without specifying full path -require('app-module-path').addPath(__dirname); +require("app-module-path").addPath(__dirname); -const compareVersion = require('compare-version'); -const nodeVersion = process && process.versions && process.versions.node ? process.versions.node : '0.0.0'; -if (compareVersion(nodeVersion, '8.0.0') < 0) { - console.error('Joplin requires Node 8+. Detected version ' + nodeVersion); +const compareVersion = require("compare-version"); +const nodeVersion = process && process.versions && process.versions.node ? process.versions.node : "0.0.0"; +if (compareVersion(nodeVersion, "8.0.0") < 0) { + console.error("Joplin requires Node 8+. Detected version " + nodeVersion); process.exit(1); } -const { app } = require('./app.js'); -const Folder = require('lib/models/Folder.js'); -const Resource = require('lib/models/Resource.js'); -const BaseItem = require('lib/models/BaseItem.js'); -const Note = require('lib/models/Note.js'); -const Tag = require('lib/models/Tag.js'); -const NoteTag = require('lib/models/NoteTag.js'); -const MasterKey = require('lib/models/MasterKey'); -const Setting = require('lib/models/Setting.js'); -const { Logger } = require('lib/logger.js'); -const { FsDriverNode } = require('lib/fs-driver-node.js'); -const { shimInit } = require('lib/shim-init-node.js'); -const { _ } = require('lib/locale.js'); -const { FileApiDriverLocal } = require('lib/file-api-driver-local.js'); -const EncryptionService = require('lib/services/EncryptionService'); +const { app } = require("./app.js"); +const Folder = require("lib/models/Folder.js"); +const Resource = require("lib/models/Resource.js"); +const BaseItem = require("lib/models/BaseItem.js"); +const Note = require("lib/models/Note.js"); +const Tag = require("lib/models/Tag.js"); +const NoteTag = require("lib/models/NoteTag.js"); +const MasterKey = require("lib/models/MasterKey"); +const Setting = require("lib/models/Setting.js"); +const { Logger } = require("lib/logger.js"); +const { FsDriverNode } = require("lib/fs-driver-node.js"); +const { shimInit } = require("lib/shim-init-node.js"); +const { _ } = require("lib/locale.js"); +const { FileApiDriverLocal } = require("lib/file-api-driver-local.js"); +const EncryptionService = require("lib/services/EncryptionService"); const fsDriver = new FsDriverNode(); Logger.fsDriver_ = fsDriver; @@ -34,15 +34,15 @@ FileApiDriverLocal.fsDriver_ = fsDriver; // That's not good, but it's to avoid circular dependency issues // in the BaseItem class. -BaseItem.loadClass('Note', Note); -BaseItem.loadClass('Folder', Folder); -BaseItem.loadClass('Resource', Resource); -BaseItem.loadClass('Tag', Tag); -BaseItem.loadClass('NoteTag', NoteTag); -BaseItem.loadClass('MasterKey', MasterKey); +BaseItem.loadClass("Note", Note); +BaseItem.loadClass("Folder", Folder); +BaseItem.loadClass("Resource", Resource); +BaseItem.loadClass("Tag", Tag); +BaseItem.loadClass("NoteTag", NoteTag); +BaseItem.loadClass("MasterKey", MasterKey); -Setting.setConstant('appId', 'net.cozic.joplin-cli'); -Setting.setConstant('appType', 'cli'); +Setting.setConstant("appId", "net.cozic.joplin-cli"); +Setting.setConstant("appType", "cli"); shimInit(); @@ -51,25 +51,21 @@ const application = app(); if (process.platform === "win32") { var rl = require("readline").createInterface({ input: process.stdin, - output: process.stdout + output: process.stdout, }); - rl.on("SIGINT", function () { + rl.on("SIGINT", function() { process.emit("SIGINT"); }); } -process.stdout.on('error', function( err ) { +process.stdout.on("error", function(err) { // https://stackoverflow.com/questions/12329816/error-write-epipe-when-piping-node-output-to-head#15884508 if (err.code == "EPIPE") { process.exit(0); } }); - - - - // async function main() { // const InteropService = require('lib/services/InteropService'); // const service = new InteropService(); @@ -79,21 +75,14 @@ process.stdout.on('error', function( err ) { // main().catch((error) => { console.error(error); }); - - - - - - - -application.start(process.argv).catch((error) => { - if (error.code == 'flagError') { +application.start(process.argv).catch(error => { + if (error.code == "flagError") { console.error(error.message); - console.error(_('Type `joplin help` for usage information.')); + console.error(_("Type `joplin help` for usage information.")); } else { - console.error(_('Fatal error:')); + console.error(_("Fatal error:")); console.error(error); } process.exit(1); -}); \ No newline at end of file +}); diff --git a/CliClient/app/onedrive-api-node-utils.js b/CliClient/app/onedrive-api-node-utils.js index b9ba881831..e054a69a3f 100644 --- a/CliClient/app/onedrive-api-node-utils.js +++ b/CliClient/app/onedrive-api-node-utils.js @@ -1,13 +1,12 @@ -const { _ } = require('lib/locale.js'); -const { netUtils } = require('lib/net-utils.js'); +const { _ } = require("lib/locale.js"); +const { netUtils } = require("lib/net-utils.js"); const http = require("http"); const urlParser = require("url"); -const FormData = require('form-data'); -const enableServerDestroy = require('server-destroy'); +const FormData = require("form-data"); +const enableServerDestroy = require("server-destroy"); class OneDriveApiNodeUtils { - constructor(api) { this.api_ = api; this.oauthServer_ = null; @@ -44,19 +43,19 @@ class OneDriveApiNodeUtils { this.api().setAuth(null); const port = await netUtils.findAvailablePort(this.possibleOAuthDancePorts(), 0); - if (!port) throw new Error(_('All potential ports are in use - please report the issue at %s', 'https://github.com/laurent22/joplin')); + if (!port) throw new Error(_("All potential ports are in use - please report the issue at %s", "https://github.com/laurent22/joplin")); - let authCodeUrl = this.api().authCodeUrl('http://localhost:' + port); + let authCodeUrl = this.api().authCodeUrl("http://localhost:" + port); - return new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { this.oauthServer_ = http.createServer(); let errorMessage = null; - this.oauthServer_.on('request', (request, response) => { + this.oauthServer_.on("request", (request, response) => { const url = urlParser.parse(request.url, true); - if (url.pathname === '/auth') { - response.writeHead(302, { 'Location': authCodeUrl }); + if (url.pathname === "/auth") { + response.writeHead(302, { Location: authCodeUrl }); response.end(); return; } @@ -64,10 +63,10 @@ class OneDriveApiNodeUtils { const query = url.query; const writeResponse = (code, message) => { - response.writeHead(code, {"Content-Type": "text/html"}); + response.writeHead(code, { "Content-Type": "text/html" }); response.write(this.makePage(message)); response.end(); - } + }; // After the response has been received, don't destroy the server right // away or the browser might display a connection reset error (even @@ -77,24 +76,27 @@ class OneDriveApiNodeUtils { this.oauthServer_.destroy(); this.oauthServer_ = null; }, 1000); - } + }; if (!query.code) return writeResponse(400, '"code" query parameter is missing'); - this.api().execTokenRequest(query.code, 'http://localhost:' + port.toString()).then(() => { - writeResponse(200, _('The application has been authorised - you may now close this browser tab.')); - targetConsole.log(''); - targetConsole.log(_('The application has been successfully authorised.')); - waitAndDestroy(); - }).catch((error) => { - writeResponse(400, error.message); - targetConsole.log(''); - targetConsole.log(error.message); - waitAndDestroy(); - }); + this.api() + .execTokenRequest(query.code, "http://localhost:" + port.toString()) + .then(() => { + writeResponse(200, _("The application has been authorised - you may now close this browser tab.")); + targetConsole.log(""); + targetConsole.log(_("The application has been successfully authorised.")); + waitAndDestroy(); + }) + .catch(error => { + writeResponse(400, error.message); + targetConsole.log(""); + targetConsole.log(error.message); + waitAndDestroy(); + }); }); - this.oauthServer_.on('close', () => { + this.oauthServer_.on("close", () => { if (errorMessage) { reject(new Error(errorMessage)); } else { @@ -111,12 +113,15 @@ class OneDriveApiNodeUtils { // doesn't get cut in terminals (especially those that don't handle multi // lines URLs). - targetConsole.log(_('Please open the following URL in your browser to authenticate the application. The application will create a directory in "Apps/Joplin" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.')); - targetConsole.log(''); - targetConsole.log('http://127.0.0.1:' + port + '/auth'); + targetConsole.log( + _( + 'Please open the following URL in your browser to authenticate the application. The application will create a directory in "Apps/Joplin" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.' + ) + ); + targetConsole.log(""); + targetConsole.log("http://127.0.0.1:" + port + "/auth"); }); } - } -module.exports = { OneDriveApiNodeUtils }; \ No newline at end of file +module.exports = { OneDriveApiNodeUtils }; diff --git a/CliClient/tests/ArrayUtils.js b/CliClient/tests/ArrayUtils.js index bef63a8b82..bb5bceb9a3 100644 --- a/CliClient/tests/ArrayUtils.js +++ b/CliClient/tests/ArrayUtils.js @@ -1,47 +1,58 @@ -require('app-module-path').addPath(__dirname); +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 ArrayUtils = require('lib/ArrayUtils.js'); +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 ArrayUtils = require("lib/ArrayUtils.js"); -process.on('unhandledRejection', (reason, p) => { - console.log('Unhandled Rejection at: Promise', p, 'reason:', reason); +process.on("unhandledRejection", (reason, p) => { + console.log("Unhandled Rejection at: Promise", p, "reason:", reason); }); -describe('ArrayUtils', function() { - - beforeEach(async (done) => { +describe("ArrayUtils", function() { + beforeEach(async done => { done(); }); - it('should remove array elements', async (done) => { - let a = ['un', 'deux', 'trois']; - a = ArrayUtils.removeElement(a, 'deux'); + it("should remove array elements", async done => { + let a = ["un", "deux", "trois"]; + a = ArrayUtils.removeElement(a, "deux"); - expect(a[0]).toBe('un'); - expect(a[1]).toBe('trois'); + expect(a[0]).toBe("un"); + expect(a[1]).toBe("trois"); expect(a.length).toBe(2); - a = ['un', 'deux', 'trois']; - a = ArrayUtils.removeElement(a, 'not in there'); + a = ["un", "deux", "trois"]; + a = ArrayUtils.removeElement(a, "not in there"); expect(a.length).toBe(3); done(); }); - it('should find items using binary search', async (done) => { - let items = ['aaa', 'ccc', 'bbb']; - expect(ArrayUtils.binarySearch(items, 'bbb')).toBe(-1); // Array not sorted! + it("should find items using binary search", async done => { + let items = ["aaa", "ccc", "bbb"]; + expect(ArrayUtils.binarySearch(items, "bbb")).toBe(-1); // Array not sorted! items.sort(); - expect(ArrayUtils.binarySearch(items, 'bbb')).toBe(1); - expect(ArrayUtils.binarySearch(items, 'ccc')).toBe(2); - expect(ArrayUtils.binarySearch(items, 'oops')).toBe(-1); - expect(ArrayUtils.binarySearch(items, 'aaa')).toBe(0); + expect(ArrayUtils.binarySearch(items, "bbb")).toBe(1); + expect(ArrayUtils.binarySearch(items, "ccc")).toBe(2); + expect(ArrayUtils.binarySearch(items, "oops")).toBe(-1); + expect(ArrayUtils.binarySearch(items, "aaa")).toBe(0); items = []; - expect(ArrayUtils.binarySearch(items, 'aaa')).toBe(-1); + expect(ArrayUtils.binarySearch(items, "aaa")).toBe(-1); done(); }); - -}); \ No newline at end of file +}); diff --git a/CliClient/tests/encryption.js b/CliClient/tests/encryption.js index 63ca4a417e..326d608065 100644 --- a/CliClient/tests/encryption.js +++ b/CliClient/tests/encryption.js @@ -1,42 +1,54 @@ -require('app-module-path').addPath(__dirname); +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 Folder = require('lib/models/Folder.js'); -const Note = require('lib/models/Note.js'); -const Tag = require('lib/models/Tag.js'); -const { Database } = require('lib/database.js'); -const Setting = require('lib/models/Setting.js'); -const BaseItem = require('lib/models/BaseItem.js'); -const BaseModel = require('lib/BaseModel.js'); -const MasterKey = require('lib/models/MasterKey'); -const SyncTargetRegistry = require('lib/SyncTargetRegistry.js'); -const EncryptionService = require('lib/services/EncryptionService.js'); +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 Folder = require("lib/models/Folder.js"); +const Note = require("lib/models/Note.js"); +const Tag = require("lib/models/Tag.js"); +const { Database } = require("lib/database.js"); +const Setting = require("lib/models/Setting.js"); +const BaseItem = require("lib/models/BaseItem.js"); +const BaseModel = require("lib/BaseModel.js"); +const MasterKey = require("lib/models/MasterKey"); +const SyncTargetRegistry = require("lib/SyncTargetRegistry.js"); +const EncryptionService = require("lib/services/EncryptionService.js"); -process.on('unhandledRejection', (reason, p) => { - console.log('Unhandled Rejection at: Promise', p, 'reason:', reason); +process.on("unhandledRejection", (reason, p) => { + console.log("Unhandled Rejection at: Promise", p, "reason:", reason); }); jasmine.DEFAULT_TIMEOUT_INTERVAL = 15000; // The first test is slow because the database needs to be built let service = null; -describe('Encryption', function() { - - beforeEach(async (done) => { +describe("Encryption", function() { + beforeEach(async done => { await setupDatabaseAndSynchronizer(1); //await setupDatabaseAndSynchronizer(2); //await switchClient(1); - service = new EncryptionService(); + service = new EncryptionService(); BaseItem.encryptionService_ = service; - Setting.setValue('encryption.enabled', true); + Setting.setValue("encryption.enabled", true); done(); }); - it('should encode and decode header', async (done) => { + it("should encode and decode header", async done => { const header = { encryptionMethod: EncryptionService.METHOD_SJCL, - masterKeyId: '01234568abcdefgh01234568abcdefgh', + masterKeyId: "01234568abcdefgh01234568abcdefgh", }; const encodedHeader = service.encodeHeader_(header); @@ -48,40 +60,40 @@ describe('Encryption', function() { done(); }); - it('should generate and decrypt a master key', async (done) => { - const masterKey = await service.generateMasterKey('123456'); + it("should generate and decrypt a master key", async done => { + const masterKey = await service.generateMasterKey("123456"); expect(!!masterKey.checksum).toBe(true); expect(!!masterKey.content).toBe(true); let hasThrown = false; try { - await service.decryptMasterKey(masterKey, 'wrongpassword'); + await service.decryptMasterKey(masterKey, "wrongpassword"); } catch (error) { hasThrown = true; } expect(hasThrown).toBe(true); - const decryptedMasterKey = await service.decryptMasterKey(masterKey, '123456'); + const decryptedMasterKey = await service.decryptMasterKey(masterKey, "123456"); expect(decryptedMasterKey.length).toBe(512); done(); }); - it('should encrypt and decrypt with a master key', async (done) => { - let masterKey = await service.generateMasterKey('123456'); + it("should encrypt and decrypt with a master key", async done => { + let masterKey = await service.generateMasterKey("123456"); masterKey = await MasterKey.save(masterKey); - await service.loadMasterKey(masterKey, '123456', true); + await service.loadMasterKey(masterKey, "123456", true); - const cipherText = await service.encryptString('some secret'); + const cipherText = await service.encryptString("some secret"); const plainText = await service.decryptString(cipherText); - expect(plainText).toBe('some secret'); + expect(plainText).toBe("some secret"); // Test that a long string, that is going to be split into multiple chunks, encrypt // and decrypt properly too. - let veryLongSecret = ''; + let veryLongSecret = ""; for (let i = 0; i < service.chunkSize() * 3; i++) veryLongSecret += Math.floor(Math.random() * 9); const cipherText2 = await service.encryptString(veryLongSecret); @@ -92,13 +104,13 @@ describe('Encryption', function() { done(); }); - it('should fail to decrypt if master key not present', async (done) => { - let masterKey = await service.generateMasterKey('123456'); + it("should fail to decrypt if master key not present", async done => { + let masterKey = await service.generateMasterKey("123456"); masterKey = await MasterKey.save(masterKey); - await service.loadMasterKey(masterKey, '123456', true); + await service.loadMasterKey(masterKey, "123456", true); - const cipherText = await service.encryptString('some secret'); + const cipherText = await service.encryptString("some secret"); await service.unloadMasterKey(masterKey); @@ -109,14 +121,13 @@ describe('Encryption', function() { done(); }); - - it('should fail to decrypt if data tampered with', async (done) => { - let masterKey = await service.generateMasterKey('123456'); + it("should fail to decrypt if data tampered with", async done => { + let masterKey = await service.generateMasterKey("123456"); masterKey = await MasterKey.save(masterKey); - await service.loadMasterKey(masterKey, '123456', true); + await service.loadMasterKey(masterKey, "123456", true); - let cipherText = await service.encryptString('some secret'); + let cipherText = await service.encryptString("some secret"); cipherText += "ABCDEFGHIJ"; let hasThrown = await checkThrowAsync(async () => await service.decryptString(cipherText)); @@ -126,13 +137,13 @@ describe('Encryption', function() { done(); }); - it('should encrypt and decrypt notes and folders', async (done) => { - let masterKey = await service.generateMasterKey('123456'); + it("should encrypt and decrypt notes and folders", async done => { + let masterKey = await service.generateMasterKey("123456"); masterKey = await MasterKey.save(masterKey); - await service.loadMasterKey(masterKey, '123456', true); + await service.loadMasterKey(masterKey, "123456", true); - let folder = await Folder.save({ title: 'folder' }); - let note = await Note.save({ title: 'encrypted note', body: 'something', parent_id: folder.id }); + let folder = await Folder.save({ title: "folder" }); + let note = await Note.save({ title: "encrypted note", body: "something", parent_id: folder.id }); let serialized = await Note.serializeForSync(note); let deserialized = Note.filter(await Note.unserialize(serialized)); @@ -159,14 +170,14 @@ describe('Encryption', function() { done(); }); - it('should encrypt and decrypt files', async (done) => { - let masterKey = await service.generateMasterKey('123456'); + it("should encrypt and decrypt files", async done => { + let masterKey = await service.generateMasterKey("123456"); masterKey = await MasterKey.save(masterKey); - await service.loadMasterKey(masterKey, '123456', true); + await service.loadMasterKey(masterKey, "123456", true); - const sourcePath = __dirname + '/../tests/support/photo.jpg'; - const encryptedPath = __dirname + '/data/photo.crypted'; - const decryptedPath = __dirname + '/data/photo.jpg'; + const sourcePath = __dirname + "/../tests/support/photo.jpg"; + const encryptedPath = __dirname + "/data/photo.crypted"; + const decryptedPath = __dirname + "/data/photo.jpg"; await service.encryptFile(sourcePath, encryptedPath); await service.decryptFile(encryptedPath, decryptedPath); @@ -176,5 +187,4 @@ describe('Encryption', function() { done(); }); - -}); \ No newline at end of file +}); diff --git a/CliClient/tests/models_Setting.js b/CliClient/tests/models_Setting.js index 53cce04394..03aedf7e30 100644 --- a/CliClient/tests/models_Setting.js +++ b/CliClient/tests/models_Setting.js @@ -1,32 +1,47 @@ -require('app-module-path').addPath(__dirname); +require("app-module-path").addPath(__dirname); -const { time } = require('lib/time-utils.js'); -const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js'); -const Setting = require('lib/models/Setting.js'); +const { time } = require("lib/time-utils.js"); +const { + asyncTest, + fileContentEqual, + setupDatabase, + setupDatabaseAndSynchronizer, + db, + synchronizer, + fileApi, + sleep, + clearDatabase, + switchClient, + syncTargetId, + objectsEqual, + checkThrowAsync, +} = require("test-utils.js"); +const Setting = require("lib/models/Setting.js"); -process.on('unhandledRejection', (reason, p) => { - console.log('Unhandled Rejection at: Promise', p, 'reason:', reason); +process.on("unhandledRejection", (reason, p) => { + console.log("Unhandled Rejection at: Promise", p, "reason:", reason); }); -describe('models_Setting', function() { - - beforeEach(async (done) => { +describe("models_Setting", function() { + beforeEach(async done => { done(); }); - it('should return only sub-values', asyncTest(async () => { - const settings = { - 'sync.5.path': 'http://example.com', - 'sync.5.username': 'testing', - } + it( + "should return only sub-values", + asyncTest(async () => { + const settings = { + "sync.5.path": "http://example.com", + "sync.5.username": "testing", + }; - let output = Setting.subValues('sync.5', settings); - expect(output['path']).toBe('http://example.com'); - expect(output['username']).toBe('testing'); + let output = Setting.subValues("sync.5", settings); + expect(output["path"]).toBe("http://example.com"); + expect(output["username"]).toBe("testing"); - output = Setting.subValues('sync.4', settings); - expect('path' in output).toBe(false); - expect('username' in output).toBe(false); - })); - -}); \ No newline at end of file + output = Setting.subValues("sync.4", settings); + expect("path" in output).toBe(false); + expect("username" in output).toBe(false); + }) + ); +}); diff --git a/CliClient/tests/services_InteropService.js b/CliClient/tests/services_InteropService.js index 2c0582e57f..32b53ed9a1 100644 --- a/CliClient/tests/services_InteropService.js +++ b/CliClient/tests/services_InteropService.js @@ -1,36 +1,49 @@ -require('app-module-path').addPath(__dirname); +require("app-module-path").addPath(__dirname); -const { time } = require('lib/time-utils.js'); -const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js'); -const InteropService = require('lib/services/InteropService.js'); -const Folder = require('lib/models/Folder.js'); -const Note = require('lib/models/Note.js'); -const Tag = require('lib/models/Tag.js'); -const NoteTag = require('lib/models/NoteTag.js'); -const Resource = require('lib/models/Resource.js'); -const fs = require('fs-extra'); -const ArrayUtils = require('lib/ArrayUtils'); -const ObjectUtils = require('lib/ObjectUtils'); -const { shim } = require('lib/shim.js'); +const { time } = require("lib/time-utils.js"); +const { + asyncTest, + fileContentEqual, + setupDatabase, + setupDatabaseAndSynchronizer, + db, + synchronizer, + fileApi, + sleep, + clearDatabase, + switchClient, + syncTargetId, + objectsEqual, + checkThrowAsync, +} = require("test-utils.js"); +const InteropService = require("lib/services/InteropService.js"); +const Folder = require("lib/models/Folder.js"); +const Note = require("lib/models/Note.js"); +const Tag = require("lib/models/Tag.js"); +const NoteTag = require("lib/models/NoteTag.js"); +const Resource = require("lib/models/Resource.js"); +const fs = require("fs-extra"); +const ArrayUtils = require("lib/ArrayUtils"); +const ObjectUtils = require("lib/ObjectUtils"); +const { shim } = require("lib/shim.js"); -process.on('unhandledRejection', (reason, p) => { - console.log('Unhandled Rejection at: Promise', p, 'reason:', reason); +process.on("unhandledRejection", (reason, p) => { + console.log("Unhandled Rejection at: Promise", p, "reason:", reason); }); function exportDir() { - return __dirname + '/export'; + return __dirname + "/export"; } function fieldsEqual(model1, model2, fieldNames) { for (let i = 0; i < fieldNames.length; i++) { const f = fieldNames[i]; - expect(model1[f]).toBe(model2[f], 'For key ' + f); + expect(model1[f]).toBe(model2[f], "For key " + f); } } -describe('services_InteropService', function() { - - beforeEach(async (done) => { +describe("services_InteropService", function() { + beforeEach(async done => { await setupDatabaseAndSynchronizer(1); await switchClient(1); @@ -40,213 +53,233 @@ describe('services_InteropService', function() { done(); }); - it('should export and import folders', asyncTest(async () => { - const service = new InteropService(); - let folder1 = await Folder.save({ title: "folder1" }); - folder1 = await Folder.load(folder1.id); - const filePath = exportDir() + '/test.jex'; + it( + "should export and import folders", + asyncTest(async () => { + const service = new InteropService(); + let folder1 = await Folder.save({ title: "folder1" }); + folder1 = await Folder.load(folder1.id); + const filePath = exportDir() + "/test.jex"; - await service.export({ path: filePath }); + await service.export({ path: filePath }); - await Folder.delete(folder1.id); + await Folder.delete(folder1.id); - await service.import({ path: filePath }); + await service.import({ path: filePath }); - // Check that a new folder, with a new ID, has been created + // Check that a new folder, with a new ID, has been created - expect(await Folder.count()).toBe(1); - let folder2 = (await Folder.all())[0]; - expect(folder2.id).not.toBe(folder1.id); - expect(folder2.title).toBe(folder1.title); + expect(await Folder.count()).toBe(1); + let folder2 = (await Folder.all())[0]; + expect(folder2.id).not.toBe(folder1.id); + expect(folder2.title).toBe(folder1.title); - await service.import({ path: filePath }); + await service.import({ path: filePath }); - // As there was already a folder with the same title, check that the new one has been renamed + // As there was already a folder with the same title, check that the new one has been renamed - await Folder.delete(folder2.id); - let folder3 = (await Folder.all())[0]; - expect(await Folder.count()).toBe(1); - expect(folder3.title).not.toBe(folder2.title); + await Folder.delete(folder2.id); + let folder3 = (await Folder.all())[0]; + expect(await Folder.count()).toBe(1); + expect(folder3.title).not.toBe(folder2.title); - let fieldNames = Folder.fieldNames(); - fieldNames = ArrayUtils.removeElement(fieldNames, 'id'); - fieldNames = ArrayUtils.removeElement(fieldNames, 'title'); + let fieldNames = Folder.fieldNames(); + fieldNames = ArrayUtils.removeElement(fieldNames, "id"); + fieldNames = ArrayUtils.removeElement(fieldNames, "title"); - fieldsEqual(folder3, folder1, fieldNames); - })); + fieldsEqual(folder3, folder1, fieldNames); + }) + ); - it('should export and import folders and notes', asyncTest(async () => { - const service = new InteropService(); - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id }); - note1 = await Note.load(note1.id); - const filePath = exportDir() + '/test.jex'; + it( + "should export and import folders and notes", + asyncTest(async () => { + const service = new InteropService(); + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "ma note", parent_id: folder1.id }); + note1 = await Note.load(note1.id); + const filePath = exportDir() + "/test.jex"; - await service.export({ path: filePath }); + await service.export({ path: filePath }); - await Folder.delete(folder1.id); - await Note.delete(note1.id); + await Folder.delete(folder1.id); + await Note.delete(note1.id); - await service.import({ path: filePath }); + await service.import({ path: filePath }); - expect(await Note.count()).toBe(1); - let note2 = (await Note.all())[0]; - let folder2 = (await Folder.all())[0]; + expect(await Note.count()).toBe(1); + let note2 = (await Note.all())[0]; + let folder2 = (await Folder.all())[0]; - expect(note1.parent_id).not.toBe(note2.parent_id); - expect(note1.id).not.toBe(note2.id); - expect(note2.parent_id).toBe(folder2.id); + expect(note1.parent_id).not.toBe(note2.parent_id); + expect(note1.id).not.toBe(note2.id); + expect(note2.parent_id).toBe(folder2.id); - let fieldNames = Note.fieldNames(); - fieldNames = ArrayUtils.removeElement(fieldNames, 'id'); - fieldNames = ArrayUtils.removeElement(fieldNames, 'parent_id'); + let fieldNames = Note.fieldNames(); + fieldNames = ArrayUtils.removeElement(fieldNames, "id"); + fieldNames = ArrayUtils.removeElement(fieldNames, "parent_id"); - fieldsEqual(note1, note2, fieldNames); + fieldsEqual(note1, note2, fieldNames); - await service.import({ path: filePath }); + await service.import({ path: filePath }); - note2 = (await Note.all())[0]; - let note3 = (await Note.all())[1]; + note2 = (await Note.all())[0]; + let note3 = (await Note.all())[1]; - expect(note2.id).not.toBe(note3.id); - expect(note2.parent_id).not.toBe(note3.parent_id); + expect(note2.id).not.toBe(note3.id); + expect(note2.parent_id).not.toBe(note3.parent_id); - fieldsEqual(note2, note3, fieldNames); - })); + fieldsEqual(note2, note3, fieldNames); + }) + ); - it('should export and import notes to specific folder', asyncTest(async () => { - const service = new InteropService(); - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id }); - note1 = await Note.load(note1.id); - const filePath = exportDir() + '/test.jex'; + it( + "should export and import notes to specific folder", + asyncTest(async () => { + const service = new InteropService(); + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "ma note", parent_id: folder1.id }); + note1 = await Note.load(note1.id); + const filePath = exportDir() + "/test.jex"; - await service.export({ path: filePath }); + await service.export({ path: filePath }); - await Note.delete(note1.id); + await Note.delete(note1.id); - await service.import({ path: filePath, destinationFolderId: folder1.id }); + await service.import({ path: filePath, destinationFolderId: folder1.id }); - expect(await Note.count()).toBe(1); - expect(await Folder.count()).toBe(1); + expect(await Note.count()).toBe(1); + expect(await Folder.count()).toBe(1); - expect(await checkThrowAsync(async () => await service.import({ path: filePath, destinationFolderId: 'oops' }))).toBe(true); - })); + expect(await checkThrowAsync(async () => await service.import({ path: filePath, destinationFolderId: "oops" }))).toBe(true); + }) + ); - it('should export and import tags', asyncTest(async () => { - const service = new InteropService(); - const filePath = exportDir() + '/test.jex'; - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id }); - let tag1 = await Tag.save({ title: 'mon tag' }); - tag1 = await Tag.load(tag1.id); - await Tag.addNote(tag1.id, note1.id); + it( + "should export and import tags", + asyncTest(async () => { + const service = new InteropService(); + const filePath = exportDir() + "/test.jex"; + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "ma note", parent_id: folder1.id }); + let tag1 = await Tag.save({ title: "mon tag" }); + tag1 = await Tag.load(tag1.id); + await Tag.addNote(tag1.id, note1.id); - await service.export({ path: filePath }); + await service.export({ path: filePath }); - await Folder.delete(folder1.id); - await Note.delete(note1.id); - await Tag.delete(tag1.id); + await Folder.delete(folder1.id); + await Note.delete(note1.id); + await Tag.delete(tag1.id); - await service.import({ path: filePath }); + await service.import({ path: filePath }); - expect(await Tag.count()).toBe(1); - let tag2 = (await Tag.all())[0]; - let note2 = (await Note.all())[0]; - expect(tag1.id).not.toBe(tag2.id); + expect(await Tag.count()).toBe(1); + let tag2 = (await Tag.all())[0]; + let note2 = (await Note.all())[0]; + expect(tag1.id).not.toBe(tag2.id); - let fieldNames = Note.fieldNames(); - fieldNames = ArrayUtils.removeElement(fieldNames, 'id'); - fieldsEqual(tag1, tag2, fieldNames); + let fieldNames = Note.fieldNames(); + fieldNames = ArrayUtils.removeElement(fieldNames, "id"); + fieldsEqual(tag1, tag2, fieldNames); - let noteIds = await Tag.noteIds(tag2.id); - expect(noteIds.length).toBe(1); - expect(noteIds[0]).toBe(note2.id); + let noteIds = await Tag.noteIds(tag2.id); + expect(noteIds.length).toBe(1); + expect(noteIds[0]).toBe(note2.id); - await service.import({ path: filePath }); + await service.import({ path: filePath }); - // If importing again, no new tag should be created as one with - // the same name already existed. The newly imported note should - // however go under that already existing tag. - expect(await Tag.count()).toBe(1); - noteIds = await Tag.noteIds(tag2.id); - expect(noteIds.length).toBe(2); - })); + // If importing again, no new tag should be created as one with + // the same name already existed. The newly imported note should + // however go under that already existing tag. + expect(await Tag.count()).toBe(1); + noteIds = await Tag.noteIds(tag2.id); + expect(noteIds.length).toBe(2); + }) + ); - it('should export and import resources', asyncTest(async () => { - const service = new InteropService(); - const filePath = exportDir() + '/test.jex'; - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id }); - await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg'); - note1 = await Note.load(note1.id); - let resourceIds = Note.linkedResourceIds(note1.body); - let resource1 = await Resource.load(resourceIds[0]); + it( + "should export and import resources", + asyncTest(async () => { + const service = new InteropService(); + const filePath = exportDir() + "/test.jex"; + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "ma note", parent_id: folder1.id }); + await shim.attachFileToNote(note1, __dirname + "/../tests/support/photo.jpg"); + note1 = await Note.load(note1.id); + let resourceIds = Note.linkedResourceIds(note1.body); + let resource1 = await Resource.load(resourceIds[0]); - await service.export({ path: filePath }); - - await Note.delete(note1.id); + await service.export({ path: filePath }); - await service.import({ path: filePath }); + await Note.delete(note1.id); - expect(await Resource.count()).toBe(2); + await service.import({ path: filePath }); - let note2 = (await Note.all())[0]; - expect(note2.body).not.toBe(note1.body); - resourceIds = Note.linkedResourceIds(note2.body); - expect(resourceIds.length).toBe(1); - let resource2 = await Resource.load(resourceIds[0]); - expect(resource2.id).not.toBe(resource1.id); + expect(await Resource.count()).toBe(2); - let fieldNames = Note.fieldNames(); - fieldNames = ArrayUtils.removeElement(fieldNames, 'id'); - fieldsEqual(resource1, resource2, fieldNames); + let note2 = (await Note.all())[0]; + expect(note2.body).not.toBe(note1.body); + resourceIds = Note.linkedResourceIds(note2.body); + expect(resourceIds.length).toBe(1); + let resource2 = await Resource.load(resourceIds[0]); + expect(resource2.id).not.toBe(resource1.id); - const resourcePath1 = Resource.fullPath(resource1); - const resourcePath2 = Resource.fullPath(resource2); + let fieldNames = Note.fieldNames(); + fieldNames = ArrayUtils.removeElement(fieldNames, "id"); + fieldsEqual(resource1, resource2, fieldNames); - expect(resourcePath1).not.toBe(resourcePath2); - expect(fileContentEqual(resourcePath1, resourcePath2)).toBe(true); - })); + const resourcePath1 = Resource.fullPath(resource1); + const resourcePath2 = Resource.fullPath(resource2); - it('should export and import single notes', asyncTest(async () => { - const service = new InteropService(); - const filePath = exportDir() + '/test.jex'; - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id }); + expect(resourcePath1).not.toBe(resourcePath2); + expect(fileContentEqual(resourcePath1, resourcePath2)).toBe(true); + }) + ); - await service.export({ path: filePath, sourceNoteIds: [note1.id] }); - - await Note.delete(note1.id); - await Folder.delete(folder1.id); + it( + "should export and import single notes", + asyncTest(async () => { + const service = new InteropService(); + const filePath = exportDir() + "/test.jex"; + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "ma note", parent_id: folder1.id }); - await service.import({ path: filePath }); + await service.export({ path: filePath, sourceNoteIds: [note1.id] }); - expect(await Note.count()).toBe(1); - expect(await Folder.count()).toBe(1); + await Note.delete(note1.id); + await Folder.delete(folder1.id); - let folder2 = (await Folder.all())[0]; - expect(folder2.title).toBe('test'); - })); + await service.import({ path: filePath }); - it('should export and import single folders', asyncTest(async () => { - const service = new InteropService(); - const filePath = exportDir() + '/test.jex'; - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id }); + expect(await Note.count()).toBe(1); + expect(await Folder.count()).toBe(1); - await service.export({ path: filePath, sourceFolderIds: [folder1.id] }); - - await Note.delete(note1.id); - await Folder.delete(folder1.id); + let folder2 = (await Folder.all())[0]; + expect(folder2.title).toBe("test"); + }) + ); - await service.import({ path: filePath }); + it( + "should export and import single folders", + asyncTest(async () => { + const service = new InteropService(); + const filePath = exportDir() + "/test.jex"; + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "ma note", parent_id: folder1.id }); - expect(await Note.count()).toBe(1); - expect(await Folder.count()).toBe(1); + await service.export({ path: filePath, sourceFolderIds: [folder1.id] }); - let folder2 = (await Folder.all())[0]; - expect(folder2.title).toBe('folder1'); - })); + await Note.delete(note1.id); + await Folder.delete(folder1.id); -}); \ No newline at end of file + await service.import({ path: filePath }); + + expect(await Note.count()).toBe(1); + expect(await Folder.count()).toBe(1); + + let folder2 = (await Folder.all())[0]; + expect(folder2.title).toBe("folder1"); + }) + ); +}); diff --git a/CliClient/tests/synchronizer.js b/CliClient/tests/synchronizer.js index 06d2e4e124..ad12c2670f 100644 --- a/CliClient/tests/synchronizer.js +++ b/CliClient/tests/synchronizer.js @@ -1,22 +1,38 @@ -require('app-module-path').addPath(__dirname); +require("app-module-path").addPath(__dirname); -const { time } = require('lib/time-utils.js'); -const { setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, encryptionService, loadEncryptionMasterKey, fileContentEqual, decryptionWorker, checkThrowAsync, asyncTest } = require('test-utils.js'); -const { shim } = require('lib/shim.js'); -const fs = require('fs-extra'); -const Folder = require('lib/models/Folder.js'); -const Note = require('lib/models/Note.js'); -const Resource = require('lib/models/Resource.js'); -const Tag = require('lib/models/Tag.js'); -const { Database } = require('lib/database.js'); -const Setting = require('lib/models/Setting.js'); -const MasterKey = require('lib/models/MasterKey'); -const BaseItem = require('lib/models/BaseItem.js'); -const BaseModel = require('lib/BaseModel.js'); -const SyncTargetRegistry = require('lib/SyncTargetRegistry.js'); +const { time } = require("lib/time-utils.js"); +const { + setupDatabase, + setupDatabaseAndSynchronizer, + db, + synchronizer, + fileApi, + sleep, + clearDatabase, + switchClient, + syncTargetId, + encryptionService, + loadEncryptionMasterKey, + fileContentEqual, + decryptionWorker, + checkThrowAsync, + asyncTest, +} = require("test-utils.js"); +const { shim } = require("lib/shim.js"); +const fs = require("fs-extra"); +const Folder = require("lib/models/Folder.js"); +const Note = require("lib/models/Note.js"); +const Resource = require("lib/models/Resource.js"); +const Tag = require("lib/models/Tag.js"); +const { Database } = require("lib/database.js"); +const Setting = require("lib/models/Setting.js"); +const MasterKey = require("lib/models/MasterKey"); +const BaseItem = require("lib/models/BaseItem.js"); +const BaseModel = require("lib/BaseModel.js"); +const SyncTargetRegistry = require("lib/SyncTargetRegistry.js"); -process.on('unhandledRejection', (reason, p) => { - console.log('Unhandled Rejection at: Promise', p, 'reason:', reason); +process.on("unhandledRejection", (reason, p) => { + console.log("Unhandled Rejection at: Promise", p, "reason:", reason); }); jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000 + 30000; // The first test is slow because the database needs to be built @@ -46,15 +62,15 @@ async function allSyncTargetItemsEncrypted() { totalCount++; if (remoteContent.type_ === BaseModel.TYPE_RESOURCE) { - const content = await fileApi().get('.resource/' + remoteContent.id); + const content = await fileApi().get(".resource/" + remoteContent.id); totalCount++; - if (content.substr(0, 5) === 'JED01') output = encryptedCount++; + if (content.substr(0, 5) === "JED01") output = encryptedCount++; } if (!!remoteContent.encryption_applied) encryptedCount++; } - if (!totalCount) throw new Error('No encryptable item on sync target'); + if (!totalCount) throw new Error("No encryptable item on sync target"); return totalCount === encryptedCount; } @@ -95,9 +111,8 @@ async function localItemsSameAsRemote(locals, expect) { let insideBeforeEach = false; -describe('Synchronizer', function() { - - beforeEach(async (done) => { +describe("Synchronizer", function() { + beforeEach(async done => { insideBeforeEach = true; await setupDatabaseAndSynchronizer(1); @@ -108,445 +123,496 @@ describe('Synchronizer', function() { insideBeforeEach = false; }); - it('should create remote items', asyncTest(async () => { - let folder = await Folder.save({ title: "folder1" }); - await Note.save({ title: "un", parent_id: folder.id }); + it( + "should create remote items", + asyncTest(async () => { + let folder = await Folder.save({ title: "folder1" }); + await Note.save({ title: "un", parent_id: folder.id }); - let all = await allItems(); + let all = await allItems(); - await synchronizer().start(); + await synchronizer().start(); - await localItemsSameAsRemote(all, expect); - })); + await localItemsSameAsRemote(all, expect); + }) + ); - it('should update remote item', asyncTest(async () => { - let folder = await Folder.save({ title: "folder1" }); - let note = await Note.save({ title: "un", parent_id: folder.id }); - await synchronizer().start(); + it( + "should update remote item", + asyncTest(async () => { + let folder = await Folder.save({ title: "folder1" }); + let note = await Note.save({ title: "un", parent_id: folder.id }); + await synchronizer().start(); - await Note.save({ title: "un UPDATE", id: note.id }); + await Note.save({ title: "un UPDATE", id: note.id }); - let all = await allItems(); - await synchronizer().start(); + let all = await allItems(); + await synchronizer().start(); + + await localItemsSameAsRemote(all, expect); + }) + ); - await localItemsSameAsRemote(all, expect); - })); + it( + "should create local items", + asyncTest(async () => { + let folder = await Folder.save({ title: "folder1" }); + await Note.save({ title: "un", parent_id: folder.id }); + await synchronizer().start(); - it('should create local items', asyncTest(async () => { - let folder = await Folder.save({ title: "folder1" }); - await Note.save({ title: "un", parent_id: folder.id }); - await synchronizer().start(); + await switchClient(2); - await switchClient(2); + await synchronizer().start(); - await synchronizer().start(); + let all = await allItems(); - let all = await allItems(); + await localItemsSameAsRemote(all, expect); + }) + ); - await localItemsSameAsRemote(all, expect); - })); + it( + "should update local items", + asyncTest(async () => { + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "un", parent_id: folder1.id }); + await synchronizer().start(); - it('should update local items', asyncTest(async () => { - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: "un", parent_id: folder1.id }); - await synchronizer().start(); + await switchClient(2); - await switchClient(2); + await synchronizer().start(); - await synchronizer().start(); + await sleep(0.1); - await sleep(0.1); + let note2 = await Note.load(note1.id); + note2.title = "Updated on client 2"; + await Note.save(note2); + note2 = await Note.load(note2.id); - let note2 = await Note.load(note1.id); - note2.title = "Updated on client 2"; - await Note.save(note2); - note2 = await Note.load(note2.id); + await synchronizer().start(); - await synchronizer().start(); + await switchClient(1); - await switchClient(1); + await synchronizer().start(); - await synchronizer().start(); + let all = await allItems(); - let all = await allItems(); + await localItemsSameAsRemote(all, expect); + }) + ); - await localItemsSameAsRemote(all, expect); - })); + it( + "should resolve note conflicts", + asyncTest(async () => { + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "un", parent_id: folder1.id }); + await synchronizer().start(); - it('should resolve note conflicts', asyncTest(async () => { - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: "un", parent_id: folder1.id }); - await synchronizer().start(); + await switchClient(2); - await switchClient(2); + await synchronizer().start(); + let note2 = await Note.load(note1.id); + note2.title = "Updated on client 2"; + await Note.save(note2); + note2 = await Note.load(note2.id); + await synchronizer().start(); - await synchronizer().start(); - let note2 = await Note.load(note1.id); - note2.title = "Updated on client 2"; - await Note.save(note2); - note2 = await Note.load(note2.id); - await synchronizer().start(); + await switchClient(1); - await switchClient(1); + let note2conf = await Note.load(note1.id); + note2conf.title = "Updated on client 1"; + await Note.save(note2conf); + note2conf = await Note.load(note1.id); + await synchronizer().start(); + let conflictedNotes = await Note.conflictedNotes(); + expect(conflictedNotes.length).toBe(1); - let note2conf = await Note.load(note1.id); - note2conf.title = "Updated on client 1"; - await Note.save(note2conf); - note2conf = await Note.load(note1.id); - await synchronizer().start(); - let conflictedNotes = await Note.conflictedNotes(); - expect(conflictedNotes.length).toBe(1); + // Other than the id (since the conflicted note is a duplicate), and the is_conflict property + // the conflicted and original note must be the same in every way, to make sure no data has been lost. + let conflictedNote = conflictedNotes[0]; + expect(conflictedNote.id == note2conf.id).toBe(false); + for (let n in conflictedNote) { + if (!conflictedNote.hasOwnProperty(n)) continue; + if (n == "id" || n == "is_conflict") continue; + expect(conflictedNote[n]).toBe(note2conf[n], "Property: " + n); + } - // Other than the id (since the conflicted note is a duplicate), and the is_conflict property - // the conflicted and original note must be the same in every way, to make sure no data has been lost. - let conflictedNote = conflictedNotes[0]; - expect(conflictedNote.id == note2conf.id).toBe(false); - for (let n in conflictedNote) { - if (!conflictedNote.hasOwnProperty(n)) continue; - if (n == 'id' || n == 'is_conflict') continue; - expect(conflictedNote[n]).toBe(note2conf[n], 'Property: ' + n); - } + let noteUpdatedFromRemote = await Note.load(note1.id); + for (let n in noteUpdatedFromRemote) { + if (!noteUpdatedFromRemote.hasOwnProperty(n)) continue; + expect(noteUpdatedFromRemote[n]).toBe(note2[n], "Property: " + n); + } + }) + ); - let noteUpdatedFromRemote = await Note.load(note1.id); - for (let n in noteUpdatedFromRemote) { - if (!noteUpdatedFromRemote.hasOwnProperty(n)) continue; - expect(noteUpdatedFromRemote[n]).toBe(note2[n], 'Property: ' + n); - } - })); + it( + "should resolve folders conflicts", + asyncTest(async () => { + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "un", parent_id: folder1.id }); + await synchronizer().start(); - it('should resolve folders conflicts', asyncTest(async () => { - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: "un", parent_id: folder1.id }); - await synchronizer().start(); + await switchClient(2); // ---------------------------------- - await switchClient(2); // ---------------------------------- + await synchronizer().start(); - await synchronizer().start(); + await sleep(0.1); - await sleep(0.1); + let folder1_modRemote = await Folder.load(folder1.id); + folder1_modRemote.title = "folder1 UPDATE CLIENT 2"; + await Folder.save(folder1_modRemote); + folder1_modRemote = await Folder.load(folder1_modRemote.id); - let folder1_modRemote = await Folder.load(folder1.id); - folder1_modRemote.title = "folder1 UPDATE CLIENT 2"; - await Folder.save(folder1_modRemote); - folder1_modRemote = await Folder.load(folder1_modRemote.id); + await synchronizer().start(); - await synchronizer().start(); + await switchClient(1); // ---------------------------------- - await switchClient(1); // ---------------------------------- + await sleep(0.1); - await sleep(0.1); + let folder1_modLocal = await Folder.load(folder1.id); + folder1_modLocal.title = "folder1 UPDATE CLIENT 1"; + await Folder.save(folder1_modLocal); + folder1_modLocal = await Folder.load(folder1.id); - let folder1_modLocal = await Folder.load(folder1.id); - folder1_modLocal.title = "folder1 UPDATE CLIENT 1"; - await Folder.save(folder1_modLocal); - folder1_modLocal = await Folder.load(folder1.id); + await synchronizer().start(); - await synchronizer().start(); + let folder1_final = await Folder.load(folder1.id); + expect(folder1_final.title).toBe(folder1_modRemote.title); + }) + ); - let folder1_final = await Folder.load(folder1.id); - expect(folder1_final.title).toBe(folder1_modRemote.title); - })); + it( + "should delete remote notes", + asyncTest(async () => { + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "un", parent_id: folder1.id }); + await synchronizer().start(); - it('should delete remote notes', asyncTest(async () => { - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: "un", parent_id: folder1.id }); - await synchronizer().start(); + await switchClient(2); - await switchClient(2); + await synchronizer().start(); - await synchronizer().start(); + await sleep(0.1); - await sleep(0.1); + await Note.delete(note1.id); - await Note.delete(note1.id); + await synchronizer().start(); - await synchronizer().start(); + let files = await fileApi().list(); + files = files.items; - let files = await fileApi().list(); - files = files.items; + expect(files.length).toBe(1); + expect(files[0].path).toBe(Folder.systemPath(folder1)); - expect(files.length).toBe(1); - expect(files[0].path).toBe(Folder.systemPath(folder1)); + let deletedItems = await BaseItem.deletedItems(syncTargetId()); + expect(deletedItems.length).toBe(0); + }) + ); - let deletedItems = await BaseItem.deletedItems(syncTargetId()); - expect(deletedItems.length).toBe(0); - })); + it( + "should not created deleted_items entries for items deleted via sync", + asyncTest(async () => { + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "un", parent_id: folder1.id }); + await synchronizer().start(); - it('should not created deleted_items entries for items deleted via sync', asyncTest(async () => { - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: "un", parent_id: folder1.id }); - await synchronizer().start(); + await switchClient(2); - await switchClient(2); + await synchronizer().start(); + await Folder.delete(folder1.id); + await synchronizer().start(); - await synchronizer().start(); - await Folder.delete(folder1.id); - await synchronizer().start(); + await switchClient(1); - await switchClient(1); + await synchronizer().start(); + let deletedItems = await BaseItem.deletedItems(syncTargetId()); + expect(deletedItems.length).toBe(0); + }) + ); - await synchronizer().start(); - let deletedItems = await BaseItem.deletedItems(syncTargetId()); - expect(deletedItems.length).toBe(0); - })); + it( + "should delete local notes", + asyncTest(async () => { + // For these tests we pass the context around for each user. This is to make sure that the "deletedItemsProcessed" + // property of the basicDelta() function is cleared properly at the end of a sync operation. If it is not cleared + // it means items will no longer be deleted locally via sync. - it('should delete local notes', asyncTest(async () => { - // For these tests we pass the context around for each user. This is to make sure that the "deletedItemsProcessed" - // property of the basicDelta() function is cleared properly at the end of a sync operation. If it is not cleared - // it means items will no longer be deleted locally via sync. + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "un", parent_id: folder1.id }); + let note2 = await Note.save({ title: "deux", parent_id: folder1.id }); + let context1 = await synchronizer().start(); - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: "un", parent_id: folder1.id }); - let note2 = await Note.save({ title: "deux", parent_id: folder1.id }); - let context1 = await synchronizer().start(); + await switchClient(2); - await switchClient(2); + let context2 = await synchronizer().start(); + await Note.delete(note1.id); + context2 = await synchronizer().start({ context: context2 }); - let context2 = await synchronizer().start(); - await Note.delete(note1.id); - context2 = await synchronizer().start({ context: context2 }); + await switchClient(1); - await switchClient(1); + context1 = await synchronizer().start({ context: context1 }); + let items = await allItems(); + expect(items.length).toBe(2); + let deletedItems = await BaseItem.deletedItems(syncTargetId()); + expect(deletedItems.length).toBe(0); + await Note.delete(note2.id); + context1 = await synchronizer().start({ context: context1 }); + }) + ); - context1 = await synchronizer().start({ context: context1 }); - let items = await allItems(); - expect(items.length).toBe(2); - let deletedItems = await BaseItem.deletedItems(syncTargetId()); - expect(deletedItems.length).toBe(0); - await Note.delete(note2.id); - context1 = await synchronizer().start({ context: context1 }); - })); + it( + "should delete remote folder", + asyncTest(async () => { + let folder1 = await Folder.save({ title: "folder1" }); + let folder2 = await Folder.save({ title: "folder2" }); + await synchronizer().start(); - it('should delete remote folder', asyncTest(async () => { - let folder1 = await Folder.save({ title: "folder1" }); - let folder2 = await Folder.save({ title: "folder2" }); - await synchronizer().start(); + await switchClient(2); - await switchClient(2); + await synchronizer().start(); - await synchronizer().start(); + await sleep(0.1); - await sleep(0.1); + await Folder.delete(folder2.id); - await Folder.delete(folder2.id); + await synchronizer().start(); - await synchronizer().start(); + let all = await allItems(); + await localItemsSameAsRemote(all, expect); + }) + ); - let all = await allItems(); - await localItemsSameAsRemote(all, expect); - })); + it( + "should delete local folder", + asyncTest(async () => { + let folder1 = await Folder.save({ title: "folder1" }); + let folder2 = await Folder.save({ title: "folder2" }); + await synchronizer().start(); - it('should delete local folder', asyncTest(async () => { - let folder1 = await Folder.save({ title: "folder1" }); - let folder2 = await Folder.save({ title: "folder2" }); - await synchronizer().start(); + await switchClient(2); - await switchClient(2); + await synchronizer().start(); - await synchronizer().start(); + await sleep(0.1); - await sleep(0.1); + await Folder.delete(folder2.id); - await Folder.delete(folder2.id); + await synchronizer().start(); - await synchronizer().start(); + await switchClient(1); - await switchClient(1); + await synchronizer().start(); - await synchronizer().start(); + let items = await allItems(); + await localItemsSameAsRemote(items, expect); + }) + ); - let items = await allItems(); - await localItemsSameAsRemote(items, expect); - })); + it( + "should resolve conflict if remote folder has been deleted, but note has been added to folder locally", + asyncTest(async () => { + let folder1 = await Folder.save({ title: "folder1" }); + await synchronizer().start(); - it('should resolve conflict if remote folder has been deleted, but note has been added to folder locally', asyncTest(async () => { - let folder1 = await Folder.save({ title: "folder1" }); - await synchronizer().start(); + await switchClient(2); - await switchClient(2); + await synchronizer().start(); + await Folder.delete(folder1.id); + await synchronizer().start(); - await synchronizer().start(); - await Folder.delete(folder1.id); - await synchronizer().start(); + await switchClient(1); - await switchClient(1); + let note = await Note.save({ title: "note1", parent_id: folder1.id }); + await synchronizer().start(); + let items = await allItems(); + expect(items.length).toBe(1); + expect(items[0].title).toBe("note1"); + expect(items[0].is_conflict).toBe(1); + }) + ); - let note = await Note.save({ title: "note1", parent_id: folder1.id }); - await synchronizer().start(); - let items = await allItems(); - expect(items.length).toBe(1); - expect(items[0].title).toBe('note1'); - expect(items[0].is_conflict).toBe(1); - })); + it( + "should resolve conflict if note has been deleted remotely and locally", + asyncTest(async () => { + let folder = await Folder.save({ title: "folder" }); + let note = await Note.save({ title: "note", parent_id: folder.title }); + await synchronizer().start(); - it('should resolve conflict if note has been deleted remotely and locally', asyncTest(async () => { - let folder = await Folder.save({ title: "folder" }); - let note = await Note.save({ title: "note", parent_id: folder.title }); - await synchronizer().start(); + await switchClient(2); - await switchClient(2); + await synchronizer().start(); + await Note.delete(note.id); + await synchronizer().start(); - await synchronizer().start(); - await Note.delete(note.id); - await synchronizer().start(); + await switchClient(1); - await switchClient(1); + await Note.delete(note.id); + await synchronizer().start(); - await Note.delete(note.id); - await synchronizer().start(); + let items = await allItems(); + expect(items.length).toBe(1); + expect(items[0].title).toBe("folder"); - let items = await allItems(); - expect(items.length).toBe(1); - expect(items[0].title).toBe('folder'); + await localItemsSameAsRemote(items, expect); + }) + ); - await localItemsSameAsRemote(items, expect); - })); + it( + "should cross delete all folders", + asyncTest(async () => { + // If client1 and 2 have two folders, client 1 deletes item 1 and client + // 2 deletes item 2, they should both end up with no items after sync. - it('should cross delete all folders', asyncTest(async () => { - // If client1 and 2 have two folders, client 1 deletes item 1 and client - // 2 deletes item 2, they should both end up with no items after sync. + let folder1 = await Folder.save({ title: "folder1" }); + let folder2 = await Folder.save({ title: "folder2" }); + await synchronizer().start(); - let folder1 = await Folder.save({ title: "folder1" }); - let folder2 = await Folder.save({ title: "folder2" }); - await synchronizer().start(); + await switchClient(2); - await switchClient(2); + await synchronizer().start(); - await synchronizer().start(); + await sleep(0.1); - await sleep(0.1); + await Folder.delete(folder1.id); - await Folder.delete(folder1.id); + await switchClient(1); - await switchClient(1); + await Folder.delete(folder2.id); - await Folder.delete(folder2.id); + await synchronizer().start(); - await synchronizer().start(); + await switchClient(2); - await switchClient(2); + await synchronizer().start(); - await synchronizer().start(); + let items2 = await allItems(); - let items2 = await allItems(); + await switchClient(1); - await switchClient(1); + await synchronizer().start(); - await synchronizer().start(); + let items1 = await allItems(); - let items1 = await allItems(); + expect(items1.length).toBe(0); + expect(items1.length).toBe(items2.length); + }) + ); - expect(items1.length).toBe(0); - expect(items1.length).toBe(items2.length); - })); + it( + "should handle conflict when remote note is deleted then local note is modified", + asyncTest(async () => { + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "un", parent_id: folder1.id }); + await synchronizer().start(); - it('should handle conflict when remote note is deleted then local note is modified', asyncTest(async () => { - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: "un", parent_id: folder1.id }); - await synchronizer().start(); + await switchClient(2); - await switchClient(2); + await synchronizer().start(); - await synchronizer().start(); + await sleep(0.1); - await sleep(0.1); + await Note.delete(note1.id); - await Note.delete(note1.id); + await synchronizer().start(); - await synchronizer().start(); + await switchClient(1); - await switchClient(1); + let newTitle = "Modified after having been deleted"; + await Note.save({ id: note1.id, title: newTitle }); - let newTitle = 'Modified after having been deleted'; - await Note.save({ id: note1.id, title: newTitle }); + await synchronizer().start(); - await synchronizer().start(); + let conflictedNotes = await Note.conflictedNotes(); - let conflictedNotes = await Note.conflictedNotes(); + expect(conflictedNotes.length).toBe(1); + expect(conflictedNotes[0].title).toBe(newTitle); - expect(conflictedNotes.length).toBe(1); - expect(conflictedNotes[0].title).toBe(newTitle); + let unconflictedNotes = await Note.unconflictedNotes(); - let unconflictedNotes = await Note.unconflictedNotes(); + expect(unconflictedNotes.length).toBe(0); + }) + ); - expect(unconflictedNotes.length).toBe(0); - })); + it( + "should handle conflict when remote folder is deleted then local folder is renamed", + asyncTest(async () => { + let folder1 = await Folder.save({ title: "folder1" }); + let folder2 = await Folder.save({ title: "folder2" }); + let note1 = await Note.save({ title: "un", parent_id: folder1.id }); + await synchronizer().start(); - it('should handle conflict when remote folder is deleted then local folder is renamed', asyncTest(async () => { - let folder1 = await Folder.save({ title: "folder1" }); - let folder2 = await Folder.save({ title: "folder2" }); - let note1 = await Note.save({ title: "un", parent_id: folder1.id }); - await synchronizer().start(); + await switchClient(2); - await switchClient(2); + await synchronizer().start(); - await synchronizer().start(); + await sleep(0.1); - await sleep(0.1); + await Folder.delete(folder1.id); - await Folder.delete(folder1.id); + await synchronizer().start(); - await synchronizer().start(); + await switchClient(1); - await switchClient(1); + await sleep(0.1); - await sleep(0.1); + let newTitle = "Modified after having been deleted"; + await Folder.save({ id: folder1.id, title: newTitle }); - let newTitle = 'Modified after having been deleted'; - await Folder.save({ id: folder1.id, title: newTitle }); + await synchronizer().start(); - await synchronizer().start(); + let items = await allItems(); - let items = await allItems(); + expect(items.length).toBe(1); + }) + ); - expect(items.length).toBe(1); - })); + it( + "should allow duplicate folder titles", + asyncTest(async () => { + let localF1 = await Folder.save({ title: "folder" }); - it('should allow duplicate folder titles', asyncTest(async () => { - let localF1 = await Folder.save({ title: "folder" }); + await switchClient(2); - await switchClient(2); + let remoteF2 = await Folder.save({ title: "folder" }); + await synchronizer().start(); - let remoteF2 = await Folder.save({ title: "folder" }); - await synchronizer().start(); + await switchClient(1); - await switchClient(1); + await sleep(0.1); - await sleep(0.1); + await synchronizer().start(); - await synchronizer().start(); + let localF2 = await Folder.load(remoteF2.id); - let localF2 = await Folder.load(remoteF2.id); + expect(localF2.title == remoteF2.title).toBe(true); - expect(localF2.title == remoteF2.title).toBe(true); + // Then that folder that has been renamed locally should be set in such a way + // that synchronizing it applies the title change remotely, and that new title + // should be retrieved by client 2. - // Then that folder that has been renamed locally should be set in such a way - // that synchronizing it applies the title change remotely, and that new title - // should be retrieved by client 2. + await synchronizer().start(); - await synchronizer().start(); + await switchClient(2); + await sleep(0.1); - await switchClient(2); - await sleep(0.1); + await synchronizer().start(); - await synchronizer().start(); + remoteF2 = await Folder.load(remoteF2.id); - remoteF2 = await Folder.load(remoteF2.id); - - expect(remoteF2.title == localF2.title).toBe(true); - })); + expect(remoteF2.title == localF2.title).toBe(true); + }) + ); async function shoudSyncTagTest(withEncryption) { let masterKey = null; if (withEncryption) { - Setting.setValue('encryption.enabled', true); + Setting.setValue("encryption.enabled", true); masterKey = await loadEncryptionMasterKey(); } let f1 = await Folder.save({ title: "folder" }); let n1 = await Note.save({ title: "mynote" }); let n2 = await Note.save({ title: "mynote2" }); - let tag = await Tag.save({ title: 'mytag' }); + let tag = await Tag.save({ title: "mytag" }); await synchronizer().start(); await switchClient(2); @@ -554,7 +620,7 @@ describe('Synchronizer', function() { await synchronizer().start(); if (withEncryption) { const masterKey_2 = await MasterKey.load(masterKey.id); - await encryptionService().loadMasterKey(masterKey_2, '123456', true); + await encryptionService().loadMasterKey(masterKey_2, "123456", true); let t = await Tag.load(tag.id); await Tag.decrypt(t); } @@ -585,46 +651,58 @@ describe('Synchronizer', function() { expect(remoteNoteIds[0]).toBe(noteIds[0]); } - it('should sync tags', asyncTest(async () => { - await shoudSyncTagTest(false); - })); + it( + "should sync tags", + asyncTest(async () => { + await shoudSyncTagTest(false); + }) + ); - it('should sync encrypted tags', asyncTest(async () => { - await shoudSyncTagTest(true); - })); + it( + "should sync encrypted tags", + asyncTest(async () => { + await shoudSyncTagTest(true); + }) + ); - it('should not sync notes with conflicts', asyncTest(async () => { - let f1 = await Folder.save({ title: "folder" }); - let n1 = await Note.save({ title: "mynote", parent_id: f1.id, is_conflict: 1 }); - await synchronizer().start(); + it( + "should not sync notes with conflicts", + asyncTest(async () => { + let f1 = await Folder.save({ title: "folder" }); + let n1 = await Note.save({ title: "mynote", parent_id: f1.id, is_conflict: 1 }); + await synchronizer().start(); - await switchClient(2); + await switchClient(2); - await synchronizer().start(); - let notes = await Note.all(); - let folders = await Folder.all() - expect(notes.length).toBe(0); - expect(folders.length).toBe(1); - })); + await synchronizer().start(); + let notes = await Note.all(); + let folders = await Folder.all(); + expect(notes.length).toBe(0); + expect(folders.length).toBe(1); + }) + ); - it('should not try to delete on remote conflicted notes that have been deleted', asyncTest(async () => { - let f1 = await Folder.save({ title: "folder" }); - let n1 = await Note.save({ title: "mynote", parent_id: f1.id }); - await synchronizer().start(); + it( + "should not try to delete on remote conflicted notes that have been deleted", + asyncTest(async () => { + let f1 = await Folder.save({ title: "folder" }); + let n1 = await Note.save({ title: "mynote", parent_id: f1.id }); + await synchronizer().start(); - await switchClient(2); + await switchClient(2); - await synchronizer().start(); - await Note.save({ id: n1.id, is_conflict: 1 }); - await Note.delete(n1.id); - const deletedItems = await BaseItem.deletedItems(syncTargetId()); + await synchronizer().start(); + await Note.save({ id: n1.id, is_conflict: 1 }); + await Note.delete(n1.id); + const deletedItems = await BaseItem.deletedItems(syncTargetId()); + + expect(deletedItems.length).toBe(0); + }) + ); - expect(deletedItems.length).toBe(0); - })); - async function ignorableNoteConflictTest(withEncryption) { if (withEncryption) { - Setting.setValue('encryption.enabled', true); + Setting.setValue("encryption.enabled", true); await loadEncryptionMasterKey(); } @@ -640,7 +718,7 @@ describe('Synchronizer', function() { await decryptionWorker().start(); } let note2 = await Note.load(note1.id); - note2.todo_completed = time.unixMs()-1; + note2.todo_completed = time.unixMs() - 1; await Note.save(note2); note2 = await Note.load(note2.id); await synchronizer().start(); @@ -667,7 +745,7 @@ describe('Synchronizer', function() { let notes = await Note.all(); expect(notes.length).toBe(1); expect(notes[0].id).toBe(note1.id); - expect(notes[0].todo_completed).toBe(note2.todo_completed); + expect(notes[0].todo_completed).toBe(note2.todo_completed); } else { // If the notes are encrypted however it's not possible to do this kind of // smart conflict resolving since we don't know the content, so in that @@ -681,329 +759,370 @@ describe('Synchronizer', function() { } } - it('should not consider it is a conflict if neither the title nor body of the note have changed', asyncTest(async () => { - await ignorableNoteConflictTest(false); - })); - - it('should always handle conflict if local or remote are encrypted', asyncTest(async () => { - await ignorableNoteConflictTest(true); - })); - - it('items should be downloaded again when user cancels in the middle of delta operation', asyncTest(async () => { - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: "un", is_todo: 1, parent_id: folder1.id }); - await synchronizer().start(); - - await switchClient(2); - - synchronizer().testingHooks_ = ['cancelDeltaLoop2']; - let context = await synchronizer().start(); - let notes = await Note.all(); - expect(notes.length).toBe(0); - - synchronizer().testingHooks_ = []; - await synchronizer().start({ context: context }); - notes = await Note.all(); - expect(notes.length).toBe(1); - })); - - it('should skip items that cannot be synced', asyncTest(async () => { - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: "un", is_todo: 1, parent_id: folder1.id }); - const noteId = note1.id; - await synchronizer().start(); - let disabledItems = await BaseItem.syncDisabledItems(syncTargetId()); - expect(disabledItems.length).toBe(0); - await Note.save({ id: noteId, title: "un mod", }); - synchronizer().testingHooks_ = ['rejectedByTarget']; - await synchronizer().start(); - synchronizer().testingHooks_ = []; - await synchronizer().start(); // Another sync to check that this item is now excluded from sync - - await switchClient(2); - - await synchronizer().start(); - let notes = await Note.all(); - expect(notes.length).toBe(1); - expect(notes[0].title).toBe('un'); - - await switchClient(1); - - disabledItems = await BaseItem.syncDisabledItems(syncTargetId()); - expect(disabledItems.length).toBe(1); - })); - - it('notes and folders should get encrypted when encryption is enabled', asyncTest(async () => { - Setting.setValue('encryption.enabled', true); - const masterKey = await loadEncryptionMasterKey(); - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: "un", body: 'to be encrypted', parent_id: folder1.id }); - await synchronizer().start(); - // After synchronisation, remote items should be encrypted but local ones remain plain text - note1 = await Note.load(note1.id); - expect(note1.title).toBe('un'); - - await switchClient(2); - - await synchronizer().start(); - let folder1_2 = await Folder.load(folder1.id); - let note1_2 = await Note.load(note1.id); - let masterKey_2 = await MasterKey.load(masterKey.id); - // On this side however it should be received encrypted - expect(!note1_2.title).toBe(true); - expect(!folder1_2.title).toBe(true); - expect(!!note1_2.encryption_cipher_text).toBe(true); - expect(!!folder1_2.encryption_cipher_text).toBe(true); - // Master key is already encrypted so it does not get re-encrypted during sync - expect(masterKey_2.content).toBe(masterKey.content); - expect(masterKey_2.checksum).toBe(masterKey.checksum); - // Now load the master key we got from client 1 and try to decrypt - await encryptionService().loadMasterKey(masterKey_2, '123456', true); - // Get the decrypted items back - await Folder.decrypt(folder1_2); - await Note.decrypt(note1_2); - folder1_2 = await Folder.load(folder1.id); - note1_2 = await Note.load(note1.id); - // Check that properties match the original items. Also check - // the encryption did not affect the updated_time timestamp. - expect(note1_2.title).toBe(note1.title); - expect(note1_2.body).toBe(note1.body); - expect(note1_2.updated_time).toBe(note1.updated_time); - expect(!note1_2.encryption_cipher_text).toBe(true); - expect(folder1_2.title).toBe(folder1.title); - expect(folder1_2.updated_time).toBe(folder1.updated_time); - expect(!folder1_2.encryption_cipher_text).toBe(true); - })); - - it('should enable encryption automatically when downloading new master key (and none was previously available)',asyncTest(async () => { - // Enable encryption on client 1 and sync an item - Setting.setValue('encryption.enabled', true); - await loadEncryptionMasterKey(); - let folder1 = await Folder.save({ title: "folder1" }); - await synchronizer().start(); - - await switchClient(2); - - // Synchronising should enable encryption since we're going to get a master key - expect(Setting.value('encryption.enabled')).toBe(false); - await synchronizer().start(); - expect(Setting.value('encryption.enabled')).toBe(true); - - // Check that we got the master key from client 1 - const masterKey = (await MasterKey.all())[0]; - expect(!!masterKey).toBe(true); - - // Since client 2 hasn't supplied a password yet, no master key is currently loaded - expect(encryptionService().loadedMasterKeyIds().length).toBe(0); - - // If we sync now, nothing should be sent to target since we don't have a password. - // Technically it's incorrect to set the property of an encrypted variable but it allows confirming - // that encryption doesn't work if user hasn't supplied a password. - await BaseItem.forceSync(folder1.id); - await synchronizer().start(); - - await switchClient(1); - - await synchronizer().start(); - folder1 = await Folder.load(folder1.id); - expect(folder1.title).toBe('folder1'); // Still at old value - - await switchClient(2); - - // Now client 2 set the master key password - Setting.setObjectKey('encryption.passwordCache', masterKey.id, '123456'); - await encryptionService().loadMasterKeysFromSettings(); - - // Now that master key should be loaded - expect(encryptionService().loadedMasterKeyIds()[0]).toBe(masterKey.id); - - // Decrypt all the data. Now change the title and sync again - this time the changes should be transmitted - await decryptionWorker().start(); - folder1_2 = await Folder.save({ id: folder1.id, title: "change test" }); - - // If we sync now, this time client 1 should get the changes we did earlier - await synchronizer().start(); - - await switchClient(1); - - await synchronizer().start(); - // Decrypt the data we just got - await decryptionWorker().start(); - folder1 = await Folder.load(folder1.id); - expect(folder1.title).toBe('change test'); // Got title from client 2 - })); - - it('should encrypt existing notes too when enabling E2EE', asyncTest(async () => { - // First create a folder, without encryption enabled, and sync it - let folder1 = await Folder.save({ title: "folder1" }); - await synchronizer().start(); - let files = await fileApi().list() - let content = await fileApi().get(files.items[0].path); - expect(content.indexOf('folder1') >= 0).toBe(true) - - // Then enable encryption and sync again - let masterKey = await encryptionService().generateMasterKey('123456'); - masterKey = await MasterKey.save(masterKey); - await encryptionService().enableEncryption(masterKey, '123456'); - await encryptionService().loadMasterKeysFromSettings(); - await synchronizer().start(); - - // Even though the folder has not been changed it should have been synced again so that - // an encrypted version of it replaces the decrypted version. - files = await fileApi().list() - expect(files.items.length).toBe(2); - // By checking that the folder title is not present, we can confirm that the item has indeed been encrypted - // One of the two items is the master key - content = await fileApi().get(files.items[0].path); - expect(content.indexOf('folder1') < 0).toBe(true); - content = await fileApi().get(files.items[1].path); - expect(content.indexOf('folder1') < 0).toBe(true); - })); - - it('should sync resources', asyncTest(async () => { - while (insideBeforeEach) await time.msleep(500); - - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id }); - await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg'); - let resource1 = (await Resource.all())[0]; - let resourcePath1 = Resource.fullPath(resource1); - await synchronizer().start(); - expect((await fileApi().list()).items.length).toBe(3); - - await switchClient(2); - - await synchronizer().start(); - let allResources = await Resource.all(); - expect(allResources.length).toBe(1); - let resource1_2 = allResources[0]; - let resourcePath1_2 = Resource.fullPath(resource1_2); - - expect(resource1_2.id).toBe(resource1.id); - expect(fileContentEqual(resourcePath1, resourcePath1_2)).toBe(true); - })); - - it('should encryt resources', asyncTest(async () => { - Setting.setValue('encryption.enabled', true); - const masterKey = await loadEncryptionMasterKey(); - - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id }); - await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg'); - let resource1 = (await Resource.all())[0]; - let resourcePath1 = Resource.fullPath(resource1); - await synchronizer().start(); - - await switchClient(2); - - await synchronizer().start(); - Setting.setObjectKey('encryption.passwordCache', masterKey.id, '123456'); - await encryptionService().loadMasterKeysFromSettings(); - - let resource1_2 = (await Resource.all())[0]; - resource1_2 = await Resource.decrypt(resource1_2); - let resourcePath1_2 = Resource.fullPath(resource1_2); - - expect(fileContentEqual(resourcePath1, resourcePath1_2)).toBe(true); - })); - - it('should upload decrypted items to sync target after encryption disabled', asyncTest(async () => { - Setting.setValue('encryption.enabled', true); - const masterKey = await loadEncryptionMasterKey(); - - let folder1 = await Folder.save({ title: "folder1" }); - await synchronizer().start(); - - let allEncrypted = await allSyncTargetItemsEncrypted(); - expect(allEncrypted).toBe(true); - - await encryptionService().disableEncryption(); - - await synchronizer().start(); - allEncrypted = await allSyncTargetItemsEncrypted(); - expect(allEncrypted).toBe(false); - })); - - it('should not upload any item if encryption was enabled, and items have not been decrypted, and then encryption disabled', asyncTest(async () => { - // For some reason I can't explain, this test is sometimes executed before beforeEach is finished - // which means it's going to fail in unexpected way. So the loop below wait for beforeEach to be done. - while (insideBeforeEach) await time.msleep(100); - - Setting.setValue('encryption.enabled', true); - const masterKey = await loadEncryptionMasterKey(); - - let folder1 = await Folder.save({ title: "folder1" }); - await synchronizer().start(); - - await switchClient(2); - - await synchronizer().start(); - expect(Setting.value('encryption.enabled')).toBe(true); - - // If we try to disable encryption now, it should throw an error because some items are - // currently encrypted. They must be decrypted first so that they can be sent as - // plain text to the sync target. - //let hasThrown = await checkThrowAsync(async () => await encryptionService().disableEncryption()); - //expect(hasThrown).toBe(true); - - // Now supply the password, and decrypt the items - Setting.setObjectKey('encryption.passwordCache', masterKey.id, '123456'); - await encryptionService().loadMasterKeysFromSettings(); - await decryptionWorker().start(); - - // Try to disable encryption again - hasThrown = await checkThrowAsync(async () => await encryptionService().disableEncryption()); - expect(hasThrown).toBe(false); - - // If we sync now the target should receive the decrypted items - await synchronizer().start(); - allEncrypted = await allSyncTargetItemsEncrypted(); - expect(allEncrypted).toBe(false); - })); - - it('should encrypt remote resources after encryption has been enabled', asyncTest(async () => { - while (insideBeforeEach) await time.msleep(100); - - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id }); - await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg'); - let resource1 = (await Resource.all())[0]; - await synchronizer().start(); - - expect(await allSyncTargetItemsEncrypted()).toBe(false); - - const masterKey = await loadEncryptionMasterKey(); - await encryptionService().enableEncryption(masterKey, '123456'); - await encryptionService().loadMasterKeysFromSettings(); - - await synchronizer().start(); - - expect(await allSyncTargetItemsEncrypted()).toBe(true); - })); - - it('should upload encrypted resource, but it should not mark the blob as encrypted locally', asyncTest(async () => { - while (insideBeforeEach) await time.msleep(100); - - let folder1 = await Folder.save({ title: "folder1" }); - let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id }); - await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg'); - const masterKey = await loadEncryptionMasterKey(); - await encryptionService().enableEncryption(masterKey, '123456'); - await encryptionService().loadMasterKeysFromSettings(); - await synchronizer().start(); - - let resource1 = (await Resource.all())[0]; - expect(resource1.encryption_blob_encrypted).toBe(0); - })); - - it('should create remote items with UTF-8 content', asyncTest(async () => { - let folder = await Folder.save({ title: "Fahrräder" }); - await Note.save({ title: "Fahrräder", body: "Fahrräder", parent_id: folder.id }); - let all = await allItems(); - - await synchronizer().start(); - - await localItemsSameAsRemote(all, expect); - })); - -}); \ No newline at end of file + it( + "should not consider it is a conflict if neither the title nor body of the note have changed", + asyncTest(async () => { + await ignorableNoteConflictTest(false); + }) + ); + + it( + "should always handle conflict if local or remote are encrypted", + asyncTest(async () => { + await ignorableNoteConflictTest(true); + }) + ); + + it( + "items should be downloaded again when user cancels in the middle of delta operation", + asyncTest(async () => { + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "un", is_todo: 1, parent_id: folder1.id }); + await synchronizer().start(); + + await switchClient(2); + + synchronizer().testingHooks_ = ["cancelDeltaLoop2"]; + let context = await synchronizer().start(); + let notes = await Note.all(); + expect(notes.length).toBe(0); + + synchronizer().testingHooks_ = []; + await synchronizer().start({ context: context }); + notes = await Note.all(); + expect(notes.length).toBe(1); + }) + ); + + it( + "should skip items that cannot be synced", + asyncTest(async () => { + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "un", is_todo: 1, parent_id: folder1.id }); + const noteId = note1.id; + await synchronizer().start(); + let disabledItems = await BaseItem.syncDisabledItems(syncTargetId()); + expect(disabledItems.length).toBe(0); + await Note.save({ id: noteId, title: "un mod" }); + synchronizer().testingHooks_ = ["rejectedByTarget"]; + await synchronizer().start(); + synchronizer().testingHooks_ = []; + await synchronizer().start(); // Another sync to check that this item is now excluded from sync + + await switchClient(2); + + await synchronizer().start(); + let notes = await Note.all(); + expect(notes.length).toBe(1); + expect(notes[0].title).toBe("un"); + + await switchClient(1); + + disabledItems = await BaseItem.syncDisabledItems(syncTargetId()); + expect(disabledItems.length).toBe(1); + }) + ); + + it( + "notes and folders should get encrypted when encryption is enabled", + asyncTest(async () => { + Setting.setValue("encryption.enabled", true); + const masterKey = await loadEncryptionMasterKey(); + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "un", body: "to be encrypted", parent_id: folder1.id }); + await synchronizer().start(); + // After synchronisation, remote items should be encrypted but local ones remain plain text + note1 = await Note.load(note1.id); + expect(note1.title).toBe("un"); + + await switchClient(2); + + await synchronizer().start(); + let folder1_2 = await Folder.load(folder1.id); + let note1_2 = await Note.load(note1.id); + let masterKey_2 = await MasterKey.load(masterKey.id); + // On this side however it should be received encrypted + expect(!note1_2.title).toBe(true); + expect(!folder1_2.title).toBe(true); + expect(!!note1_2.encryption_cipher_text).toBe(true); + expect(!!folder1_2.encryption_cipher_text).toBe(true); + // Master key is already encrypted so it does not get re-encrypted during sync + expect(masterKey_2.content).toBe(masterKey.content); + expect(masterKey_2.checksum).toBe(masterKey.checksum); + // Now load the master key we got from client 1 and try to decrypt + await encryptionService().loadMasterKey(masterKey_2, "123456", true); + // Get the decrypted items back + await Folder.decrypt(folder1_2); + await Note.decrypt(note1_2); + folder1_2 = await Folder.load(folder1.id); + note1_2 = await Note.load(note1.id); + // Check that properties match the original items. Also check + // the encryption did not affect the updated_time timestamp. + expect(note1_2.title).toBe(note1.title); + expect(note1_2.body).toBe(note1.body); + expect(note1_2.updated_time).toBe(note1.updated_time); + expect(!note1_2.encryption_cipher_text).toBe(true); + expect(folder1_2.title).toBe(folder1.title); + expect(folder1_2.updated_time).toBe(folder1.updated_time); + expect(!folder1_2.encryption_cipher_text).toBe(true); + }) + ); + + it( + "should enable encryption automatically when downloading new master key (and none was previously available)", + asyncTest(async () => { + // Enable encryption on client 1 and sync an item + Setting.setValue("encryption.enabled", true); + await loadEncryptionMasterKey(); + let folder1 = await Folder.save({ title: "folder1" }); + await synchronizer().start(); + + await switchClient(2); + + // Synchronising should enable encryption since we're going to get a master key + expect(Setting.value("encryption.enabled")).toBe(false); + await synchronizer().start(); + expect(Setting.value("encryption.enabled")).toBe(true); + + // Check that we got the master key from client 1 + const masterKey = (await MasterKey.all())[0]; + expect(!!masterKey).toBe(true); + + // Since client 2 hasn't supplied a password yet, no master key is currently loaded + expect(encryptionService().loadedMasterKeyIds().length).toBe(0); + + // If we sync now, nothing should be sent to target since we don't have a password. + // Technically it's incorrect to set the property of an encrypted variable but it allows confirming + // that encryption doesn't work if user hasn't supplied a password. + await BaseItem.forceSync(folder1.id); + await synchronizer().start(); + + await switchClient(1); + + await synchronizer().start(); + folder1 = await Folder.load(folder1.id); + expect(folder1.title).toBe("folder1"); // Still at old value + + await switchClient(2); + + // Now client 2 set the master key password + Setting.setObjectKey("encryption.passwordCache", masterKey.id, "123456"); + await encryptionService().loadMasterKeysFromSettings(); + + // Now that master key should be loaded + expect(encryptionService().loadedMasterKeyIds()[0]).toBe(masterKey.id); + + // Decrypt all the data. Now change the title and sync again - this time the changes should be transmitted + await decryptionWorker().start(); + folder1_2 = await Folder.save({ id: folder1.id, title: "change test" }); + + // If we sync now, this time client 1 should get the changes we did earlier + await synchronizer().start(); + + await switchClient(1); + + await synchronizer().start(); + // Decrypt the data we just got + await decryptionWorker().start(); + folder1 = await Folder.load(folder1.id); + expect(folder1.title).toBe("change test"); // Got title from client 2 + }) + ); + + it( + "should encrypt existing notes too when enabling E2EE", + asyncTest(async () => { + // First create a folder, without encryption enabled, and sync it + let folder1 = await Folder.save({ title: "folder1" }); + await synchronizer().start(); + let files = await fileApi().list(); + let content = await fileApi().get(files.items[0].path); + expect(content.indexOf("folder1") >= 0).toBe(true); + + // Then enable encryption and sync again + let masterKey = await encryptionService().generateMasterKey("123456"); + masterKey = await MasterKey.save(masterKey); + await encryptionService().enableEncryption(masterKey, "123456"); + await encryptionService().loadMasterKeysFromSettings(); + await synchronizer().start(); + + // Even though the folder has not been changed it should have been synced again so that + // an encrypted version of it replaces the decrypted version. + files = await fileApi().list(); + expect(files.items.length).toBe(2); + // By checking that the folder title is not present, we can confirm that the item has indeed been encrypted + // One of the two items is the master key + content = await fileApi().get(files.items[0].path); + expect(content.indexOf("folder1") < 0).toBe(true); + content = await fileApi().get(files.items[1].path); + expect(content.indexOf("folder1") < 0).toBe(true); + }) + ); + + it( + "should sync resources", + asyncTest(async () => { + while (insideBeforeEach) await time.msleep(500); + + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "ma note", parent_id: folder1.id }); + await shim.attachFileToNote(note1, __dirname + "/../tests/support/photo.jpg"); + let resource1 = (await Resource.all())[0]; + let resourcePath1 = Resource.fullPath(resource1); + await synchronizer().start(); + expect((await fileApi().list()).items.length).toBe(3); + + await switchClient(2); + + await synchronizer().start(); + let allResources = await Resource.all(); + expect(allResources.length).toBe(1); + let resource1_2 = allResources[0]; + let resourcePath1_2 = Resource.fullPath(resource1_2); + + expect(resource1_2.id).toBe(resource1.id); + expect(fileContentEqual(resourcePath1, resourcePath1_2)).toBe(true); + }) + ); + + it( + "should encryt resources", + asyncTest(async () => { + Setting.setValue("encryption.enabled", true); + const masterKey = await loadEncryptionMasterKey(); + + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "ma note", parent_id: folder1.id }); + await shim.attachFileToNote(note1, __dirname + "/../tests/support/photo.jpg"); + let resource1 = (await Resource.all())[0]; + let resourcePath1 = Resource.fullPath(resource1); + await synchronizer().start(); + + await switchClient(2); + + await synchronizer().start(); + Setting.setObjectKey("encryption.passwordCache", masterKey.id, "123456"); + await encryptionService().loadMasterKeysFromSettings(); + + let resource1_2 = (await Resource.all())[0]; + resource1_2 = await Resource.decrypt(resource1_2); + let resourcePath1_2 = Resource.fullPath(resource1_2); + + expect(fileContentEqual(resourcePath1, resourcePath1_2)).toBe(true); + }) + ); + + it( + "should upload decrypted items to sync target after encryption disabled", + asyncTest(async () => { + Setting.setValue("encryption.enabled", true); + const masterKey = await loadEncryptionMasterKey(); + + let folder1 = await Folder.save({ title: "folder1" }); + await synchronizer().start(); + + let allEncrypted = await allSyncTargetItemsEncrypted(); + expect(allEncrypted).toBe(true); + + await encryptionService().disableEncryption(); + + await synchronizer().start(); + allEncrypted = await allSyncTargetItemsEncrypted(); + expect(allEncrypted).toBe(false); + }) + ); + + it( + "should not upload any item if encryption was enabled, and items have not been decrypted, and then encryption disabled", + asyncTest(async () => { + // For some reason I can't explain, this test is sometimes executed before beforeEach is finished + // which means it's going to fail in unexpected way. So the loop below wait for beforeEach to be done. + while (insideBeforeEach) await time.msleep(100); + + Setting.setValue("encryption.enabled", true); + const masterKey = await loadEncryptionMasterKey(); + + let folder1 = await Folder.save({ title: "folder1" }); + await synchronizer().start(); + + await switchClient(2); + + await synchronizer().start(); + expect(Setting.value("encryption.enabled")).toBe(true); + + // If we try to disable encryption now, it should throw an error because some items are + // currently encrypted. They must be decrypted first so that they can be sent as + // plain text to the sync target. + //let hasThrown = await checkThrowAsync(async () => await encryptionService().disableEncryption()); + //expect(hasThrown).toBe(true); + + // Now supply the password, and decrypt the items + Setting.setObjectKey("encryption.passwordCache", masterKey.id, "123456"); + await encryptionService().loadMasterKeysFromSettings(); + await decryptionWorker().start(); + + // Try to disable encryption again + hasThrown = await checkThrowAsync(async () => await encryptionService().disableEncryption()); + expect(hasThrown).toBe(false); + + // If we sync now the target should receive the decrypted items + await synchronizer().start(); + allEncrypted = await allSyncTargetItemsEncrypted(); + expect(allEncrypted).toBe(false); + }) + ); + + it( + "should encrypt remote resources after encryption has been enabled", + asyncTest(async () => { + while (insideBeforeEach) await time.msleep(100); + + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "ma note", parent_id: folder1.id }); + await shim.attachFileToNote(note1, __dirname + "/../tests/support/photo.jpg"); + let resource1 = (await Resource.all())[0]; + await synchronizer().start(); + + expect(await allSyncTargetItemsEncrypted()).toBe(false); + + const masterKey = await loadEncryptionMasterKey(); + await encryptionService().enableEncryption(masterKey, "123456"); + await encryptionService().loadMasterKeysFromSettings(); + + await synchronizer().start(); + + expect(await allSyncTargetItemsEncrypted()).toBe(true); + }) + ); + + it( + "should upload encrypted resource, but it should not mark the blob as encrypted locally", + asyncTest(async () => { + while (insideBeforeEach) await time.msleep(100); + + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: "ma note", parent_id: folder1.id }); + await shim.attachFileToNote(note1, __dirname + "/../tests/support/photo.jpg"); + const masterKey = await loadEncryptionMasterKey(); + await encryptionService().enableEncryption(masterKey, "123456"); + await encryptionService().loadMasterKeysFromSettings(); + await synchronizer().start(); + + let resource1 = (await Resource.all())[0]; + expect(resource1.encryption_blob_encrypted).toBe(0); + }) + ); + + it( + "should create remote items with UTF-8 content", + asyncTest(async () => { + let folder = await Folder.save({ title: "Fahrräder" }); + await Note.save({ title: "Fahrräder", body: "Fahrräder", parent_id: folder.id }); + let all = await allItems(); + + await synchronizer().start(); + + await localItemsSameAsRemote(all, expect); + }) + ); +}); diff --git a/CliClient/tests/test-utils.js b/CliClient/tests/test-utils.js index a93f231412..3ea9ead71c 100644 --- a/CliClient/tests/test-utils.js +++ b/CliClient/tests/test-utils.js @@ -1,32 +1,32 @@ -const fs = require('fs-extra'); -const { JoplinDatabase } = require('lib/joplin-database.js'); -const { DatabaseDriverNode } = require('lib/database-driver-node.js'); -const BaseModel = require('lib/BaseModel.js'); -const Folder = require('lib/models/Folder.js'); -const Note = require('lib/models/Note.js'); -const Resource = require('lib/models/Resource.js'); -const Tag = require('lib/models/Tag.js'); -const NoteTag = require('lib/models/NoteTag.js'); -const { Logger } = require('lib/logger.js'); -const Setting = require('lib/models/Setting.js'); -const MasterKey = require('lib/models/MasterKey'); -const BaseItem = require('lib/models/BaseItem.js'); -const { Synchronizer } = require('lib/synchronizer.js'); -const { FileApi } = require('lib/file-api.js'); -const { FileApiDriverMemory } = require('lib/file-api-driver-memory.js'); -const { FileApiDriverLocal } = require('lib/file-api-driver-local.js'); -const { FileApiDriverWebDav } = require('lib/file-api-driver-webdav.js'); -const { FsDriverNode } = require('lib/fs-driver-node.js'); -const { time } = require('lib/time-utils.js'); -const { shimInit } = require('lib/shim-init-node.js'); -const SyncTargetRegistry = require('lib/SyncTargetRegistry.js'); -const SyncTargetMemory = require('lib/SyncTargetMemory.js'); -const SyncTargetFilesystem = require('lib/SyncTargetFilesystem.js'); -const SyncTargetOneDrive = require('lib/SyncTargetOneDrive.js'); -const SyncTargetNextcloud = require('lib/SyncTargetNextcloud.js'); -const EncryptionService = require('lib/services/EncryptionService.js'); -const DecryptionWorker = require('lib/services/DecryptionWorker.js'); -const WebDavApi = require('lib/WebDavApi'); +const fs = require("fs-extra"); +const { JoplinDatabase } = require("lib/joplin-database.js"); +const { DatabaseDriverNode } = require("lib/database-driver-node.js"); +const BaseModel = require("lib/BaseModel.js"); +const Folder = require("lib/models/Folder.js"); +const Note = require("lib/models/Note.js"); +const Resource = require("lib/models/Resource.js"); +const Tag = require("lib/models/Tag.js"); +const NoteTag = require("lib/models/NoteTag.js"); +const { Logger } = require("lib/logger.js"); +const Setting = require("lib/models/Setting.js"); +const MasterKey = require("lib/models/MasterKey"); +const BaseItem = require("lib/models/BaseItem.js"); +const { Synchronizer } = require("lib/synchronizer.js"); +const { FileApi } = require("lib/file-api.js"); +const { FileApiDriverMemory } = require("lib/file-api-driver-memory.js"); +const { FileApiDriverLocal } = require("lib/file-api-driver-local.js"); +const { FileApiDriverWebDav } = require("lib/file-api-driver-webdav.js"); +const { FsDriverNode } = require("lib/fs-driver-node.js"); +const { time } = require("lib/time-utils.js"); +const { shimInit } = require("lib/shim-init-node.js"); +const SyncTargetRegistry = require("lib/SyncTargetRegistry.js"); +const SyncTargetMemory = require("lib/SyncTargetMemory.js"); +const SyncTargetFilesystem = require("lib/SyncTargetFilesystem.js"); +const SyncTargetOneDrive = require("lib/SyncTargetOneDrive.js"); +const SyncTargetNextcloud = require("lib/SyncTargetNextcloud.js"); +const EncryptionService = require("lib/services/EncryptionService.js"); +const DecryptionWorker = require("lib/services/DecryptionWorker.js"); +const WebDavApi = require("lib/WebDavApi"); let databases_ = []; let synchronizers_ = []; @@ -43,7 +43,7 @@ Resource.fsDriver_ = fsDriver; EncryptionService.fsDriver_ = fsDriver; FileApiDriverLocal.fsDriver_ = fsDriver; -const logDir = __dirname + '/../tests/logs'; +const logDir = __dirname + "/../tests/logs"; fs.mkdirpSync(logDir, 0o755); SyncTargetRegistry.addClass(SyncTargetMemory); @@ -51,29 +51,29 @@ SyncTargetRegistry.addClass(SyncTargetFilesystem); SyncTargetRegistry.addClass(SyncTargetOneDrive); SyncTargetRegistry.addClass(SyncTargetNextcloud); -const syncTargetId_ = SyncTargetRegistry.nameToId('nextcloud'); +const syncTargetId_ = SyncTargetRegistry.nameToId("nextcloud"); //const syncTargetId_ = SyncTargetRegistry.nameToId('memory'); //const syncTargetId_ = SyncTargetRegistry.nameToId('filesystem'); -const syncDir = __dirname + '/../tests/sync'; +const syncDir = __dirname + "/../tests/sync"; -const sleepTime = syncTargetId_ == SyncTargetRegistry.nameToId('filesystem') ? 1001 : 100;//400; +const sleepTime = syncTargetId_ == SyncTargetRegistry.nameToId("filesystem") ? 1001 : 100; //400; -console.info('Testing with sync target: ' + SyncTargetRegistry.idToName(syncTargetId_)); +console.info("Testing with sync target: " + SyncTargetRegistry.idToName(syncTargetId_)); const logger = new Logger(); -logger.addTarget('console'); -logger.addTarget('file', { path: logDir + '/log.txt' }); +logger.addTarget("console"); +logger.addTarget("file", { path: logDir + "/log.txt" }); logger.setLevel(Logger.LEVEL_WARN); // Set to INFO to display sync process in console -BaseItem.loadClass('Note', Note); -BaseItem.loadClass('Folder', Folder); -BaseItem.loadClass('Resource', Resource); -BaseItem.loadClass('Tag', Tag); -BaseItem.loadClass('NoteTag', NoteTag); -BaseItem.loadClass('MasterKey', MasterKey); +BaseItem.loadClass("Note", Note); +BaseItem.loadClass("Folder", Folder); +BaseItem.loadClass("Resource", Resource); +BaseItem.loadClass("Tag", Tag); +BaseItem.loadClass("NoteTag", NoteTag); +BaseItem.loadClass("MasterKey", MasterKey); -Setting.setConstant('appId', 'net.cozic.joplin-cli'); -Setting.setConstant('appType', 'cli'); +Setting.setConstant("appId", "net.cozic.joplin-cli"); +Setting.setConstant("appType", "cli"); Setting.autoSaveEnabled = false; @@ -103,7 +103,7 @@ async function switchClient(id) { BaseItem.encryptionService_ = encryptionServices_[id]; Resource.encryptionService_ = encryptionServices_[id]; - Setting.setConstant('resourceDir', resourceDir(id)); + Setting.setConstant("resourceDir", resourceDir(id)); return Setting.load(); } @@ -112,16 +112,16 @@ async function clearDatabase(id = null) { if (id === null) id = currentClient_; let queries = [ - 'DELETE FROM notes', - 'DELETE FROM folders', - 'DELETE FROM resources', - 'DELETE FROM tags', - 'DELETE FROM note_tags', - 'DELETE FROM master_keys', - 'DELETE FROM settings', - - 'DELETE FROM deleted_items', - 'DELETE FROM sync_items', + "DELETE FROM notes", + "DELETE FROM folders", + "DELETE FROM resources", + "DELETE FROM tags", + "DELETE FROM note_tags", + "DELETE FROM master_keys", + "DELETE FROM settings", + + "DELETE FROM deleted_items", + "DELETE FROM sync_items", ]; await databases_[id].transactionExecBatch(queries); @@ -139,13 +139,13 @@ async function setupDatabase(id = null) { return; } - const filePath = __dirname + '/data/test-' + id + '.sqlite'; + const filePath = __dirname + "/data/test-" + id + ".sqlite"; try { await fs.unlink(filePath); } catch (error) { // Don't care if the file doesn't exist - }; + } databases_[id] = new JoplinDatabase(new DatabaseDriverNode()); await databases_[id].open({ name: filePath }); @@ -156,7 +156,7 @@ async function setupDatabase(id = null) { function resourceDir(id = null) { if (id === null) id = currentClient_; - return __dirname + '/data/resources-' + id; + return __dirname + "/data/resources-" + id; } async function setupDatabaseAndSynchronizer(id = null) { @@ -211,16 +211,18 @@ async function loadEncryptionMasterKey(id = null, useExisting = false) { let masterKey = null; - if (!useExisting) { // Create it - masterKey = await service.generateMasterKey('123456'); + if (!useExisting) { + // Create it + masterKey = await service.generateMasterKey("123456"); masterKey = await MasterKey.save(masterKey); - } else { // Use the one already available + } else { + // Use the one already available materKey = await MasterKey.all(); - if (!materKey.length) throw new Error('No mater key available'); + if (!materKey.length) throw new Error("No mater key available"); masterKey = materKey[0]; } - await service.loadMasterKey(masterKey, '123456', true); + await service.loadMasterKey(masterKey, "123456", true); return masterKey; } @@ -228,21 +230,21 @@ async function loadEncryptionMasterKey(id = null, useExisting = false) { function fileApi() { if (fileApi_) return fileApi_; - if (syncTargetId_ == SyncTargetRegistry.nameToId('filesystem')) { - fs.removeSync(syncDir) + if (syncTargetId_ == SyncTargetRegistry.nameToId("filesystem")) { + fs.removeSync(syncDir); fs.mkdirpSync(syncDir, 0o755); fileApi_ = new FileApi(syncDir, new FileApiDriverLocal()); - } else if (syncTargetId_ == SyncTargetRegistry.nameToId('memory')) { - fileApi_ = new FileApi('/root', new FileApiDriverMemory()); - } else if (syncTargetId_ == SyncTargetRegistry.nameToId('nextcloud')) { + } else if (syncTargetId_ == SyncTargetRegistry.nameToId("memory")) { + fileApi_ = new FileApi("/root", new FileApiDriverMemory()); + } else if (syncTargetId_ == SyncTargetRegistry.nameToId("nextcloud")) { const options = { - baseUrl: () => 'http://nextcloud.local/remote.php/dav/files/admin/JoplinTest', - username: () => 'admin', - password: () => '123456', + baseUrl: () => "http://nextcloud.local/remote.php/dav/files/admin/JoplinTest", + username: () => "admin", + password: () => "123456", }; const api = new WebDavApi(options); - fileApi_ = new FileApi('', new FileApiDriverWebDav(api)); + fileApi_ = new FileApi("", new FileApiDriverWebDav(api)); } // } else if (syncTargetId == Setting.SYNC_TARGET_ONEDRIVE) { @@ -288,9 +290,9 @@ async function checkThrowAsync(asyncFn) { } function fileContentEqual(path1, path2) { - const fs = require('fs-extra'); - const content1 = fs.readFileSync(path1, 'base64'); - const content2 = fs.readFileSync(path2, 'base64'); + const fs = require("fs-extra"); + const content1 = fs.readFileSync(path1, "base64"); + const content2 = fs.readFileSync(path2, "base64"); return content1 === content2; } @@ -304,7 +306,24 @@ function asyncTest(callback) { console.error(error); } done(); - } + }; } -module.exports = { setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync, encryptionService, loadEncryptionMasterKey, fileContentEqual, decryptionWorker, asyncTest }; \ No newline at end of file +module.exports = { + setupDatabase, + setupDatabaseAndSynchronizer, + db, + synchronizer, + fileApi, + sleep, + clearDatabase, + switchClient, + syncTargetId, + objectsEqual, + checkThrowAsync, + encryptionService, + loadEncryptionMasterKey, + fileContentEqual, + decryptionWorker, + asyncTest, +}; diff --git a/CliClientDemo/index.js b/CliClientDemo/index.js index 2bccfac51c..991dea36b9 100644 --- a/CliClientDemo/index.js +++ b/CliClientDemo/index.js @@ -1,31 +1,31 @@ #!/usr/bin/env node -'use strict'; +"use strict"; -const spawn = require('child_process').spawn; -const os = require('os'); -const fs = require('fs-extra'); +const spawn = require("child_process").spawn; +const os = require("os"); +const fs = require("fs-extra"); -const joplinPath = __dirname + '/node_modules/.bin/joplin'; -const profileDir = os.homedir() + '/.config/demo-joplin'; -const dbFilename = 'database.sqlite'; +const joplinPath = __dirname + "/node_modules/.bin/joplin"; +const profileDir = os.homedir() + "/.config/demo-joplin"; +const dbFilename = "database.sqlite"; fs.ensureDirSync(profileDir); -if (!fs.pathExistsSync(profileDir + '/' + dbFilename)) { - fs.copySync(__dirname + '/' + dbFilename, profileDir + '/' + dbFilename); +if (!fs.pathExistsSync(profileDir + "/" + dbFilename)) { + fs.copySync(__dirname + "/" + dbFilename, profileDir + "/" + dbFilename); } const opt = { cwd: __dirname, env: (function() { - process.env.NODE_PATH = '.'; + process.env.NODE_PATH = "."; return process.env; - }()), - stdio: [process.stdin, process.stdout, process.stderr] + })(), + stdio: [process.stdin, process.stdout, process.stderr], }; -const app = spawn(joplinPath, ['--is-demo', '--profile', profileDir], opt); +const app = spawn(joplinPath, ["--is-demo", "--profile", profileDir], opt); -app.on('close', (code) => { +app.on("close", code => { process.exit(code); -}); \ No newline at end of file +}); diff --git a/ElectronClient/app/ElectronAppWrapper.js b/ElectronClient/app/ElectronAppWrapper.js index 718a887fbd..568e06205f 100644 --- a/ElectronClient/app/ElectronAppWrapper.js +++ b/ElectronClient/app/ElectronAppWrapper.js @@ -1,14 +1,13 @@ -const { _ } = require('lib/locale.js'); -const { BrowserWindow, Menu, Tray } = require('electron'); -const { shim } = require('lib/shim'); -const url = require('url') -const path = require('path') -const urlUtils = require('lib/urlUtils.js'); -const { dirname, basename } = require('lib/path-utils'); -const fs = require('fs-extra'); +const { _ } = require("lib/locale.js"); +const { BrowserWindow, Menu, Tray } = require("electron"); +const { shim } = require("lib/shim"); +const url = require("url"); +const path = require("path"); +const urlUtils = require("lib/urlUtils.js"); +const { dirname, basename } = require("lib/path-utils"); +const fs = require("fs-extra"); class ElectronAppWrapper { - constructor(electronApp, env) { this.electronApp_ = electronApp; this.env_ = env; @@ -35,13 +34,13 @@ class ElectronAppWrapper { } createWindow() { - const windowStateKeeper = require('electron-window-state'); + const windowStateKeeper = require("electron-window-state"); // Load the previous state with fallback to defaults const windowState = windowStateKeeper({ defaultWidth: 800, defaultHeight: 600, - file: 'window-state-' + this.env_ + '.json', + file: "window-state-" + this.env_ + ".json", }); const windowOptions = { @@ -53,20 +52,22 @@ class ElectronAppWrapper { // Linux icon workaround for bug https://github.com/electron-userland/electron-builder/issues/2098 // Fix: https://github.com/electron-userland/electron-builder/issues/2269 - if (shim.isLinux()) windowOptions.icon = __dirname + '/build/icons/128x128.png'; + if (shim.isLinux()) windowOptions.icon = __dirname + "/build/icons/128x128.png"; - this.win_ = new BrowserWindow(windowOptions) + this.win_ = new BrowserWindow(windowOptions); - this.win_.loadURL(url.format({ - pathname: path.join(__dirname, 'index.html'), - protocol: 'file:', - slashes: true - })) + this.win_.loadURL( + url.format({ + pathname: path.join(__dirname, "index.html"), + protocol: "file:", + slashes: true, + }) + ); // Uncomment this to view errors if the application does not start // if (this.env_ === 'dev') this.win_.webContents.openDevTools(); - this.win_.on('close', (event) => { + this.win_.on("close", event => { // If it's on macOS, the app is completely closed only if the user chooses to close the app (willQuitApp_ will be true) // otherwise the window is simply hidden, and will be re-open once the app is "activated" (which happens when the // user clicks on the icon in the task bar). @@ -74,7 +75,7 @@ class ElectronAppWrapper { // On Windows and Linux, the app is closed when the window is closed *except* if the tray icon is used. In which // case the app must be explicitely closed with Ctrl+Q or by right-clicking on the tray icon and selecting "Exit". - if (process.platform === 'darwin') { + if (process.platform === "darwin") { if (this.willQuitApp_) { this.win_ = null; } else { @@ -89,7 +90,7 @@ class ElectronAppWrapper { this.win_ = null; } } - }) + }); // Let us register listeners on the window, so we can update the state // automatically (the listeners will be removed when the window is closed) @@ -130,10 +131,10 @@ class ElectronAppWrapper { buildDir() { if (this.buildDir_) return this.buildDir_; - let dir = __dirname + '/build'; + let dir = __dirname + "/build"; if (!fs.pathExistsSync(dir)) { - dir = dirname(__dirname) + '/build'; - if (!fs.pathExistsSync(dir)) throw new Error('Cannot find build dir'); + dir = dirname(__dirname) + "/build"; + if (!fs.pathExistsSync(dir)) throw new Error("Cannot find build dir"); } this.buildDir_ = dir; @@ -141,15 +142,15 @@ class ElectronAppWrapper { } trayIconFilename_() { - let output = ''; + let output = ""; - if (process.platform === 'darwin') { - output = 'macos-16x16Template.png'; // Electron Template Image format + if (process.platform === "darwin") { + output = "macos-16x16Template.png"; // Electron Template Image format } else { - output = '16x16.png'; + output = "16x16.png"; } - if (this.env_ === 'dev') output = '16x16-dev.png' + if (this.env_ === "dev") output = "16x16-dev.png"; return output; } @@ -157,11 +158,11 @@ class ElectronAppWrapper { // Note: this must be called only after the "ready" event of the app has been dispatched createTray(contextMenu) { try { - this.tray_ = new Tray(this.buildDir() + '/icons/' + this.trayIconFilename_()) - this.tray_.setToolTip(this.electronApp_.getName()) - this.tray_.setContextMenu(contextMenu) + this.tray_ = new Tray(this.buildDir() + "/icons/" + this.trayIconFilename_()); + this.tray_.setToolTip(this.electronApp_.getName()); + this.tray_.setContextMenu(contextMenu); - this.tray_.on('click', () => { + this.tray_.on("click", () => { this.window().show(); }); } catch (error) { @@ -176,7 +177,7 @@ class ElectronAppWrapper { } ensureSingleInstance() { - if (this.env_ === 'dev') return false; + if (this.env_ === "dev") return false; return new Promise((resolve, reject) => { const alreadyRunning = this.electronApp_.makeSingleInstance((commandLine, workingDirectory) => { @@ -203,19 +204,18 @@ class ElectronAppWrapper { this.createWindow(); - this.electronApp_.on('before-quit', () => { + this.electronApp_.on("before-quit", () => { this.willQuitApp_ = true; - }) + }); - this.electronApp_.on('window-all-closed', () => { + this.electronApp_.on("window-all-closed", () => { this.electronApp_.quit(); - }) + }); - this.electronApp_.on('activate', () => { + this.electronApp_.on("activate", () => { this.win_.show(); - }) + }); } - } -module.exports = { ElectronAppWrapper }; \ No newline at end of file +module.exports = { ElectronAppWrapper }; diff --git a/ElectronClient/app/InteropServiceHelper.js b/ElectronClient/app/InteropServiceHelper.js index 341a19c163..22c4392553 100644 --- a/ElectronClient/app/InteropServiceHelper.js +++ b/ElectronClient/app/InteropServiceHelper.js @@ -1,21 +1,20 @@ -const { _ } = require('lib/locale'); -const { bridge } = require('electron').remote.require('./bridge'); -const InteropService = require('lib/services/InteropService'); +const { _ } = require("lib/locale"); +const { bridge } = require("electron").remote.require("./bridge"); +const InteropService = require("lib/services/InteropService"); class InteropServiceHelper { - static async export(dispatch, module, options = null) { if (!options) options = {}; let path = null; - if (module.target === 'file') { + if (module.target === "file") { path = bridge().showSaveDialog({ - filters: [{ name: module.description, extensions: [module.fileExtension]}] + filters: [{ name: module.description, extensions: [module.fileExtension] }], }); } else { path = bridge().showOpenDialog({ - properties: ['openDirectory', 'createDirectory'], + properties: ["openDirectory", "createDirectory"], }); } @@ -24,8 +23,8 @@ class InteropServiceHelper { if (Array.isArray(path)) path = path[0]; dispatch({ - type: 'WINDOW_COMMAND', - name: 'showModalMessage', + type: "WINDOW_COMMAND", + name: "showModalMessage", message: _('Exporting to "%s" as "%s" format. Please wait...', path, module.format), }); @@ -38,14 +37,13 @@ class InteropServiceHelper { const service = new InteropService(); const result = await service.export(exportOptions); - console.info('Export result: ', result); + console.info("Export result: ", result); dispatch({ - type: 'WINDOW_COMMAND', - name: 'hideModalMessage', + type: "WINDOW_COMMAND", + name: "hideModalMessage", }); } - } -module.exports = InteropServiceHelper; \ No newline at end of file +module.exports = InteropServiceHelper; diff --git a/ElectronClient/app/app.js b/ElectronClient/app/app.js index 7db2a51b6b..7ca04f905a 100644 --- a/ElectronClient/app/app.js +++ b/ElectronClient/app/app.js @@ -1,47 +1,46 @@ -require('app-module-path').addPath(__dirname); +require("app-module-path").addPath(__dirname); -const { BaseApplication } = require('lib/BaseApplication'); -const { FoldersScreenUtils } = require('lib/folders-screen-utils.js'); -const Setting = require('lib/models/Setting.js'); -const { shim } = require('lib/shim.js'); -const BaseModel = require('lib/BaseModel.js'); -const MasterKey = require('lib/models/MasterKey'); -const { _, setLocale } = require('lib/locale.js'); -const os = require('os'); -const fs = require('fs-extra'); -const Tag = require('lib/models/Tag.js'); -const { reg } = require('lib/registry.js'); -const { sprintf } = require('sprintf-js'); -const { JoplinDatabase } = require('lib/joplin-database.js'); -const { DatabaseDriverNode } = require('lib/database-driver-node.js'); -const { ElectronAppWrapper } = require('./ElectronAppWrapper'); -const { defaultState } = require('lib/reducer.js'); -const packageInfo = require('./packageInfo.js'); -const AlarmService = require('lib/services/AlarmService.js'); -const AlarmServiceDriverNode = require('lib/services/AlarmServiceDriverNode'); -const DecryptionWorker = require('lib/services/DecryptionWorker'); -const InteropService = require('lib/services/InteropService'); -const InteropServiceHelper = require('./InteropServiceHelper.js'); +const { BaseApplication } = require("lib/BaseApplication"); +const { FoldersScreenUtils } = require("lib/folders-screen-utils.js"); +const Setting = require("lib/models/Setting.js"); +const { shim } = require("lib/shim.js"); +const BaseModel = require("lib/BaseModel.js"); +const MasterKey = require("lib/models/MasterKey"); +const { _, setLocale } = require("lib/locale.js"); +const os = require("os"); +const fs = require("fs-extra"); +const Tag = require("lib/models/Tag.js"); +const { reg } = require("lib/registry.js"); +const { sprintf } = require("sprintf-js"); +const { JoplinDatabase } = require("lib/joplin-database.js"); +const { DatabaseDriverNode } = require("lib/database-driver-node.js"); +const { ElectronAppWrapper } = require("./ElectronAppWrapper"); +const { defaultState } = require("lib/reducer.js"); +const packageInfo = require("./packageInfo.js"); +const AlarmService = require("lib/services/AlarmService.js"); +const AlarmServiceDriverNode = require("lib/services/AlarmServiceDriverNode"); +const DecryptionWorker = require("lib/services/DecryptionWorker"); +const InteropService = require("lib/services/InteropService"); +const InteropServiceHelper = require("./InteropServiceHelper.js"); -const { bridge } = require('electron').remote.require('./bridge'); +const { bridge } = require("electron").remote.require("./bridge"); const Menu = bridge().Menu; const MenuItem = bridge().MenuItem; const appDefaultState = Object.assign({}, defaultState, { route: { - type: 'NAV_GO', - routeName: 'Main', + type: "NAV_GO", + routeName: "Main", props: {}, }, navHistory: [], fileToImport: null, windowCommand: null, - noteVisiblePanes: ['editor', 'viewer'], + noteVisiblePanes: ["editor", "viewer"], windowContentSize: bridge().windowContentSize(), }); class Application extends BaseApplication { - constructor() { super(); this.lastMenuScreen_ = null; @@ -52,7 +51,7 @@ class Application extends BaseApplication { } checkForUpdateLoggerPath() { - return Setting.value('profileDir') + '/log-autoupdater.txt'; + return Setting.value("profileDir") + "/log-autoupdater.txt"; } reducer(state = appDefaultState, action) { @@ -60,11 +59,9 @@ class Application extends BaseApplication { try { switch (action.type) { - - case 'NAV_BACK': - case 'NAV_GO': - - const goingBack = action.type === 'NAV_BACK'; + case "NAV_BACK": + case "NAV_GO": + const goingBack = action.type === "NAV_BACK"; if (goingBack && !state.navHistory.length) break; @@ -84,52 +81,47 @@ class Application extends BaseApplication { action = newAction; } - + if (!goingBack) newNavHistory.push(currentRoute); - newState.navHistory = newNavHistory + newState.navHistory = newNavHistory; newState.route = action; break; - case 'WINDOW_CONTENT_SIZE_SET': - + case "WINDOW_CONTENT_SIZE_SET": newState = Object.assign({}, state); newState.windowContentSize = action.size; break; - case 'WINDOW_COMMAND': - + case "WINDOW_COMMAND": newState = Object.assign({}, state); let command = Object.assign({}, action); delete command.type; newState.windowCommand = command; break; - case 'NOTE_VISIBLE_PANES_TOGGLE': - + case "NOTE_VISIBLE_PANES_TOGGLE": let panes = state.noteVisiblePanes.slice(); if (panes.length === 2) { - panes = ['editor']; - } else if (panes.indexOf('editor') >= 0) { - panes = ['viewer']; - } else if (panes.indexOf('viewer') >= 0) { - panes = ['editor', 'viewer']; + panes = ["editor"]; + } else if (panes.indexOf("editor") >= 0) { + panes = ["viewer"]; + } else if (panes.indexOf("viewer") >= 0) { + panes = ["editor", "viewer"]; } else { - panes = ['editor', 'viewer']; + panes = ["editor", "viewer"]; } newState = Object.assign({}, state); newState.noteVisiblePanes = panes; break; - case 'NOTE_VISIBLE_PANES_SET': - + case "NOTE_VISIBLE_PANES_SET": newState = Object.assign({}, state); newState.noteVisiblePanes = action.panes; break; - } } catch (error) { - error.message = 'In reducer: ' + error.message + ' Action: ' + JSON.stringify(action); + error.message = "In reducer: " + error.message + " Action: " + JSON.stringify(action); throw error; } @@ -137,36 +129,36 @@ class Application extends BaseApplication { } async generalMiddleware(store, next, action) { - if (action.type == 'SETTING_UPDATE_ONE' && action.key == 'locale' || action.type == 'SETTING_UPDATE_ALL') { - setLocale(Setting.value('locale')); + if ((action.type == "SETTING_UPDATE_ONE" && action.key == "locale") || action.type == "SETTING_UPDATE_ALL") { + setLocale(Setting.value("locale")); this.refreshMenu(); } - if (action.type == 'SETTING_UPDATE_ONE' && action.key == 'showTrayIcon' || action.type == 'SETTING_UPDATE_ALL') { + if ((action.type == "SETTING_UPDATE_ONE" && action.key == "showTrayIcon") || action.type == "SETTING_UPDATE_ALL") { this.updateTray(); } - if (action.type == 'SETTING_UPDATE_ONE' && action.key == 'style.editor.fontFamily' || action.type == 'SETTING_UPDATE_ALL') { + if ((action.type == "SETTING_UPDATE_ONE" && action.key == "style.editor.fontFamily") || action.type == "SETTING_UPDATE_ALL") { this.updateEditorFont(); } - if (['NOTE_UPDATE_ONE', 'NOTE_DELETE', 'FOLDER_UPDATE_ONE', 'FOLDER_DELETE'].indexOf(action.type) >= 0) { + if (["NOTE_UPDATE_ONE", "NOTE_DELETE", "FOLDER_UPDATE_ONE", "FOLDER_DELETE"].indexOf(action.type) >= 0) { if (!await reg.syncTarget().syncStarted()) reg.scheduleSync(); } - if (['EVENT_NOTE_ALARM_FIELD_CHANGE', 'NOTE_DELETE'].indexOf(action.type) >= 0) { - await AlarmService.updateNoteNotification(action.id, action.type === 'NOTE_DELETE'); + if (["EVENT_NOTE_ALARM_FIELD_CHANGE", "NOTE_DELETE"].indexOf(action.type) >= 0) { + await AlarmService.updateNoteNotification(action.id, action.type === "NOTE_DELETE"); } const result = await super.generalMiddleware(store, next, action); const newState = store.getState(); - if (action.type === 'NAV_GO' || action.type === 'NAV_BACK') { + if (action.type === "NAV_GO" || action.type === "NAV_BACK") { app().updateMenu(newState.route.routeName); } - if (['NOTE_VISIBLE_PANES_TOGGLE', 'NOTE_VISIBLE_PANES_SET'].indexOf(action.type) >= 0) { - Setting.setValue('noteVisiblePanes', newState.noteVisiblePanes); + if (["NOTE_VISIBLE_PANES_TOGGLE", "NOTE_VISIBLE_PANES_SET"].indexOf(action.type) >= 0) { + Setting.setValue("noteVisiblePanes", newState.noteVisiblePanes); } return result; @@ -182,19 +174,19 @@ class Application extends BaseApplication { if (this.lastMenuScreen_ === screen) return; const sortNoteItems = []; - const sortNoteOptions = Setting.enumOptions('notes.sortOrder.field'); + const sortNoteOptions = Setting.enumOptions("notes.sortOrder.field"); for (let field in sortNoteOptions) { if (!sortNoteOptions.hasOwnProperty(field)) continue; sortNoteItems.push({ label: sortNoteOptions[field], - screens: ['Main'], - type: 'checkbox', - checked: Setting.value('notes.sortOrder.field') === field, + screens: ["Main"], + type: "checkbox", + checked: Setting.value("notes.sortOrder.field") === field, click: () => { - Setting.setValue('notes.sortOrder.field', field); + Setting.setValue("notes.sortOrder.field", field); this.refreshMenu(); - } - }); + }, + }); } const importItems = []; @@ -203,36 +195,36 @@ class Application extends BaseApplication { const ioModules = ioService.modules(); for (let i = 0; i < ioModules.length; i++) { const module = ioModules[i]; - if (module.type === 'exporter') { + if (module.type === "exporter") { exportItems.push({ - label: module.format + ' - ' + module.description, - screens: ['Main'], + label: module.format + " - " + module.description, + screens: ["Main"], click: async () => { await InteropServiceHelper.export(this.dispatch.bind(this), module); - } + }, }); } else { for (let j = 0; j < module.sources.length; j++) { const moduleSource = module.sources[j]; - let label = [module.format + ' - ' + module.description]; + let label = [module.format + " - " + module.description]; if (module.sources.length > 1) { - label.push('(' + (moduleSource === 'file' ? _('File') : _('Directory')) + ')'); + label.push("(" + (moduleSource === "file" ? _("File") : _("Directory")) + ")"); } importItems.push({ - label: label.join(' '), - screens: ['Main'], + label: label.join(" "), + screens: ["Main"], click: async () => { let path = null; const selectedFolderId = this.store().getState().selectedFolderId; - if (moduleSource === 'file') { + if (moduleSource === "file") { path = bridge().showOpenDialog({ - filters: [{ name: module.description, extensions: [module.fileExtension]}] + filters: [{ name: module.description, extensions: [module.fileExtension] }], }); } else { path = bridge().showOpenDialog({ - properties: ['openDirectory', 'createDirectory'], + properties: ["openDirectory", "createDirectory"], }); } @@ -241,29 +233,29 @@ class Application extends BaseApplication { if (Array.isArray(path)) path = path[0]; this.dispatch({ - type: 'WINDOW_COMMAND', - name: 'showModalMessage', + type: "WINDOW_COMMAND", + name: "showModalMessage", message: _('Importing from "%s" as "%s" format. Please wait...', path, module.format), }); const importOptions = {}; importOptions.path = path; importOptions.format = module.format; - importOptions.destinationFolderId = !module.isNoteArchive && moduleSource === 'file' ? selectedFolderId : null; + importOptions.destinationFolderId = !module.isNoteArchive && moduleSource === "file" ? selectedFolderId : null; const service = new InteropService(); try { const result = await service.import(importOptions); - console.info('Import result: ', result); + console.info("Import result: ", result); } catch (error) { bridge().showErrorMessageBox(error.message); } this.dispatch({ - type: 'WINDOW_COMMAND', - name: 'hideModalMessage', + type: "WINDOW_COMMAND", + name: "hideModalMessage", }); - } + }, }); } } @@ -271,216 +263,264 @@ class Application extends BaseApplication { const template = [ { - label: _('File'), - submenu: [{ - label: _('New note'), - accelerator: 'CommandOrControl+N', - screens: ['Main'], - click: () => { - this.dispatch({ - type: 'WINDOW_COMMAND', - name: 'newNote', - }); - } - }, { - label: _('New to-do'), - accelerator: 'CommandOrControl+T', - screens: ['Main'], - click: () => { - this.dispatch({ - type: 'WINDOW_COMMAND', - name: 'newTodo', - }); - } - }, { - label: _('New notebook'), - accelerator: 'CommandOrControl+B', - screens: ['Main'], - click: () => { - this.dispatch({ - type: 'WINDOW_COMMAND', - name: 'newNotebook', - }); - } - }, { - type: 'separator', - // }, { - // label: _('Import Evernote notes'), - // click: () => { - // const filePaths = bridge().showOpenDialog({ - // properties: ['openFile', 'createDirectory'], - // filters: [ - // { name: _('Evernote Export Files'), extensions: ['enex'] }, - // ] - // }); - // if (!filePaths || !filePaths.length) return; + label: _("File"), + submenu: [ + { + label: _("New note"), + accelerator: "CommandOrControl+N", + screens: ["Main"], + click: () => { + this.dispatch({ + type: "WINDOW_COMMAND", + name: "newNote", + }); + }, + }, + { + label: _("New to-do"), + accelerator: "CommandOrControl+T", + screens: ["Main"], + click: () => { + this.dispatch({ + type: "WINDOW_COMMAND", + name: "newTodo", + }); + }, + }, + { + label: _("New notebook"), + accelerator: "CommandOrControl+B", + screens: ["Main"], + click: () => { + this.dispatch({ + type: "WINDOW_COMMAND", + name: "newNotebook", + }); + }, + }, + { + type: "separator", + // }, { + // label: _('Import Evernote notes'), + // click: () => { + // const filePaths = bridge().showOpenDialog({ + // properties: ['openFile', 'createDirectory'], + // filters: [ + // { name: _('Evernote Export Files'), extensions: ['enex'] }, + // ] + // }); + // if (!filePaths || !filePaths.length) return; - // this.dispatch({ - // type: 'NAV_GO', - // routeName: 'Import', - // props: { - // filePath: filePaths[0], - // }, - // }); - // } - }, { - label: _('Import'), - submenu: importItems, - }, { - label: _('Export'), - submenu: exportItems, - }, { - type: 'separator', - platforms: ['darwin'], - }, { - label: _('Hide %s', 'Joplin'), - platforms: ['darwin'], - accelerator: 'CommandOrControl+H', - click: () => { bridge().electronApp().hide() } - }, { - type: 'separator', - }, { - label: _('Quit'), - accelerator: 'CommandOrControl+Q', - click: () => { bridge().electronApp().quit() } - }] - }, { - label: _('Edit'), - submenu: [{ - label: _('Copy'), - screens: ['Main', 'OneDriveLogin', 'Config', 'EncryptionConfig'], - role: 'copy', - accelerator: 'CommandOrControl+C', - }, { - label: _('Cut'), - screens: ['Main', 'OneDriveLogin', 'Config', 'EncryptionConfig'], - role: 'cut', - accelerator: 'CommandOrControl+X', - }, { - label: _('Paste'), - screens: ['Main', 'OneDriveLogin', 'Config', 'EncryptionConfig'], - role: 'paste', - accelerator: 'CommandOrControl+V', - }, { - type: 'separator', - screens: ['Main'], - }, { - label: _('Search in all the notes'), - screens: ['Main'], - accelerator: 'F6', - click: () => { - this.dispatch({ - type: 'WINDOW_COMMAND', - name: 'search', - }); + // this.dispatch({ + // type: 'NAV_GO', + // routeName: 'Import', + // props: { + // filePath: filePaths[0], + // }, + // }); + // } }, - }], - }, { - label: _('View'), - submenu: [{ - label: _('Toggle editor layout'), - screens: ['Main'], - accelerator: 'CommandOrControl+L', - click: () => { - this.dispatch({ - type: 'WINDOW_COMMAND', - name: 'toggleVisiblePanes', - }); - } - }, { - type: 'separator', - screens: ['Main'], - }, { - label: Setting.settingMetadata('notes.sortOrder.field').label(), - screens: ['Main'], - submenu: sortNoteItems, - }, { - label: Setting.settingMetadata('notes.sortOrder.reverse').label(), - type: 'checkbox', - checked: Setting.value('notes.sortOrder.reverse'), - screens: ['Main'], - click: () => { - Setting.setValue('notes.sortOrder.reverse', !Setting.value('notes.sortOrder.reverse')); + { + label: _("Import"), + submenu: importItems, }, - }, { - label: Setting.settingMetadata('uncompletedTodosOnTop').label(), - type: 'checkbox', - checked: Setting.value('uncompletedTodosOnTop'), - screens: ['Main'], - click: () => { - Setting.setValue('uncompletedTodosOnTop', !Setting.value('uncompletedTodosOnTop')); + { + label: _("Export"), + submenu: exportItems, }, - }], - }, { - label: _('Tools'), - submenu: [{ - label: _('Synchronisation status'), - click: () => { - this.dispatch({ - type: 'NAV_GO', - routeName: 'Status', - }); - } - }, { - type: 'separator', - screens: ['Main'], - },{ - label: _('Encryption options'), - click: () => { - this.dispatch({ - type: 'NAV_GO', - routeName: 'EncryptionConfig', - }); - } - },{ - label: _('General Options'), - accelerator: 'CommandOrControl+,', - click: () => { - this.dispatch({ - type: 'NAV_GO', - routeName: 'Config', - }); - } - }], - }, { - label: _('Help'), - submenu: [{ - label: _('Website and documentation'), - accelerator: 'F1', - click () { bridge().openExternal('http://joplin.cozic.net') } - }, { - label: _('Make a donation'), - click () { bridge().openExternal('http://joplin.cozic.net/donate') } - }, { - label: _('Check for updates...'), - click: () => { - bridge().checkForUpdates(false, bridge().window(), this.checkForUpdateLoggerPath()); - } - }, { - type: 'separator', - screens: ['Main'], - }, { - label: _('About Joplin'), - click: () => { - const p = packageInfo; - let message = [ - p.description, - '', - 'Copyright © 2016-2018 Laurent Cozic', - _('%s %s (%s, %s)', p.name, p.version, Setting.value('env'), process.platform), - ]; - bridge().showInfoMessageBox(message.join('\n'), { - icon: bridge().electronApp().buildDir() + '/icons/32x32.png', - }); - } - }] + { + type: "separator", + platforms: ["darwin"], + }, + { + label: _("Hide %s", "Joplin"), + platforms: ["darwin"], + accelerator: "CommandOrControl+H", + click: () => { + bridge() + .electronApp() + .hide(); + }, + }, + { + type: "separator", + }, + { + label: _("Quit"), + accelerator: "CommandOrControl+Q", + click: () => { + bridge() + .electronApp() + .quit(); + }, + }, + ], + }, + { + label: _("Edit"), + submenu: [ + { + label: _("Copy"), + screens: ["Main", "OneDriveLogin", "Config", "EncryptionConfig"], + role: "copy", + accelerator: "CommandOrControl+C", + }, + { + label: _("Cut"), + screens: ["Main", "OneDriveLogin", "Config", "EncryptionConfig"], + role: "cut", + accelerator: "CommandOrControl+X", + }, + { + label: _("Paste"), + screens: ["Main", "OneDriveLogin", "Config", "EncryptionConfig"], + role: "paste", + accelerator: "CommandOrControl+V", + }, + { + type: "separator", + screens: ["Main"], + }, + { + label: _("Search in all the notes"), + screens: ["Main"], + accelerator: "F6", + click: () => { + this.dispatch({ + type: "WINDOW_COMMAND", + name: "search", + }); + }, + }, + ], + }, + { + label: _("View"), + submenu: [ + { + label: _("Toggle editor layout"), + screens: ["Main"], + accelerator: "CommandOrControl+L", + click: () => { + this.dispatch({ + type: "WINDOW_COMMAND", + name: "toggleVisiblePanes", + }); + }, + }, + { + type: "separator", + screens: ["Main"], + }, + { + label: Setting.settingMetadata("notes.sortOrder.field").label(), + screens: ["Main"], + submenu: sortNoteItems, + }, + { + label: Setting.settingMetadata("notes.sortOrder.reverse").label(), + type: "checkbox", + checked: Setting.value("notes.sortOrder.reverse"), + screens: ["Main"], + click: () => { + Setting.setValue("notes.sortOrder.reverse", !Setting.value("notes.sortOrder.reverse")); + }, + }, + { + label: Setting.settingMetadata("uncompletedTodosOnTop").label(), + type: "checkbox", + checked: Setting.value("uncompletedTodosOnTop"), + screens: ["Main"], + click: () => { + Setting.setValue("uncompletedTodosOnTop", !Setting.value("uncompletedTodosOnTop")); + }, + }, + ], + }, + { + label: _("Tools"), + submenu: [ + { + label: _("Synchronisation status"), + click: () => { + this.dispatch({ + type: "NAV_GO", + routeName: "Status", + }); + }, + }, + { + type: "separator", + screens: ["Main"], + }, + { + label: _("Encryption options"), + click: () => { + this.dispatch({ + type: "NAV_GO", + routeName: "EncryptionConfig", + }); + }, + }, + { + label: _("General Options"), + accelerator: "CommandOrControl+,", + click: () => { + this.dispatch({ + type: "NAV_GO", + routeName: "Config", + }); + }, + }, + ], + }, + { + label: _("Help"), + submenu: [ + { + label: _("Website and documentation"), + accelerator: "F1", + click() { + bridge().openExternal("http://joplin.cozic.net"); + }, + }, + { + label: _("Make a donation"), + click() { + bridge().openExternal("http://joplin.cozic.net/donate"); + }, + }, + { + label: _("Check for updates..."), + click: () => { + bridge().checkForUpdates(false, bridge().window(), this.checkForUpdateLoggerPath()); + }, + }, + { + type: "separator", + screens: ["Main"], + }, + { + label: _("About Joplin"), + click: () => { + const p = packageInfo; + let message = [p.description, "", "Copyright © 2016-2018 Laurent Cozic", _("%s %s (%s, %s)", p.name, p.version, Setting.value("env"), process.platform)]; + bridge().showInfoMessageBox(message.join("\n"), { + icon: + bridge() + .electronApp() + .buildDir() + "/icons/32x32.png", + }); + }, + }, + ], }, ]; function isEmptyMenu(template) { for (let i = 0; i < template.length; i++) { const t = template[i]; - if (t.type !== 'separator') return false; + if (t.type !== "separator") return false; } return true; } @@ -494,7 +534,7 @@ class Application extends BaseApplication { if (t.screens && t.screens.indexOf(screen) < 0) continue; if (t.platforms && t.platforms.indexOf(platform) < 0) continue; if (t.submenu) t.submenu = removeUnwantedItems(t.submenu, screen); - if (('submenu' in t) && isEmptyMenu(t.submenu)) continue; + if ("submenu" in t && isEmptyMenu(t.submenu)) continue; output.push(t); } return output; @@ -516,31 +556,41 @@ class Application extends BaseApplication { const app = bridge().electronApp(); - if (app.trayShown() === Setting.value('showTrayIcon')) return; + if (app.trayShown() === Setting.value("showTrayIcon")) return; - if (!Setting.value('showTrayIcon')) { + if (!Setting.value("showTrayIcon")) { app.destroyTray(); } else { const contextMenu = Menu.buildFromTemplate([ - { label: _('Open %s', app.electronApp().getName()), click: () => { app.window().show(); } }, - { type: 'separator' }, - { label: _('Exit'), click: () => { app.quit() } }, - ]) + { + label: _("Open %s", app.electronApp().getName()), + click: () => { + app.window().show(); + }, + }, + { type: "separator" }, + { + label: _("Exit"), + click: () => { + app.quit(); + }, + }, + ]); app.createTray(contextMenu); } } updateEditorFont() { const fontFamilies = []; - if (Setting.value('style.editor.fontFamily')) fontFamilies.push('"' + Setting.value('style.editor.fontFamily') + '"'); - fontFamilies.push('monospace'); + if (Setting.value("style.editor.fontFamily")) fontFamilies.push('"' + Setting.value("style.editor.fontFamily") + '"'); + fontFamilies.push("monospace"); // The '*' and '!important' parts are necessary to make sure Russian text is displayed properly // https://github.com/laurent22/joplin/issues/155 - const css = '.ace_editor * { font-family: ' + fontFamilies.join(', ') + ' !important; }'; - const styleTag = document.createElement('style'); - styleTag.type = 'text/css'; + const css = ".ace_editor * { font-family: " + fontFamilies.join(", ") + " !important; }"; + const styleTag = document.createElement("style"); + styleTag.type = "text/css"; styleTag.appendChild(document.createTextNode(css)); document.head.appendChild(styleTag); } @@ -551,13 +601,17 @@ class Application extends BaseApplication { AlarmService.setDriver(new AlarmServiceDriverNode({ appName: packageInfo.build.appId })); AlarmService.setLogger(reg.logger()); - reg.setShowErrorMessageBoxHandler((message) => { bridge().showErrorMessageBox(message) }); + reg.setShowErrorMessageBoxHandler(message => { + bridge().showErrorMessageBox(message); + }); - if (Setting.value('openDevTools')) { - bridge().window().webContents.openDevTools(); + if (Setting.value("openDevTools")) { + bridge() + .window() + .webContents.openDevTools(); } - this.updateMenu('Main'); + this.updateMenu("Main"); this.initRedux(); @@ -571,35 +625,39 @@ class Application extends BaseApplication { const tags = await Tag.allWithNotes(); this.dispatch({ - type: 'TAG_UPDATE_ALL', + type: "TAG_UPDATE_ALL", items: tags, }); const masterKeys = await MasterKey.all(); this.dispatch({ - type: 'MASTERKEY_UPDATE_ALL', + type: "MASTERKEY_UPDATE_ALL", items: masterKeys, }); this.store().dispatch({ - type: 'FOLDER_SELECT', - id: Setting.value('activeFolderId'), + type: "FOLDER_SELECT", + id: Setting.value("activeFolderId"), }); // Note: Auto-update currently doesn't work in Linux: it downloads the update // but then doesn't install it on exit. if (shim.isWindows() || shim.isMac()) { const runAutoUpdateCheck = () => { - if (Setting.value('autoUpdateEnabled')) { + if (Setting.value("autoUpdateEnabled")) { bridge().checkForUpdates(true, bridge().window(), this.checkForUpdateLoggerPath()); } - } - + }; + // Initial check on startup - setTimeout(() => { runAutoUpdateCheck() }, 5000); + setTimeout(() => { + runAutoUpdateCheck(); + }, 5000); // Then every x hours - setInterval(() => { runAutoUpdateCheck() }, 12 * 60 * 60 * 1000); + setInterval(() => { + runAutoUpdateCheck(); + }, 12 * 60 * 60 * 1000); } this.updateTray(); @@ -608,7 +666,7 @@ class Application extends BaseApplication { AlarmService.garbageCollect(); }, 1000 * 60 * 60); - if (Setting.value('env') === 'dev') { + if (Setting.value("env") === "dev") { AlarmService.updateAllNotifications(); } else { reg.scheduleSync().then(() => { @@ -620,7 +678,6 @@ class Application extends BaseApplication { }); } } - } let application_ = null; @@ -630,4 +687,4 @@ function app() { return application_; } -module.exports = { app }; \ No newline at end of file +module.exports = { app }; diff --git a/ElectronClient/app/bridge.js b/ElectronClient/app/bridge.js index 46e516b9fb..755bc65439 100644 --- a/ElectronClient/app/bridge.js +++ b/ElectronClient/app/bridge.js @@ -1,9 +1,8 @@ -const { _ } = require('lib/locale.js'); -const { dirname } = require('lib/path-utils.js'); -const { Logger } = require('lib/logger.js'); +const { _ } = require("lib/locale.js"); +const { dirname } = require("lib/path-utils.js"); +const { Logger } = require("lib/logger.js"); class Bridge { - constructor(electronWrapper) { this.electronWrapper_ = electronWrapper; this.autoUpdateLogger_ = null; @@ -40,9 +39,9 @@ class Bridge { } showSaveDialog(options) { - const {dialog} = require('electron'); + const { dialog } = require("electron"); if (!options) options = {}; - if (!('defaultPath' in options) && this.lastSelectedPath_) options.defaultPath = this.lastSelectedPath_; + if (!("defaultPath" in options) && this.lastSelectedPath_) options.defaultPath = this.lastSelectedPath_; const filePath = dialog.showSaveDialog(this.window(), options); if (filePath) { this.lastSelectedPath_ = filePath; @@ -51,10 +50,10 @@ class Bridge { } showOpenDialog(options) { - const {dialog} = require('electron'); + const { dialog } = require("electron"); if (!options) options = {}; - if (!('defaultPath' in options) && this.lastSelectedPath_) options.defaultPath = this.lastSelectedPath_; - if (!('createDirectory' in options)) options.createDirectory = true; + if (!("defaultPath" in options) && this.lastSelectedPath_) options.defaultPath = this.lastSelectedPath_; + if (!("createDirectory" in options)) options.createDirectory = true; const filePaths = dialog.showOpenDialog(this.window(), options); if (filePaths && filePaths.length) { this.lastSelectedPath_ = dirname(filePaths[0]); @@ -64,71 +63,77 @@ class Bridge { // Don't use this directly - call one of the showXxxxxxxMessageBox() instead showMessageBox_(window, options) { - const {dialog} = require('electron'); - const nativeImage = require('electron').nativeImage + const { dialog } = require("electron"); + const nativeImage = require("electron").nativeImage; if (!window) window = this.window(); return dialog.showMessageBox(window, options); } showErrorMessageBox(message) { return this.showMessageBox_(this.window(), { - type: 'error', + type: "error", message: message, }); } showConfirmMessageBox(message) { const result = this.showMessageBox_(this.window(), { - type: 'question', + type: "question", message: message, - buttons: [_('OK'), _('Cancel')], + buttons: [_("OK"), _("Cancel")], }); return result === 0; } showInfoMessageBox(message, options = {}) { - const result = this.showMessageBox_(this.window(), Object.assign({}, { - type: 'info', - message: message, - buttons: [_('OK')], - }, options)); + const result = this.showMessageBox_( + this.window(), + Object.assign( + {}, + { + type: "info", + message: message, + buttons: [_("OK")], + }, + options + ) + ); return result === 0; } get Menu() { - return require('electron').Menu; + return require("electron").Menu; } get MenuItem() { - return require('electron').MenuItem; + return require("electron").MenuItem; } openExternal(url) { - return require('electron').shell.openExternal(url) + return require("electron").shell.openExternal(url); } openItem(fullPath) { - return require('electron').shell.openItem(fullPath) + return require("electron").shell.openItem(fullPath); } checkForUpdates(inBackground, window, logFilePath) { - const { checkForUpdates } = require('./checkForUpdates.js'); + const { checkForUpdates } = require("./checkForUpdates.js"); checkForUpdates(inBackground, window, logFilePath); } - } let bridge_ = null; function initBridge(wrapper) { - if (bridge_) throw new Error('Bridge already initialized'); + if (bridge_) throw new Error("Bridge already initialized"); bridge_ = new Bridge(wrapper); return bridge_; } function bridge() { - if (!bridge_) throw new Error('Bridge not initialized'); + if (!bridge_) throw new Error("Bridge not initialized"); return bridge_; -} +} -module.exports = { bridge, initBridge } \ No newline at end of file +module.exports = { bridge, initBridge }; diff --git a/ElectronClient/app/checkForUpdates.js b/ElectronClient/app/checkForUpdates.js index ef5eb36924..7d9ec8bc28 100644 --- a/ElectronClient/app/checkForUpdates.js +++ b/ElectronClient/app/checkForUpdates.js @@ -1,7 +1,7 @@ -const { dialog } = require('electron') -const { autoUpdater } = require('electron-updater') -const { Logger } = require('lib/logger.js'); -const { _ } = require('lib/locale.js'); +const { dialog } = require("electron"); +const { autoUpdater } = require("electron-updater"); +const { Logger } = require("lib/logger.js"); +const { _ } = require("lib/locale.js"); let autoUpdateLogger_ = new Logger(); let checkInBackground_ = false; @@ -14,51 +14,51 @@ let parentWindow_ = null; autoUpdater.autoDownload = false; function htmlToText_(html) { - let output = html.replace(/\n/g, ''); - output = output.replace(/
  • /g, '- '); - output = output.replace(/

    /g, ''); - output = output.replace(/<\/p>/g, '\n'); - output = output.replace(/<\/li>/g, '\n'); - output = output.replace(/

      /g, ''); - output = output.replace(/<\/ul>/g, ''); - output = output.replace(/<.*?>/g, ''); - output = output.replace(/<\/.*?>/g, ''); + let output = html.replace(/\n/g, ""); + output = output.replace(/
    • /g, "- "); + output = output.replace(/

      /g, ""); + output = output.replace(/<\/p>/g, "\n"); + output = output.replace(/<\/li>/g, "\n"); + output = output.replace(/

        /g, ""); + output = output.replace(/<\/ul>/g, ""); + output = output.replace(/<.*?>/g, ""); + output = output.replace(/<\/.*?>/g, ""); return output; } function showErrorMessageBox(message) { return dialog.showMessageBox(parentWindow_, { - type: 'error', + type: "error", message: message, }); } function onCheckStarted() { - autoUpdateLogger_.info('checkForUpdates: Starting...'); + autoUpdateLogger_.info("checkForUpdates: Starting..."); isCheckingForUpdate_ = true; } function onCheckEnded() { - autoUpdateLogger_.info('checkForUpdates: Done.'); + autoUpdateLogger_.info("checkForUpdates: Done."); isCheckingForUpdate_ = false; } -autoUpdater.on('error', (error) => { +autoUpdater.on("error", error => { autoUpdateLogger_.error(error); if (checkInBackground_) return onCheckEnded(); let msg = error == null ? "unknown" : (error.stack || error).toString(); - // Error messages can be very long even without stack trace so shorten + // Error messages can be very long even without stack trace so shorten // then so that the dialog box doesn't take the whole screen. - msg = msg.substr(0,512).replace(/\\n/g, '\n'); - showErrorMessageBox(msg) - + msg = msg.substr(0, 512).replace(/\\n/g, "\n"); + showErrorMessageBox(msg); + onCheckEnded(); -}) +}); function findDownloadFilename_(info) { // { version: '1.0.64', - // files: + // files: // [ { url: 'Joplin-1.0.64-mac.zip', // sha512: 'OlemXqhq/fSifx7EutvMzfoCI/1kGNl10i8nkvACEDfVXwP8hankDBXEC0+GxSArsZuxOh3U1+C+4j72SfIUew==' }, // { url: 'Joplin-1.0.64.dmg', @@ -80,47 +80,47 @@ function findDownloadFilename_(info) { for (let i = 0; i < info.files.length; i++) { const f = info.files[i].url; // Annoyingly this is called "url" but it's obviously not a url, so hopefully it won't change later on and become one. - if (f.indexOf('.exe') >= 0) return f; - if (f.indexOf('.dmg') >= 0) return f; + if (f.indexOf(".exe") >= 0) return f; + if (f.indexOf(".dmg") >= 0) return f; } return info.path; } -autoUpdater.on('update-available', (info) => { +autoUpdater.on("update-available", info => { const filename = findDownloadFilename_(info); if (!info.version || !filename) { if (checkInBackground_) return onCheckEnded(); - showErrorMessageBox(('Could not get version info: ' + JSON.stringify(info))); + showErrorMessageBox("Could not get version info: " + JSON.stringify(info)); return onCheckEnded(); } - const downloadUrl = 'https://github.com/laurent22/joplin/releases/download/v' + info.version + '/' + filename; + const downloadUrl = "https://github.com/laurent22/joplin/releases/download/v" + info.version + "/" + filename; - let releaseNotes = info.releaseNotes + ''; - if (releaseNotes) releaseNotes = '\n\n' + _('Release notes:\n\n%s', htmlToText_(releaseNotes)); + let releaseNotes = info.releaseNotes + ""; + if (releaseNotes) releaseNotes = "\n\n" + _("Release notes:\n\n%s", htmlToText_(releaseNotes)); const buttonIndex = dialog.showMessageBox(parentWindow_, { - type: 'info', - message: _('An update is available, do you want to download it now?' + releaseNotes), - buttons: [_('Yes'), _('No')] + type: "info", + message: _("An update is available, do you want to download it now?" + releaseNotes), + buttons: [_("Yes"), _("No")], }); onCheckEnded(); - if (buttonIndex === 0) require('electron').shell.openExternal(downloadUrl); -}) + if (buttonIndex === 0) require("electron").shell.openExternal(downloadUrl); +}); -autoUpdater.on('update-not-available', () => { +autoUpdater.on("update-not-available", () => { if (checkInBackground_) return onCheckEnded(); - dialog.showMessageBox({ message: _('Current version is up-to-date.') }) + dialog.showMessageBox({ message: _("Current version is up-to-date.") }); onCheckEnded(); -}) +}); function checkForUpdates(inBackground, window, logFilePath) { if (isCheckingForUpdate_) { - autoUpdateLogger_.info('checkForUpdates: Skipping check because it is already running'); + autoUpdateLogger_.info("checkForUpdates: Skipping check because it is already running"); return; } @@ -130,16 +130,16 @@ function checkForUpdates(inBackground, window, logFilePath) { if (logFilePath && !autoUpdateLogger_.targets().length) { autoUpdateLogger_ = new Logger(); - autoUpdateLogger_.addTarget('file', { path: logFilePath }); + autoUpdateLogger_.addTarget("file", { path: logFilePath }); autoUpdateLogger_.setLevel(Logger.LEVEL_DEBUG); - autoUpdateLogger_.info('checkForUpdates: Initializing...'); + autoUpdateLogger_.info("checkForUpdates: Initializing..."); autoUpdater.logger = autoUpdateLogger_; } checkInBackground_ = inBackground; try { - autoUpdater.checkForUpdates() + autoUpdater.checkForUpdates(); } catch (error) { autoUpdateLogger_.error(error); if (!checkInBackground_) showErrorMessageBox(error.message); @@ -147,4 +147,4 @@ function checkForUpdates(inBackground, window, logFilePath) { } } -module.exports.checkForUpdates = checkForUpdates \ No newline at end of file +module.exports.checkForUpdates = checkForUpdates; diff --git a/ElectronClient/app/compile-jsx.js b/ElectronClient/app/compile-jsx.js index 4663c74549..80139f2de0 100644 --- a/ElectronClient/app/compile-jsx.js +++ b/ElectronClient/app/compile-jsx.js @@ -1,8 +1,8 @@ -const fs = require('fs-extra'); -const spawnSync = require('child_process').spawnSync; +const fs = require("fs-extra"); +const spawnSync = require("child_process").spawnSync; -const babelPath = __dirname + '/node_modules/.bin/babel' + (process.platform === 'win32' ? '.cmd' : ''); -const guiPath = __dirname + '/gui'; +const babelPath = __dirname + "/node_modules/.bin/babel" + (process.platform === "win32" ? ".cmd" : ""); +const guiPath = __dirname + "/gui"; function fileIsNewerThan(path1, path2) { if (!fs.existsSync(path2)) return true; @@ -13,26 +13,26 @@ function fileIsNewerThan(path1, path2) { return stat1.mtime > stat2.mtime; } -fs.readdirSync(guiPath).forEach((filename) => { - const jsxPath = guiPath + '/' + filename; - const p = jsxPath.split('.'); +fs.readdirSync(guiPath).forEach(filename => { + const jsxPath = guiPath + "/" + filename; + const p = jsxPath.split("."); if (p.length <= 1) return; const ext = p[p.length - 1]; - if (ext !== 'jsx') return; + if (ext !== "jsx") return; p.pop(); - const basePath = p.join('.'); + const basePath = p.join("."); - const jsPath = basePath + '.min.js'; + const jsPath = basePath + ".min.js"; if (fileIsNewerThan(jsxPath, jsPath)) { - console.info('Compiling ' + jsxPath + '...'); - const result = spawnSync(babelPath, ['--presets', 'react', '--out-file',jsPath, jsxPath]); + console.info("Compiling " + jsxPath + "..."); + const result = spawnSync(babelPath, ["--presets", "react", "--out-file", jsPath, jsxPath]); if (result.status !== 0) { const msg = []; if (result.stdout) msg.push(result.stdout.toString()); if (result.stderr) msg.push(result.stderr.toString()); - console.error(msg.join('\n')); + console.error(msg.join("\n")); if (result.error) console.error(result.error); process.exit(result.status); } diff --git a/ElectronClient/app/compile-package-info.js b/ElectronClient/app/compile-package-info.js index e7ed05fa00..e6e078909c 100644 --- a/ElectronClient/app/compile-package-info.js +++ b/ElectronClient/app/compile-package-info.js @@ -1,11 +1,11 @@ -const fs = require('fs-extra'); +const fs = require("fs-extra"); // Electron Builder strip off certain important keys from package.json, which we need, in particular build.appId // so this script is used to preserve the keys that we need. -const packageInfo = require(__dirname + '/package.json'); +const packageInfo = require(__dirname + "/package.json"); -let removeKeys = ['scripts', 'devDependencies', 'optionalDependencies', 'dependencies']; +let removeKeys = ["scripts", "devDependencies", "optionalDependencies", "dependencies"]; for (let i = 0; i < removeKeys.length; i++) { delete packageInfo[removeKeys[i]]; @@ -16,8 +16,8 @@ const appId = packageInfo.build.appId; delete packageInfo.build; packageInfo.build = { appId: appId }; -let fileContent = "// Auto-generated by compile-package-info.js\n// Do not change directly\nconst packageInfo = " + JSON.stringify(packageInfo, null, 4) + ';'; +let fileContent = "// Auto-generated by compile-package-info.js\n// Do not change directly\nconst packageInfo = " + JSON.stringify(packageInfo, null, 4) + ";"; fileContent += "\n"; fileContent += "module.exports = packageInfo;"; -fs.writeFileSync(__dirname + '/packageInfo.js', fileContent); \ No newline at end of file +fs.writeFileSync(__dirname + "/packageInfo.js", fileContent); diff --git a/ElectronClient/app/eventManager.js b/ElectronClient/app/eventManager.js index 08b1091929..77fde03aaf 100644 --- a/ElectronClient/app/eventManager.js +++ b/ElectronClient/app/eventManager.js @@ -1,7 +1,6 @@ -const events = require('events'); +const events = require("events"); class EventManager { - constructor() { this.emitter_ = new events.EventEmitter(); } @@ -17,9 +16,8 @@ class EventManager { removeListener(eventName, callback) { return this.emitter_.removeListener(eventName, callback); } - } const eventManager = new EventManager(); -module.exports = eventManager; \ No newline at end of file +module.exports = eventManager; diff --git a/ElectronClient/app/gui/dialogs.js b/ElectronClient/app/gui/dialogs.js index e2853f1a07..4cb27204e1 100644 --- a/ElectronClient/app/gui/dialogs.js +++ b/ElectronClient/app/gui/dialogs.js @@ -1,12 +1,11 @@ -const smalltalk = require('smalltalk'); +const smalltalk = require("smalltalk"); class Dialogs { - - async alert(message, title = '') { + async alert(message, title = "") { await smalltalk.alert(title, message); } - async confirm(message, title = '') { + async confirm(message, title = "") { try { await smalltalk.confirm(title, message); return true; @@ -15,7 +14,7 @@ class Dialogs { } } - async prompt(message, title = '', defaultValue = '', options = null) { + async prompt(message, title = "", defaultValue = "", options = null) { if (options === null) options = {}; try { @@ -25,9 +24,8 @@ class Dialogs { return null; } } - } const dialogs = new Dialogs(); -module.exports = dialogs; \ No newline at end of file +module.exports = dialogs; diff --git a/ElectronClient/app/main-html.js b/ElectronClient/app/main-html.js index d127c883d9..1e21b4f6ff 100644 --- a/ElectronClient/app/main-html.js +++ b/ElectronClient/app/main-html.js @@ -1,7 +1,7 @@ // This is the initialization for the Electron RENDERER process // Make it possible to require("/lib/...") without specifying full path -require('app-module-path').addPath(__dirname); +require("app-module-path").addPath(__dirname); // Disable React message in console "Download the React DevTools for a better development experience" // https://stackoverflow.com/questions/42196819/disable-hide-download-the-react-devtools#42196820 @@ -12,21 +12,21 @@ __REACT_DEVTOOLS_GLOBAL_HOOK__ = { onCommitFiberUnmount: function() {}, }; -const { app } = require('./app.js'); -const Folder = require('lib/models/Folder.js'); -const Resource = require('lib/models/Resource.js'); -const BaseItem = require('lib/models/BaseItem.js'); -const Note = require('lib/models/Note.js'); -const Tag = require('lib/models/Tag.js'); -const NoteTag = require('lib/models/NoteTag.js'); -const MasterKey = require('lib/models/MasterKey'); -const Setting = require('lib/models/Setting.js'); -const { Logger } = require('lib/logger.js'); -const { FsDriverNode } = require('lib/fs-driver-node.js'); -const { shimInit } = require('lib/shim-init-node.js'); -const EncryptionService = require('lib/services/EncryptionService'); -const { bridge } = require('electron').remote.require('./bridge'); -const { FileApiDriverLocal } = require('lib/file-api-driver-local.js'); +const { app } = require("./app.js"); +const Folder = require("lib/models/Folder.js"); +const Resource = require("lib/models/Resource.js"); +const BaseItem = require("lib/models/BaseItem.js"); +const Note = require("lib/models/Note.js"); +const Tag = require("lib/models/Tag.js"); +const NoteTag = require("lib/models/NoteTag.js"); +const MasterKey = require("lib/models/MasterKey"); +const Setting = require("lib/models/Setting.js"); +const { Logger } = require("lib/logger.js"); +const { FsDriverNode } = require("lib/fs-driver-node.js"); +const { shimInit } = require("lib/shim-init-node.js"); +const EncryptionService = require("lib/services/EncryptionService"); +const { bridge } = require("electron").remote.require("./bridge"); +const { FileApiDriverLocal } = require("lib/file-api-driver-local.js"); const fsDriver = new FsDriverNode(); Logger.fsDriver_ = fsDriver; @@ -36,45 +36,50 @@ FileApiDriverLocal.fsDriver_ = fsDriver; // That's not good, but it's to avoid circular dependency issues // in the BaseItem class. -BaseItem.loadClass('Note', Note); -BaseItem.loadClass('Folder', Folder); -BaseItem.loadClass('Resource', Resource); -BaseItem.loadClass('Tag', Tag); -BaseItem.loadClass('NoteTag', NoteTag); -BaseItem.loadClass('MasterKey', MasterKey); +BaseItem.loadClass("Note", Note); +BaseItem.loadClass("Folder", Folder); +BaseItem.loadClass("Resource", Resource); +BaseItem.loadClass("Tag", Tag); +BaseItem.loadClass("NoteTag", NoteTag); +BaseItem.loadClass("MasterKey", MasterKey); -Setting.setConstant('appId', 'net.cozic.joplin-desktop'); -Setting.setConstant('appType', 'desktop'); +Setting.setConstant("appId", "net.cozic.joplin-desktop"); +Setting.setConstant("appType", "desktop"); shimInit(); // Disable drag and drop of links inside application (which would // open it as if the whole app was a browser) -document.addEventListener('dragover', event => event.preventDefault()); -document.addEventListener('drop', event => event.preventDefault()); +document.addEventListener("dragover", event => event.preventDefault()); +document.addEventListener("drop", event => event.preventDefault()); // Disable middle-click (which would open a new browser window, but we don't want this) -document.addEventListener('auxclick', event => event.preventDefault()); +document.addEventListener("auxclick", event => event.preventDefault()); // Each link (rendered as a button or list item) has its own custom click event // so disable the default. In particular this will disable Ctrl+Clicking a link // which would open a new browser window. -document.addEventListener('click', (event) => event.preventDefault()); +document.addEventListener("click", event => event.preventDefault()); -app().start(bridge().processArgv()).then(() => { - require('./gui/Root.min.js'); -}).catch((error) => { - if (error.code == 'flagError') { - bridge().showErrorMessageBox(error.message); - } else { - // If something goes wrong at this stage we don't have a console or a log file - // so display the error in a message box. - let msg = ['Fatal error:', error.message]; - if (error.fileName) msg.push(error.fileName); - if (error.lineNumber) msg.push(error.lineNumber); - if (error.stack) msg.push(error.stack); - bridge().showErrorMessageBox(msg.join('\n')); - } +app() + .start(bridge().processArgv()) + .then(() => { + require("./gui/Root.min.js"); + }) + .catch(error => { + if (error.code == "flagError") { + bridge().showErrorMessageBox(error.message); + } else { + // If something goes wrong at this stage we don't have a console or a log file + // so display the error in a message box. + let msg = ["Fatal error:", error.message]; + if (error.fileName) msg.push(error.fileName); + if (error.lineNumber) msg.push(error.lineNumber); + if (error.stack) msg.push(error.stack); + bridge().showErrorMessageBox(msg.join("\n")); + } - bridge().electronApp().exit(1); -}); \ No newline at end of file + bridge() + .electronApp() + .exit(1); + }); diff --git a/ElectronClient/app/main.js b/ElectronClient/app/main.js index 08e2140c31..412508c44e 100644 --- a/ElectronClient/app/main.js +++ b/ElectronClient/app/main.js @@ -1,27 +1,27 @@ // This is the basic initialization for the Electron MAIN process // Make it possible to require("/lib/...") without specifying full path -require('app-module-path').addPath(__dirname); +require("app-module-path").addPath(__dirname); -const electronApp = require('electron').app; -const { ElectronAppWrapper } = require('./ElectronAppWrapper'); -const { initBridge } = require('./bridge'); -const { Logger } = require('lib/logger.js'); -const { FsDriverNode } = require('lib/fs-driver-node.js'); +const electronApp = require("electron").app; +const { ElectronAppWrapper } = require("./ElectronAppWrapper"); +const { initBridge } = require("./bridge"); +const { Logger } = require("lib/logger.js"); +const { FsDriverNode } = require("lib/fs-driver-node.js"); -process.on('unhandledRejection', (reason, p) => { - console.error('Unhandled promise rejection', p, 'reason:', reason); +process.on("unhandledRejection", (reason, p) => { + console.error("Unhandled promise rejection", p, "reason:", reason); process.exit(1); }); // Flags are parsed properly in BaseApplication, however it's better to have // the env as early as possible to enable debugging capabilities. function envFromArgs(args) { - if (!args) return 'prod'; - const envIndex = args.indexOf('--env'); - const devIndex = args.indexOf('dev'); - if (envIndex === devIndex - 1) return 'dev'; - return 'prod'; + if (!args) return "prod"; + const envIndex = args.indexOf("--env"); + const devIndex = args.indexOf("dev"); + if (envIndex === devIndex - 1) return "dev"; + return "prod"; } Logger.fsDriver_ = new FsDriverNode(); @@ -32,7 +32,7 @@ const wrapper = new ElectronAppWrapper(electronApp, env); initBridge(wrapper); -wrapper.start().catch((error) => { - console.error('Electron App fatal error:'); +wrapper.start().catch(error => { + console.error("Electron App fatal error:"); console.error(error); -}); \ No newline at end of file +}); diff --git a/ElectronClient/app/theme.js b/ElectronClient/app/theme.js index 53df659d8e..d0d640148a 100644 --- a/ElectronClient/app/theme.js +++ b/ElectronClient/app/theme.js @@ -1,13 +1,13 @@ -const Setting = require('lib/models/Setting.js'); +const Setting = require("lib/models/Setting.js"); const globalStyle = { - fontSize: 12 * Setting.value('style.zoom')/100, - fontFamily: 'sans-serif', + fontSize: 12 * Setting.value("style.zoom") / 100, + fontFamily: "sans-serif", margin: 15, // No text and no interactive component should be within this margin itemMarginTop: 10, itemMarginBottom: 10, backgroundColor: "#ffffff", - backgroundColorTransparent: 'rgba(255,255,255,0.9)', + backgroundColorTransparent: "rgba(255,255,255,0.9)", oddBackgroundColor: "#dddddd", color: "#222222", // For regular text colorError: "red", @@ -15,7 +15,7 @@ const globalStyle = { colorFaded: "#777777", // For less important text fontSizeSmaller: 14, dividerColor: "#dddddd", - selectedColor: '#e5e5e5', + selectedColor: "#e5e5e5", disabledOpacity: 0.3, buttonMinWidth: 50, buttonMinHeight: 30, @@ -39,18 +39,18 @@ const globalStyle = { }; // For WebView - must correspond to the properties above -globalStyle.htmlFontSize = globalStyle.fontSize + 'px'; -globalStyle.htmlColor ='black'; // Note: CSS in WebView component only supports named colors or rgb() notation -globalStyle.htmlBackgroundColor ='white'; -globalStyle.htmlDividerColor = 'rgb(150,150,150)'; -globalStyle.htmlLinkColor ='blue'; -globalStyle.htmlLineHeight ='20px'; +globalStyle.htmlFontSize = globalStyle.fontSize + "px"; +globalStyle.htmlColor = "black"; // Note: CSS in WebView component only supports named colors or rgb() notation +globalStyle.htmlBackgroundColor = "white"; +globalStyle.htmlDividerColor = "rgb(150,150,150)"; +globalStyle.htmlLinkColor = "blue"; +globalStyle.htmlLineHeight = "20px"; globalStyle.marginRight = globalStyle.margin; globalStyle.marginLeft = globalStyle.margin; globalStyle.marginTop = globalStyle.margin; globalStyle.marginBottom = globalStyle.margin; -globalStyle.htmlMarginLeft = ((globalStyle.marginLeft / 10) * 0.6).toFixed(2) + 'em'; +globalStyle.htmlMarginLeft = (globalStyle.marginLeft / 10 * 0.6).toFixed(2) + "em"; globalStyle.icon = { color: globalStyle.color, @@ -66,7 +66,7 @@ globalStyle.textStyle = { color: globalStyle.color, fontFamily: globalStyle.fontFamily, fontSize: globalStyle.fontSize, - lineHeight: '1.6em', + lineHeight: "1.6em", }; globalStyle.textStyle2 = Object.assign({}, globalStyle.textStyle, { @@ -82,28 +82,28 @@ globalStyle.h2Style.fontSize *= 1.3; let themeCache_ = {}; function themeStyle(theme) { - if (!theme) throw new Error('Theme must be specified'); + if (!theme) throw new Error("Theme must be specified"); if (themeCache_[theme]) return themeCache_[theme]; let output = Object.assign({}, globalStyle); if (theme == Setting.THEME_LIGHT) return output; - output.backgroundColor = '#1D2024'; - output.color = '#dddddd'; - output.colorFaded = '#777777'; - output.dividerColor = '#555555'; - output.selectedColor = '#333333'; + output.backgroundColor = "#1D2024"; + output.color = "#dddddd"; + output.colorFaded = "#777777"; + output.dividerColor = "#555555"; + output.selectedColor = "#333333"; output.raisedBackgroundColor = "#0F2051"; output.raisedColor = "#788BC3"; output.raisedHighlightedColor = "#ffffff"; - output.htmlColor = 'rgb(220,220,220)'; - output.htmlBackgroundColor = 'rgb(29,32,36)'; - output.htmlLinkColor = 'rgb(166,166,255)'; + output.htmlColor = "rgb(220,220,220)"; + output.htmlBackgroundColor = "rgb(29,32,36)"; + output.htmlLinkColor = "rgb(166,166,255)"; themeCache_[theme] = output; return themeCache_[theme]; } -module.exports = { themeStyle }; \ No newline at end of file +module.exports = { themeStyle }; diff --git a/ElectronClient/app/update-readme-download.js b/ElectronClient/app/update-readme-download.js index 4de6e5675b..f521d46a30 100644 --- a/ElectronClient/app/update-readme-download.js +++ b/ElectronClient/app/update-readme-download.js @@ -1,11 +1,11 @@ -'use strict'; +"use strict"; -const fs = require('fs-extra'); -const https = require('https'); -const request = require('request'); +const fs = require("fs-extra"); +const https = require("https"); +const request = require("request"); -const url = 'https://api.github.com/repos/laurent22/joplin/releases/latest'; -const readmePath = __dirname + '/../../README.md'; +const url = "https://api.github.com/repos/laurent22/joplin/releases/latest"; +const readmePath = __dirname + "/../../README.md"; async function msleep(ms) { return new Promise((resolve, reject) => { @@ -17,20 +17,23 @@ async function msleep(ms) { async function gitHubLatestRelease() { return new Promise((resolve, reject) => { - request.get({ - url: url, - json: true, - headers: {'User-Agent': 'Joplin Readme Updater'} - }, (error, response, data) => { - if (error) { - reject(error); - } else if (response.statusCode !== 200) { - console.warn(data); - reject(new Error('Error HTTP ' + response.statusCode)); - } else { - resolve(data); + request.get( + { + url: url, + json: true, + headers: { "User-Agent": "Joplin Readme Updater" }, + }, + (error, response, data) => { + if (error) { + reject(error); + } else if (response.statusCode !== 200) { + console.warn(data); + reject(new Error("Error HTTP " + response.statusCode)); + } else { + resolve(data); + } } - }); + ); }); } @@ -41,26 +44,26 @@ function downloadUrl(release, os) { const asset = release.assets[i]; const name = asset.name; - if (name.indexOf('.dmg') > 0 && os === 'macos') return asset.browser_download_url; - if (name.indexOf('.exe') > 0 && os === 'windows') return asset.browser_download_url; - if (name.indexOf('.AppImage') > 0 && os === 'linux') return asset.browser_download_url; + if (name.indexOf(".dmg") > 0 && os === "macos") return asset.browser_download_url; + if (name.indexOf(".exe") > 0 && os === "windows") return asset.browser_download_url; + if (name.indexOf(".AppImage") > 0 && os === "linux") return asset.browser_download_url; } } function readmeContent() { - if (!fs.existsSync(readmePath)) throw new Error('Cannot find ' + readmePath); - return fs.readFileSync(readmePath, 'utf8'); + if (!fs.existsSync(readmePath)) throw new Error("Cannot find " + readmePath); + return fs.readFileSync(readmePath, "utf8"); } function setReadmeContent(content) { - if (!fs.existsSync(readmePath)) throw new Error('Cannot find ' + readmePath); + if (!fs.existsSync(readmePath)) throw new Error("Cannot find " + readmePath); return fs.writeFileSync(readmePath, content); } async function main(argv) { const waitForVersion = argv.length === 3 ? argv[2] : null; - if (waitForVersion) console.info('Waiting for version ' + waitForVersion + ' to be released before updating readme...'); + if (waitForVersion) console.info("Waiting for version " + waitForVersion + " to be released before updating readme..."); let release = null; while (true) { @@ -70,18 +73,18 @@ async function main(argv) { if (release.tag_name !== waitForVersion) { await msleep(60000 * 5); } else { - console.info('Got version ' + waitForVersion); + console.info("Got version " + waitForVersion); break; } } - const winUrl = downloadUrl(release, 'windows'); - const macOsUrl = downloadUrl(release, 'macos'); - const linuxUrl = downloadUrl(release, 'linux'); + const winUrl = downloadUrl(release, "windows"); + const macOsUrl = downloadUrl(release, "macos"); + const linuxUrl = downloadUrl(release, "linux"); - console.info('Windows: ', winUrl); - console.info('macOS: ', macOsUrl); - console.info('Linux: ', linuxUrl); + console.info("Windows: ", winUrl); + console.info("macOS: ", macOsUrl); + console.info("Linux: ", linuxUrl); let content = readmeContent(); @@ -91,9 +94,9 @@ async function main(argv) { setReadmeContent(content); - console.info("git pull && git add -A && git commit -m 'Update readme downloads' && git push") + console.info("git pull && git add -A && git commit -m 'Update readme downloads' && git push"); } -main(process.argv).catch((error) => { - console.error('Fatal error', error); -}); \ No newline at end of file +main(process.argv).catch(error => { + console.error("Fatal error", error); +}); diff --git a/ReactNativeClient/index.android.js b/ReactNativeClient/index.android.js index d0e4f551bf..5c97e42010 100644 --- a/ReactNativeClient/index.android.js +++ b/ReactNativeClient/index.android.js @@ -1,3 +1,3 @@ -const { main } = require('./main.js'); +const { main } = require("./main.js"); -main(); \ No newline at end of file +main(); diff --git a/ReactNativeClient/index.ios.js b/ReactNativeClient/index.ios.js index d0e4f551bf..5c97e42010 100644 --- a/ReactNativeClient/index.ios.js +++ b/ReactNativeClient/index.ios.js @@ -1,3 +1,3 @@ -const { main } = require('./main.js'); +const { main } = require("./main.js"); -main(); \ No newline at end of file +main(); diff --git a/ReactNativeClient/index.js b/ReactNativeClient/index.js index 7d03ea719b..449793513a 100644 --- a/ReactNativeClient/index.js +++ b/ReactNativeClient/index.js @@ -1,4 +1,4 @@ -const { main } = require('./main.js'); +const { main } = require("./main.js"); main(); diff --git a/ReactNativeClient/lib/ArrayUtils.js b/ReactNativeClient/lib/ArrayUtils.js index ba6623ee7f..e4ef2bba75 100644 --- a/ReactNativeClient/lib/ArrayUtils.js +++ b/ReactNativeClient/lib/ArrayUtils.js @@ -4,45 +4,44 @@ ArrayUtils.unique = function(array) { return array.filter(function(elem, index, self) { return index === self.indexOf(elem); }); -} +}; ArrayUtils.removeElement = function(array, element) { const index = array.indexOf(element); if (index < 0) return array; array.splice(index, 1); return array; -} +}; // https://stackoverflow.com/a/10264318/561309 ArrayUtils.binarySearch = function(items, value) { - var startIndex = 0, - stopIndex = items.length - 1, - middle = Math.floor((stopIndex + startIndex)/2); - - while(items[middle] != value && startIndex < stopIndex){ + var startIndex = 0, + stopIndex = items.length - 1, + middle = Math.floor((stopIndex + startIndex) / 2); + while (items[middle] != value && startIndex < stopIndex) { //adjust search area - if (value < items[middle]){ + if (value < items[middle]) { stopIndex = middle - 1; - } else if (value > items[middle]){ + } else if (value > items[middle]) { startIndex = middle + 1; } //recalculate middle - middle = Math.floor((stopIndex + startIndex)/2); + middle = Math.floor((stopIndex + startIndex) / 2); } //make sure it's the right value - return (items[middle] != value) ? -1 : middle; -} + return items[middle] != value ? -1 : middle; +}; ArrayUtils.findByKey = function(array, key, value) { for (let i = 0; i < array.length; i++) { const o = array[i]; - if (typeof o !== 'object') continue; + if (typeof o !== "object") continue; if (o[key] === value) return o; } return null; -} +}; -module.exports = ArrayUtils; \ No newline at end of file +module.exports = ArrayUtils; diff --git a/ReactNativeClient/lib/BaseApplication.js b/ReactNativeClient/lib/BaseApplication.js index 103e064848..882483465b 100644 --- a/ReactNativeClient/lib/BaseApplication.js +++ b/ReactNativeClient/lib/BaseApplication.js @@ -1,36 +1,36 @@ -const { createStore, applyMiddleware } = require('redux'); -const { reducer, defaultState, stateUtils } = require('lib/reducer.js'); -const { JoplinDatabase } = require('lib/joplin-database.js'); -const { Database } = require('lib/database.js'); -const { FoldersScreenUtils } = require('lib/folders-screen-utils.js'); -const { DatabaseDriverNode } = require('lib/database-driver-node.js'); -const BaseModel = require('lib/BaseModel.js'); -const Folder = require('lib/models/Folder.js'); -const BaseItem = require('lib/models/BaseItem.js'); -const Note = require('lib/models/Note.js'); -const Tag = require('lib/models/Tag.js'); -const Setting = require('lib/models/Setting.js'); -const { Logger } = require('lib/logger.js'); -const { splitCommandString } = require('lib/string-utils.js'); -const { sprintf } = require('sprintf-js'); -const { reg } = require('lib/registry.js'); -const { time } = require('lib/time-utils.js'); -const BaseSyncTarget = require('lib/BaseSyncTarget.js'); -const { fileExtension } = require('lib/path-utils.js'); -const { shim } = require('lib/shim.js'); -const { _, setLocale, defaultLocale, closestSupportedLocale } = require('lib/locale.js'); -const os = require('os'); -const fs = require('fs-extra'); -const JoplinError = require('lib/JoplinError'); -const EventEmitter = require('events'); -const SyncTargetRegistry = require('lib/SyncTargetRegistry.js'); -const SyncTargetFilesystem = require('lib/SyncTargetFilesystem.js'); -const SyncTargetOneDrive = require('lib/SyncTargetOneDrive.js'); -const SyncTargetOneDriveDev = require('lib/SyncTargetOneDriveDev.js'); -const SyncTargetNextcloud = require('lib/SyncTargetNextcloud.js'); -const SyncTargetWebDAV = require('lib/SyncTargetWebDAV.js'); -const EncryptionService = require('lib/services/EncryptionService'); -const DecryptionWorker = require('lib/services/DecryptionWorker'); +const { createStore, applyMiddleware } = require("redux"); +const { reducer, defaultState, stateUtils } = require("lib/reducer.js"); +const { JoplinDatabase } = require("lib/joplin-database.js"); +const { Database } = require("lib/database.js"); +const { FoldersScreenUtils } = require("lib/folders-screen-utils.js"); +const { DatabaseDriverNode } = require("lib/database-driver-node.js"); +const BaseModel = require("lib/BaseModel.js"); +const Folder = require("lib/models/Folder.js"); +const BaseItem = require("lib/models/BaseItem.js"); +const Note = require("lib/models/Note.js"); +const Tag = require("lib/models/Tag.js"); +const Setting = require("lib/models/Setting.js"); +const { Logger } = require("lib/logger.js"); +const { splitCommandString } = require("lib/string-utils.js"); +const { sprintf } = require("sprintf-js"); +const { reg } = require("lib/registry.js"); +const { time } = require("lib/time-utils.js"); +const BaseSyncTarget = require("lib/BaseSyncTarget.js"); +const { fileExtension } = require("lib/path-utils.js"); +const { shim } = require("lib/shim.js"); +const { _, setLocale, defaultLocale, closestSupportedLocale } = require("lib/locale.js"); +const os = require("os"); +const fs = require("fs-extra"); +const JoplinError = require("lib/JoplinError"); +const EventEmitter = require("events"); +const SyncTargetRegistry = require("lib/SyncTargetRegistry.js"); +const SyncTargetFilesystem = require("lib/SyncTargetFilesystem.js"); +const SyncTargetOneDrive = require("lib/SyncTargetOneDrive.js"); +const SyncTargetOneDriveDev = require("lib/SyncTargetOneDriveDev.js"); +const SyncTargetNextcloud = require("lib/SyncTargetNextcloud.js"); +const SyncTargetWebDAV = require("lib/SyncTargetWebDAV.js"); +const EncryptionService = require("lib/services/EncryptionService"); +const DecryptionWorker = require("lib/services/DecryptionWorker"); SyncTargetRegistry.addClass(SyncTargetFilesystem); SyncTargetRegistry.addClass(SyncTargetOneDrive); @@ -39,16 +39,15 @@ SyncTargetRegistry.addClass(SyncTargetNextcloud); SyncTargetRegistry.addClass(SyncTargetWebDAV); class BaseApplication { - constructor() { this.logger_ = new Logger(); this.dbLogger_ = new Logger(); this.eventEmitter_ = new EventEmitter(); - // Note: this is basically a cache of state.selectedFolderId. It should *only* + // Note: this is basically a cache of state.selectedFolderId. It should *only* // be derived from the state and not set directly since that would make the // state and UI out of sync. - this.currentFolder_ = null; + this.currentFolder_ = null; } logger() { @@ -65,7 +64,7 @@ class BaseApplication { async refreshCurrentFolder() { let newFolder = null; - + if (this.currentFolder_) newFolder = await Folder.load(this.currentFolder_.id); if (!newFolder) newFolder = await Folder.defaultFolder(); @@ -75,11 +74,11 @@ class BaseApplication { switchCurrentFolder(folder) { if (!this.hasGui()) { this.currentFolder_ = Object.assign({}, folder); - Setting.setValue('activeFolderId', folder ? folder.id : ''); + Setting.setValue("activeFolderId", folder ? folder.id : ""); } else { this.dispatch({ - type: 'FOLDER_SELECT', - id: folder ? folder.id : '', + type: "FOLDER_SELECT", + id: folder ? folder.id : "", }); } } @@ -94,54 +93,54 @@ class BaseApplication { while (argv.length) { let arg = argv[0]; let nextArg = argv.length >= 2 ? argv[1] : null; - - if (arg == '--profile') { - if (!nextArg) throw new JoplinError(_('Usage: %s', '--profile '), 'flagError'); + + if (arg == "--profile") { + if (!nextArg) throw new JoplinError(_("Usage: %s", "--profile "), "flagError"); matched.profileDir = nextArg; argv.splice(0, 2); continue; } - if (arg == '--env') { - if (!nextArg) throw new JoplinError(_('Usage: %s', '--env '), 'flagError'); + if (arg == "--env") { + if (!nextArg) throw new JoplinError(_("Usage: %s", "--env "), "flagError"); matched.env = nextArg; argv.splice(0, 2); continue; } - if (arg == '--is-demo') { - Setting.setConstant('isDemo', true); + if (arg == "--is-demo") { + Setting.setConstant("isDemo", true); argv.splice(0, 1); continue; } - if (arg == '--open-dev-tools') { - Setting.setConstant('openDevTools', true); + if (arg == "--open-dev-tools") { + Setting.setConstant("openDevTools", true); argv.splice(0, 1); continue; } - if (arg == '--update-geolocation-disabled') { + if (arg == "--update-geolocation-disabled") { Note.updateGeolocationEnabled_ = false; argv.splice(0, 1); continue; } - if (arg == '--stack-trace-enabled') { + if (arg == "--stack-trace-enabled") { this.showStackTraces_ = true; argv.splice(0, 1); continue; } - if (arg == '--log-level') { - if (!nextArg) throw new JoplinError(_('Usage: %s', '--log-level '), 'flagError'); + if (arg == "--log-level") { + if (!nextArg) throw new JoplinError(_("Usage: %s", "--log-level "), "flagError"); matched.logLevel = Logger.levelStringToId(nextArg); argv.splice(0, 2); continue; } - if (arg.length && arg[0] == '-') { - throw new JoplinError(_('Unknown flag: %s', arg), 'flagError'); + if (arg.length && arg[0] == "-") { + throw new JoplinError(_("Unknown flag: %s", arg), "flagError"); } else { break; } @@ -149,7 +148,7 @@ class BaseApplication { if (setDefaults) { if (!matched.logLevel) matched.logLevel = Logger.LEVEL_INFO; - if (!matched.env) matched.env = 'prod'; + if (!matched.env) matched.env = "prod"; } return { @@ -170,23 +169,23 @@ class BaseApplication { async refreshNotes(state) { let parentType = state.notesParentType; let parentId = null; - - if (parentType === 'Folder') { + + if (parentType === "Folder") { parentId = state.selectedFolderId; parentType = BaseModel.TYPE_FOLDER; - } else if (parentType === 'Tag') { + } else if (parentType === "Tag") { parentId = state.selectedTagId; parentType = BaseModel.TYPE_TAG; - } else if (parentType === 'Search') { + } else if (parentType === "Search") { parentId = state.selectedSearchId; parentType = BaseModel.TYPE_SEARCH; } - this.logger().debug('Refreshing notes:', parentType, parentId); + this.logger().debug("Refreshing notes:", parentType, parentId); let options = { order: stateUtils.notesOrder(state.settings), - uncompletedTodosOnTop: Setting.value('uncompletedTodosOnTop'), + uncompletedTodosOnTop: Setting.value("uncompletedTodosOnTop"), caseInsensitive: true, }; @@ -207,33 +206,33 @@ class BaseApplication { let search = BaseModel.byId(state.searches, parentId); notes = await Note.previews(null, { fields: fields, - anywherePattern: '*' + search.query_pattern + '*', + anywherePattern: "*" + search.query_pattern + "*", }); } } this.store().dispatch({ - type: 'NOTE_UPDATE_ALL', + type: "NOTE_UPDATE_ALL", notes: notes, notesSource: source, }); this.store().dispatch({ - type: 'NOTE_SELECT', + type: "NOTE_SELECT", id: notes.length ? notes[0].id : null, }); } reducerActionToString(action) { let o = [action.type]; - if ('id' in action) o.push(action.id); - if ('noteId' in action) o.push(action.noteId); - if ('folderId' in action) o.push(action.folderId); - if ('tagId' in action) o.push(action.tagId); - if ('tag' in action) o.push(action.tag.id); - if ('folder' in action) o.push(action.folder.id); - if ('notesSource' in action) o.push(JSON.stringify(action.notesSource)); - return o.join(', '); + if ("id" in action) o.push(action.id); + if ("noteId" in action) o.push(action.noteId); + if ("folderId" in action) o.push(action.folderId); + if ("tagId" in action) o.push(action.tagId); + if ("tag" in action) o.push(action.tag.id); + if ("folder" in action) o.push(action.folder.id); + if ("notesSource" in action) o.push(JSON.stringify(action.notesSource)); + return o.join(", "); } hasGui() { @@ -241,43 +240,43 @@ class BaseApplication { } uiType() { - return this.hasGui() ? 'gui' : 'cli'; + return this.hasGui() ? "gui" : "cli"; } generalMiddlewareFn() { - const middleware = store => next => (action) => { + const middleware = store => next => action => { return this.generalMiddleware(store, next, action); - } + }; return middleware; } async generalMiddleware(store, next, action) { - this.logger().debug('Reducer action', this.reducerActionToString(action)); + this.logger().debug("Reducer action", this.reducerActionToString(action)); const result = next(action); const newState = store.getState(); let refreshNotes = false; - if (action.type == 'FOLDER_SELECT' || action.type === 'FOLDER_DELETE') { - Setting.setValue('activeFolderId', newState.selectedFolderId); + if (action.type == "FOLDER_SELECT" || action.type === "FOLDER_DELETE") { + Setting.setValue("activeFolderId", newState.selectedFolderId); this.currentFolder_ = newState.selectedFolderId ? await Folder.load(newState.selectedFolderId) : null; refreshNotes = true; } - if (this.hasGui() && ((action.type == 'SETTING_UPDATE_ONE' && action.key == 'uncompletedTodosOnTop') || action.type == 'SETTING_UPDATE_ALL')) { + if (this.hasGui() && ((action.type == "SETTING_UPDATE_ONE" && action.key == "uncompletedTodosOnTop") || action.type == "SETTING_UPDATE_ALL")) { refreshNotes = true; } - if (this.hasGui() && ((action.type == 'SETTING_UPDATE_ONE' && action.key.indexOf('notes.sortOrder') === 0) || action.type == 'SETTING_UPDATE_ALL')) { + if (this.hasGui() && ((action.type == "SETTING_UPDATE_ONE" && action.key.indexOf("notes.sortOrder") === 0) || action.type == "SETTING_UPDATE_ALL")) { refreshNotes = true; } - if (action.type == 'TAG_SELECT' || action.type === 'TAG_DELETE') { + if (action.type == "TAG_SELECT" || action.type === "TAG_DELETE") { refreshNotes = true; } - if (action.type == 'SEARCH_SELECT' || action.type === 'SEARCH_DELETE') { + if (action.type == "SEARCH_SELECT" || action.type === "SEARCH_DELETE") { refreshNotes = true; } @@ -285,19 +284,19 @@ class BaseApplication { await this.refreshNotes(newState); } - if ((action.type == 'SETTING_UPDATE_ONE' && (action.key == 'dateFormat' || action.key == 'timeFormat')) || (action.type == 'SETTING_UPDATE_ALL')) { - time.setDateFormat(Setting.value('dateFormat')); - time.setTimeFormat(Setting.value('timeFormat')); + if ((action.type == "SETTING_UPDATE_ONE" && (action.key == "dateFormat" || action.key == "timeFormat")) || action.type == "SETTING_UPDATE_ALL") { + time.setDateFormat(Setting.value("dateFormat")); + time.setTimeFormat(Setting.value("timeFormat")); } - if ((action.type == 'SETTING_UPDATE_ONE' && (action.key.indexOf('encryption.') === 0)) || (action.type == 'SETTING_UPDATE_ALL')) { + if ((action.type == "SETTING_UPDATE_ONE" && action.key.indexOf("encryption.") === 0) || action.type == "SETTING_UPDATE_ALL") { if (this.hasGui()) { await EncryptionService.instance().loadMasterKeysFromSettings(); DecryptionWorker.instance().scheduleStart(); const loadedMasterKeyIds = EncryptionService.instance().loadedMasterKeyIds(); this.dispatch({ - type: 'MASTERKEY_REMOVE_NOT_LOADED', + type: "MASTERKEY_REMOVE_NOT_LOADED", ids: loadedMasterKeyIds, }); @@ -307,22 +306,22 @@ class BaseApplication { } } - if (action.type === 'NOTE_UPDATE_ONE') { + if (action.type === "NOTE_UPDATE_ONE") { // If there is a conflict, we refresh the folders so as to display "Conflicts" folder if (action.note && action.note.is_conflict) { await FoldersScreenUtils.refreshFolders(); } } - if (this.hasGui() && action.type == 'SETTING_UPDATE_ONE' && action.key == 'sync.interval' || action.type == 'SETTING_UPDATE_ALL') { + if ((this.hasGui() && action.type == "SETTING_UPDATE_ONE" && action.key == "sync.interval") || action.type == "SETTING_UPDATE_ALL") { reg.setupRecurrentSync(); } - if (this.hasGui() && action.type === 'SYNC_GOT_ENCRYPTED_ITEM') { + if (this.hasGui() && action.type === "SYNC_GOT_ENCRYPTED_ITEM") { DecryptionWorker.instance().scheduleStart(); } - return result; + return result; } dispatch(action) { @@ -344,17 +343,17 @@ class BaseApplication { async readFlagsFromFile(flagPath) { if (!fs.existsSync(flagPath)) return {}; - let flagContent = fs.readFileSync(flagPath, 'utf8'); + let flagContent = fs.readFileSync(flagPath, "utf8"); if (!flagContent) return {}; flagContent = flagContent.trim(); let flags = splitCommandString(flagContent); - flags.splice(0, 0, 'cmd'); - flags.splice(0, 0, 'node'); + flags.splice(0, 0, "cmd"); + flags.splice(0, 0, "node"); flags = await this.handleStartFlags_(flags, false); - + return flags.matched; } @@ -365,65 +364,65 @@ class BaseApplication { let initArgs = startFlags.matched; if (argv.length) this.showPromptString_ = false; - if (process.argv[1].indexOf('joplindev') >= 0) { - if (!initArgs.profileDir) initArgs.profileDir = '/mnt/d/Temp/TestNotes2'; + if (process.argv[1].indexOf("joplindev") >= 0) { + if (!initArgs.profileDir) initArgs.profileDir = "/mnt/d/Temp/TestNotes2"; initArgs.logLevel = Logger.LEVEL_DEBUG; - initArgs.env = 'dev'; + initArgs.env = "dev"; } - let appName = initArgs.env == 'dev' ? 'joplindev' : 'joplin'; - if (Setting.value('appId').indexOf('-desktop') >= 0) appName += '-desktop'; - Setting.setConstant('appName', appName); + let appName = initArgs.env == "dev" ? "joplindev" : "joplin"; + if (Setting.value("appId").indexOf("-desktop") >= 0) appName += "-desktop"; + Setting.setConstant("appName", appName); - const profileDir = initArgs.profileDir ? initArgs.profileDir : os.homedir() + '/.config/' + Setting.value('appName'); - const resourceDir = profileDir + '/resources'; - const tempDir = profileDir + '/tmp'; + const profileDir = initArgs.profileDir ? initArgs.profileDir : os.homedir() + "/.config/" + Setting.value("appName"); + const resourceDir = profileDir + "/resources"; + const tempDir = profileDir + "/tmp"; - Setting.setConstant('env', initArgs.env); - Setting.setConstant('profileDir', profileDir); - Setting.setConstant('resourceDir', resourceDir); - Setting.setConstant('tempDir', tempDir); + Setting.setConstant("env", initArgs.env); + Setting.setConstant("profileDir", profileDir); + Setting.setConstant("resourceDir", resourceDir); + Setting.setConstant("tempDir", tempDir); await fs.mkdirp(profileDir, 0o755); await fs.mkdirp(resourceDir, 0o755); await fs.mkdirp(tempDir, 0o755); - const extraFlags = await this.readFlagsFromFile(profileDir + '/flags.txt'); + const extraFlags = await this.readFlagsFromFile(profileDir + "/flags.txt"); initArgs = Object.assign(initArgs, extraFlags); - this.logger_.addTarget('file', { path: profileDir + '/log.txt' }); + this.logger_.addTarget("file", { path: profileDir + "/log.txt" }); //this.logger_.addTarget('console'); this.logger_.setLevel(initArgs.logLevel); reg.setLogger(this.logger_); - reg.dispatch = (o) => {}; + reg.dispatch = o => {}; - this.dbLogger_.addTarget('file', { path: profileDir + '/log-database.txt' }); + this.dbLogger_.addTarget("file", { path: profileDir + "/log-database.txt" }); this.dbLogger_.setLevel(initArgs.logLevel); - if (Setting.value('env') === 'dev') { + if (Setting.value("env") === "dev") { this.dbLogger_.setLevel(Logger.LEVEL_WARN); } - this.logger_.info('Profile directory: ' + profileDir); + this.logger_.info("Profile directory: " + profileDir); this.database_ = new JoplinDatabase(new DatabaseDriverNode()); - this.database_.setLogExcludedQueryTypes(['SELECT']); + this.database_.setLogExcludedQueryTypes(["SELECT"]); this.database_.setLogger(this.dbLogger_); - await this.database_.open({ name: profileDir + '/database.sqlite' }); + await this.database_.open({ name: profileDir + "/database.sqlite" }); reg.setDb(this.database_); BaseModel.db_ = this.database_; await Setting.load(); - if (Setting.value('firstStart')) { + if (Setting.value("firstStart")) { const locale = shim.detectAndSetLocale(Setting); - reg.logger().info('First start: detected locale as ' + locale); - if (Setting.value('env') === 'dev') Setting.setValue('sync.target', SyncTargetRegistry.nameToId('onedrive_dev')); - Setting.setValue('firstStart', 0) + reg.logger().info("First start: detected locale as " + locale); + if (Setting.value("env") === "dev") Setting.setValue("sync.target", SyncTargetRegistry.nameToId("onedrive_dev")); + Setting.setValue("firstStart", 0); } else { - setLocale(Setting.value('locale')); + setLocale(Setting.value("locale")); } EncryptionService.instance().setLogger(this.logger_); @@ -432,15 +431,14 @@ class BaseApplication { DecryptionWorker.instance().setEncryptionService(EncryptionService.instance()); await EncryptionService.instance().loadMasterKeysFromSettings(); - let currentFolderId = Setting.value('activeFolderId'); + let currentFolderId = Setting.value("activeFolderId"); let currentFolder = null; if (currentFolderId) currentFolder = await Folder.load(currentFolderId); if (!currentFolder) currentFolder = await Folder.defaultFolder(); - Setting.setValue('activeFolderId', currentFolder ? currentFolder.id : ''); + Setting.setValue("activeFolderId", currentFolder ? currentFolder.id : ""); return argv; } - } -module.exports = { BaseApplication }; \ No newline at end of file +module.exports = { BaseApplication }; diff --git a/ReactNativeClient/lib/BaseModel.js b/ReactNativeClient/lib/BaseModel.js index 8f08e3e344..e4d54368e5 100644 --- a/ReactNativeClient/lib/BaseModel.js +++ b/ReactNativeClient/lib/BaseModel.js @@ -1,22 +1,21 @@ -const { Log } = require('lib/log.js'); -const { Database } = require('lib/database.js'); -const { uuid } = require('lib/uuid.js'); -const { time } = require('lib/time-utils.js'); -const Mutex = require('async-mutex').Mutex; +const { Log } = require("lib/log.js"); +const { Database } = require("lib/database.js"); +const { uuid } = require("lib/uuid.js"); +const { time } = require("lib/time-utils.js"); +const Mutex = require("async-mutex").Mutex; class BaseModel { - static modelType() { - throw new Error('Must be overriden'); + throw new Error("Must be overriden"); } static tableName() { - throw new Error('Must be overriden'); + throw new Error("Must be overriden"); } static addModelMd(model) { if (!model) return model; - + if (Array.isArray(model)) { let output = []; for (let i = 0; i < model.length; i++) { @@ -50,7 +49,7 @@ class BaseModel { const e = BaseModel.typeEnum_[i]; if (e[1] === type) return e[0].substr(5).toLowerCase(); } - throw new Error('Unknown model type: ' + type); + throw new Error("Unknown model type: " + type); } static hasField(name) { @@ -65,7 +64,7 @@ class BaseModel { let p = withPrefix === true ? this.tableName() : withPrefix; let temp = []; for (let i = 0; i < output.length; i++) { - temp.push(p + '.' + output[i]); + temp.push(p + "." + output[i]); } return temp; @@ -77,7 +76,7 @@ class BaseModel { if (fields[i].name == name) return fields[i].type; } if (defaultValue !== null) return defaultValue; - throw new Error('Unknown field: ' + name); + throw new Error("Unknown field: " + name); } static fields() { @@ -100,22 +99,24 @@ class BaseModel { } else { options = Object.assign({}, options); } - if (!('isNew' in options)) options.isNew = 'auto'; - if (!('autoTimestamp' in options)) options.autoTimestamp = true; + if (!("isNew" in options)) options.isNew = "auto"; + if (!("autoTimestamp" in options)) options.autoTimestamp = true; return options; } static count(options = null) { if (!options) options = {}; - let sql = 'SELECT count(*) as total FROM `' + this.tableName() + '`'; - if (options.where) sql += ' WHERE ' + options.where; - return this.db().selectOne(sql).then((r) => { - return r ? r['total'] : 0; - }); + let sql = "SELECT count(*) as total FROM `" + this.tableName() + "`"; + if (options.where) sql += " WHERE " + options.where; + return this.db() + .selectOne(sql) + .then(r => { + return r ? r["total"] : 0; + }); } static load(id) { - return this.loadByField('id', id); + return this.loadByField("id", id); } static shortId(id) { @@ -132,7 +133,7 @@ class BaseModel { // } static loadByPartialId(partialId) { - return this.modelSelectAll('SELECT * FROM `' + this.tableName() + '` WHERE `id` LIKE ?', [partialId + '%']); + return this.modelSelectAll("SELECT * FROM `" + this.tableName() + "` WHERE `id` LIKE ?", [partialId + "%"]); } static applySqlOptions(options, sql, params = null) { @@ -143,46 +144,46 @@ class BaseModel { for (let i = 0; i < options.order.length; i++) { const o = options.order[i]; let item = o.by; - if (options.caseInsensitive === true) item += ' COLLATE NOCASE'; - if (o.dir) item += ' ' + o.dir; + if (options.caseInsensitive === true) item += " COLLATE NOCASE"; + if (o.dir) item += " " + o.dir; items.push(item); } - sql += ' ORDER BY ' + items.join(', '); + sql += " ORDER BY " + items.join(", "); } - - if (options.limit) sql += ' LIMIT ' + options.limit; + + if (options.limit) sql += " LIMIT " + options.limit; return { sql: sql, params: params }; } static async allIds(options = null) { - let q = this.applySqlOptions(options, 'SELECT id FROM `' + this.tableName() + '`'); + let q = this.applySqlOptions(options, "SELECT id FROM `" + this.tableName() + "`"); const rows = await this.db().selectAll(q.sql, q.params); - return rows.map((r) => r.id); + return rows.map(r => r.id); } static async all(options = null) { - let q = this.applySqlOptions(options, 'SELECT * FROM `' + this.tableName() + '`'); + let q = this.applySqlOptions(options, "SELECT * FROM `" + this.tableName() + "`"); return this.modelSelectAll(q.sql); } static async search(options = null) { if (!options) options = {}; - if (!options.fields) options.fields = '*'; + if (!options.fields) options.fields = "*"; let conditions = options.conditions ? options.conditions.slice(0) : []; let params = options.conditionsParams ? options.conditionsParams.slice(0) : []; if (options.titlePattern) { - let pattern = options.titlePattern.replace(/\*/g, '%'); - conditions.push('title LIKE ?'); + let pattern = options.titlePattern.replace(/\*/g, "%"); + conditions.push("title LIKE ?"); params.push(pattern); } - if ('limit' in options && options.limit <= 0) return []; + if ("limit" in options && options.limit <= 0) return []; - let sql = 'SELECT ' + this.db().escapeFields(options.fields) + ' FROM `' + this.tableName() + '`'; - if (conditions.length) sql += ' WHERE ' + conditions.join(' AND '); + let sql = "SELECT " + this.db().escapeFields(options.fields) + " FROM `" + this.tableName() + "`"; + if (conditions.length) sql += " WHERE " + conditions.join(" AND "); let query = this.applySqlOptions(options, sql, params); return this.modelSelectAll(query.sql, query.params); @@ -190,28 +191,32 @@ class BaseModel { static modelSelectOne(sql, params = null) { if (params === null) params = []; - return this.db().selectOne(sql, params).then((model) => { - return this.filter(this.addModelMd(model)); - }); + return this.db() + .selectOne(sql, params) + .then(model => { + return this.filter(this.addModelMd(model)); + }); } static modelSelectAll(sql, params = null) { if (params === null) params = []; - return this.db().selectAll(sql, params).then((models) => { - return this.filterArray(this.addModelMd(models)); - }); + return this.db() + .selectAll(sql, params) + .then(models => { + return this.filterArray(this.addModelMd(models)); + }); } static loadByField(fieldName, fieldValue, options = null) { if (!options) options = {}; - if (!('caseInsensitive' in options)) options.caseInsensitive = false; - let sql = 'SELECT * FROM `' + this.tableName() + '` WHERE `' + fieldName + '` = ?'; - if (options.caseInsensitive) sql += ' COLLATE NOCASE'; + if (!("caseInsensitive" in options)) options.caseInsensitive = false; + let sql = "SELECT * FROM `" + this.tableName() + "` WHERE `" + fieldName + "` = ?"; + if (options.caseInsensitive) sql += " COLLATE NOCASE"; return this.modelSelectOne(sql, [fieldValue]); } static loadByTitle(fieldValue) { - return this.modelSelectOne('SELECT * FROM `' + this.tableName() + '` WHERE `title` = ?', [fieldValue]); + return this.modelSelectOne("SELECT * FROM `" + this.tableName() + "` WHERE `title` = ?", [fieldValue]); } static diffObjects(oldModel, newModel) { @@ -220,7 +225,7 @@ class BaseModel { for (let i = 0; i < fields.length; i++) { output[fields[i]] = newModel[fields[i]]; } - if ('type_' in newModel) output.type_ = newModel.type_; + if ("type_" in newModel) output.type_ = newModel.type_; return output; // let output = {}; // let type = null; @@ -242,7 +247,7 @@ class BaseModel { let output = []; for (let n in newModel) { if (!newModel.hasOwnProperty(n)) continue; - if (n == 'type_') continue; + if (n == "type_") continue; if (!(n in oldModel) || newModel[n] !== oldModel[n]) { output.push(n); } @@ -258,12 +263,14 @@ class BaseModel { static saveMutex(modelOrId) { const noLockMutex = { - acquire: function() { return null; } + acquire: function() { + return null; + }, }; if (!modelOrId) return noLockMutex; - let modelId = typeof modelOrId === 'string' ? modelOrId : modelOrId.id; + let modelId = typeof modelOrId === "string" ? modelOrId : modelOrId.id; if (!modelId) return noLockMutex; @@ -279,7 +286,7 @@ class BaseModel { if (!release) return; if (!modelOrId) return release(); - let modelId = typeof modelOrId === 'string' ? modelOrId : modelOrId.id; + let modelId = typeof modelOrId === "string" ? modelOrId : modelOrId.id; if (!modelId) return release(); @@ -291,7 +298,7 @@ class BaseModel { } static saveQuery(o, options) { - let temp = {} + let temp = {}; let fieldNames = this.fieldNames(); for (let i = 0; i < fieldNames.length; i++) { let n = fieldNames[i]; @@ -306,7 +313,7 @@ class BaseModel { const filtered = {}; for (let k in temp) { if (!temp.hasOwnProperty(k)) continue; - if (k !== 'id' && options.fields.indexOf(k) < 0) continue; + if (k !== "id" && options.fields.indexOf(k) < 0) continue; filtered[k] = temp[k]; } temp = filtered; @@ -319,14 +326,14 @@ class BaseModel { const timeNow = time.unixMs(); - if (options.autoTimestamp && this.hasField('updated_time')) { + if (options.autoTimestamp && this.hasField("updated_time")) { o.updated_time = timeNow; } // The purpose of user_updated_time is to allow the user to manually set the time of a note (in which case // options.autoTimestamp will be `false`). However note that if the item is later changed, this timestamp // will be set again to the current time. - if (options.autoTimestamp && this.hasField('user_updated_time')) { + if (options.autoTimestamp && this.hasField("user_updated_time")) { o.user_updated_time = timeNow; } @@ -336,15 +343,15 @@ class BaseModel { o.id = modelId; } - if (!o.created_time && this.hasField('created_time')) { + if (!o.created_time && this.hasField("created_time")) { o.created_time = timeNow; } - if (!o.user_created_time && this.hasField('user_created_time')) { + if (!o.user_created_time && this.hasField("user_created_time")) { o.user_created_time = o.created_time ? o.created_time : timeNow; } - if (!o.user_updated_time && this.hasField('user_updated_time')) { + if (!o.user_updated_time && this.hasField("user_updated_time")) { o.user_updated_time = o.updated_time ? o.updated_time : timeNow; } @@ -407,10 +414,10 @@ class BaseModel { o = Object.assign({}, o); if (modelId) o.id = modelId; - if ('updated_time' in saveQuery.modObject) o.updated_time = saveQuery.modObject.updated_time; - if ('created_time' in saveQuery.modObject) o.created_time = saveQuery.modObject.created_time; - if ('user_updated_time' in saveQuery.modObject) o.user_updated_time = saveQuery.modObject.user_updated_time; - if ('user_created_time' in saveQuery.modObject) o.user_created_time = saveQuery.modObject.user_created_time; + if ("updated_time" in saveQuery.modObject) o.updated_time = saveQuery.modObject.updated_time; + if ("created_time" in saveQuery.modObject) o.created_time = saveQuery.modObject.created_time; + if ("user_updated_time" in saveQuery.modObject) o.user_updated_time = saveQuery.modObject.user_updated_time; + if ("user_created_time" in saveQuery.modObject) o.user_created_time = saveQuery.modObject.user_created_time; o = this.addModelMd(o); if (isDiffSaving) { @@ -423,7 +430,7 @@ class BaseModel { output = this.filter(o); } catch (error) { - Log.error('Cannot save model', error); + Log.error("Cannot save model", error); } this.releaseSaveMutex(o, mutexRelease); @@ -432,7 +439,7 @@ class BaseModel { } static isNew(object, options) { - if (options && ('isNew' in options)) { + if (options && "isNew" in options) { // options.isNew can be "auto" too if (options.isNew === true) return true; if (options.isNew === false) return false; @@ -460,7 +467,7 @@ class BaseModel { if (output[n] === true) { output[n] = 1; } else if (output[n] === false) { - output[n] = 0; + output[n] = 0; } else { const t = this.fieldType(n, Database.TYPE_UNKNOWN); if (t === Database.TYPE_INT) { @@ -468,43 +475,42 @@ class BaseModel { } } } - + return output; } static delete(id, options = null) { - if (!id) throw new Error('Cannot delete object without an ID'); + if (!id) throw new Error("Cannot delete object without an ID"); options = this.modOptions(options); - return this.db().exec('DELETE FROM ' + this.tableName() + ' WHERE id = ?', [id]); + return this.db().exec("DELETE FROM " + this.tableName() + " WHERE id = ?", [id]); } static batchDelete(ids, options = null) { if (!ids.length) return; options = this.modOptions(options); - return this.db().exec('DELETE FROM ' + this.tableName() + ' WHERE id IN ("' + ids.join('","') + '")'); - } + return this.db().exec("DELETE FROM " + this.tableName() + ' WHERE id IN ("' + ids.join('","') + '")'); + } static db() { - if (!this.db_) throw new Error('Accessing database before it has been initialised'); - return this.db_; + if (!this.db_) throw new Error("Accessing database before it has been initialised"); + return this.db_; } static isReady() { return !!this.db_; } - } BaseModel.typeEnum_ = [ - ['TYPE_NOTE', 1], - ['TYPE_FOLDER', 2], - ['TYPE_SETTING', 3], - ['TYPE_RESOURCE', 4], - ['TYPE_TAG', 5], - ['TYPE_NOTE_TAG', 6], - ['TYPE_SEARCH', 7], - ['TYPE_ALARM', 8], - ['TYPE_MASTER_KEY', 9], + ["TYPE_NOTE", 1], + ["TYPE_FOLDER", 2], + ["TYPE_SETTING", 3], + ["TYPE_RESOURCE", 4], + ["TYPE_TAG", 5], + ["TYPE_NOTE_TAG", 6], + ["TYPE_SEARCH", 7], + ["TYPE_ALARM", 8], + ["TYPE_MASTER_KEY", 9], ]; for (let i = 0; i < BaseModel.typeEnum_.length; i++) { @@ -526,4 +532,4 @@ BaseModel.db_ = null; BaseModel.dispatch = function(o) {}; BaseModel.saveMutexes_ = {}; -module.exports = BaseModel; \ No newline at end of file +module.exports = BaseModel; diff --git a/ReactNativeClient/lib/BaseSyncTarget.js b/ReactNativeClient/lib/BaseSyncTarget.js index b8b0f332d2..9f8f7f123f 100644 --- a/ReactNativeClient/lib/BaseSyncTarget.js +++ b/ReactNativeClient/lib/BaseSyncTarget.js @@ -1,7 +1,6 @@ -const EncryptionService = require('lib/services/EncryptionService.js'); +const EncryptionService = require("lib/services/EncryptionService.js"); class BaseSyncTarget { - constructor(db, options = null) { this.db_ = db; this.synchronizer_ = null; @@ -15,7 +14,7 @@ class BaseSyncTarget { } option(name, defaultValue = null) { - return this.options_ && (name in this.options_) ? this.options_[name] : defaultValue; + return this.options_ && name in this.options_ ? this.options_[name] : defaultValue; } logger() { @@ -39,25 +38,25 @@ class BaseSyncTarget { } static id() { - throw new Error('id() not implemented'); + throw new Error("id() not implemented"); } // Note: it cannot be called just "name()" because that's a reserved keyword and // it would throw an obscure error in React Native. static targetName() { - throw new Error('targetName() not implemented'); + throw new Error("targetName() not implemented"); } static label() { - throw new Error('label() not implemented'); + throw new Error("label() not implemented"); } async initSynchronizer() { - throw new Error('initSynchronizer() not implemented'); + throw new Error("initSynchronizer() not implemented"); } async initFileApi() { - throw new Error('initFileApi() not implemented'); + throw new Error("initFileApi() not implemented"); } async fileApi() { @@ -76,32 +75,32 @@ class BaseSyncTarget { async synchronizer() { if (this.synchronizer_) return this.synchronizer_; - if (this.initState_ == 'started') { + if (this.initState_ == "started") { // Synchronizer is already being initialized, so wait here till it's done. return new Promise((resolve, reject) => { const iid = setInterval(() => { - if (this.initState_ == 'ready') { + if (this.initState_ == "ready") { clearInterval(iid); resolve(this.synchronizer_); } - if (this.initState_ == 'error') { + if (this.initState_ == "error") { clearInterval(iid); - reject(new Error('Could not initialise synchroniser')); + reject(new Error("Could not initialise synchroniser")); } }, 1000); }); } else { - this.initState_ = 'started'; + this.initState_ = "started"; try { this.synchronizer_ = await this.initSynchronizer(); this.synchronizer_.setLogger(this.logger()); this.synchronizer_.setEncryptionService(EncryptionService.instance()); this.synchronizer_.dispatch = BaseSyncTarget.dispatch; - this.initState_ = 'ready'; + this.initState_ = "ready"; return this.synchronizer_; } catch (error) { - this.initState_ = 'error'; + this.initState_ = "error"; throw error; } } @@ -111,11 +110,10 @@ class BaseSyncTarget { if (!this.synchronizer_) return false; if (!this.isAuthenticated()) return false; const sync = await this.synchronizer(); - return sync.state() != 'idle'; + return sync.state() != "idle"; } - } -BaseSyncTarget.dispatch = (action) => {}; +BaseSyncTarget.dispatch = action => {}; -module.exports = BaseSyncTarget; \ No newline at end of file +module.exports = BaseSyncTarget; diff --git a/ReactNativeClient/lib/Cache.js b/ReactNativeClient/lib/Cache.js index 78c66ef94d..6a929b5c8b 100644 --- a/ReactNativeClient/lib/Cache.js +++ b/ReactNativeClient/lib/Cache.js @@ -1,5 +1,4 @@ class Cache { - async getItem(name) { let output = null; try { @@ -22,14 +21,13 @@ class Cache { // Defaults to not saving to cache } } - } Cache.storage = async function() { if (Cache.storage_) return Cache.storage_; - Cache.storage_ = require('node-persist'); - await Cache.storage_.init({ dir: require('os').tmpdir() + '/joplin-cache', ttl: 1000 * 60 }); + Cache.storage_ = require("node-persist"); + await Cache.storage_.init({ dir: require("os").tmpdir() + "/joplin-cache", ttl: 1000 * 60 }); return Cache.storage_; -} +}; -module.exports = Cache; \ No newline at end of file +module.exports = Cache; diff --git a/ReactNativeClient/lib/JoplinError.js b/ReactNativeClient/lib/JoplinError.js index 1287f5f6a1..11724fcf41 100644 --- a/ReactNativeClient/lib/JoplinError.js +++ b/ReactNativeClient/lib/JoplinError.js @@ -1,10 +1,8 @@ class JoplinError extends Error { - constructor(message, code = null) { super(message); this.code = code; } - } -module.exports = JoplinError; \ No newline at end of file +module.exports = JoplinError; diff --git a/ReactNativeClient/lib/MdToHtml.js b/ReactNativeClient/lib/MdToHtml.js index f41e78d7f7..005be93657 100644 --- a/ReactNativeClient/lib/MdToHtml.js +++ b/ReactNativeClient/lib/MdToHtml.js @@ -1,14 +1,13 @@ -const MarkdownIt = require('markdown-it'); -const Entities = require('html-entities').AllHtmlEntities; -const htmlentities = (new Entities()).encode; -const Resource = require('lib/models/Resource.js'); -const ModelCache = require('lib/ModelCache'); -const { shim } = require('lib/shim.js'); -const md5 = require('md5'); -const MdToHtml_Katex = require('lib/MdToHtml_Katex'); +const MarkdownIt = require("markdown-it"); +const Entities = require("html-entities").AllHtmlEntities; +const htmlentities = new Entities().encode; +const Resource = require("lib/models/Resource.js"); +const ModelCache = require("lib/ModelCache"); +const { shim } = require("lib/shim.js"); +const md5 = require("md5"); +const MdToHtml_Katex = require("lib/MdToHtml_Katex"); class MdToHtml { - constructor(options = null) { if (!options) options = {}; @@ -19,7 +18,7 @@ class MdToHtml { this.modelCache_ = new ModelCache(); // Must include last "/" - this.resourceBaseUrl_ = ('resourceBaseUrl' in options) ? options.resourceBaseUrl : null; + this.resourceBaseUrl_ = "resourceBaseUrl" in options ? options.resourceBaseUrl : null; } makeContentKey(resources, body, style, options) { @@ -32,26 +31,26 @@ class MdToHtml { k.push(md5(escape(body))); // https://github.com/pvorb/node-md5/issues/41 k.push(md5(JSON.stringify(style))); k.push(md5(JSON.stringify(options))); - return k.join('_'); + return k.join("_"); } renderAttrs_(attrs) { - if (!attrs) return ''; + if (!attrs) return ""; let output = []; for (let i = 0; i < attrs.length; i++) { const n = attrs[i][0]; const v = attrs[i].length >= 2 ? attrs[i][1] : null; - if (n === 'alt' && !v) { + if (n === "alt" && !v) { continue; - } else if (n === 'src') { + } else if (n === "src") { output.push('src="' + htmlentities(v) + '"'); } else { - output.push(n + '="' + (v ? htmlentities(v) : '') + '"'); + output.push(n + '="' + (v ? htmlentities(v) : "") + '"'); } } - return output.join(' '); + return output.join(" "); } getAttr_(attrs, name) { @@ -73,7 +72,7 @@ class MdToHtml { } renderImage_(attrs, options) { - const loadResource = async (id) => { + const loadResource = async id => { // console.info('Loading resource: ' + id); // Initially set to to an empty object to make @@ -88,17 +87,17 @@ class MdToHtml { if (!resource) { // Can happen for example if an image is attached to a note, but the resource hasn't // been downloaded from the sync target yet. - console.warn('Cannot load resource: ' + id); + console.warn("Cannot load resource: " + id); return; } this.loadedResources_[id] = resource; if (options.onResourceLoaded) options.onResourceLoaded(); - } + }; - const title = this.getAttr_(attrs, 'title'); - const href = this.getAttr_(attrs, 'src'); + const title = this.getAttr_(attrs, "title"); + const href = this.getAttr_(attrs, "src"); if (!Resource.isResourceUrl(href)) { return ''; @@ -108,27 +107,27 @@ class MdToHtml { const resource = this.loadedResources_[resourceId]; if (!resource) { loadResource(resourceId); - return ''; + return ""; } - if (!resource.id) return ''; // Resource is being loaded + if (!resource.id) return ""; // Resource is being loaded - const mime = resource.mime ? resource.mime.toLowerCase() : ''; - if (mime == 'image/png' || mime == 'image/jpg' || mime == 'image/jpeg' || mime == 'image/gif') { - let src = './' + Resource.filename(resource); + const mime = resource.mime ? resource.mime.toLowerCase() : ""; + if (mime == "image/png" || mime == "image/jpg" || mime == "image/jpeg" || mime == "image/gif") { + let src = "./" + Resource.filename(resource); if (this.resourceBaseUrl_ !== null) src = this.resourceBaseUrl_ + src; let output = ''; return output; } - - return '[Image: ' + htmlentities(resource.title) + ' (' + htmlentities(mime) + ')]'; + + return "[Image: " + htmlentities(resource.title) + " (" + htmlentities(mime) + ")]"; } renderOpenLink_(attrs, options) { - let href = this.getAttr_(attrs, 'href'); - const text = this.getAttr_(attrs, 'text'); + let href = this.getAttr_(attrs, "href"); + const text = this.getAttr_(attrs, "text"); const isResourceUrl = Resource.isResourceUrl(href); - const title = isResourceUrl ? this.getAttr_(attrs, 'title') : href; + const title = isResourceUrl ? this.getAttr_(attrs, "title") : href; if (isResourceUrl && !this.supportsResourceLinks_) { // In mobile, links to local resources, such as PDF, etc. currently aren't supported. @@ -137,7 +136,7 @@ class MdToHtml { } else { if (isResourceUrl) { const resourceId = Resource.pathToId(href); - href = 'joplin://' + resourceId; + href = "joplin://" + resourceId; } const js = options.postMessageSyntax + "(" + JSON.stringify(href) + "); return false;"; @@ -147,13 +146,13 @@ class MdToHtml { } renderCloseLink_(attrs, options) { - const href = this.getAttr_(attrs, 'href'); + const href = this.getAttr_(attrs, "href"); const isResourceUrl = Resource.isResourceUrl(href); if (isResourceUrl && !this.supportsResourceLinks_) { - return ')'; + return ")"; } else { - return ''; + return ""; } } @@ -161,7 +160,7 @@ class MdToHtml { if (!language) return null; const handlers = {}; - handlers['katex'] = new MdToHtml_Katex(); + handlers["katex"] = new MdToHtml_Katex(); return language in handlers ? handlers[language] : null; } @@ -186,61 +185,61 @@ class MdToHtml { for (let i = 0; i < tokens.length; i++) { let t = tokens[i]; - const nextToken = i < tokens.length ? tokens[i+1] : null; + const nextToken = i < tokens.length ? tokens[i + 1] : null; let tag = t.tag; let openTag = null; let closeTag = null; let attrs = t.attrs ? t.attrs : []; let tokenContent = t.content ? t.content : null; - const isCodeBlock = tag === 'code' && t.block; - const isInlineCode = t.type === 'code_inline'; + const isCodeBlock = tag === "code" && t.block; + const isInlineCode = t.type === "code_inline"; const codeBlockLanguage = t && t.info ? t.info : null; let rendererPlugin = null; - let rendererPluginOptions = { tagType: 'inline' }; + let rendererPluginOptions = { tagType: "inline" }; if (isCodeBlock) rendererPlugin = this.rendererPlugin_(codeBlockLanguage); - if (previousToken && previousToken.tag === 'li' && tag === 'p') { + if (previousToken && previousToken.tag === "li" && tag === "p") { // Markdown-it render list items as
      • Text

      • which makes it // complicated to style and layout the HTML, so we remove this extra //

        here and below in closeTag. openTag = null; } else if (isInlineCode) { openTag = null; - } else if (tag && t.type.indexOf('html_inline') >= 0) { + } else if (tag && t.type.indexOf("html_inline") >= 0) { openTag = null; - } else if (tag && t.type.indexOf('_open') >= 0) { + } else if (tag && t.type.indexOf("_open") >= 0) { openTag = tag; - } else if (tag && t.type.indexOf('_close') >= 0) { + } else if (tag && t.type.indexOf("_close") >= 0) { closeTag = tag; - } else if (tag && t.type.indexOf('inline') >= 0) { + } else if (tag && t.type.indexOf("inline") >= 0) { openTag = tag; - } else if (t.type === 'link_open') { - openTag = 'a'; + } else if (t.type === "link_open") { + openTag = "a"; } else if (isCodeBlock) { if (rendererPlugin) { openTag = null; } else { - openTag = 'pre'; + openTag = "pre"; } } if (openTag) { - if (openTag === 'a') { + if (openTag === "a") { anchorAttrs.push(attrs); output.push(this.renderOpenLink_(attrs, options)); } else { const attrsHtml = this.renderAttrs_(attrs); - output.push('<' + openTag + (attrsHtml ? ' ' + attrsHtml : '') + '>'); + output.push("<" + openTag + (attrsHtml ? " " + attrsHtml : "") + ">"); } } if (isCodeBlock) { - const codeAttrs = ['code']; + const codeAttrs = ["code"]; if (!rendererPlugin) { if (codeBlockLanguage) codeAttrs.push(t.info); // t.info contains the language when the token is a codeblock - output.push(''); + output.push(''); } } else if (isInlineCode) { const result = this.parseInlineCodeLanguage_(tokenContent); @@ -250,30 +249,30 @@ class MdToHtml { } if (!rendererPlugin) { - output.push(''); + output.push(""); } } - if (t.type === 'math_inline' || t.type === 'math_block') { - rendererPlugin = this.rendererPlugin_('katex'); - rendererPluginOptions = { tagType: t.type === 'math_block' ? 'block' : 'inline' }; + if (t.type === "math_inline" || t.type === "math_block") { + rendererPlugin = this.rendererPlugin_("katex"); + rendererPluginOptions = { tagType: t.type === "math_block" ? "block" : "inline" }; } if (rendererPlugin) { - rendererPlugin.loadAssets().catch((error) => { - console.warn('MdToHtml: Error loading assets for ' + rendererPlugin.name() + ': ', error.message); + rendererPlugin.loadAssets().catch(error => { + console.warn("MdToHtml: Error loading assets for " + rendererPlugin.name() + ": ", error.message); }); } - if (t.type === 'image') { - if (tokenContent) attrs.push(['title', tokenContent]); + if (t.type === "image") { + if (tokenContent) attrs.push(["title", tokenContent]); output.push(this.renderImage_(attrs, options)); - } else if (t.type === 'html_inline') { + } else if (t.type === "html_inline") { output.push(t.content); - } else if (t.type === 'softbreak') { - output.push('
        '); - } else if (t.type === 'hr') { - output.push('


        '); + } else if (t.type === "softbreak") { + output.push("
        "); + } else if (t.type === "hr") { + output.push("
        "); } else { if (t.children) { const parsedChildren = this.renderTokens_(markdownIt, t.children, options); @@ -281,7 +280,7 @@ class MdToHtml { } else { if (tokenContent) { if ((isCodeBlock || isInlineCode) && rendererPlugin) { - output = rendererPlugin.processContent(output, tokenContent, isCodeBlock ? 'block' : 'inline'); + output = rendererPlugin.processContent(output, tokenContent, isCodeBlock ? "block" : "inline"); } else if (rendererPlugin) { output = rendererPlugin.processContent(output, tokenContent, rendererPluginOptions.tagType); } else { @@ -290,12 +289,12 @@ class MdToHtml { } } } - - if (nextToken && nextToken.tag === 'li' && t.tag === 'p') { - closeTag = null; - } else if (t.type === 'link_close') { - closeTag = 'a'; - } else if (tag && t.type.indexOf('inline') >= 0) { + + if (nextToken && nextToken.tag === "li" && t.tag === "p") { + closeTag = null; + } else if (t.type === "link_close") { + closeTag = "a"; + } else if (tag && t.type.indexOf("inline") >= 0) { closeTag = openTag; } else if (isCodeBlock) { if (!rendererPlugin) closeTag = openTag; @@ -303,19 +302,19 @@ class MdToHtml { if (isCodeBlock) { if (!rendererPlugin) { - output.push('
        '); + output.push("
        "); } } else if (isInlineCode) { if (!rendererPlugin) { - output.push('
        '); + output.push("
        "); } } if (closeTag) { - if (closeTag === 'a') { + if (closeTag === "a") { output.push(this.renderCloseLink_(anchorAttrs.pop(), options)); } else { - output.push(''); + output.push(""); } } @@ -332,22 +331,22 @@ class MdToHtml { // Insert the extra CSS at the top of the HTML - const temp = [''); + temp.push(""); output = temp.concat(output); - return output.join(''); + return output.join(""); } render(body, style, options = null) { if (!options) options = {}; - if (!options.postMessageSyntax) options.postMessageSyntax = 'postMessage'; - if (!options.paddingBottom) options.paddingBottom = '0'; + if (!options.postMessageSyntax) options.postMessageSyntax = "postMessage"; + if (!options.paddingBottom) options.paddingBottom = "0"; const cacheKey = this.makeContentKey(this.loadedResources_, body, style, options); if (this.cachedContentKey_ === cacheKey) return this.cachedContent_; @@ -363,7 +362,7 @@ class MdToHtml { // library. It is better this way as then it is possible to conditionally load the CSS required by // Katex and use an up-to-date version of Katex (as of 2018, the plugin is still using 0.6, which is // buggy instead of 0.9). - md.use(require('markdown-it-katex')); + md.use(require("markdown-it-katex")); // Hack to make checkboxes clickable. Ideally, checkboxes should be parsed properly in // renderTokens_(), but for now this hack works. Marking it with HORRIBLE_HACK so @@ -372,11 +371,11 @@ class MdToHtml { if (HORRIBLE_HACK) { let counter = -1; - while (body.indexOf('- [ ]') >= 0 || body.indexOf('- [X]') >= 0) { + while (body.indexOf("- [ ]") >= 0 || body.indexOf("- [X]") >= 0) { body = body.replace(/- \[(X| )\]/, function(v, p1) { - let s = p1 == ' ' ? 'NOTICK' : 'TICK'; + let s = p1 == " " ? "NOTICK" : "TICK"; counter++; - return '- mJOPmCHECKBOXm' + s + 'm' + counter + 'm'; + return "- mJOPmCHECKBOXm" + s + "m" + counter + "m"; }); } } @@ -392,11 +391,11 @@ class MdToHtml { if (HORRIBLE_HACK) { let loopCount = 0; - while (renderedBody.indexOf('mJOPm') >= 0) { + while (renderedBody.indexOf("mJOPm") >= 0) { renderedBody = renderedBody.replace(/mJOPmCHECKBOXm([A-Z]+)m(\d+)m/, function(v, type, index) { - - const js = options.postMessageSyntax + "('checkboxclick:" + type + ':' + index + "'); this.classList.contains('tick') ? this.classList.remove('tick') : this.classList.add('tick'); return false;"; - return '' + '' + ''; + const js = + options.postMessageSyntax + "('checkboxclick:" + type + ":" + index + "'); this.classList.contains('tick') ? this.classList.remove('tick') : this.classList.add('tick'); return false;"; + return '' + "" + ""; }); if (loopCount++ >= 9999) break; } @@ -410,16 +409,29 @@ class MdToHtml { b,strong{font-weight:bolder}small{font-size:80%}img{border-style:none} `; - const fontFamily = 'sans-serif'; + const fontFamily = "sans-serif"; - const css = ` + const css = + ` body { - font-size: ` + style.htmlFontSize + `; - color: ` + style.htmlColor + `; - line-height: ` + style.htmlLineHeight + `; - background-color: ` + style.htmlBackgroundColor + `; - font-family: ` + fontFamily + `; - padding-bottom: ` + options.paddingBottom + `; + font-size: ` + + style.htmlFontSize + + `; + color: ` + + style.htmlColor + + `; + line-height: ` + + style.htmlLineHeight + + `; + background-color: ` + + style.htmlBackgroundColor + + `; + font-family: ` + + fontFamily + + `; + padding-bottom: ` + + options.paddingBottom + + `; } p, h1, h2, h3, h4, h5, h6, ul, table { margin-top: 0; @@ -438,7 +450,9 @@ class MdToHtml { font-weight: bold; } a { - color: ` + style.htmlLinkColor + ` + color: ` + + style.htmlLinkColor + + ` } ul { padding-left: 1.3em; @@ -451,7 +465,9 @@ class MdToHtml { width: 1.65em; /* Need to cut a bit the right border otherwise the SVG will display a black line */ height: 1.7em; margin-right: .3em; - background-color: ` + style.htmlColor + `; + background-color: ` + + style.htmlColor + + `; /* Awesome Font square-o */ -webkit-mask: url("data:image/svg+xml;utf8,"); } @@ -466,14 +482,24 @@ class MdToHtml { td, th { border: 1px solid silver; padding: .5em 1em .5em 1em; - font-size: ` + style.htmlFontSize + `; - color: ` + style.htmlColor + `; - background-color: ` + style.htmlBackgroundColor + `; - font-family: ` + fontFamily + `; + font-size: ` + + style.htmlFontSize + + `; + color: ` + + style.htmlColor + + `; + background-color: ` + + style.htmlBackgroundColor + + `; + font-family: ` + + fontFamily + + `; } hr { border: none; - border-bottom: 1px solid ` + style.htmlDividerColor + `; + border-bottom: 1px solid ` + + style.htmlDividerColor + + `; } img { width: auto; @@ -486,7 +512,7 @@ class MdToHtml { } `; - const styleHtml = ''; //+ ''; + const styleHtml = ""; //+ ''; const output = styleHtml + renderedBody; @@ -497,31 +523,30 @@ class MdToHtml { toggleTickAt(body, index) { let counter = -1; - while (body.indexOf('- [ ]') >= 0 || body.indexOf('- [X]') >= 0) { + while (body.indexOf("- [ ]") >= 0 || body.indexOf("- [X]") >= 0) { counter++; body = body.replace(/- \[(X| )\]/, function(v, p1) { - let s = p1 == ' ' ? 'NOTICK' : 'TICK'; + let s = p1 == " " ? "NOTICK" : "TICK"; if (index == counter) { - s = s == 'NOTICK' ? 'TICK' : 'NOTICK'; + s = s == "NOTICK" ? "TICK" : "NOTICK"; } - return '°°JOP°CHECKBOX°' + s + '°°'; + return "°°JOP°CHECKBOX°" + s + "°°"; }); } - body = body.replace(/°°JOP°CHECKBOX°NOTICK°°/g, '- [ ]'); - body = body.replace(/°°JOP°CHECKBOX°TICK°°/g, '- [X]'); + body = body.replace(/°°JOP°CHECKBOX°NOTICK°°/g, "- [ ]"); + body = body.replace(/°°JOP°CHECKBOX°TICK°°/g, "- [X]"); return body; } handleCheckboxClick(msg, noteBody) { - msg = msg.split(':'); + msg = msg.split(":"); let index = Number(msg[msg.length - 1]); let currentState = msg[msg.length - 2]; // Not really needed but keep it anyway - return this.toggleTickAt(noteBody, index); + return this.toggleTickAt(noteBody, index); } - } -module.exports = MdToHtml; \ No newline at end of file +module.exports = MdToHtml; diff --git a/ReactNativeClient/lib/MdToHtml_Katex.js b/ReactNativeClient/lib/MdToHtml_Katex.js index 9f3d315919..ca389f6afd 100644 --- a/ReactNativeClient/lib/MdToHtml_Katex.js +++ b/ReactNativeClient/lib/MdToHtml_Katex.js @@ -1,23 +1,22 @@ -const { shim } = require('lib/shim'); -const katex = require('katex'); -const katexCss = require('lib/csstojs/katex.css.js'); -const Setting = require('lib/models/Setting'); +const { shim } = require("lib/shim"); +const katex = require("katex"); +const katexCss = require("lib/csstojs/katex.css.js"); +const Setting = require("lib/models/Setting"); class MdToHtml_Katex { - name() { - return 'katex'; + return "katex"; } processContent(renderedTokens, content, tagType) { try { let renderered = katex.renderToString(content); - if (tagType === 'block') renderered = '

        ' + renderered + '

        '; + if (tagType === "block") renderered = "

        " + renderered + "

        "; renderedTokens.push(renderered); } catch (error) { - renderedTokens.push('Cannot render Katex content: ' + error.message); + renderedTokens.push("Cannot render Katex content: " + error.message); } return renderedTokens; } @@ -34,15 +33,14 @@ class MdToHtml_Katex { if (shim.isReactNative()) { // Fonts must go under the resourceDir directory because this is the baseUrl of NoteBodyViewer - const baseDir = Setting.value('resourceDir'); - await shim.fsDriver().mkdir(baseDir + '/fonts'); - - await shim.fetchBlob('https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.9.0-beta1/fonts/KaTeX_Main-Regular.woff2', { overwrite: false, path: baseDir + '/fonts/KaTeX_Main-Regular.woff2' }); - await shim.fetchBlob('https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.9.0-beta1/fonts/KaTeX_Math-Italic.woff2', { overwrite: false, path: baseDir + '/fonts/KaTeX_Math-Italic.woff2' }); - await shim.fetchBlob('https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.9.0-beta1/fonts/KaTeX_Size1-Regular.woff2', { overwrite: false, path: baseDir + '/fonts/KaTeX_Size1-Regular.woff2' }); + const baseDir = Setting.value("resourceDir"); + await shim.fsDriver().mkdir(baseDir + "/fonts"); + + await shim.fetchBlob("https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.9.0-beta1/fonts/KaTeX_Main-Regular.woff2", { overwrite: false, path: baseDir + "/fonts/KaTeX_Main-Regular.woff2" }); + await shim.fetchBlob("https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.9.0-beta1/fonts/KaTeX_Math-Italic.woff2", { overwrite: false, path: baseDir + "/fonts/KaTeX_Math-Italic.woff2" }); + await shim.fetchBlob("https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.9.0-beta1/fonts/KaTeX_Size1-Regular.woff2", { overwrite: false, path: baseDir + "/fonts/KaTeX_Size1-Regular.woff2" }); } } - } -module.exports = MdToHtml_Katex; \ No newline at end of file +module.exports = MdToHtml_Katex; diff --git a/ReactNativeClient/lib/ModelCache.js b/ReactNativeClient/lib/ModelCache.js index a2e2a5f3d4..32fb765c8d 100644 --- a/ReactNativeClient/lib/ModelCache.js +++ b/ReactNativeClient/lib/ModelCache.js @@ -1,5 +1,4 @@ class ModelCache { - constructor(maxSize) { this.cache_ = []; this.maxSize_ = maxSize; @@ -8,7 +7,7 @@ class ModelCache { fromCache(ModelClass, id) { for (let i = 0; i < this.cache_.length; i++) { const c = this.cache_[i]; - if (c.id === id && c.modelType === ModelClass.modelType()) return c + if (c.id === id && c.modelType === ModelClass.modelType()) return c; } return null; } @@ -33,7 +32,6 @@ class ModelCache { this.cache(ModelClass, id, output); return output; } - } -module.exports = ModelCache; \ No newline at end of file +module.exports = ModelCache; diff --git a/ReactNativeClient/lib/ObjectUtils.js b/ReactNativeClient/lib/ObjectUtils.js index 366156e5f0..e30b9dabc8 100644 --- a/ReactNativeClient/lib/ObjectUtils.js +++ b/ReactNativeClient/lib/ObjectUtils.js @@ -13,8 +13,8 @@ ObjectUtils.sortByValue = function(object) { temp.sort(function(a, b) { let v1 = a.value; let v2 = b.value; - if (typeof v1 === 'string') v1 = v1.toLowerCase(); - if (typeof v2 === 'string') v2 = v2.toLowerCase(); + if (typeof v1 === "string") v1 = v1.toLowerCase(); + if (typeof v2 === "string") v2 = v2.toLowerCase(); if (v1 === v2) return 0; return v1 < v2 ? -1 : +1; }); @@ -26,11 +26,11 @@ ObjectUtils.sortByValue = function(object) { } return output; -} +}; ObjectUtils.fieldsEqual = function(o1, o2) { - if ((!o1 || !o2) && (o1 !== o2)) return false; - + if ((!o1 || !o2) && o1 !== o2) return false; + for (let k in o1) { if (!o1.hasOwnProperty(k)) continue; if (o1[k] !== o2[k]) return false; @@ -42,6 +42,6 @@ ObjectUtils.fieldsEqual = function(o1, o2) { if (c1.length !== c2.length) return false; return true; -} +}; -module.exports = ObjectUtils; \ No newline at end of file +module.exports = ObjectUtils; diff --git a/ReactNativeClient/lib/SyncTargetFilesystem.js b/ReactNativeClient/lib/SyncTargetFilesystem.js index 6dd4f4851e..d077d09db9 100644 --- a/ReactNativeClient/lib/SyncTargetFilesystem.js +++ b/ReactNativeClient/lib/SyncTargetFilesystem.js @@ -1,22 +1,21 @@ -const BaseSyncTarget = require('lib/BaseSyncTarget.js'); -const { _ } = require('lib/locale.js'); -const Setting = require('lib/models/Setting.js'); -const { FileApi } = require('lib/file-api.js'); -const { FileApiDriverLocal } = require('lib/file-api-driver-local.js'); -const { Synchronizer } = require('lib/synchronizer.js'); +const BaseSyncTarget = require("lib/BaseSyncTarget.js"); +const { _ } = require("lib/locale.js"); +const Setting = require("lib/models/Setting.js"); +const { FileApi } = require("lib/file-api.js"); +const { FileApiDriverLocal } = require("lib/file-api-driver-local.js"); +const { Synchronizer } = require("lib/synchronizer.js"); class SyncTargetFilesystem extends BaseSyncTarget { - static id() { return 2; } static targetName() { - return 'filesystem'; + return "filesystem"; } static label() { - return _('File system'); + return _("File system"); } isAuthenticated() { @@ -24,7 +23,7 @@ class SyncTargetFilesystem extends BaseSyncTarget { } async initFileApi() { - const syncPath = Setting.value('sync.2.path'); + const syncPath = Setting.value("sync.2.path"); const driver = new FileApiDriverLocal(); const fileApi = new FileApi(syncPath, driver); fileApi.setLogger(this.logger()); @@ -34,9 +33,8 @@ class SyncTargetFilesystem extends BaseSyncTarget { } async initSynchronizer() { - return new Synchronizer(this.db(), await this.fileApi(), Setting.value('appType')); + return new Synchronizer(this.db(), await this.fileApi(), Setting.value("appType")); } - } -module.exports = SyncTargetFilesystem; \ No newline at end of file +module.exports = SyncTargetFilesystem; diff --git a/ReactNativeClient/lib/SyncTargetMemory.js b/ReactNativeClient/lib/SyncTargetMemory.js index d0ac334615..0c5bc0fa6d 100644 --- a/ReactNativeClient/lib/SyncTargetMemory.js +++ b/ReactNativeClient/lib/SyncTargetMemory.js @@ -1,22 +1,21 @@ -const BaseSyncTarget = require('lib/BaseSyncTarget.js'); -const { _ } = require('lib/locale.js'); -const Setting = require('lib/models/Setting.js'); -const { FileApi } = require('lib/file-api.js'); -const { FileApiDriverMemory } = require('lib/file-api-driver-memory.js'); -const { Synchronizer } = require('lib/synchronizer.js'); +const BaseSyncTarget = require("lib/BaseSyncTarget.js"); +const { _ } = require("lib/locale.js"); +const Setting = require("lib/models/Setting.js"); +const { FileApi } = require("lib/file-api.js"); +const { FileApiDriverMemory } = require("lib/file-api-driver-memory.js"); +const { Synchronizer } = require("lib/synchronizer.js"); class SyncTargetMemory extends BaseSyncTarget { - static id() { return 1; } static targetName() { - return 'memory'; + return "memory"; } static label() { - return 'Memory'; + return "Memory"; } isAuthenticated() { @@ -24,16 +23,15 @@ class SyncTargetMemory extends BaseSyncTarget { } initFileApi() { - const fileApi = new FileApi('/root', new FileApiDriverMemory()); + const fileApi = new FileApi("/root", new FileApiDriverMemory()); fileApi.setLogger(this.logger()); fileApi.setSyncTargetId(SyncTargetMemory.id()); return fileApi; } async initSynchronizer() { - return new Synchronizer(this.db(), await this.fileApi(), Setting.value('appType')); + return new Synchronizer(this.db(), await this.fileApi(), Setting.value("appType")); } - } -module.exports = SyncTargetMemory; \ No newline at end of file +module.exports = SyncTargetMemory; diff --git a/ReactNativeClient/lib/SyncTargetNextcloud.js b/ReactNativeClient/lib/SyncTargetNextcloud.js index b050146a71..ec9092240f 100644 --- a/ReactNativeClient/lib/SyncTargetNextcloud.js +++ b/ReactNativeClient/lib/SyncTargetNextcloud.js @@ -1,17 +1,16 @@ // The Nextcloud sync target is essentially a wrapper over the WebDAV sync target, // thus all the calls to SyncTargetWebDAV to avoid duplicate code. -const BaseSyncTarget = require('lib/BaseSyncTarget.js'); -const { _ } = require('lib/locale.js'); -const Setting = require('lib/models/Setting.js'); -const { FileApi } = require('lib/file-api.js'); -const { Synchronizer } = require('lib/synchronizer.js'); -const WebDavApi = require('lib/WebDavApi'); -const SyncTargetWebDAV = require('lib/SyncTargetWebDAV'); -const { FileApiDriverWebDav } = require('lib/file-api-driver-webdav'); +const BaseSyncTarget = require("lib/BaseSyncTarget.js"); +const { _ } = require("lib/locale.js"); +const Setting = require("lib/models/Setting.js"); +const { FileApi } = require("lib/file-api.js"); +const { Synchronizer } = require("lib/synchronizer.js"); +const WebDavApi = require("lib/WebDavApi"); +const SyncTargetWebDAV = require("lib/SyncTargetWebDAV"); +const { FileApiDriverWebDav } = require("lib/file-api-driver-webdav"); class SyncTargetNextcloud extends BaseSyncTarget { - static id() { return 5; } @@ -21,11 +20,11 @@ class SyncTargetNextcloud extends BaseSyncTarget { } static targetName() { - return 'nextcloud'; + return "nextcloud"; } static label() { - return _('Nextcloud'); + return _("Nextcloud"); } isAuthenticated() { @@ -38,9 +37,9 @@ class SyncTargetNextcloud extends BaseSyncTarget { async initFileApi() { const fileApi = await SyncTargetWebDAV.newFileApi_(SyncTargetNextcloud.id(), { - path: Setting.value('sync.5.path'), - username: Setting.value('sync.5.username'), - password: Setting.value('sync.5.password'), + path: Setting.value("sync.5.path"), + username: Setting.value("sync.5.username"), + password: Setting.value("sync.5.password"), }); fileApi.setLogger(this.logger()); @@ -49,9 +48,8 @@ class SyncTargetNextcloud extends BaseSyncTarget { } async initSynchronizer() { - return new Synchronizer(this.db(), await this.fileApi(), Setting.value('appType')); + return new Synchronizer(this.db(), await this.fileApi(), Setting.value("appType")); } - } -module.exports = SyncTargetNextcloud; \ No newline at end of file +module.exports = SyncTargetNextcloud; diff --git a/ReactNativeClient/lib/SyncTargetOneDrive.js b/ReactNativeClient/lib/SyncTargetOneDrive.js index 50f0a04ebd..c510f44bdf 100644 --- a/ReactNativeClient/lib/SyncTargetOneDrive.js +++ b/ReactNativeClient/lib/SyncTargetOneDrive.js @@ -1,14 +1,13 @@ -const BaseSyncTarget = require('lib/BaseSyncTarget.js'); -const { _ } = require('lib/locale.js'); -const { OneDriveApi } = require('lib/onedrive-api.js'); -const Setting = require('lib/models/Setting.js'); -const { parameters } = require('lib/parameters.js'); -const { FileApi } = require('lib/file-api.js'); -const { Synchronizer } = require('lib/synchronizer.js'); -const { FileApiDriverOneDrive } = require('lib/file-api-driver-onedrive.js'); +const BaseSyncTarget = require("lib/BaseSyncTarget.js"); +const { _ } = require("lib/locale.js"); +const { OneDriveApi } = require("lib/onedrive-api.js"); +const Setting = require("lib/models/Setting.js"); +const { parameters } = require("lib/parameters.js"); +const { FileApi } = require("lib/file-api.js"); +const { Synchronizer } = require("lib/synchronizer.js"); +const { FileApiDriverOneDrive } = require("lib/file-api-driver-onedrive.js"); class SyncTargetOneDrive extends BaseSyncTarget { - static id() { return 3; } @@ -19,11 +18,11 @@ class SyncTargetOneDrive extends BaseSyncTarget { } static targetName() { - return 'onedrive'; + return "onedrive"; } static label() { - return _('OneDrive'); + return _("OneDrive"); } isAuthenticated() { @@ -39,35 +38,35 @@ class SyncTargetOneDrive extends BaseSyncTarget { } authRouteName() { - return 'OneDriveLogin'; + return "OneDriveLogin"; } api() { if (this.api_) return this.api_; - const isPublic = Setting.value('appType') != 'cli'; + const isPublic = Setting.value("appType") != "cli"; this.api_ = new OneDriveApi(this.oneDriveParameters().id, this.oneDriveParameters().secret, isPublic); this.api_.setLogger(this.logger()); - this.api_.on('authRefreshed', (a) => { - this.logger().info('Saving updated OneDrive auth.'); - Setting.setValue('sync.' + this.syncTargetId() + '.auth', a ? JSON.stringify(a) : null); + this.api_.on("authRefreshed", a => { + this.logger().info("Saving updated OneDrive auth."); + Setting.setValue("sync." + this.syncTargetId() + ".auth", a ? JSON.stringify(a) : null); }); - let auth = Setting.value('sync.' + this.syncTargetId() + '.auth'); + let auth = Setting.value("sync." + this.syncTargetId() + ".auth"); if (auth) { try { auth = JSON.parse(auth); } catch (error) { - this.logger().warn('Could not parse OneDrive auth token'); + this.logger().warn("Could not parse OneDrive auth token"); this.logger().warn(error); auth = null; } this.api_.setAuth(auth); } - + return this.api_; } @@ -80,10 +79,9 @@ class SyncTargetOneDrive extends BaseSyncTarget { } async initSynchronizer() { - if (!this.isAuthenticated()) throw new Error('User is not authentified'); - return new Synchronizer(this.db(), await this.fileApi(), Setting.value('appType')); + if (!this.isAuthenticated()) throw new Error("User is not authentified"); + return new Synchronizer(this.db(), await this.fileApi(), Setting.value("appType")); } - } -module.exports = SyncTargetOneDrive; \ No newline at end of file +module.exports = SyncTargetOneDrive; diff --git a/ReactNativeClient/lib/SyncTargetOneDriveDev.js b/ReactNativeClient/lib/SyncTargetOneDriveDev.js index f60f430d3c..af95fb689d 100644 --- a/ReactNativeClient/lib/SyncTargetOneDriveDev.js +++ b/ReactNativeClient/lib/SyncTargetOneDriveDev.js @@ -1,25 +1,24 @@ -const BaseSyncTarget = require('lib/BaseSyncTarget.js'); -const SyncTargetOneDrive = require('lib/SyncTargetOneDrive.js'); -const { _ } = require('lib/locale.js'); -const { OneDriveApi } = require('lib/onedrive-api.js'); -const Setting = require('lib/models/Setting.js'); -const { parameters } = require('lib/parameters.js'); -const { FileApi } = require('lib/file-api.js'); -const { Synchronizer } = require('lib/synchronizer.js'); -const { FileApiDriverOneDrive } = require('lib/file-api-driver-onedrive.js'); +const BaseSyncTarget = require("lib/BaseSyncTarget.js"); +const SyncTargetOneDrive = require("lib/SyncTargetOneDrive.js"); +const { _ } = require("lib/locale.js"); +const { OneDriveApi } = require("lib/onedrive-api.js"); +const Setting = require("lib/models/Setting.js"); +const { parameters } = require("lib/parameters.js"); +const { FileApi } = require("lib/file-api.js"); +const { Synchronizer } = require("lib/synchronizer.js"); +const { FileApiDriverOneDrive } = require("lib/file-api-driver-onedrive.js"); class SyncTargetOneDriveDev extends SyncTargetOneDrive { - static id() { return 4; } static targetName() { - return 'onedrive_dev'; + return "onedrive_dev"; } static label() { - return _('OneDrive Dev (For testing only)'); + return _("OneDrive Dev (For testing only)"); } syncTargetId() { @@ -27,11 +26,10 @@ class SyncTargetOneDriveDev extends SyncTargetOneDrive { } oneDriveParameters() { - return parameters('dev').oneDrive; + return parameters("dev").oneDrive; } - } const staticSelf = SyncTargetOneDriveDev; -module.exports = SyncTargetOneDriveDev; \ No newline at end of file +module.exports = SyncTargetOneDriveDev; diff --git a/ReactNativeClient/lib/SyncTargetRegistry.js b/ReactNativeClient/lib/SyncTargetRegistry.js index 0181dbeb3e..8b89936887 100644 --- a/ReactNativeClient/lib/SyncTargetRegistry.js +++ b/ReactNativeClient/lib/SyncTargetRegistry.js @@ -1,8 +1,7 @@ class SyncTargetRegistry { - static classById(syncTargetId) { const info = SyncTargetRegistry.reg_[syncTargetId]; - if (!info) throw new Error('Invalid id: ' + syncTargetId); + if (!info) throw new Error("Invalid id: " + syncTargetId); return info.classRef; } @@ -21,7 +20,7 @@ class SyncTargetRegistry { if (!this.reg_.hasOwnProperty(n)) continue; if (this.reg_[n].name === name) return this.reg_[n].id; } - throw new Error('Name not found: ' + name); + throw new Error("Name not found: " + name); } static idToMetadata(id) { @@ -29,7 +28,7 @@ class SyncTargetRegistry { if (!this.reg_.hasOwnProperty(n)) continue; if (this.reg_[n].id === id) return this.reg_[n]; } - throw new Error('ID not found: ' + id); + throw new Error("ID not found: " + id); } static idToName(id) { @@ -44,9 +43,8 @@ class SyncTargetRegistry { } return output; } - } SyncTargetRegistry.reg_ = {}; -module.exports = SyncTargetRegistry; \ No newline at end of file +module.exports = SyncTargetRegistry; diff --git a/ReactNativeClient/lib/SyncTargetWebDAV.js b/ReactNativeClient/lib/SyncTargetWebDAV.js index 7c67fb5eb7..34ef3fc1bc 100644 --- a/ReactNativeClient/lib/SyncTargetWebDAV.js +++ b/ReactNativeClient/lib/SyncTargetWebDAV.js @@ -1,13 +1,12 @@ -const BaseSyncTarget = require('lib/BaseSyncTarget.js'); -const { _ } = require('lib/locale.js'); -const Setting = require('lib/models/Setting.js'); -const { FileApi } = require('lib/file-api.js'); -const { Synchronizer } = require('lib/synchronizer.js'); -const WebDavApi = require('lib/WebDavApi'); -const { FileApiDriverWebDav } = require('lib/file-api-driver-webdav'); +const BaseSyncTarget = require("lib/BaseSyncTarget.js"); +const { _ } = require("lib/locale.js"); +const Setting = require("lib/models/Setting.js"); +const { FileApi } = require("lib/file-api.js"); +const { Synchronizer } = require("lib/synchronizer.js"); +const WebDavApi = require("lib/WebDavApi"); +const { FileApiDriverWebDav } = require("lib/file-api-driver-webdav"); class SyncTargetWebDAV extends BaseSyncTarget { - static id() { return 6; } @@ -17,11 +16,11 @@ class SyncTargetWebDAV extends BaseSyncTarget { } static targetName() { - return 'webdav'; + return "webdav"; } static label() { - return _('WebDAV'); + return _("WebDAV"); } isAuthenticated() { @@ -37,7 +36,7 @@ class SyncTargetWebDAV extends BaseSyncTarget { const api = new WebDavApi(apiOptions); const driver = new FileApiDriverWebDav(api); - const fileApi = new FileApi('', driver); + const fileApi = new FileApi("", driver); fileApi.setSyncTargetId(syncTargetId); return fileApi; } @@ -45,19 +44,19 @@ class SyncTargetWebDAV extends BaseSyncTarget { static async checkConfig(options) { const fileApi = await SyncTargetWebDAV.newFileApi_(SyncTargetWebDAV.id(), options); fileApi.requestRepeatCount_ = 0; - + const output = { ok: false, - errorMessage: '', + errorMessage: "", }; - + try { - const result = await fileApi.stat(''); - if (!result) throw new Error('WebDAV directory not found: ' + options.path); + const result = await fileApi.stat(""); + if (!result) throw new Error("WebDAV directory not found: " + options.path); output.ok = true; } catch (error) { output.errorMessage = error.message; - if (error.code) output.errorMessage += ' (Code ' + error.code + ')'; + if (error.code) output.errorMessage += " (Code " + error.code + ")"; } return output; @@ -65,9 +64,9 @@ class SyncTargetWebDAV extends BaseSyncTarget { async initFileApi() { const fileApi = await SyncTargetWebDAV.newFileApi_(SyncTargetWebDAV.id(), { - path: Setting.value('sync.6.path'), - username: Setting.value('sync.6.username'), - password: Setting.value('sync.6.password'), + path: Setting.value("sync.6.path"), + username: Setting.value("sync.6.username"), + password: Setting.value("sync.6.password"), }); fileApi.setLogger(this.logger()); @@ -76,9 +75,8 @@ class SyncTargetWebDAV extends BaseSyncTarget { } async initSynchronizer() { - return new Synchronizer(this.db(), await this.fileApi(), Setting.value('appType')); + return new Synchronizer(this.db(), await this.fileApi(), Setting.value("appType")); } - } -module.exports = SyncTargetWebDAV; \ No newline at end of file +module.exports = SyncTargetWebDAV; diff --git a/ReactNativeClient/lib/WebDavApi.js b/ReactNativeClient/lib/WebDavApi.js index ce6dbb3d98..a91187ef94 100644 --- a/ReactNativeClient/lib/WebDavApi.js +++ b/ReactNativeClient/lib/WebDavApi.js @@ -1,10 +1,10 @@ -const { Logger } = require('lib/logger.js'); -const { shim } = require('lib/shim.js'); -const parseXmlString = require('xml2js').parseString; -const JoplinError = require('lib/JoplinError'); -const URL = require('url-parse'); -const { rtrimSlashes, ltrimSlashes } = require('lib/path-utils.js'); -const base64 = require('base-64'); +const { Logger } = require("lib/logger.js"); +const { shim } = require("lib/shim.js"); +const parseXmlString = require("xml2js").parseString; +const JoplinError = require("lib/JoplinError"); +const URL = require("url-parse"); +const { rtrimSlashes, ltrimSlashes } = require("lib/path-utils.js"); +const base64 = require("base-64"); // Note that the d: namespace (the DAV namespace) is specific to Nextcloud. The RFC for example uses "D:" however // we make all the tags and attributes lowercase so we handle both the Nextcloud style and RFC. Hopefully other @@ -13,7 +13,6 @@ const base64 = require('base-64'); // In general, we should only deal with things in "d:", which is the standard DAV namespace. class WebDavApi { - constructor(options) { this.logger_ = new Logger(); this.options_ = options; @@ -33,9 +32,9 @@ class WebDavApi { // Note: Non-ASCII passwords will throw an error about Latin1 characters - https://github.com/laurent22/joplin/issues/246 // Tried various things like the below, but it didn't work on React Native: //return base64.encode(utf8.encode(this.options_.username() + ':' + this.options_.password())); - return base64.encode(this.options_.username() + ':' + this.options_.password()); + return base64.encode(this.options_.username() + ":" + this.options_.password()); } catch (error) { - error.message = 'Cannot encode username/password: ' + error.message; + error.message = "Cannot encode username/password: " + error.message; throw error; } } @@ -52,15 +51,15 @@ class WebDavApi { async xmlToJson(xml) { let davNamespaces = []; // Yes, there can be more than one... xmlns:a="DAV:" xmlns:D="DAV:" - const nameProcessor = (name) => { - if (name.indexOf('xmlns:') !== 0) { + const nameProcessor = name => { + if (name.indexOf("xmlns:") !== 0) { // Check if the current name is within the DAV namespace. If it is, normalise it // by moving it to the "d:" namespace, which is what all the functions are using. - const p = name.split(':'); + const p = name.split(":"); if (p.length == 2) { const ns = p[0]; if (davNamespaces.indexOf(ns) >= 0) { - name = 'd:' + p[1]; + name = "d:" + p[1]; } } } @@ -68,17 +67,17 @@ class WebDavApi { }; const attrValueProcessor = (value, name) => { - if (value.toLowerCase() === 'dav:') { - const p = name.split(':'); + if (value.toLowerCase() === "dav:") { + const p = name.split(":"); davNamespaces.push(p[p.length - 1]); } - } + }; const options = { tagNameProcessors: [nameProcessor], attrNameProcessors: [nameProcessor], - attrValueProcessors: [attrValueProcessor] - } + attrValueProcessors: [attrValueProcessor], + }; return new Promise((resolve, reject) => { parseXmlString(xml, options, (error, result) => { @@ -91,7 +90,7 @@ class WebDavApi { }); } - valueFromJson(json, keys, type) { + valueFromJson(json, keys, type) { let output = json; for (let i = 0; i < keys.length; i++) { @@ -99,12 +98,12 @@ class WebDavApi { // console.info(key, typeof key, typeof output, typeof output === 'object' && (key in output), Array.isArray(output)); - if (typeof key === 'number' && !Array.isArray(output)) return null; - if (typeof key === 'string' && (typeof output !== 'object' || !(key in output))) return null; + if (typeof key === "number" && !Array.isArray(output)) return null; + if (typeof key === "string" && (typeof output !== "object" || !(key in output))) return null; output = output[key]; } - if (type === 'string') { + if (type === "string") { // If the XML has not attribute the value is directly a string // If the XML node has attributes, the value is under "_". // Eg for this XML, the string will be under {"_":"Thu, 01 Feb 2018 17:24:05 GMT"}: @@ -112,17 +111,17 @@ class WebDavApi { // For this XML, the value will be "Thu, 01 Feb 2018 17:24:05 GMT" // Thu, 01 Feb 2018 17:24:05 GMT - if (typeof output === 'object' && '_' in output) output = output['_']; - if (typeof output !== 'string') return null; + if (typeof output === "object" && "_" in output) output = output["_"]; + if (typeof output !== "string") return null; return output; } - if (type === 'object') { - if (!Array.isArray(output) && typeof output === 'object') return output; + if (type === "object") { + if (!Array.isArray(output) && typeof output === "object") return output; return null; } - if (type === 'array') { + if (type === "array") { return Array.isArray(output) ? output : null; } @@ -130,23 +129,23 @@ class WebDavApi { } stringFromJson(json, keys) { - return this.valueFromJson(json, keys, 'string'); + return this.valueFromJson(json, keys, "string"); } objectFromJson(json, keys) { - return this.valueFromJson(json, keys, 'object'); + return this.valueFromJson(json, keys, "object"); } arrayFromJson(json, keys) { - return this.valueFromJson(json, keys, 'array'); + return this.valueFromJson(json, keys, "array"); } resourcePropByName(resource, outputType, propName) { - const propStats = resource['d:propstat']; + const propStats = resource["d:propstat"]; let output = null; - if (!Array.isArray(propStats)) throw new Error('Missing d:propstat property'); + if (!Array.isArray(propStats)) throw new Error("Missing d:propstat property"); for (let i = 0; i < propStats.length; i++) { - const props = propStats[i]['d:prop']; + const props = propStats[i]["d:prop"]; if (!Array.isArray(props) || !props.length) continue; const prop = props[0]; if (Array.isArray(prop[propName])) { @@ -155,7 +154,7 @@ class WebDavApi { } } - if (outputType === 'string') { + if (outputType === "string") { // If the XML has not attribute the value is directly a string // If the XML node has attributes, the value is under "_". // Eg for this XML, the string will be under {"_":"Thu, 01 Feb 2018 17:24:05 GMT"}: @@ -165,24 +164,24 @@ class WebDavApi { output = output[0]; - if (typeof output === 'object' && '_' in output) output = output['_']; - if (typeof output !== 'string') return null; + if (typeof output === "object" && "_" in output) output = output["_"]; + if (typeof output !== "string") return null; return output; } - if (outputType === 'array') { + if (outputType === "array") { return output; } - throw new Error('Invalid output type: ' + outputType); + throw new Error("Invalid output type: " + outputType); } async execPropFind(path, depth, fields = null, options = null) { - if (fields === null) fields = ['d:getlastmodified']; + if (fields === null) fields = ["d:getlastmodified"]; - let fieldsXml = ''; + let fieldsXml = ""; for (let i = 0; i < fields.length; i++) { - fieldsXml += '<' + fields[i] + '/>'; + fieldsXml += "<" + fields[i] + "/>"; } // To find all available properties: @@ -192,31 +191,34 @@ class WebDavApi { // // `; - const body = ` + const body = + ` - ` + fieldsXml + ` + ` + + fieldsXml + + ` `; - return this.exec('PROPFIND', path, body, { 'Depth': depth }, options); + return this.exec("PROPFIND", path, body, { Depth: depth }, options); } requestToCurl_(url, options) { let output = []; - output.push('curl'); - if (options.method) output.push('-X ' + options.method); + output.push("curl"); + if (options.method) output.push("-X " + options.method); if (options.headers) { for (let n in options.headers) { if (!options.headers.hasOwnProperty(n)) continue; - output.push('-H ' + '"' + n + ': ' + options.headers[n] + '"'); + output.push("-H " + '"' + n + ": " + options.headers[n] + '"'); } } - if (options.body) output.push('--data ' + "'" + options.body + "'"); + if (options.body) output.push("--data " + "'" + options.body + "'"); output.push(url); - return output.join(' '); - } + return output.join(" "); + } // curl -u admin:123456 'http://nextcloud.local/remote.php/dav/files/admin/' -X PROPFIND --data ' // @@ -225,15 +227,15 @@ class WebDavApi { // // ' - async exec(method, path = '', body = null, headers = null, options = null) { + async exec(method, path = "", body = null, headers = null, options = null) { if (headers === null) headers = {}; if (options === null) options = {}; - if (!options.responseFormat) options.responseFormat = 'json'; - if (!options.target) options.target = 'string'; + if (!options.responseFormat) options.responseFormat = "json"; + if (!options.target) options.target = "string"; const authToken = this.authToken(); - if (authToken) headers['Authorization'] = 'Basic ' + authToken; + if (authToken) headers["Authorization"] = "Basic " + authToken; // On iOS, the network lib appends a If-None-Match header to PROPFIND calls, which is kind of correct because // the call is idempotent and thus could be cached. According to RFC-7232 though only GET and HEAD should have @@ -244,7 +246,7 @@ class WebDavApi { // The "solution", an ugly one, is to send a purposely invalid string as eTag, which will bypass the If-None-Match check - Seafile // finds out that no resource has this ID and simply sends the requested data. // Also add a random value to make sure the eTag is unique for each call. - if (['GET', 'HEAD'].indexOf(method) < 0) headers['If-None-Match'] = 'JoplinIgnore-' + Math.floor(Math.random() * 100000); + if (["GET", "HEAD"].indexOf(method) < 0) headers["If-None-Match"] = "JoplinIgnore-" + Math.floor(Math.random() * 100000); const fetchOptions = {}; fetchOptions.headers = headers; @@ -252,23 +254,24 @@ class WebDavApi { if (options.path) fetchOptions.path = options.path; if (body) fetchOptions.body = body; - const url = this.baseUrl() + '/' + path; + const url = this.baseUrl() + "/" + path; let response = null; // console.info('WebDAV Call', method + ' ' + url, headers, options); // console.info(this.requestToCurl_(url, fetchOptions)); - if (options.source == 'file' && (method == 'POST' || method == 'PUT')) { + if (options.source == "file" && (method == "POST" || method == "PUT")) { if (fetchOptions.path) { const fileStat = await shim.fsDriver().stat(fetchOptions.path); - if (fileStat) fetchOptions.headers['Content-Length'] = fileStat.size + ''; + if (fileStat) fetchOptions.headers["Content-Length"] = fileStat.size + ""; } response = await shim.uploadBlob(url, fetchOptions); - } else if (options.target == 'string') { - if (typeof body === 'string') fetchOptions.headers['Content-Length'] = shim.stringByteLength(body) + ''; + } else if (options.target == "string") { + if (typeof body === "string") fetchOptions.headers["Content-Length"] = shim.stringByteLength(body) + ""; response = await shim.fetch(url, fetchOptions); - } else { // file + } else { + // file response = await shim.fetchBlob(url, fetchOptions); } @@ -280,22 +283,22 @@ class WebDavApi { const newError = (message, code = 0) => { // Gives a shorter response for error messages. Useful for cases where a full HTML page is accidentally loaded instead of // JSON. That way the error message will still show there's a problem but without filling up the log or screen. - const shortResponseText = (responseText + '').substr(0, 1024); - return new JoplinError(method + ' ' + path + ': ' + message + ' (' + code + '): ' + shortResponseText, code); - } + const shortResponseText = (responseText + "").substr(0, 1024); + return new JoplinError(method + " " + path + ": " + message + " (" + code + "): " + shortResponseText, code); + }; let responseJson_ = null; const loadResponseJson = async () => { if (!responseText) return null; if (responseJson_) return responseJson_; responseJson_ = await this.xmlToJson(responseText); - if (!responseJson_) throw newError('Cannot parse XML response', response.status); + if (!responseJson_) throw newError("Cannot parse XML response", response.status); return responseJson_; - } + }; if (!response.ok) { // When using fetchBlob we only get a string (not xml or json) back - if (options.target === 'file') throw newError('fetchBlob error', response.status); + if (options.target === "file") throw newError("fetchBlob error", response.status); let json = null; try { @@ -304,31 +307,30 @@ class WebDavApi { // Just send back the plain text in newErro() } - if (json && json['d:error']) { - const code = json['d:error']['s:exception'] ? json['d:error']['s:exception'].join(' ') : response.status; - const message = json['d:error']['s:message'] ? json['d:error']['s:message'].join("\n") : 'Unknown error 1'; - throw newError(message + ' (Exception ' + code + ')', response.status); + if (json && json["d:error"]) { + const code = json["d:error"]["s:exception"] ? json["d:error"]["s:exception"].join(" ") : response.status; + const message = json["d:error"]["s:message"] ? json["d:error"]["s:message"].join("\n") : "Unknown error 1"; + throw newError(message + " (Exception " + code + ")", response.status); } - throw newError('Unknown error 2', response.status); + throw newError("Unknown error 2", response.status); } - - if (options.responseFormat === 'text') return responseText; + + if (options.responseFormat === "text") return responseText; // The following methods may have a response depending on the server but it's not // standard (some return a plain string, other XML, etc.) and we don't check the // response anyway since we rely on the HTTP status code so return null. - if (['MKCOL', 'DELETE', 'PUT', 'MOVE'].indexOf(method) >= 0) return null; + if (["MKCOL", "DELETE", "PUT", "MOVE"].indexOf(method) >= 0) return null; const output = await loadResponseJson(); // Check that we didn't get for example an HTML page (as an error) instead of the JSON response // null responses are possible, for example for DELETE calls - if (output !== null && typeof output === 'object' && !('d:multistatus' in output)) throw newError('Not a valid WebDAV response'); + if (output !== null && typeof output === "object" && !("d:multistatus" in output)) throw newError("Not a valid WebDAV response"); return output; } - } -module.exports = WebDavApi; \ No newline at end of file +module.exports = WebDavApi; diff --git a/ReactNativeClient/lib/components/Dropdown.js b/ReactNativeClient/lib/components/Dropdown.js index 2d5eec8ed7..fcaaf75315 100644 --- a/ReactNativeClient/lib/components/Dropdown.js +++ b/ReactNativeClient/lib/components/Dropdown.js @@ -1,9 +1,8 @@ -const React = require('react'); -const { TouchableOpacity, TouchableWithoutFeedback , Dimensions, Text, Modal, View } = require('react-native'); -const { ItemList } = require('lib/components/ItemList.js'); +const React = require("react"); +const { TouchableOpacity, TouchableWithoutFeedback, Dimensions, Text, Modal, View } = require("react-native"); +const { ItemList } = require("lib/components/ItemList.js"); class Dropdown extends React.Component { - constructor() { super(); @@ -21,7 +20,7 @@ class Dropdown extends React.Component { // https://stackoverflow.com/questions/30096038/react-native-getting-the-position-of-an-element this.headerRef_.measure((fx, fy, width, height, px, py) => { this.setState({ - headerSize: { x: px, y: py, width: width, height: height } + headerSize: { x: px, y: py, width: width, height: height }, }); }); } @@ -29,12 +28,12 @@ class Dropdown extends React.Component { render() { const items = this.props.items; const itemHeight = 60; - const windowHeight = Dimensions.get('window').height - 50; + const windowHeight = Dimensions.get("window").height - 50; // Dimensions doesn't return quite the right dimensions so leave an extra gap to make // sure nothing is off screen. const listMaxHeight = windowHeight; - const listHeight = Math.min(items.length * itemHeight, listMaxHeight); //Dimensions.get('window').height - this.state.headerSize.y - this.state.headerSize.height - 50; + const listHeight = Math.min(items.length * itemHeight, listMaxHeight); //Dimensions.get('window').height - this.state.headerSize.y - this.state.headerSize.height - 50; const maxListTop = windowHeight - listHeight; const listTop = Math.min(maxListTop, this.state.headerSize.y + this.state.headerSize.height); @@ -47,12 +46,12 @@ class Dropdown extends React.Component { const itemListStyle = Object.assign({}, this.props.itemListStyle ? this.props.itemListStyle : {}, { borderWidth: 1, - borderColor: '#ccc', + borderColor: "#ccc", }); const itemWrapperStyle = Object.assign({}, this.props.itemWrapperStyle ? this.props.itemWrapperStyle : {}, { - flex:1, - justifyContent: 'center', + flex: 1, + justifyContent: "center", height: itemHeight, paddingLeft: 20, paddingRight: 10, @@ -65,8 +64,8 @@ class Dropdown extends React.Component { //paddingLeft: 20, //paddingRight: 20, flex: 1, - flexDirection: 'row', - alignItems: 'center', + flexDirection: "row", + alignItems: "center", }); const headerStyle = Object.assign({}, this.props.headerStyle ? this.props.headerStyle : {}, { @@ -78,11 +77,9 @@ class Dropdown extends React.Component { marginRight: 10, }); - const itemStyle = Object.assign({}, this.props.itemStyle ? this.props.itemStyle : {}, { - - }); + const itemStyle = Object.assign({}, this.props.itemStyle ? this.props.itemStyle : {}, {}); - let headerLabel = '...'; + let headerLabel = "..."; for (let i = 0; i < items.length; i++) { const item = items[i]; if (item.value === this.props.selectedValue) { @@ -93,34 +90,61 @@ class Dropdown extends React.Component { const closeList = () => { this.setState({ listVisible: false }); - } + }; - const itemRenderer= (item) => { + const itemRenderer = item => { return ( - { closeList(); if (this.props.onValueChange) this.props.onValueChange(item.value); }}> - {item.label} + { + closeList(); + if (this.props.onValueChange) this.props.onValueChange(item.value); + }} + > + + {item.label} + ); - } + }; return ( - - this.headerRef_ = ref} onPress={() => { - this.updateHeaderCoordinates(); - this.setState({ listVisible: true }); - }}> - {headerLabel} - {'▼'} + + (this.headerRef_ = ref)} + onPress={() => { + this.updateHeaderCoordinates(); + this.setState({ listVisible: true }); + }} + > + + {headerLabel} + + {"▼"} - { closeList(); }} > - { closeList() }}> - + { + closeList(); + }} + > + { + closeList(); + }} + > + { return itemRenderer(item) }} + itemRenderer={item => { + return itemRenderer(item); + }} /> @@ -131,4 +155,4 @@ class Dropdown extends React.Component { } } -module.exports = { Dropdown }; \ No newline at end of file +module.exports = { Dropdown }; diff --git a/ReactNativeClient/lib/components/ItemList.js b/ReactNativeClient/lib/components/ItemList.js index 0e6be70268..97a8e8b4bd 100644 --- a/ReactNativeClient/lib/components/ItemList.js +++ b/ReactNativeClient/lib/components/ItemList.js @@ -1,8 +1,7 @@ -const React = require('react'); -const { Text, TouchableHighlight, View, StyleSheet, ScrollView } = require('react-native'); +const React = require("react"); +const { Text, TouchableHighlight, View, StyleSheet, ScrollView } = require("react-native"); class ItemList extends React.Component { - constructor() { super(); @@ -77,27 +76,36 @@ class ItemList extends React.Component { const items = this.props.items; const blankItem = function(key, height) { - return - } + return ; + }; - itemComps = [blankItem('top', this.state.topItemIndex * this.props.itemHeight)]; + itemComps = [blankItem("top", this.state.topItemIndex * this.props.itemHeight)]; for (let i = this.state.topItemIndex; i <= this.state.bottomItemIndex; i++) { const itemComp = this.props.itemRenderer(items[i]); itemComps.push(itemComp); } - itemComps.push(blankItem('bottom', (items.length - this.state.bottomItemIndex - 1) * this.props.itemHeight)); + itemComps.push(blankItem("bottom", (items.length - this.state.bottomItemIndex - 1) * this.props.itemHeight)); } else { itemComps = this.props.itemComponents; } return ( - { this.onLayout(event); }} style={style} onScroll={ (event) => { this.onScroll(event) }}> - { itemComps } + { + this.onLayout(event); + }} + style={style} + onScroll={event => { + this.onScroll(event); + }} + > + {itemComps} ); } } -module.exports = { ItemList }; \ No newline at end of file +module.exports = { ItemList }; diff --git a/ReactNativeClient/lib/components/ModalDialog.js b/ReactNativeClient/lib/components/ModalDialog.js index 2ecc2c3e31..e927a42c42 100644 --- a/ReactNativeClient/lib/components/ModalDialog.js +++ b/ReactNativeClient/lib/components/ModalDialog.js @@ -1,10 +1,9 @@ -const React = require('react'); -const { Text, Modal, View, StyleSheet, Button } = require('react-native'); -const { themeStyle } = require('lib/components/global-style.js'); -const { _ } = require('lib/locale'); +const React = require("react"); +const { Text, Modal, View, StyleSheet, Button } = require("react-native"); +const { themeStyle } = require("lib/components/global-style.js"); +const { _ } = require("lib/locale"); class ModalDialog extends React.Component { - constructor() { super(); this.styles_ = {}; @@ -20,20 +19,20 @@ class ModalDialog extends React.Component { let styles = { modalWrapper: { flex: 1, - justifyContent: 'center', + justifyContent: "center", }, modalContentWrapper: { - flex:1, - flexDirection: 'column', + flex: 1, + flexDirection: "column", backgroundColor: theme.backgroundColor, borderWidth: 1, - borderColor:theme.dividerColor, + borderColor: theme.dividerColor, margin: 20, padding: 10, }, modalContentWrapper2: { paddingTop: 10, - flex:1, + flex: 1, }, title: { borderBottomWidth: 1, @@ -41,7 +40,7 @@ class ModalDialog extends React.Component { paddingBottom: 10, }, buttonRow: { - flexDirection: 'row', + flexDirection: "row", borderTopWidth: 1, borderTopColor: theme.dividerColor, paddingTop: 10, @@ -57,18 +56,16 @@ class ModalDialog extends React.Component { return ( - { }} > + {}}> Title - - {ContentComponent} - + {ContentComponent} - - + + + + + {_("Master Key %s", mk.id.substr(0, 6))} + {_("Created: %s", time.formatMsToLocal(mk.created_time))} + + {_("Password:")} + onPasswordChange(text)} style={inputStyle} /> + {passwordOk} + + + + {_( + "Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below." + )} + + { + this.setState({ passwordPromptAnswer: text }); + }} + /> + + + + + : null; + const toggleButton = !this.state.passwordPromptShow ? ( + + ); } - } -const OneDriveLoginScreen = connect( - (state) => { - return {}; - } -)(OneDriveLoginScreenComponent) +const OneDriveLoginScreen = connect(state => { + return {}; +})(OneDriveLoginScreenComponent); -module.exports = { OneDriveLoginScreen }; \ No newline at end of file +module.exports = { OneDriveLoginScreen }; diff --git a/ReactNativeClient/lib/components/screens/search.js b/ReactNativeClient/lib/components/screens/search.js index 6ace75715c..4b9febe0a4 100644 --- a/ReactNativeClient/lib/components/screens/search.js +++ b/ReactNativeClient/lib/components/screens/search.js @@ -1,18 +1,18 @@ -const React = require('react'); const Component = React.Component; -const { ListView, StyleSheet, View, TextInput, FlatList, TouchableHighlight } = require('react-native'); -const { connect } = require('react-redux'); -const { ScreenHeader } = require('lib/components/screen-header.js'); -const Icon = require('react-native-vector-icons/Ionicons').default; -const { _ } = require('lib/locale.js'); -const Note = require('lib/models/Note.js'); -const { NoteItem } = require('lib/components/note-item.js'); -const { BaseScreenComponent } = require('lib/components/base-screen.js'); -const { themeStyle } = require('lib/components/global-style.js'); -const { dialogs } = require('lib/dialogs.js'); -const DialogBox = require('react-native-dialogbox').default; +const React = require("react"); +const Component = React.Component; +const { ListView, StyleSheet, View, TextInput, FlatList, TouchableHighlight } = require("react-native"); +const { connect } = require("react-redux"); +const { ScreenHeader } = require("lib/components/screen-header.js"); +const Icon = require("react-native-vector-icons/Ionicons").default; +const { _ } = require("lib/locale.js"); +const Note = require("lib/models/Note.js"); +const { NoteItem } = require("lib/components/note-item.js"); +const { BaseScreenComponent } = require("lib/components/base-screen.js"); +const { themeStyle } = require("lib/components/global-style.js"); +const { dialogs } = require("lib/dialogs.js"); +const DialogBox = require("react-native-dialogbox").default; class SearchScreenComponent extends BaseScreenComponent { - static navigationOptions(options) { return { header: null }; } @@ -20,7 +20,7 @@ class SearchScreenComponent extends BaseScreenComponent { constructor() { super(); this.state = { - query: '', + query: "", notes: [], }; this.isMounted_ = false; @@ -38,12 +38,12 @@ class SearchScreenComponent extends BaseScreenComponent { flex: 1, }, searchContainer: { - flexDirection: 'row', - alignItems: 'center', + flexDirection: "row", + alignItems: "center", borderWidth: 1, borderColor: theme.dividerColor, - } - } + }, + }; styles.searchTextInput = Object.assign({}, theme.lineInput); styles.searchTextInput.paddingLeft = theme.marginLeft; @@ -72,7 +72,7 @@ class SearchScreenComponent extends BaseScreenComponent { componentWillReceiveProps(newProps) { let newState = {}; - if ('query' in newProps) newState.query = newProps.query; + if ("query" in newProps) newState.query = newProps.query; if (Object.getOwnPropertyNames(newState).length) { this.setState(newState); @@ -85,15 +85,15 @@ class SearchScreenComponent extends BaseScreenComponent { if (!query) return; this.props.dispatch({ - type: 'SEARCH_QUERY', + type: "SEARCH_QUERY", query: query, }); } clearButton_press() { this.props.dispatch({ - type: 'SEARCH_QUERY', - query: '', + type: "SEARCH_QUERY", + query: "", }); } @@ -102,10 +102,10 @@ class SearchScreenComponent extends BaseScreenComponent { query = query === null ? this.state.query.trim : query.trim(); - let notes = [] + let notes = []; if (query) { - let p = query.split(' '); + let p = query.split(" "); let temp = []; for (let i = 0; i < p.length; i++) { let t = p[i].trim(); @@ -114,7 +114,7 @@ class SearchScreenComponent extends BaseScreenComponent { } notes = await Note.previews(null, { - anywherePattern: '*' + temp.join('*') + '*', + anywherePattern: "*" + temp.join("*") + "*", }); } @@ -135,7 +135,7 @@ class SearchScreenComponent extends BaseScreenComponent { let rootStyle = { flex: 1, backgroundColor: theme.backgroundColor, - } + }; if (!this.props.visible) { rootStyle.flex = 0.001; // This is a bit of a hack but it seems to work fine - it makes the component invisible but without unmounting it @@ -146,7 +146,7 @@ class SearchScreenComponent extends BaseScreenComponent { return ( { this.searchTextInput_submit() }} - onChangeText={(text) => this.searchTextInput_changeText(text) } + underlineColorAndroid="#ffffff00" + onSubmitEditing={() => { + this.searchTextInput_submit(); + }} + onChangeText={text => this.searchTextInput_changeText(text)} value={this.state.query} /> - this.clearButton_press() }> - + this.clearButton_press()}> + - item.id} - renderItem={(event) => } - /> + item.id} renderItem={event => } /> - { this.dialogbox = dialogbox }}/> + { + this.dialogbox = dialogbox; + }} + /> ); } - } -const SearchScreen = connect( - (state) => { - return { - query: state.searchQuery, - theme: state.settings.theme, - noteSelectionEnabled: state.noteSelectionEnabled, - }; - } -)(SearchScreenComponent) +const SearchScreen = connect(state => { + return { + query: state.searchQuery, + theme: state.settings.theme, + noteSelectionEnabled: state.noteSelectionEnabled, + }; +})(SearchScreenComponent); -module.exports = { SearchScreen }; \ No newline at end of file +module.exports = { SearchScreen }; diff --git a/ReactNativeClient/lib/components/screens/status.js b/ReactNativeClient/lib/components/screens/status.js index 8ce07e0b9a..9c38d63d90 100644 --- a/ReactNativeClient/lib/components/screens/status.js +++ b/ReactNativeClient/lib/components/screens/status.js @@ -1,19 +1,20 @@ -const React = require('react'); const Component = React.Component; -const { ListView, StyleSheet, View, Text, Button, FlatList } = require('react-native'); -const Setting = require('lib/models/Setting.js'); -const { connect } = require('react-redux'); -const { Log } = require('lib/log.js'); -const { reg } = require('lib/registry.js'); -const { ScreenHeader } = require('lib/components/screen-header.js'); -const { time } = require('lib/time-utils'); -const { Logger } = require('lib/logger.js'); -const BaseItem = require('lib/models/BaseItem.js'); -const { Database } = require('lib/database.js'); -const Folder = require('lib/models/Folder.js'); -const { ReportService } = require('lib/services/report.js'); -const { _ } = require('lib/locale.js'); -const { BaseScreenComponent } = require('lib/components/base-screen.js'); -const { globalStyle, themeStyle } = require('lib/components/global-style.js'); +const React = require("react"); +const Component = React.Component; +const { ListView, StyleSheet, View, Text, Button, FlatList } = require("react-native"); +const Setting = require("lib/models/Setting.js"); +const { connect } = require("react-redux"); +const { Log } = require("lib/log.js"); +const { reg } = require("lib/registry.js"); +const { ScreenHeader } = require("lib/components/screen-header.js"); +const { time } = require("lib/time-utils"); +const { Logger } = require("lib/logger.js"); +const BaseItem = require("lib/models/BaseItem.js"); +const { Database } = require("lib/database.js"); +const Folder = require("lib/models/Folder.js"); +const { ReportService } = require("lib/services/report.js"); +const { _ } = require("lib/locale.js"); +const { BaseScreenComponent } = require("lib/components/base-screen.js"); +const { globalStyle, themeStyle } = require("lib/components/global-style.js"); const styles = StyleSheet.create({ body: { @@ -23,7 +24,6 @@ const styles = StyleSheet.create({ }); class StatusScreenComponent extends BaseScreenComponent { - static navigationOptions(options) { return { header: null }; } @@ -41,7 +41,7 @@ class StatusScreenComponent extends BaseScreenComponent { async resfreshScreen() { let service = new ReportService(); - let report = await service.status(Setting.value('sync.target')); + let report = await service.status(Setting.value("sync.target")); this.setState({ report: report }); } @@ -66,57 +66,54 @@ class StatusScreenComponent extends BaseScreenComponent { let section = report[i]; let style = Object.assign({}, baseStyle); - style.fontWeight = 'bold'; + style.fontWeight = "bold"; if (i > 0) style.paddingTop = 20; - lines.push({ key: 'section_' + i, isSection: true, text: section.title }); + lines.push({ key: "section_" + i, isSection: true, text: section.title }); for (let n in section.body) { if (!section.body.hasOwnProperty(n)) continue; style = Object.assign({}, baseStyle); - lines.push({ key: 'item_' + i + '_' + n, text: section.body[n] }); + lines.push({ key: "item_" + i + "_" + n, text: section.body[n] }); } - lines.push({ key: 'divider2_' + i, isDivider: true }); + lines.push({ key: "divider2_" + i, isDivider: true }); } - return ( { - let style = Object.assign({}, baseStyle); - if (item.isSection === true) { - style.fontWeight = 'bold'; - style.marginBottom = 5; - } - if (item.isDivider) { - return (); - } else { - return ({item.text}); - } - }} - />); + return ( + { + let style = Object.assign({}, baseStyle); + if (item.isSection === true) { + style.fontWeight = "bold"; + style.marginBottom = 5; + } + if (item.isDivider) { + return ; + } else { + return {item.text}; + } + }} + /> + ); } let body = renderBody(this.state.report); return ( - - - { body } - - - - @@ -75,4 +78,4 @@ class ModalDialog extends React.Component { } } -module.exports = ModalDialog; +module.exports = ModalDialog; \ No newline at end of file diff --git a/ReactNativeClient/lib/components/action-button.js b/ReactNativeClient/lib/components/action-button.js index ab8c1a0727..752793a158 100644 --- a/ReactNativeClient/lib/components/action-button.js +++ b/ReactNativeClient/lib/components/action-button.js @@ -1,25 +1,25 @@ -const React = require("react"); -const Component = React.Component; -const { StyleSheet, Text } = require("react-native"); -const Icon = require("react-native-vector-icons/Ionicons").default; -const ReactNativeActionButton = require("react-native-action-button").default; -const { connect } = require("react-redux"); -const { globalStyle } = require("lib/components/global-style.js"); -const { Log } = require("lib/log.js"); -const { _ } = require("lib/locale.js"); +const React = require('react'); const Component = React.Component; +const { StyleSheet, Text } = require('react-native'); +const Icon = require('react-native-vector-icons/Ionicons').default; +const ReactNativeActionButton = require('react-native-action-button').default; +const { connect } = require('react-redux'); +const { globalStyle } = require('lib/components/global-style.js'); +const { Log } = require('lib/log.js'); +const { _ } = require('lib/locale.js'); const styles = StyleSheet.create({ actionButtonIcon: { fontSize: 20, height: 22, - color: "white", + color: 'white', }, itemText: { // fontSize: 14, // Cannot currently set fontsize since the bow surrounding the label has a fixed size - }, + } }); class ActionButtonComponent extends React.Component { + constructor() { super(); this.state = { @@ -28,35 +28,35 @@ class ActionButtonComponent extends React.Component { } componentWillReceiveProps(newProps) { - if ("buttonIndex" in newProps) { + if ('buttonIndex' in newProps) { this.setState({ buttonIndex: newProps.buttonIndex }); } } newTodo_press() { this.props.dispatch({ - type: "NAV_GO", - routeName: "Note", + type: 'NAV_GO', + routeName: 'Note', noteId: null, folderId: this.props.parentFolderId, - itemType: "todo", + itemType: 'todo', }); } newNote_press() { this.props.dispatch({ - type: "NAV_GO", - routeName: "Note", + type: 'NAV_GO', + routeName: 'Note', noteId: null, folderId: this.props.parentFolderId, - itemType: "note", + itemType: 'note', }); } newFolder_press() { this.props.dispatch({ - type: "NAV_GO", - routeName: "Folder", + type: 'NAV_GO', + routeName: 'Folder', folderId: null, }); } @@ -67,39 +67,33 @@ class ActionButtonComponent extends React.Component { if (this.props.addFolderNoteButtons) { if (this.props.folders.length) { buttons.push({ - title: _("New to-do"), - onPress: () => { - this.newTodo_press(); - }, - color: "#9b59b6", - icon: "md-checkbox-outline", + title: _('New to-do'), + onPress: () => { this.newTodo_press() }, + color: '#9b59b6', + icon: 'md-checkbox-outline', }); buttons.push({ - title: _("New note"), - onPress: () => { - this.newNote_press(); - }, - color: "#9b59b6", - icon: "md-document", + title: _('New note'), + onPress: () => { this.newNote_press() }, + color: '#9b59b6', + icon: 'md-document', }); } buttons.push({ - title: _("New notebook"), - onPress: () => { - this.newFolder_press(); - }, - color: "#3498db", - icon: "md-folder", + title: _('New notebook'), + onPress: () => { this.newFolder_press() }, + color: '#3498db', + icon: 'md-folder', }); } let buttonComps = []; for (let i = 0; i < buttons.length; i++) { let button = buttons[i]; - let buttonTitle = button.title ? button.title : ""; - let key = buttonTitle.replace(/\s/g, "_") + "_" + button.icon; + let buttonTitle = button.title ? button.title : ''; + let key = buttonTitle.replace(/\s/g, '_') + '_' + button.icon; buttonComps.push( @@ -108,41 +102,41 @@ class ActionButtonComponent extends React.Component { } if (!buttonComps.length && !this.props.mainButton) { - return ; + return } let mainButton = this.props.mainButton ? this.props.mainButton : {}; - let mainIcon = mainButton.icon ? : ; + let mainIcon = mainButton.icon ? : if (this.props.multiStates) { - if (!this.props.buttons || !this.props.buttons.length) throw new Error("Multi-state button requires at least one state"); - if (this.state.buttonIndex < 0 || this.state.buttonIndex >= this.props.buttons.length) throw new Error("Button index out of bounds: " + this.state.buttonIndex + "/" + this.props.buttons.length); + if (!this.props.buttons || !this.props.buttons.length) throw new Error('Multi-state button requires at least one state'); + if (this.state.buttonIndex < 0 || this.state.buttonIndex >= this.props.buttons.length) throw new Error('Button index out of bounds: ' + this.state.buttonIndex + '/' + this.props.buttons.length); let button = this.props.buttons[this.state.buttonIndex]; - let mainIcon = ; + let mainIcon = return ( { - button.onPress(); - }} + onPress={() => { button.onPress() }} /> ); } else { return ( - - {buttonComps} + + { buttonComps } ); } } } -const ActionButton = connect(state => { - return { - folders: state.folders, - locale: state.settings.locale, - }; -})(ActionButtonComponent); +const ActionButton = connect( + (state) => { + return { + folders: state.folders, + locale: state.settings.locale, + }; + } +)(ActionButtonComponent) -module.exports = { ActionButton }; +module.exports = { ActionButton }; \ No newline at end of file diff --git a/ReactNativeClient/lib/components/app-nav.js b/ReactNativeClient/lib/components/app-nav.js index 67feba3fcb..f6028fd0e4 100644 --- a/ReactNativeClient/lib/components/app-nav.js +++ b/ReactNativeClient/lib/components/app-nav.js @@ -1,25 +1,25 @@ -const React = require("react"); -const Component = React.Component; -const { connect } = require("react-redux"); -const { NotesScreen } = require("lib/components/screens/notes.js"); -const { SearchScreen } = require("lib/components/screens/search.js"); -const { KeyboardAvoidingView, Keyboard, Platform, View } = require("react-native"); -const { _ } = require("lib/locale.js"); -const { themeStyle } = require("lib/components/global-style.js"); +const React = require('react'); const Component = React.Component; +const { connect } = require('react-redux'); +const { NotesScreen } = require('lib/components/screens/notes.js'); +const { SearchScreen } = require('lib/components/screens/search.js'); +const { KeyboardAvoidingView, Keyboard, Platform, View } = require('react-native'); +const { _ } = require('lib/locale.js'); +const { themeStyle } = require('lib/components/global-style.js'); class AppNavComponent extends Component { + constructor() { super(); this.previousRouteName_ = null; this.state = { autoCompletionBarExtraHeight: 0, // Extra padding for the auto completion bar at the top of the keyboard - }; + } } componentWillMount() { - if (Platform.OS === "ios") { - this.keyboardDidShowListener = Keyboard.addListener("keyboardDidShow", this.keyboardDidShow.bind(this)); - this.keyboardDidHideListener = Keyboard.addListener("keyboardDidHide", this.keyboardDidHide.bind(this)); + if (Platform.OS === 'ios') { + this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this.keyboardDidShow.bind(this)); + this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this.keyboardDidHide.bind(this)); } } @@ -30,16 +30,16 @@ class AppNavComponent extends Component { this.keyboardDidHideListener = null; } - keyboardDidShow() { - this.setState({ autoCompletionBarExtraHeight: 30 }); + keyboardDidShow () { + this.setState({ autoCompletionBarExtraHeight: 30 }) } - keyboardDidHide() { - this.setState({ autoCompletionBarExtraHeight: 0 }); + keyboardDidHide () { + this.setState({ autoCompletionBarExtraHeight:0 }) } render() { - if (!this.props.route) throw new Error("Route must not be null"); + if (!this.props.route) throw new Error('Route must not be null'); // Note: certain screens are kept into memory, in particular Notes and Search // so that the scroll position is not lost when the user navigate away from them. @@ -49,9 +49,9 @@ class AppNavComponent extends Component { let notesScreenVisible = false; let searchScreenVisible = false; - if (route.routeName == "Notes") { + if (route.routeName == 'Notes') { notesScreenVisible = true; - } else if (route.routeName == "Search") { + } else if (route.routeName == 'Search') { searchScreenVisible = true; } else { Screen = this.props.screens[route.routeName].screen; @@ -60,30 +60,33 @@ class AppNavComponent extends Component { // Keep the search screen loaded if the user is viewing a note from that search screen // so that if the back button is pressed, the screen is still loaded. However, unload // it if navigating away. - let searchScreenLoaded = searchScreenVisible || (this.previousRouteName_ == "Search" && route.routeName == "Note"); + let searchScreenLoaded = searchScreenVisible || (this.previousRouteName_ == 'Search' && route.routeName == 'Note'); this.previousRouteName_ = route.routeName; const theme = themeStyle(this.props.theme); - const style = { flex: 1, backgroundColor: theme.backgroundColor }; + const style = { flex: 1, backgroundColor: theme.backgroundColor } return ( - + - {searchScreenLoaded && } - {!notesScreenVisible && !searchScreenVisible && } + { searchScreenLoaded && } + { (!notesScreenVisible && !searchScreenVisible) && } ); } + } -const AppNav = connect(state => { - return { - route: state.route, - theme: state.settings.theme, - }; -})(AppNavComponent); +const AppNav = connect( + (state) => { + return { + route: state.route, + theme: state.settings.theme, + }; + } +)(AppNavComponent) -module.exports = { AppNav }; +module.exports = { AppNav }; \ No newline at end of file diff --git a/ReactNativeClient/lib/components/base-screen.js b/ReactNativeClient/lib/components/base-screen.js index 16d1462725..86d94a8a91 100644 --- a/ReactNativeClient/lib/components/base-screen.js +++ b/ReactNativeClient/lib/components/base-screen.js @@ -1,7 +1,6 @@ -const React = require("react"); -const Component = React.Component; -const { StyleSheet } = require("react-native"); -const { globalStyle, themeStyle } = require("lib/components/global-style.js"); +const React = require('react'); const Component = React.Component; +const { StyleSheet } = require('react-native'); +const { globalStyle, themeStyle } = require('lib/components/global-style.js'); const styleObject_ = { screen: { @@ -15,6 +14,7 @@ const styles_ = StyleSheet.create(styleObject_); let rootStyles_ = {}; class BaseScreenComponent extends React.Component { + styles() { return styles_; } @@ -34,6 +34,7 @@ class BaseScreenComponent extends React.Component { }); return rootStyles_[themeId]; } + } -module.exports = { BaseScreenComponent }; +module.exports = { BaseScreenComponent }; \ No newline at end of file diff --git a/ReactNativeClient/lib/components/checkbox.js b/ReactNativeClient/lib/components/checkbox.js index 5eabf5bb3c..78bfdb6273 100644 --- a/ReactNativeClient/lib/components/checkbox.js +++ b/ReactNativeClient/lib/components/checkbox.js @@ -1,7 +1,6 @@ -const React = require("react"); -const Component = React.Component; -const { StyleSheet, View, TouchableHighlight } = require("react-native"); -const Icon = require("react-native-vector-icons/Ionicons").default; +const React = require('react'); const Component = React.Component; +const { StyleSheet, View, TouchableHighlight } = require('react-native'); +const Icon = require('react-native-vector-icons/Ionicons').default; const styles = { checkboxIcon: { @@ -12,11 +11,12 @@ const styles = { }; class Checkbox extends Component { + constructor() { super(); this.state = { checked: false, - }; + } } componentWillMount() { @@ -24,7 +24,7 @@ class Checkbox extends Component { } componentWillReceiveProps(newProps) { - if ("checked" in newProps) { + if ('checked' in newProps) { this.setState({ checked: newProps.checked }); } } @@ -36,11 +36,11 @@ class Checkbox extends Component { } render() { - const iconName = this.state.checked ? "md-checkbox-outline" : "md-square-outline"; + const iconName = this.state.checked ? 'md-checkbox-outline' : 'md-square-outline'; let style = this.props.style ? Object.assign({}, this.props.style) : {}; - style.justifyContent = "center"; - style.alignItems = "center"; + style.justifyContent = 'center'; + style.alignItems = 'center'; let checkboxIconStyle = Object.assign({}, styles.checkboxIcon); if (style.color) checkboxIconStyle.color = style.color; @@ -51,20 +51,21 @@ class Checkbox extends Component { if (style.paddingRight) checkboxIconStyle.marginRight = style.paddingRight; const thStyle = { - justifyContent: "center", - alignItems: "center", + justifyContent: 'center', + alignItems: 'center', }; - if (style && style.display === "none") return ; + if (style && style.display === 'none') return //if (style.display) thStyle.display = style.display; return ( this.onPress()} style={thStyle}> - + ); } + } -module.exports = { Checkbox }; +module.exports = { Checkbox }; \ No newline at end of file diff --git a/ReactNativeClient/lib/components/global-style.js b/ReactNativeClient/lib/components/global-style.js index b5469011fa..c407c99b5e 100644 --- a/ReactNativeClient/lib/components/global-style.js +++ b/ReactNativeClient/lib/components/global-style.js @@ -1,4 +1,4 @@ -const Setting = require("lib/models/Setting.js"); +const Setting = require('lib/models/Setting.js'); const globalStyle = { fontSize: 16, @@ -12,7 +12,7 @@ const globalStyle = { colorFaded: "#777777", // For less important text fontSizeSmaller: 14, dividerColor: "#dddddd", - selectedColor: "#e5e5e5", + selectedColor: '#e5e5e5', disabledOpacity: 0.2, raisedBackgroundColor: "#0080EF", @@ -22,19 +22,19 @@ const globalStyle = { warningBackgroundColor: "#FFD08D", // For WebView - must correspond to the properties above - htmlFontSize: "16px", - htmlColor: "black", // Note: CSS in WebView component only supports named colors or rgb() notation - htmlBackgroundColor: "white", - htmlDividerColor: "Gainsboro", - htmlLinkColor: "blue", - htmlLineHeight: "20px", + htmlFontSize: '16px', + htmlColor: 'black', // Note: CSS in WebView component only supports named colors or rgb() notation + htmlBackgroundColor: 'white', + htmlDividerColor: 'Gainsboro', + htmlLinkColor: 'blue', + htmlLineHeight: '20px', }; globalStyle.marginRight = globalStyle.margin; globalStyle.marginLeft = globalStyle.margin; globalStyle.marginTop = globalStyle.margin; globalStyle.marginBottom = globalStyle.margin; -globalStyle.htmlMarginLeft = (globalStyle.marginLeft / 10 * 0.6).toFixed(2) + "em"; +globalStyle.htmlMarginLeft = ((globalStyle.marginLeft / 10) * 0.6).toFixed(2) + 'em'; globalStyle.icon = { color: globalStyle.color, @@ -54,22 +54,22 @@ function themeStyle(theme) { let output = Object.assign({}, globalStyle); if (theme == Setting.THEME_LIGHT) return output; - output.backgroundColor = "#1D2024"; - output.color = "#dddddd"; - output.colorFaded = "#777777"; - output.dividerColor = "#555555"; - output.selectedColor = "#333333"; + output.backgroundColor = '#1D2024'; + output.color = '#dddddd'; + output.colorFaded = '#777777'; + output.dividerColor = '#555555'; + output.selectedColor = '#333333'; output.raisedBackgroundColor = "#0F2051"; output.raisedColor = "#788BC3"; output.raisedHighlightedColor = "#ffffff"; - output.htmlColor = "rgb(220,220,220)"; - output.htmlBackgroundColor = "rgb(29,32,36)"; - output.htmlLinkColor = "rgb(166,166,255)"; + output.htmlColor = 'rgb(220,220,220)'; + output.htmlBackgroundColor = 'rgb(29,32,36)'; + output.htmlLinkColor = 'rgb(166,166,255)'; themeCache_[theme] = output; return themeCache_[theme]; } -module.exports = { globalStyle, themeStyle }; +module.exports = { globalStyle, themeStyle }; \ No newline at end of file diff --git a/ReactNativeClient/lib/components/note-body-viewer.js b/ReactNativeClient/lib/components/note-body-viewer.js index dd7a62f579..aae7e3bb5f 100644 --- a/ReactNativeClient/lib/components/note-body-viewer.js +++ b/ReactNativeClient/lib/components/note-body-viewer.js @@ -1,19 +1,19 @@ -const React = require("react"); -const Component = React.Component; -const { Platform, WebView, View, Linking } = require("react-native"); -const { globalStyle } = require("lib/components/global-style.js"); -const Resource = require("lib/models/Resource.js"); -const Setting = require("lib/models/Setting.js"); -const { reg } = require("lib/registry.js"); -const MdToHtml = require("lib/MdToHtml.js"); +const React = require('react'); const Component = React.Component; +const { Platform, WebView, View, Linking } = require('react-native'); +const { globalStyle } = require('lib/components/global-style.js'); +const Resource = require('lib/models/Resource.js'); +const Setting = require('lib/models/Setting.js'); +const { reg } = require('lib/registry.js'); +const MdToHtml = require('lib/MdToHtml.js'); class NoteBodyViewer extends Component { + constructor() { super(); this.state = { resources: {}, webViewLoaded: false, - }; + } this.isMounted_ = false; } @@ -48,31 +48,28 @@ class NoteBodyViewer extends Component { onResourceLoaded: () => { this.forceUpdate(); }, - paddingBottom: "3.8em", // Extra bottom padding to make it possible to scroll past the action button (so that it doesn't overlap the text) + paddingBottom: '3.8em', // Extra bottom padding to make it possible to scroll past the action button (so that it doesn't overlap the text) }; - let html = this.mdToHtml_.render(note ? note.body : "", this.props.webViewStyle, mdOptions); + let html = this.mdToHtml_.render(note ? note.body : '', this.props.webViewStyle, mdOptions); - html = - ` + html = ` - ` + - html + - ` + ` + html + ` `; - let webViewStyle = {}; + let webViewStyle = {} // On iOS, the onLoadEnd() event is never fired so always // display the webview (don't do the little trick // to avoid the white flash). - if (Platform.OS !== "ios") { + if (Platform.OS !== 'ios') { webViewStyle.opacity = this.state.webViewLoaded ? 1 : 0.01; } @@ -97,24 +94,24 @@ class NoteBodyViewer extends Component { // `baseUrl` is where the images will be loaded from. So images must use a path relative to resourceDir. const source = { html: html, - baseUrl: "file://" + Setting.value("resourceDir") + "/", + baseUrl: 'file://' + Setting.value('resourceDir') + '/', }; return ( this.onLoadEnd()} - onError={e => reg.logger().error("WebView error", e)} - onMessage={event => { + onError={(e) => reg.logger().error('WebView error', e) } + onMessage={(event) => { let msg = event.nativeEvent.data; - if (msg.indexOf("checkboxclick:") === 0) { + if (msg.indexOf('checkboxclick:') === 0) { const newBody = this.mdToHtml_.handleCheckboxClick(msg, note.body); if (onCheckboxChange) onCheckboxChange(newBody); - } else if (msg.indexOf("bodyscroll:") === 0) { + } else if (msg.indexOf('bodyscroll:') === 0) { //msg = msg.split(':'); //this.bodyScrollTop_ = Number(msg[1]); } else { @@ -125,6 +122,7 @@ class NoteBodyViewer extends Component { ); } + } -module.exports = { NoteBodyViewer }; +module.exports = { NoteBodyViewer }; \ No newline at end of file diff --git a/ReactNativeClient/lib/components/note-item.js b/ReactNativeClient/lib/components/note-item.js index 66b1bac2c1..f000eed12a 100644 --- a/ReactNativeClient/lib/components/note-item.js +++ b/ReactNativeClient/lib/components/note-item.js @@ -1,16 +1,16 @@ -const React = require("react"); -const Component = React.Component; -const { connect } = require("react-redux"); -const { ListView, Text, TouchableOpacity, View, StyleSheet } = require("react-native"); -const { Log } = require("lib/log.js"); -const { _ } = require("lib/locale.js"); -const { Checkbox } = require("lib/components/checkbox.js"); -const { reg } = require("lib/registry.js"); -const Note = require("lib/models/Note.js"); -const { time } = require("lib/time-utils.js"); -const { globalStyle, themeStyle } = require("lib/components/global-style.js"); +const React = require('react'); const Component = React.Component; +const { connect } = require('react-redux'); +const { ListView, Text, TouchableOpacity , View, StyleSheet } = require('react-native'); +const { Log } = require('lib/log.js'); +const { _ } = require('lib/locale.js'); +const { Checkbox } = require('lib/components/checkbox.js'); +const { reg } = require('lib/registry.js'); +const Note = require('lib/models/Note.js'); +const { time } = require('lib/time-utils.js'); +const { globalStyle, themeStyle } = require('lib/components/global-style.js'); class NoteItemComponent extends Component { + constructor() { super(); this.styles_ = {}; @@ -18,8 +18,8 @@ class NoteItemComponent extends Component { noteItem_press(noteId) { this.props.dispatch({ - type: "NAV_GO", - routeName: "Note", + type: 'NAV_GO', + routeName: 'Note', noteId: noteId, }); } @@ -32,11 +32,11 @@ class NoteItemComponent extends Component { let styles = { listItem: { - flexDirection: "row", + flexDirection: 'row', //height: 40, borderBottomWidth: 1, borderBottomColor: theme.dividerColor, - alignItems: "flex-start", + alignItems: 'flex-start', paddingLeft: theme.marginLeft, paddingRight: theme.marginRight, paddingTop: theme.itemMarginTop, @@ -69,13 +69,13 @@ class NoteItemComponent extends Component { return this.styles_[this.props.theme]; } - async todoCheckbox_change(checked) { + async todoCheckbox_change(checked) { if (!this.props.note) return; const newNote = { id: this.props.note.id, todo_completed: checked ? time.unixMs() : 0, - }; + } await Note.save(newNote); } @@ -85,13 +85,13 @@ class NoteItemComponent extends Component { if (this.props.noteSelectionEnabled) { this.props.dispatch({ - type: "NOTE_SELECTION_TOGGLE", + type: 'NOTE_SELECTION_TOGGLE', id: this.props.note.id, }); } else { this.props.dispatch({ - type: "NAV_GO", - routeName: "Note", + type: 'NAV_GO', + routeName: 'Note', noteId: this.props.note.id, }); } @@ -101,7 +101,7 @@ class NoteItemComponent extends Component { if (!this.props.note) return; this.props.dispatch({ - type: this.props.noteSelectionEnabled ? "NOTE_SELECTION_TOGGLE" : "NOTE_SELECTION_START", + type: this.props.noteSelectionEnabled ? 'NOTE_SELECTION_TOGGLE' : 'NOTE_SELECTION_START', id: this.props.note.id, }); } @@ -114,7 +114,7 @@ class NoteItemComponent extends Component { const theme = themeStyle(this.props.theme); // IOS: display: none crashes the app - let checkboxStyle = !isTodo ? { display: "none" } : { color: theme.color }; + let checkboxStyle = !isTodo ? { display: 'none' } : { color: theme.color }; if (isTodo) { checkboxStyle.paddingRight = 10; @@ -127,17 +127,21 @@ class NoteItemComponent extends Component { const listItemStyle = isTodo ? this.styles().listItemWithCheckbox : this.styles().listItem; const listItemTextStyle = isTodo ? this.styles().listItemTextWithCheckbox : this.styles().listItemText; - const opacityStyle = isTodo && checkboxChecked ? { opacity: 0.4 } : {}; + const opacityStyle = isTodo && checkboxChecked ? {opacity: 0.4} : {}; const isSelected = this.props.noteSelectionEnabled && this.props.selectedNoteIds.indexOf(note.id) >= 0; const selectionWrapperStyle = isSelected ? this.styles().selectionWrapperSelected : this.styles().selectionWrapper; return ( - this.onPress()} onLongPress={() => this.onLongPress()} activeOpacity={0.5}> - - - - this.todoCheckbox_change(checked)} /> + this.onPress()} onLongPress={() => this.onLongPress() } activeOpacity={0.5}> + + + + this.todoCheckbox_change(checked)} + /> {Note.displayTitle(note)} @@ -145,14 +149,17 @@ class NoteItemComponent extends Component { ); } + } -const NoteItem = connect(state => { - return { - theme: state.settings.theme, - noteSelectionEnabled: state.noteSelectionEnabled, - selectedNoteIds: state.selectedNoteIds, - }; -})(NoteItemComponent); +const NoteItem = connect( + (state) => { + return { + theme: state.settings.theme, + noteSelectionEnabled: state.noteSelectionEnabled, + selectedNoteIds: state.selectedNoteIds, + }; + } +)(NoteItemComponent) -module.exports = { NoteItem }; +module.exports = { NoteItem }; \ No newline at end of file diff --git a/ReactNativeClient/lib/components/note-list.js b/ReactNativeClient/lib/components/note-list.js index fc5c47d34a..1f668e9f30 100644 --- a/ReactNativeClient/lib/components/note-list.js +++ b/ReactNativeClient/lib/components/note-list.js @@ -1,24 +1,22 @@ -const React = require("react"); -const Component = React.Component; -const { connect } = require("react-redux"); -const { ListView, Text, TouchableHighlight, Switch, View, StyleSheet } = require("react-native"); -const { Log } = require("lib/log.js"); -const { _ } = require("lib/locale.js"); -const { Checkbox } = require("lib/components/checkbox.js"); -const { NoteItem } = require("lib/components/note-item.js"); -const { reg } = require("lib/registry.js"); -const Note = require("lib/models/Note.js"); -const Setting = require("lib/models/Setting.js"); -const { time } = require("lib/time-utils.js"); -const { themeStyle } = require("lib/components/global-style.js"); +const React = require('react'); const Component = React.Component; +const { connect } = require('react-redux'); +const { ListView, Text, TouchableHighlight, Switch, View, StyleSheet } = require('react-native'); +const { Log } = require('lib/log.js'); +const { _ } = require('lib/locale.js'); +const { Checkbox } = require('lib/components/checkbox.js'); +const { NoteItem } = require('lib/components/note-item.js'); +const { reg } = require('lib/registry.js'); +const Note = require('lib/models/Note.js'); +const Setting = require('lib/models/Setting.js'); +const { time } = require('lib/time-utils.js'); +const { themeStyle } = require('lib/components/global-style.js'); class NoteListComponent extends Component { + constructor() { super(); const ds = new ListView.DataSource({ - rowHasChanged: (r1, r2) => { - return r1 !== r2; - }, + rowHasChanged: (r1, r2) => { return r1 !== r2; } }); this.state = { dataSource: ds, @@ -52,8 +50,8 @@ class NoteListComponent extends Component { } filterNotes(notes) { - const todoFilter = "all"; //Setting.value('todoFilter'); - if (todoFilter == "all") return notes; + const todoFilter = 'all'; //Setting.value('todoFilter'); + if (todoFilter == 'all') return notes; const now = time.unixMs(); const maxInterval = 1000 * 60 * 60 * 24; @@ -63,8 +61,8 @@ class NoteListComponent extends Component { for (let i = 0; i < notes.length; i++) { const note = notes[i]; if (note.is_todo) { - if (todoFilter == "recent" && note.user_updated_time < notRecentTime && !!note.todo_completed) continue; - if (todoFilter == "nonCompleted" && !!note.todo_completed) continue; + if (todoFilter == 'recent' && note.user_updated_time < notRecentTime && !!note.todo_completed) continue; + if (todoFilter == 'nonCompleted' && !!note.todo_completed) continue; } output.push(note); } @@ -94,28 +92,30 @@ class NoteListComponent extends Component { if (this.state.dataSource.getRowCount()) { return ( (this.rootRef_ = ref)} + ref={(ref) => this.rootRef_ = ref} dataSource={this.state.dataSource} - renderRow={note => { - return ; + renderRow={(note) => { + return }} enableEmptySections={true} /> ); } else { - const noItemMessage = _("There are currently no notes. Create one by clicking on the (+) button."); - return {noItemMessage}; + const noItemMessage = _('There are currently no notes. Create one by clicking on the (+) button.'); + return {noItemMessage}; } } } -const NoteList = connect(state => { - return { - items: state.notes, - notesSource: state.notesSource, - theme: state.settings.theme, - noteSelectionEnabled: state.noteSelectionEnabled, - }; -})(NoteListComponent); +const NoteList = connect( + (state) => { + return { + items: state.notes, + notesSource: state.notesSource, + theme: state.settings.theme, + noteSelectionEnabled: state.noteSelectionEnabled, + }; + } +)(NoteListComponent) -module.exports = { NoteList }; +module.exports = { NoteList }; \ No newline at end of file diff --git a/ReactNativeClient/lib/components/screen-header.js b/ReactNativeClient/lib/components/screen-header.js index 58c9073329..af0d123a73 100644 --- a/ReactNativeClient/lib/components/screen-header.js +++ b/ReactNativeClient/lib/components/screen-header.js @@ -1,27 +1,26 @@ -const React = require("react"); -const Component = React.Component; -const { connect } = require("react-redux"); -const { Platform, View, Text, Button, StyleSheet, TouchableOpacity, Image, ScrollView, Dimensions } = require("react-native"); -const Icon = require("react-native-vector-icons/Ionicons").default; -const { Log } = require("lib/log.js"); -const { BackButtonService } = require("lib/services/back-button.js"); -const NavService = require("lib/services/NavService.js"); -const { ReportService } = require("lib/services/report.js"); -const { Menu, MenuOptions, MenuOption, MenuTrigger } = require("react-native-popup-menu"); -const { _ } = require("lib/locale.js"); -const Setting = require("lib/models/Setting.js"); -const Note = require("lib/models/Note.js"); -const Folder = require("lib/models/Folder.js"); -const { FileApi } = require("lib/file-api.js"); -const { FileApiDriverOneDrive } = require("lib/file-api-driver-onedrive.js"); -const { reg } = require("lib/registry.js"); -const { themeStyle } = require("lib/components/global-style.js"); -const { ItemList } = require("lib/components/ItemList.js"); -const { Dropdown } = require("lib/components/Dropdown.js"); -const { time } = require("lib/time-utils"); -const RNFS = require("react-native-fs"); -const { dialogs } = require("lib/dialogs.js"); -const DialogBox = require("react-native-dialogbox").default; +const React = require('react'); const Component = React.Component; +const { connect } = require('react-redux'); +const { Platform, View, Text, Button, StyleSheet, TouchableOpacity, Image, ScrollView, Dimensions } = require('react-native'); +const Icon = require('react-native-vector-icons/Ionicons').default; +const { Log } = require('lib/log.js'); +const { BackButtonService } = require('lib/services/back-button.js'); +const NavService = require('lib/services/NavService.js'); +const { ReportService } = require('lib/services/report.js'); +const { Menu, MenuOptions, MenuOption, MenuTrigger } = require('react-native-popup-menu'); +const { _ } = require('lib/locale.js'); +const Setting = require('lib/models/Setting.js'); +const Note = require('lib/models/Note.js'); +const Folder = require('lib/models/Folder.js'); +const { FileApi } = require('lib/file-api.js'); +const { FileApiDriverOneDrive } = require('lib/file-api-driver-onedrive.js'); +const { reg } = require('lib/registry.js'); +const { themeStyle } = require('lib/components/global-style.js'); +const { ItemList } = require('lib/components/ItemList.js'); +const { Dropdown } = require('lib/components/Dropdown.js'); +const { time } = require('lib/time-utils'); +const RNFS = require('react-native-fs'); +const { dialogs } = require('lib/dialogs.js'); +const DialogBox = require('react-native-dialogbox').default; // Rather than applying a padding to the whole bar, it is applied to each // individual component (button, picker, etc.) so that the touchable areas @@ -30,13 +29,14 @@ const DialogBox = require("react-native-dialogbox").default; const PADDING_V = 10; class ScreenHeaderComponent extends Component { + constructor() { super(); this.styles_ = {}; } styles() { - const themeId = Setting.value("theme"); + const themeId = Setting.value('theme'); if (this.styles_[themeId]) return this.styles_[themeId]; this.styles_ = {}; @@ -44,21 +44,21 @@ class ScreenHeaderComponent extends Component { let styleObject = { container: { - flexDirection: "column", + flexDirection: 'column', backgroundColor: theme.raisedBackgroundColor, - alignItems: "center", - shadowColor: "#000000", + alignItems: 'center', + shadowColor: '#000000', elevation: 5, - paddingTop: Platform.OS === "ios" ? 15 : 0, // Extra padding for iOS because the top icons are there + paddingTop: Platform.OS === 'ios' ? 15 : 0, // Extra padding for iOS because the top icons are there }, divider: { borderBottomWidth: 1, borderColor: theme.dividerColor, - backgroundColor: "#0000ff", + backgroundColor: "#0000ff" }, sideMenuButton: { flex: 1, - alignItems: "center", + alignItems: 'center', backgroundColor: theme.raisedBackgroundColor, paddingLeft: theme.marginLeft, paddingRight: 5, @@ -76,8 +76,8 @@ class ScreenHeaderComponent extends Component { }, saveButton: { flex: 0, - flexDirection: "row", - alignItems: "center", + flexDirection: 'row', + alignItems: 'center', padding: 10, borderWidth: 1, borderColor: theme.raisedHighlightedColor, @@ -85,9 +85,9 @@ class ScreenHeaderComponent extends Component { marginRight: 8, }, saveButtonText: { - textAlignVertical: "center", + textAlignVertical: 'center', color: theme.raisedHighlightedColor, - fontWeight: "bold", + fontWeight: 'bold', }, savedButtonIcon: { fontSize: 20, @@ -103,7 +103,7 @@ class ScreenHeaderComponent extends Component { fontSize: 25, paddingRight: theme.marginRight, color: theme.raisedColor, - fontWeight: "bold", + fontWeight: 'bold', }, contextMenu: { backgroundColor: theme.raisedBackgroundColor, @@ -113,7 +113,7 @@ class ScreenHeaderComponent extends Component { }, contextMenuItemText: { flex: 1, - textAlignVertical: "center", + textAlignVertical: 'center', paddingLeft: theme.marginLeft, paddingRight: theme.marginRight, paddingTop: theme.itemMarginTop, @@ -124,22 +124,22 @@ class ScreenHeaderComponent extends Component { }, titleText: { flex: 1, - textAlignVertical: "center", + textAlignVertical: 'center', marginLeft: 0, color: theme.raisedHighlightedColor, - fontWeight: "bold", + fontWeight: 'bold', fontSize: theme.fontSize, }, warningBox: { backgroundColor: "#ff9900", - flexDirection: "row", + flexDirection: 'row', padding: theme.marginLeft, }, }; styleObject.topIcon = Object.assign({}, theme.icon); styleObject.topIcon.flex = 1; - styleObject.topIcon.textAlignVertical = "center"; + styleObject.topIcon.textAlignVertical = 'center'; styleObject.topIcon.color = theme.raisedColor; styleObject.backButton = Object.assign({}, styleObject.iconButton); @@ -153,7 +153,7 @@ class ScreenHeaderComponent extends Component { } sideMenuButton_press() { - this.props.dispatch({ type: "SIDE_MENU_TOGGLE" }); + this.props.dispatch({ type: 'SIDE_MENU_TOGGLE' }); } async backButton_press() { @@ -161,72 +161,79 @@ class ScreenHeaderComponent extends Component { } searchButton_press() { - NavService.go("Search"); + NavService.go('Search'); } async deleteButton_press() { // Dialog needs to be displayed as a child of the parent component, otherwise // it won't be visible within the header component. - const ok = await dialogs.confirm(this.props.parentComponent, _("Delete these notes?")); + const ok = await dialogs.confirm(this.props.parentComponent, _('Delete these notes?')); if (!ok) return; const noteIds = this.props.selectedNoteIds; - this.props.dispatch({ type: "NOTE_SELECTION_END" }); + this.props.dispatch({ type: 'NOTE_SELECTION_END' }); await Note.batchDelete(noteIds); } menu_select(value) { - if (typeof value == "function") { + if (typeof(value) == 'function') { value(); } } log_press() { - NavService.go("Log"); + NavService.go('Log'); } status_press() { - NavService.go("Status"); + NavService.go('Status'); } config_press() { - NavService.go("Config"); + NavService.go('Config'); } encryptionConfig_press() { - NavService.go("EncryptionConfig"); + NavService.go('EncryptionConfig'); } warningBox_press() { - NavService.go("EncryptionConfig"); + NavService.go('EncryptionConfig'); } async debugReport_press() { const service = new ReportService(); const logItems = await reg.logger().lastEntries(null); - const logItemRows = [["Date", "Level", "Message"]]; + const logItemRows = [ + ['Date','Level','Message'] + ]; for (let i = 0; i < logItems.length; i++) { const item = logItems[i]; - logItemRows.push([time.formatMsToLocal(item.timestamp, "MM-DDTHH:mm:ss"), item.level, item.message]); + logItemRows.push([ + time.formatMsToLocal(item.timestamp, 'MM-DDTHH:mm:ss'), + item.level, + item.message + ]); } const logItemCsv = service.csvCreate(logItemRows); - const itemListCsv = await service.basicItemList({ format: "csv" }); - const filePath = RNFS.ExternalDirectoryPath + "/syncReport-" + new Date().getTime() + ".txt"; + const itemListCsv = await service.basicItemList({ format: 'csv' }); + const filePath = RNFS.ExternalDirectoryPath + '/syncReport-' + (new Date()).getTime() + '.txt'; const finalText = [logItemCsv, itemListCsv].join("\n================================================================================\n"); await RNFS.writeFile(filePath, finalText); - alert("Debug report exported to " + filePath); + alert('Debug report exported to ' + filePath); } render() { + function sideMenuButton(styles, onPress) { return ( - + ); @@ -236,7 +243,7 @@ class ScreenHeaderComponent extends Component { return ( - + ); @@ -245,11 +252,13 @@ class ScreenHeaderComponent extends Component { function saveButton(styles, onPress, disabled, show) { if (!show) return null; - const icon = disabled ? : ; + const icon = disabled ? : ; return ( - - {icon} + + + { icon } + ); } @@ -258,7 +267,7 @@ class ScreenHeaderComponent extends Component { return ( - + ); @@ -268,7 +277,7 @@ class ScreenHeaderComponent extends Component { return ( - + ); @@ -278,7 +287,7 @@ class ScreenHeaderComponent extends Component { return ( - + ); @@ -292,74 +301,68 @@ class ScreenHeaderComponent extends Component { let o = this.props.menuOptions[i]; if (o.isDivider) { - menuOptionComponents.push(); + menuOptionComponents.push(); } else { menuOptionComponents.push( - + {o.title} - - ); + ); } } if (this.props.showAdvancedOptions) { if (menuOptionComponents.length) { - menuOptionComponents.push(); + menuOptionComponents.push(); } menuOptionComponents.push( - this.log_press()} key={"menuOption_log"} style={this.styles().contextMenuItem}> - {_("Log")} - - ); + this.log_press()} key={'menuOption_log'} style={this.styles().contextMenuItem}> + {_('Log')} + ); menuOptionComponents.push( - this.status_press()} key={"menuOption_status"} style={this.styles().contextMenuItem}> - {_("Status")} - - ); + this.status_press()} key={'menuOption_status'} style={this.styles().contextMenuItem}> + {_('Status')} + ); - if (Platform.OS === "android") { + if (Platform.OS === 'android') { menuOptionComponents.push( - this.debugReport_press()} key={"menuOption_debugReport"} style={this.styles().contextMenuItem}> - {_("Export Debug Report")} - - ); - } + this.debugReport_press()} key={'menuOption_debugReport'} style={this.styles().contextMenuItem}> + {_('Export Debug Report')} + ); + } } if (menuOptionComponents.length) { - menuOptionComponents.push(); + menuOptionComponents.push(); } menuOptionComponents.push( - this.encryptionConfig_press()} key={"menuOption_encryptionConfig"} style={this.styles().contextMenuItem}> - {_("Encryption Config")} - - ); + this.encryptionConfig_press()} key={'menuOption_encryptionConfig'} style={this.styles().contextMenuItem}> + {_('Encryption Config')} + ); menuOptionComponents.push( - this.config_press()} key={"menuOption_config"} style={this.styles().contextMenuItem}> - {_("Configuration")} - - ); + this.config_press()} key={'menuOption_config'} style={this.styles().contextMenuItem}> + {_('Configuration')} + ); } else { menuOptionComponents.push( - this.deleteButton_press()} key={"menuOption_delete"} style={this.styles().contextMenuItem}> - {_("Delete")} - - ); + this.deleteButton_press()} key={'menuOption_delete'} style={this.styles().contextMenuItem}> + {_('Delete')} + ); } const createTitleComponent = () => { - const themeId = Setting.value("theme"); + const themeId = Setting.value('theme'); const theme = themeStyle(themeId); const folderPickerOptions = this.props.folderPickerOptions; if (folderPickerOptions && folderPickerOptions.enabled) { - const titlePickerItems = mustSelect => { + + const titlePickerItems = (mustSelect) => { let output = []; - if (mustSelect) output.push({ label: _("Move to notebook..."), value: null }); + if (mustSelect) output.push({ label: _('Move to notebook...'), value: null }); for (let i = 0; i < this.props.folders.length; i++) { let f = this.props.folders[i]; output.push({ label: Folder.displayTitle(f), value: f.id }); @@ -370,13 +373,13 @@ class ScreenHeaderComponent extends Component { return a.label.toLowerCase() < b.label.toLowerCase() ? -1 : +1; }); return output; - }; + } return ( 1 ? await dialogs.confirm(this.props.parentComponent, _('Move %d notes to notebook "%s"?', noteIds.length, folder.title)) : true; if (!ok) return; - this.props.dispatch({ type: "NOTE_SELECTION_END" }); + this.props.dispatch({ type: 'NOTE_SELECTION_END' }); for (let i = 0; i < noteIds.length; i++) { await Note.moveToFolder(noteIds[i], folderId); } @@ -415,14 +418,14 @@ class ScreenHeaderComponent extends Component { /> ); } else { - let title = "title" in this.props && this.props.title !== null ? this.props.title : ""; - return {title}; + let title = 'title' in this.props && this.props.title !== null ? this.props.title : ''; + return {title} } - }; + } const warningComp = this.props.showMissingMasterKeyMessage ? ( this.warningBox_press()} activeOpacity={0.8}> - {_("Press to set the decryption password.")} + {_('Press to set the decryption password.')} ) : null; @@ -432,64 +435,58 @@ class ScreenHeaderComponent extends Component { const searchButtonComp = this.props.noteSelectionEnabled ? null : searchButton(this.styles(), () => this.searchButton_press()); const deleteButtonComp = this.props.noteSelectionEnabled ? deleteButton(this.styles(), () => this.deleteButton_press()) : null; const sortButtonComp = this.props.sortButton_press ? sortButton(this.styles(), () => this.props.sortButton_press()) : null; - const windowHeight = Dimensions.get("window").height - 50; + const windowHeight = Dimensions.get('window').height - 50; const menuComp = ( - this.menu_select(value)} style={this.styles().contextMenu}> + this.menu_select(value)} style={this.styles().contextMenu}> - + - {menuOptionComponents} + + { menuOptionComponents } + ); return ( - - - {sideMenuComp} - {backButtonComp} - {saveButton( - this.styles(), - () => { - if (this.props.onSaveButtonPress) this.props.onSaveButtonPress(); - }, - this.props.saveButtonDisabled === true, - this.props.showSaveButton === true - )} - {titleComp} - {searchButtonComp} - {deleteButtonComp} - {sortButtonComp} - {menuComp} + + + { sideMenuComp } + { backButtonComp } + { saveButton(this.styles(), () => { if (this.props.onSaveButtonPress) this.props.onSaveButtonPress() }, this.props.saveButtonDisabled === true, this.props.showSaveButton === true) } + { titleComp } + { searchButtonComp } + { deleteButtonComp } + { sortButtonComp } + { menuComp } - {warningComp} - { - this.dialogbox = dialogbox; - }} - /> + { warningComp } + { this.dialogbox = dialogbox }}/> ); } + } ScreenHeaderComponent.defaultProps = { menuOptions: [], }; -const ScreenHeader = connect(state => { - return { - historyCanGoBack: state.historyCanGoBack, - locale: state.settings.locale, - folders: state.folders, - theme: state.settings.theme, - showAdvancedOptions: state.settings.showAdvancedOptions, - noteSelectionEnabled: state.noteSelectionEnabled, - selectedNoteIds: state.selectedNoteIds, - showMissingMasterKeyMessage: state.notLoadedMasterKeys.length && state.masterKeys.length, - }; -})(ScreenHeaderComponent); +const ScreenHeader = connect( + (state) => { + return { + historyCanGoBack: state.historyCanGoBack, + locale: state.settings.locale, + folders: state.folders, + theme: state.settings.theme, + showAdvancedOptions: state.settings.showAdvancedOptions, + noteSelectionEnabled: state.noteSelectionEnabled, + selectedNoteIds: state.selectedNoteIds, + showMissingMasterKeyMessage: state.notLoadedMasterKeys.length && state.masterKeys.length, + }; + } +)(ScreenHeaderComponent) -module.exports = { ScreenHeader }; +module.exports = { ScreenHeader }; \ No newline at end of file diff --git a/ReactNativeClient/lib/components/screens/config.js b/ReactNativeClient/lib/components/screens/config.js index 61026c4b10..4ea8b5ea54 100644 --- a/ReactNativeClient/lib/components/screens/config.js +++ b/ReactNativeClient/lib/components/screens/config.js @@ -1,17 +1,17 @@ -const React = require("react"); -const Component = React.Component; -const { Platform, TouchableOpacity, Linking, View, Switch, Slider, StyleSheet, Text, Button, ScrollView, TextInput } = require("react-native"); -const { connect } = require("react-redux"); -const { ScreenHeader } = require("lib/components/screen-header.js"); -const { _, setLocale } = require("lib/locale.js"); -const { BaseScreenComponent } = require("lib/components/base-screen.js"); -const { Dropdown } = require("lib/components/Dropdown.js"); -const { themeStyle } = require("lib/components/global-style.js"); -const Setting = require("lib/models/Setting.js"); -const shared = require("lib/components/shared/config-shared.js"); -const SyncTargetRegistry = require("lib/SyncTargetRegistry"); +const React = require('react'); const Component = React.Component; +const { Platform, TouchableOpacity, Linking, View, Switch, Slider, StyleSheet, Text, Button, ScrollView, TextInput } = require('react-native'); +const { connect } = require('react-redux'); +const { ScreenHeader } = require('lib/components/screen-header.js'); +const { _, setLocale } = require('lib/locale.js'); +const { BaseScreenComponent } = require('lib/components/base-screen.js'); +const { Dropdown } = require('lib/components/Dropdown.js'); +const { themeStyle } = require('lib/components/global-style.js'); +const Setting = require('lib/models/Setting.js'); +const shared = require('lib/components/shared/config-shared.js'); +const SyncTargetRegistry = require('lib/SyncTargetRegistry'); class ConfigScreenComponent extends BaseScreenComponent { + static navigationOptions(options) { return { header: null }; } @@ -24,7 +24,7 @@ class ConfigScreenComponent extends BaseScreenComponent { this.checkSyncConfig_ = async () => { await shared.checkSyncConfig(this, this.state.settings); - }; + } this.saveButton_press = () => { return shared.saveSettings(this); @@ -45,13 +45,13 @@ class ConfigScreenComponent extends BaseScreenComponent { let styles = { body: { flex: 1, - justifyContent: "flex-start", - flexDirection: "column", + justifyContent: 'flex-start', + flexDirection: 'column', }, settingContainer: { flex: 1, - flexDirection: "row", - alignItems: "center", + flexDirection: 'row', + alignItems: 'center', borderBottomWidth: 1, borderBottomColor: theme.dividerColor, paddingTop: theme.marginTop, @@ -60,7 +60,7 @@ class ConfigScreenComponent extends BaseScreenComponent { paddingRight: theme.marginRight, }, settingText: { - fontWeight: "bold", + fontWeight: 'bold', color: theme.color, fontSize: theme.fontSize, flex: 1, @@ -74,25 +74,25 @@ class ConfigScreenComponent extends BaseScreenComponent { color: theme.color, flex: 1, }, - }; + } - if (Platform.OS === "ios") { + if (Platform.OS === 'ios') { styles.settingControl.borderBottomWidth = 1; styles.settingControl.borderBottomColor = theme.dividerColor; } styles.switchSettingText = Object.assign({}, styles.settingText); - styles.switchSettingText.width = "80%"; + styles.switchSettingText.width = '80%'; styles.switchSettingContainer = Object.assign({}, styles.settingContainer); - styles.switchSettingContainer.flexDirection = "row"; - styles.switchSettingContainer.justifyContent = "space-between"; + styles.switchSettingContainer.flexDirection = 'row'; + styles.switchSettingContainer.justifyContent = 'space-between'; styles.linkText = Object.assign({}, styles.settingText); styles.linkText.borderBottomWidth = 1; styles.linkText.borderBottomColor = theme.color; styles.linkText.flex = 0; - styles.linkText.fontWeight = "normal"; + styles.linkText.fontWeight = 'normal'; styles.switchSettingControl = Object.assign({}, styles.settingControl); delete styles.switchSettingControl.color; @@ -110,7 +110,7 @@ class ConfigScreenComponent extends BaseScreenComponent { const updateSettingValue = (key, value) => { return shared.updateSettingValue(this, key, value); - }; + } const md = Setting.settingMetadata(key); @@ -126,9 +126,7 @@ class ConfigScreenComponent extends BaseScreenComponent { return ( - - {md.label()} - + {md.label()} { - updateSettingValue(key, itemValue); - }} + onValueChange={(itemValue, itemIndex) => { updateSettingValue(key, itemValue); }} /> ); } else if (md.type == Setting.TYPE_BOOL) { return ( - - {md.label()} - - updateSettingValue(key, value)} /> + {md.label()} + updateSettingValue(key, value)} /> ); } else if (md.type == Setting.TYPE_INT) { return ( - - {md.label()} - - updateSettingValue(key, value)} /> + {md.label()} + updateSettingValue(key, value)} /> ); } else if (md.type == Setting.TYPE_STRING) { return ( - - {md.label()} - - updateSettingValue(key, value)} secureTextEntry={!!md.secure} /> + {md.label()} + updateSettingValue(key, value)} secureTextEntry={!!md.secure} /> ); } else { @@ -188,91 +178,77 @@ class ConfigScreenComponent extends BaseScreenComponent { render() { const settings = this.state.settings; - const settingComps = shared.settingsToComponents(this, "mobile", settings); + const settingComps = shared.settingsToComponents(this, 'mobile', settings); - const syncTargetMd = SyncTargetRegistry.idToMetadata(settings["sync.target"]); + const syncTargetMd = SyncTargetRegistry.idToMetadata(settings['sync.target']); if (syncTargetMd.supportsConfigCheck) { const messages = shared.checkSyncConfigMessages(this); const statusComp = !messages.length ? null : ( - + {messages[0]} - {messages.length >= 1 ? ( - - {messages[1]} - - ) : null} - - ); + {messages.length >= 1 ? ({messages[1]}) : null} + ); settingComps.push( - - - ); @@ -136,45 +136,24 @@ class EncryptionConfigScreenComponent extends BaseScreenComponent { const onEnableClick = async () => { try { const password = this.state.passwordPromptAnswer; - if (!password) throw new Error(_("Password cannot be empty")); + if (!password) throw new Error(_('Password cannot be empty')); await EncryptionService.instance().generateMasterKeyAndEnableEncryption(password); this.setState({ passwordPromptShow: false }); } catch (error) { await dialogs.error(this, error.message); } - }; + } return ( - - - {_( - "Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below." - )} - - { - this.setState({ passwordPromptAnswer: text }); - }} - /> - - - - - @@ -192,7 +171,7 @@ class EncryptionConfigScreenComponent extends BaseScreenComponent { for (let i = 0; i < masterKeys.length; i++) { const mk = masterKeys[i]; - mkComps.push(this.renderMasterKey(i + 1, mk)); + mkComps.push(this.renderMasterKey(i+1, mk)); const idx = nonExistingMasterKeyIds.indexOf(mk.id); if (idx >= 0) nonExistingMasterKeyIds.splice(idx, 1); @@ -200,10 +179,7 @@ class EncryptionConfigScreenComponent extends BaseScreenComponent { const onToggleButtonClick = async () => { if (this.props.encryptionEnabled) { - const ok = await dialogs.confirm( - this, - _("Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?") - ); + const ok = await dialogs.confirm(this, _('Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?')); if (!ok) return; try { @@ -214,7 +190,7 @@ class EncryptionConfigScreenComponent extends BaseScreenComponent { } else { this.setState({ passwordPromptShow: true, - passwordPromptAnswer: "", + passwordPromptAnswer: '', }); return; } @@ -226,37 +202,26 @@ class EncryptionConfigScreenComponent extends BaseScreenComponent { const rows = []; for (let i = 0; i < nonExistingMasterKeyIds.length; i++) { const id = nonExistingMasterKeyIds[i]; - rows.push( - - {id} - - ); + rows.push({id}); } nonExistingMasterKeySection = ( - {_("Missing Master Keys")} - - {_( - "The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation." - )} - - {rows} + {_('Missing Master Keys')} + {_('The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.')} + {rows} ); } const passwordPromptComp = this.state.passwordPromptShow ? this.passwordPromptComponent() : null; - const toggleButton = !this.state.passwordPromptShow ? ( - - : null; return ( - + + {/* Important: This is a *beta* feature. It has been extensively tested and is already in use by some users, but it is possible that some bugs remain. If you wish to you use it, it is recommended that you keep a backup of your data. The simplest way is to regularly backup your notes from the desktop or terminal application. @@ -264,34 +229,33 @@ class EncryptionConfigScreenComponent extends BaseScreenComponent { { Linking.openURL('http://joplin.cozic.net/help/e2ee.html') }}>http://joplin.cozic.net/help/e2ee.html */} - {_("Status")} - {_("Encryption is: %s", this.props.encryptionEnabled ? _("Enabled") : _("Disabled"))} + {_('Status')} + {_('Encryption is: %s', this.props.encryptionEnabled ? _('Enabled') : _('Disabled'))} {decryptedItemsInfo} {toggleButton} {passwordPromptComp} {mkComps} {nonExistingMasterKeySection} - + - { - this.dialogbox = dialogbox; - }} - /> + { this.dialogbox = dialogbox }}/> ); } + } -const EncryptionConfigScreen = connect(state => { - return { - theme: state.settings.theme, - masterKeys: state.masterKeys, - passwords: state.settings["encryption.passwordCache"], - encryptionEnabled: state.settings["encryption.enabled"], - activeMasterKeyId: state.settings["encryption.activeMasterKeyId"], - notLoadedMasterKeys: state.notLoadedMasterKeys, - }; -})(EncryptionConfigScreenComponent); +const EncryptionConfigScreen = connect( + (state) => { + return { + theme: state.settings.theme, + masterKeys: state.masterKeys, + passwords: state.settings['encryption.passwordCache'], + encryptionEnabled: state.settings['encryption.enabled'], + activeMasterKeyId: state.settings['encryption.activeMasterKeyId'], + notLoadedMasterKeys: state.notLoadedMasterKeys, + }; + } +)(EncryptionConfigScreenComponent) -module.exports = { EncryptionConfigScreen }; +module.exports = { EncryptionConfigScreen }; \ No newline at end of file diff --git a/ReactNativeClient/lib/components/screens/folder.js b/ReactNativeClient/lib/components/screens/folder.js index 09db8dc071..288f4f4a91 100644 --- a/ReactNativeClient/lib/components/screens/folder.js +++ b/ReactNativeClient/lib/components/screens/folder.js @@ -1,19 +1,19 @@ -const React = require("react"); -const Component = React.Component; -const { View, Button, TextInput, StyleSheet } = require("react-native"); -const { connect } = require("react-redux"); -const { Log } = require("lib/log.js"); -const { ActionButton } = require("lib/components/action-button.js"); -const Folder = require("lib/models/Folder.js"); -const BaseModel = require("lib/BaseModel.js"); -const { ScreenHeader } = require("lib/components/screen-header.js"); -const { reg } = require("lib/registry.js"); -const { BaseScreenComponent } = require("lib/components/base-screen.js"); -const { dialogs } = require("lib/dialogs.js"); -const { themeStyle } = require("lib/components/global-style.js"); -const { _ } = require("lib/locale.js"); +const React = require('react'); const Component = React.Component; +const { View, Button, TextInput, StyleSheet } = require('react-native'); +const { connect } = require('react-redux'); +const { Log } = require('lib/log.js'); +const { ActionButton } = require('lib/components/action-button.js'); +const Folder = require('lib/models/Folder.js'); +const BaseModel = require('lib/BaseModel.js'); +const { ScreenHeader } = require('lib/components/screen-header.js'); +const { reg } = require('lib/registry.js'); +const { BaseScreenComponent } = require('lib/components/base-screen.js'); +const { dialogs } = require('lib/dialogs.js'); +const { themeStyle } = require('lib/components/global-style.js'); +const { _ } = require('lib/locale.js'); class FolderScreenComponent extends BaseScreenComponent { + static navigationOptions(options) { return { header: null }; } @@ -52,7 +52,7 @@ class FolderScreenComponent extends BaseScreenComponent { lastSavedFolder: Object.assign({}, folder), }); } else { - Folder.load(this.props.folderId).then(folder => { + Folder.load(this.props.folderId).then((folder) => { this.setState({ folder: folder, lastSavedFolder: Object.assign({}, folder), @@ -72,12 +72,12 @@ class FolderScreenComponent extends BaseScreenComponent { this.setState((prevState, props) => { let folder = Object.assign({}, prevState.folder); folder[propName] = propValue; - return { folder: folder }; + return { folder: folder } }); } title_changeText(text) { - this.folderComponent_change("title", text); + this.folderComponent_change('title', text); } async saveFolderButton_press() { @@ -86,7 +86,7 @@ class FolderScreenComponent extends BaseScreenComponent { try { folder = await Folder.save(folder, { userSideValidation: true }); } catch (error) { - dialogs.error(this, _("The notebook could not be saved: %s", error.message)); + dialogs.error(this, _('The notebook could not be saved: %s', error.message)); return; } @@ -96,8 +96,8 @@ class FolderScreenComponent extends BaseScreenComponent { }); this.props.dispatch({ - type: "NAV_GO", - routeName: "Notes", + type: 'NAV_GO', + routeName: 'Notes', folderId: folder.id, }); } @@ -107,23 +107,27 @@ class FolderScreenComponent extends BaseScreenComponent { return ( - this.saveFolderButton_press()} /> - this.title_changeText(text)} /> - { - this.dialogbox = dialogbox; - }} + this.saveFolderButton_press()} /> + this.title_changeText(text)} /> + { this.dialogbox = dialogbox }}/> ); } + } -const FolderScreen = connect(state => { - return { - folderId: state.selectedFolderId, - theme: state.settings.theme, - }; -})(FolderScreenComponent); +const FolderScreen = connect( + (state) => { + return { + folderId: state.selectedFolderId, + theme: state.settings.theme, + }; + } +)(FolderScreenComponent) -module.exports = { FolderScreen }; +module.exports = { FolderScreen }; \ No newline at end of file diff --git a/ReactNativeClient/lib/components/screens/log.js b/ReactNativeClient/lib/components/screens/log.js index d412b832b1..cf737e1468 100644 --- a/ReactNativeClient/lib/components/screens/log.js +++ b/ReactNativeClient/lib/components/screens/log.js @@ -1,17 +1,17 @@ -const React = require("react"); -const Component = React.Component; -const { ListView, View, Text, Button, StyleSheet, Platform } = require("react-native"); -const { connect } = require("react-redux"); -const { Log } = require("lib/log.js"); -const { reg } = require("lib/registry.js"); -const { ScreenHeader } = require("lib/components/screen-header.js"); -const { time } = require("lib/time-utils"); -const { themeStyle } = require("lib/components/global-style.js"); -const { Logger } = require("lib/logger.js"); -const { BaseScreenComponent } = require("lib/components/base-screen.js"); -const { _ } = require("lib/locale.js"); +const React = require('react'); const Component = React.Component; +const { ListView, View, Text, Button, StyleSheet, Platform } = require('react-native'); +const { connect } = require('react-redux'); +const { Log } = require('lib/log.js'); +const { reg } = require('lib/registry.js'); +const { ScreenHeader } = require('lib/components/screen-header.js'); +const { time } = require('lib/time-utils'); +const { themeStyle } = require('lib/components/global-style.js'); +const { Logger } = require('lib/logger.js'); +const { BaseScreenComponent } = require('lib/components/base-screen.js'); +const { _ } = require('lib/locale.js'); class LogScreenComponent extends BaseScreenComponent { + static navigationOptions(options) { return { header: null }; } @@ -19,9 +19,7 @@ class LogScreenComponent extends BaseScreenComponent { constructor() { super(); const ds = new ListView.DataSource({ - rowHasChanged: (r1, r2) => { - return r1 !== r2; - }, + rowHasChanged: (r1, r2) => { return r1 !== r2; } }); this.state = { dataSource: ds, @@ -38,21 +36,20 @@ class LogScreenComponent extends BaseScreenComponent { let styles = { row: { - flexDirection: "row", + flexDirection: 'row', paddingLeft: 1, paddingRight: 1, - paddingTop: 0, - paddingBottom: 0, + paddingTop:0, + paddingBottom:0, }, rowText: { fontSize: 10, - color: theme.color, + color: theme.color, }, }; - if (Platform.OS !== "ios") { - // Crashes on iOS with error "Unrecognized font family 'monospace'" - styles.rowText.fontFamily = "monospace"; + if (Platform.OS !== 'ios') { // Crashes on iOS with error "Unrecognized font family 'monospace'" + styles.rowText.fontFamily = 'monospace'; } styles.rowTextError = Object.assign({}, styles.rowText); @@ -73,15 +70,12 @@ class LogScreenComponent extends BaseScreenComponent { if (showErrorsOnly === null) showErrorsOnly = this.state.showErrorsOnly; let levels = [Logger.LEVEL_DEBUG, Logger.LEVEL_INFO, Logger.LEVEL_WARN, Logger.LEVEL_ERROR]; - if (showErrorsOnly) levels = [Logger.LEVEL_WARN, Logger.LEVEL_ERROR]; + if (showErrorsOnly) levels = [Logger.LEVEL_WARN, Logger.LEVEL_ERROR] - reg - .logger() - .lastEntries(1000, { levels: levels }) - .then(entries => { - const newDataSource = this.state.dataSource.cloneWithRows(entries); - this.setState({ dataSource: newDataSource }); - }); + reg.logger().lastEntries(1000, { levels: levels }).then((entries) => { + const newDataSource = this.state.dataSource.cloneWithRows(entries); + this.setState({ dataSource: newDataSource }); + }); } toggleErrorsOnly() { @@ -91,50 +85,47 @@ class LogScreenComponent extends BaseScreenComponent { } render() { - let renderRow = item => { + let renderRow = (item) => { let textStyle = this.styles().rowText; if (item.level == Logger.LEVEL_WARN) textStyle = this.styles().rowTextWarn; if (item.level == Logger.LEVEL_ERROR) textStyle = this.styles().rowTextError; - + return ( - {time.formatMsToLocal(item.timestamp, "MM-DDTHH:mm:ss") + ": " + item.message} + {time.formatMsToLocal(item.timestamp, 'MM-DDTHH:mm:ss') + ': ' + item.message} ); - }; + } // `enableEmptySections` is to fix this warning: https://github.com/FaridSafi/react-native-gifted-listview/issues/39 return ( - - - - - ); } + } -const OneDriveLoginScreen = connect(state => { - return {}; -})(OneDriveLoginScreenComponent); +const OneDriveLoginScreen = connect( + (state) => { + return {}; + } +)(OneDriveLoginScreenComponent) -module.exports = { OneDriveLoginScreen }; +module.exports = { OneDriveLoginScreen }; \ No newline at end of file diff --git a/ReactNativeClient/lib/components/screens/search.js b/ReactNativeClient/lib/components/screens/search.js index 4b9febe0a4..6ace75715c 100644 --- a/ReactNativeClient/lib/components/screens/search.js +++ b/ReactNativeClient/lib/components/screens/search.js @@ -1,18 +1,18 @@ -const React = require("react"); -const Component = React.Component; -const { ListView, StyleSheet, View, TextInput, FlatList, TouchableHighlight } = require("react-native"); -const { connect } = require("react-redux"); -const { ScreenHeader } = require("lib/components/screen-header.js"); -const Icon = require("react-native-vector-icons/Ionicons").default; -const { _ } = require("lib/locale.js"); -const Note = require("lib/models/Note.js"); -const { NoteItem } = require("lib/components/note-item.js"); -const { BaseScreenComponent } = require("lib/components/base-screen.js"); -const { themeStyle } = require("lib/components/global-style.js"); -const { dialogs } = require("lib/dialogs.js"); -const DialogBox = require("react-native-dialogbox").default; +const React = require('react'); const Component = React.Component; +const { ListView, StyleSheet, View, TextInput, FlatList, TouchableHighlight } = require('react-native'); +const { connect } = require('react-redux'); +const { ScreenHeader } = require('lib/components/screen-header.js'); +const Icon = require('react-native-vector-icons/Ionicons').default; +const { _ } = require('lib/locale.js'); +const Note = require('lib/models/Note.js'); +const { NoteItem } = require('lib/components/note-item.js'); +const { BaseScreenComponent } = require('lib/components/base-screen.js'); +const { themeStyle } = require('lib/components/global-style.js'); +const { dialogs } = require('lib/dialogs.js'); +const DialogBox = require('react-native-dialogbox').default; class SearchScreenComponent extends BaseScreenComponent { + static navigationOptions(options) { return { header: null }; } @@ -20,7 +20,7 @@ class SearchScreenComponent extends BaseScreenComponent { constructor() { super(); this.state = { - query: "", + query: '', notes: [], }; this.isMounted_ = false; @@ -38,12 +38,12 @@ class SearchScreenComponent extends BaseScreenComponent { flex: 1, }, searchContainer: { - flexDirection: "row", - alignItems: "center", + flexDirection: 'row', + alignItems: 'center', borderWidth: 1, borderColor: theme.dividerColor, - }, - }; + } + } styles.searchTextInput = Object.assign({}, theme.lineInput); styles.searchTextInput.paddingLeft = theme.marginLeft; @@ -72,7 +72,7 @@ class SearchScreenComponent extends BaseScreenComponent { componentWillReceiveProps(newProps) { let newState = {}; - if ("query" in newProps) newState.query = newProps.query; + if ('query' in newProps) newState.query = newProps.query; if (Object.getOwnPropertyNames(newState).length) { this.setState(newState); @@ -85,15 +85,15 @@ class SearchScreenComponent extends BaseScreenComponent { if (!query) return; this.props.dispatch({ - type: "SEARCH_QUERY", + type: 'SEARCH_QUERY', query: query, }); } clearButton_press() { this.props.dispatch({ - type: "SEARCH_QUERY", - query: "", + type: 'SEARCH_QUERY', + query: '', }); } @@ -102,10 +102,10 @@ class SearchScreenComponent extends BaseScreenComponent { query = query === null ? this.state.query.trim : query.trim(); - let notes = []; + let notes = [] if (query) { - let p = query.split(" "); + let p = query.split(' '); let temp = []; for (let i = 0; i < p.length; i++) { let t = p[i].trim(); @@ -114,7 +114,7 @@ class SearchScreenComponent extends BaseScreenComponent { } notes = await Note.previews(null, { - anywherePattern: "*" + temp.join("*") + "*", + anywherePattern: '*' + temp.join('*') + '*', }); } @@ -135,7 +135,7 @@ class SearchScreenComponent extends BaseScreenComponent { let rootStyle = { flex: 1, backgroundColor: theme.backgroundColor, - }; + } if (!this.props.visible) { rootStyle.flex = 0.001; // This is a bit of a hack but it seems to work fine - it makes the component invisible but without unmounting it @@ -146,7 +146,7 @@ class SearchScreenComponent extends BaseScreenComponent { return ( { - this.searchTextInput_submit(); - }} - onChangeText={text => this.searchTextInput_changeText(text)} + underlineColorAndroid="#ffffff00" + onSubmitEditing={() => { this.searchTextInput_submit() }} + onChangeText={(text) => this.searchTextInput_changeText(text) } value={this.state.query} /> - this.clearButton_press()}> - + this.clearButton_press() }> + - item.id} renderItem={event => } /> + item.id} + renderItem={(event) => } + /> - { - this.dialogbox = dialogbox; - }} - /> + { this.dialogbox = dialogbox }}/> ); } + } -const SearchScreen = connect(state => { - return { - query: state.searchQuery, - theme: state.settings.theme, - noteSelectionEnabled: state.noteSelectionEnabled, - }; -})(SearchScreenComponent); +const SearchScreen = connect( + (state) => { + return { + query: state.searchQuery, + theme: state.settings.theme, + noteSelectionEnabled: state.noteSelectionEnabled, + }; + } +)(SearchScreenComponent) -module.exports = { SearchScreen }; +module.exports = { SearchScreen }; \ No newline at end of file diff --git a/ReactNativeClient/lib/components/screens/status.js b/ReactNativeClient/lib/components/screens/status.js index 9c38d63d90..8ce07e0b9a 100644 --- a/ReactNativeClient/lib/components/screens/status.js +++ b/ReactNativeClient/lib/components/screens/status.js @@ -1,20 +1,19 @@ -const React = require("react"); -const Component = React.Component; -const { ListView, StyleSheet, View, Text, Button, FlatList } = require("react-native"); -const Setting = require("lib/models/Setting.js"); -const { connect } = require("react-redux"); -const { Log } = require("lib/log.js"); -const { reg } = require("lib/registry.js"); -const { ScreenHeader } = require("lib/components/screen-header.js"); -const { time } = require("lib/time-utils"); -const { Logger } = require("lib/logger.js"); -const BaseItem = require("lib/models/BaseItem.js"); -const { Database } = require("lib/database.js"); -const Folder = require("lib/models/Folder.js"); -const { ReportService } = require("lib/services/report.js"); -const { _ } = require("lib/locale.js"); -const { BaseScreenComponent } = require("lib/components/base-screen.js"); -const { globalStyle, themeStyle } = require("lib/components/global-style.js"); +const React = require('react'); const Component = React.Component; +const { ListView, StyleSheet, View, Text, Button, FlatList } = require('react-native'); +const Setting = require('lib/models/Setting.js'); +const { connect } = require('react-redux'); +const { Log } = require('lib/log.js'); +const { reg } = require('lib/registry.js'); +const { ScreenHeader } = require('lib/components/screen-header.js'); +const { time } = require('lib/time-utils'); +const { Logger } = require('lib/logger.js'); +const BaseItem = require('lib/models/BaseItem.js'); +const { Database } = require('lib/database.js'); +const Folder = require('lib/models/Folder.js'); +const { ReportService } = require('lib/services/report.js'); +const { _ } = require('lib/locale.js'); +const { BaseScreenComponent } = require('lib/components/base-screen.js'); +const { globalStyle, themeStyle } = require('lib/components/global-style.js'); const styles = StyleSheet.create({ body: { @@ -24,6 +23,7 @@ const styles = StyleSheet.create({ }); class StatusScreenComponent extends BaseScreenComponent { + static navigationOptions(options) { return { header: null }; } @@ -41,7 +41,7 @@ class StatusScreenComponent extends BaseScreenComponent { async resfreshScreen() { let service = new ReportService(); - let report = await service.status(Setting.value("sync.target")); + let report = await service.status(Setting.value('sync.target')); this.setState({ report: report }); } @@ -66,54 +66,57 @@ class StatusScreenComponent extends BaseScreenComponent { let section = report[i]; let style = Object.assign({}, baseStyle); - style.fontWeight = "bold"; + style.fontWeight = 'bold'; if (i > 0) style.paddingTop = 20; - lines.push({ key: "section_" + i, isSection: true, text: section.title }); + lines.push({ key: 'section_' + i, isSection: true, text: section.title }); for (let n in section.body) { if (!section.body.hasOwnProperty(n)) continue; style = Object.assign({}, baseStyle); - lines.push({ key: "item_" + i + "_" + n, text: section.body[n] }); + lines.push({ key: 'item_' + i + '_' + n, text: section.body[n] }); } - lines.push({ key: "divider2_" + i, isDivider: true }); + lines.push({ key: 'divider2_' + i, isDivider: true }); } - return ( - { - let style = Object.assign({}, baseStyle); - if (item.isSection === true) { - style.fontWeight = "bold"; - style.marginBottom = 5; - } - if (item.isDivider) { - return ; - } else { - return {item.text}; - } - }} - /> - ); + return ( { + let style = Object.assign({}, baseStyle); + if (item.isSection === true) { + style.fontWeight = 'bold'; + style.marginBottom = 5; + } + if (item.isDivider) { + return (); + } else { + return ({item.text}); + } + }} + />); } let body = renderBody(this.state.report); return ( - - {body} - diff --git a/ReactNativeClient/lib/components/screens/status.js b/ReactNativeClient/lib/components/screens/status.js index 8ce07e0b9a..0695b27ce2 100644 --- a/ReactNativeClient/lib/components/screens/status.js +++ b/ReactNativeClient/lib/components/screens/status.js @@ -2,7 +2,6 @@ const React = require('react'); const Component = React.Component; const { ListView, StyleSheet, View, Text, Button, FlatList } = require('react-native'); const Setting = require('lib/models/Setting.js'); const { connect } = require('react-redux'); -const { Log } = require('lib/log.js'); const { reg } = require('lib/registry.js'); const { ScreenHeader } = require('lib/components/screen-header.js'); const { time } = require('lib/time-utils'); diff --git a/ReactNativeClient/lib/components/screens/welcome.js b/ReactNativeClient/lib/components/screens/welcome.js index 1a51b987d4..da4b82ec5f 100644 --- a/ReactNativeClient/lib/components/screens/welcome.js +++ b/ReactNativeClient/lib/components/screens/welcome.js @@ -1,7 +1,6 @@ const React = require('react'); const Component = React.Component; const { View, Text, StyleSheet } = require('react-native'); const { connect } = require('react-redux'); -const { Log } = require('lib/log.js'); const { ScreenHeader } = require('lib/components/screen-header.js'); const { ActionButton } = require('lib/components/action-button.js'); const { BaseScreenComponent } = require('lib/components/base-screen.js'); diff --git a/ReactNativeClient/lib/components/side-menu-content.js b/ReactNativeClient/lib/components/side-menu-content.js index 5724b393e7..572f3fcd51 100644 --- a/ReactNativeClient/lib/components/side-menu-content.js +++ b/ReactNativeClient/lib/components/side-menu-content.js @@ -2,7 +2,6 @@ const React = require('react'); const Component = React.Component; const { TouchableOpacity , Button, Text, Image, StyleSheet, ScrollView, View } = require('react-native'); const { connect } = require('react-redux'); const Icon = require('react-native-vector-icons/Ionicons').default; -const { Log } = require('lib/log.js'); const Tag = require('lib/models/Tag.js'); const Note = require('lib/models/Note.js'); const Folder = require('lib/models/Folder.js'); diff --git a/ReactNativeClient/lib/components/side-menu.js b/ReactNativeClient/lib/components/side-menu.js index 15dabee250..86ec925ecd 100644 --- a/ReactNativeClient/lib/components/side-menu.js +++ b/ReactNativeClient/lib/components/side-menu.js @@ -1,6 +1,5 @@ const React = require('react'); const Component = React.Component; const { connect } = require('react-redux'); -const { Log } = require('lib/log.js'); const SideMenu_ = require('react-native-side-menu').default; class SideMenuComponent extends SideMenu_ {}; diff --git a/ReactNativeClient/lib/log.js b/ReactNativeClient/lib/log.js deleted file mode 100644 index 54a3dbb32e..0000000000 --- a/ReactNativeClient/lib/log.js +++ /dev/null @@ -1,40 +0,0 @@ -// Custom wrapper for `console` to allow for custom logging (to file, etc.) if needed. - -class Log { - - static setLevel(v) { - this.level_ = v; - } - - static level() { - return this.level_ === undefined ? Log.LEVEL_DEBUG : this.level_; - } - - static debug(...o) { - if (Log.level() > Log.LEVEL_DEBUG) return; - console.info(...o); - } - - static info(...o) { - if (Log.level() > Log.LEVEL_INFO) return; - console.info(...o); - } - - static warn(...o) { - if (Log.level() > Log.LEVEL_WARN) return; - console.info(...o); - } - - static error(...o) { - if (Log.level() > Log.LEVEL_ERROR) return; - console.info(...o); - } - -} - -Log.LEVEL_DEBUG = 0; -Log.LEVEL_INFO = 10; -Log.LEVEL_WARN = 20; -Log.LEVEL_ERROR = 30; - -module.exports = { Log }; \ No newline at end of file diff --git a/ReactNativeClient/lib/models/Folder.js b/ReactNativeClient/lib/models/Folder.js index 1e06c13679..f4824b5a98 100644 --- a/ReactNativeClient/lib/models/Folder.js +++ b/ReactNativeClient/lib/models/Folder.js @@ -1,5 +1,4 @@ const BaseModel = require('lib/BaseModel.js'); -const { Log } = require('lib/log.js'); const { promiseChain } = require('lib/promise-utils.js'); const { time } = require('lib/time-utils.js'); const Note = require('lib/models/Note.js'); diff --git a/ReactNativeClient/lib/models/Note.js b/ReactNativeClient/lib/models/Note.js index 8d0c55c926..6ca54c2cda 100644 --- a/ReactNativeClient/lib/models/Note.js +++ b/ReactNativeClient/lib/models/Note.js @@ -1,5 +1,4 @@ const BaseModel = require('lib/BaseModel.js'); -const { Log } = require('lib/log.js'); const { sprintf } = require('sprintf-js'); const BaseItem = require('lib/models/BaseItem.js'); const Setting = require('lib/models/Setting.js'); diff --git a/ReactNativeClient/main.js b/ReactNativeClient/main.js index eb5285e1a0..da7fd74612 100644 --- a/ReactNativeClient/main.js +++ b/ReactNativeClient/main.js @@ -7,7 +7,6 @@ // So there's basically still a one way flux: React => SQLite => Redux => React const { AppRegistry } = require('react-native'); -const { Log } = require('lib/log.js'); const { Root } = require('./root.js'); function main() { diff --git a/ReactNativeClient/root.js b/ReactNativeClient/root.js index cc602cc9d9..d8b332a764 100644 --- a/ReactNativeClient/root.js +++ b/ReactNativeClient/root.js @@ -9,7 +9,6 @@ const AlarmServiceDriver = require('lib/services/AlarmServiceDriver'); const Alarm = require('lib/models/Alarm'); const { createStore, applyMiddleware } = require('redux'); const { shimInit } = require('lib/shim-init-react.js'); -const { Log } = require('lib/log.js'); const { time } = require('lib/time-utils.js'); const { AppNav } = require('lib/components/app-nav.js'); const { Logger } = require('lib/logger.js'); From 8364b6e08dd4ce7a9760c2f69ac89f6ae86b4b79 Mon Sep 17 00:00:00 2001 From: rtmkrlv Date: Thu, 15 Mar 2018 11:14:04 +0200 Subject: [PATCH 43/86] Updated Russian translation --- CliClient/locales/ru_RU.po | 157 +++++++++++++++++-------------------- 1 file changed, 72 insertions(+), 85 deletions(-) diff --git a/CliClient/locales/ru_RU.po b/CliClient/locales/ru_RU.po index a04eb3a040..bde02956c8 100644 --- a/CliClient/locales/ru_RU.po +++ b/CliClient/locales/ru_RU.po @@ -16,6 +16,8 @@ msgstr "" "X-Generator: Poedit 2.0.6\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" msgid "To delete a tag, untag the associated notes." msgstr "Чтобы удалить тег, уберите его с ассоциированных с ним заметок." @@ -189,17 +191,16 @@ msgstr "Заметка сохранена." msgid "Exits the application." msgstr "Выход из приложения." -#, fuzzy msgid "" "Exports Joplin data to the given path. By default, it will export the " "complete database including notebooks, notes, tags and resources." msgstr "" -"Экспортирует данные Joplin в заданный каталог. По умолчанию экспортируется " +"Экспортирует данные Joplin по заданному пути. По умолчанию экспортируется " "полная база данных, включая блокноты, заметки, теги и ресурсы." -#, fuzzy, javascript-format +#, javascript-format msgid "Destination format: %s" -msgstr "Формат даты" +msgstr "Целевой формат: %s" msgid "Exports only the given note." msgstr "Экспортирует только заданную заметку." @@ -215,7 +216,7 @@ msgstr "Выводит информацию об использовании." #, javascript-format msgid "For information on how to customise the shortcuts please visit %s" -msgstr "" +msgstr "Информацию по настройке сочетаний можно получить, посетив %s" msgid "Shortcuts are not available in CLI mode." msgstr "Ярлыки недоступны в режиме командной строки." @@ -259,19 +260,18 @@ msgstr "Чтобы войти в режим командной строки, н msgid "To exit command line mode, press ESCAPE" msgstr "Чтобы выйти из режима командной строки, нажмите ESCAPE" -#, fuzzy msgid "" "For the list of keyboard shortcuts and config options, type `help keymap`" msgstr "" -"Для просмотра списка доступных клавиатурных сочетаний введите `help " -"shortcuts`" +"Для просмотра списка клавиатурных сочетаний и настроек конфигурации введите " +"`help keymap`" msgid "Imports data into Joplin." -msgstr "" +msgstr "Импортирует данные в Joplin." -#, fuzzy, javascript-format +#, javascript-format msgid "Source format: %s" -msgstr "Нет такой команды: %s" +msgstr "Исходный формат: %s" msgid "Do not ask for confirmation." msgstr "Не запрашивать подтверждение." @@ -507,9 +507,8 @@ msgstr "По умолчанию: %s" msgid "Possible keys/values:" msgstr "Возможные ключи/значения:" -#, fuzzy msgid "Type `joplin help` for usage information." -msgstr "Выводит информацию об использовании." +msgstr "Введите `joplin help` для получения информации об использовании." msgid "Fatal error:" msgstr "Фатальная ошибка:" @@ -566,15 +565,14 @@ msgstr "" #, javascript-format msgid "Exporting to \"%s\" as \"%s\" format. Please wait..." -msgstr "" +msgstr "Экспорт в «%s» в формате «%s». Пожалуйста, ожидайте..." #, javascript-format msgid "Importing from \"%s\" as \"%s\" format. Please wait..." -msgstr "" +msgstr "Импорт из «%s» в формате «%s». Пожалуйста, ожидайте..." -#, fuzzy msgid "PDF File" -msgstr "Файл" +msgstr "PDF-файл" msgid "File" msgstr "Файл" @@ -591,16 +589,15 @@ msgstr "Новый блокнот" msgid "Import" msgstr "Импорт" -#, fuzzy msgid "Export" -msgstr "Импорт" +msgstr "Экспорт" msgid "Print" -msgstr "" +msgstr "Печать" #, javascript-format msgid "Hide %s" -msgstr "" +msgstr "Скрыть %s" msgid "Quit" msgstr "Выход" @@ -621,10 +618,10 @@ msgid "Search in all the notes" msgstr "Поиск во всех заметках" msgid "View" -msgstr "" +msgstr "Вид" msgid "Toggle editor layout" -msgstr "" +msgstr "Переключить вид редактора" msgid "Tools" msgstr "Инструменты" @@ -644,9 +641,8 @@ msgstr "Помощь" msgid "Website and documentation" msgstr "Сайт и документация" -#, fuzzy msgid "Make a donation" -msgstr "Сайт и документация" +msgstr "Сделать пожертвование" msgid "Check for updates..." msgstr "Проверить обновления..." @@ -658,12 +654,12 @@ msgstr "О Joplin" msgid "%s %s (%s, %s)" msgstr "%s %s (%s, %s)" -#, fuzzy, javascript-format +#, javascript-format msgid "Open %s" -msgstr "В %s: %s" +msgstr "Открыть %s" msgid "Exit" -msgstr "" +msgstr "Выход" msgid "OK" msgstr "OK" @@ -674,20 +670,17 @@ msgstr "Отмена" msgid "Current version is up-to-date." msgstr "Вы используете самую свежую версию." -#, fuzzy msgid "An update is available, do you want to download it now?" -msgstr "Доступно обновление. Обновить сейчас?" +msgstr "Доступно обновление. Желаете скачать его сейчас?" msgid "Yes" -msgstr "" +msgstr "Да" -#, fuzzy msgid "No" -msgstr "N" +msgstr "Нет" -#, fuzzy msgid "Check synchronisation configuration" -msgstr "Отменить синхронизацию" +msgstr "Проверить настройки синхронизации" #, javascript-format msgid "Notes and settings are stored in: %s" @@ -757,15 +750,17 @@ msgstr "" "ключей, в зависимости от того, как изначально были зашифрованы заметки или " "блокноты." -#, fuzzy msgid "Missing Master Keys" -msgstr "Мастер-ключи" +msgstr "Недостающие мастер-ключи" msgid "" "The master keys with these IDs are used to encrypt some of your items, " "however the application does not currently have access to them. It is likely " "they will eventually be downloaded via synchronisation." msgstr "" +"Мастер-ключи с такими ID используются для шифрования некоторых из ваших " +"элементов, однако у приложения сейчас нет к ним доступа. Скорее всего, они " +"загрузятся при синхронизации." msgid "Status" msgstr "Статус" @@ -840,11 +835,10 @@ msgid "" msgstr "Сейчас здесь нет блокнотов. Создайте новый нажав «Новый блокнот»." msgid "Open..." -msgstr "" +msgstr "Открыть..." -#, fuzzy msgid "Save as..." -msgstr "Сохранить изменения" +msgstr "Сохранить как..." #, javascript-format msgid "Unsupported link or message: %s" @@ -864,18 +858,18 @@ msgid "" "This note has no content. Click on \"%s\" to toggle the editor and edit the " "note." msgstr "" +"Заметка пуста. Нажмите на «%s», чтобы переключиться в редактор и " +"отредактировать её." -#, fuzzy msgid "to-do" -msgstr "Новая задача" +msgstr "задача" -#, fuzzy msgid "note" -msgstr "Новая заметка" +msgstr "заметка" -#, fuzzy, javascript-format +#, javascript-format msgid "Creating new %s..." -msgstr "Импорт заметок..." +msgstr "Создание новой %s..." msgid "Refresh" msgstr "Обновить" @@ -927,9 +921,8 @@ msgstr "Неизвестный флаг: %s" msgid "File system" msgstr "Файловая система" -#, fuzzy msgid "Nextcloud" -msgstr "Nextcloud (Beta)" +msgstr "Nextcloud" msgid "OneDrive" msgstr "OneDrive" @@ -937,9 +930,8 @@ msgstr "OneDrive" msgid "OneDrive Dev (For testing only)" msgstr "OneDrive Dev (только для тестирования)" -#, fuzzy msgid "WebDAV" -msgstr "Nextcloud WebDAV URL" +msgstr "WebDAV" #, javascript-format msgid "Unknown log level: %s" @@ -1014,15 +1006,15 @@ msgstr "Отмена..." msgid "Completed: %s" msgstr "Завершено: %s" -#, fuzzy, javascript-format +#, javascript-format msgid "Last error: %s" -msgstr "Фатальная ошибка:" +msgstr "Последняя ошибка: %s" msgid "Idle" -msgstr "" +msgstr "Простой" msgid "In progress" -msgstr "" +msgstr "Выполнение" #, javascript-format msgid "Synchronisation is already in progress. State: %s" @@ -1087,16 +1079,14 @@ msgstr "Светлая" msgid "Dark" msgstr "Тёмная" -#, fuzzy msgid "Uncompleted to-dos on top" -msgstr "Показывать незавершённые задачи вверху списков" +msgstr "Незавершённые задачи сверху" msgid "Sort notes by" -msgstr "" +msgstr "Сортировать заметки по" -#, fuzzy msgid "Reverse sort order" -msgstr "Обращает порядок сортировки." +msgstr "Обратный порядок сортировки" msgid "Save geo-location with notes" msgstr "Сохранять информацию о геолокации в заметках" @@ -1114,19 +1104,20 @@ msgid "When creating a new note:" msgstr "При создании новой заметки:" msgid "Show tray icon" -msgstr "" +msgstr "Показывать иконку в панели задач" -#, fuzzy msgid "Global zoom percentage" -msgstr "Масштаб приложения в процентах" +msgstr "Глобальный масштаб в процентах" msgid "Editor font family" -msgstr "" +msgstr "Семейство шрифтов редактора" msgid "" "The font name will not be checked. If incorrect or empty, it will default to " "a generic monospace font." msgstr "" +"Название шрифта не проверяется. Если оно указано некорректно или не задано, " +"будет использоваться стандартный моноширинный шрифт." msgid "Automatically update the application" msgstr "Автоматически обновлять приложение" @@ -1178,59 +1169,56 @@ msgstr "Имя пользователя Nextcloud" msgid "Nextcloud password" msgstr "Пароль Nextcloud" -#, fuzzy msgid "WebDAV URL" -msgstr "Nextcloud WebDAV URL" +msgstr "URL WebDAV" -#, fuzzy msgid "WebDAV username" -msgstr "Имя пользователя Nextcloud" +msgstr "Имя пользователя WebDAV" -#, fuzzy msgid "WebDAV password" -msgstr "Установить пароль" +msgstr "Пароль WebDAV" #, javascript-format msgid "Invalid option value: \"%s\". Possible values are: %s." msgstr "Неверное значение параметра: «%s». Доступные значения: %s." -#, fuzzy msgid "Joplin Export File" -msgstr "Файлы экспорта Evernote" +msgstr "Файл экспорта Joplin" msgid "Markdown" -msgstr "" +msgstr "Markdown" msgid "Joplin Export Directory" -msgstr "" +msgstr "Папка экспорта Joplin" -#, fuzzy msgid "Evernote Export File" -msgstr "Файлы экспорта Evernote" +msgstr "Файл экспорта Evernote" msgid "Directory" -msgstr "" +msgstr "Директория" #, javascript-format msgid "Cannot load \"%s\" module for format \"%s\"" -msgstr "" +msgstr "Не удалось загрузить модуль «%s» для формата «%s»" #, javascript-format msgid "Please specify import format for %s" -msgstr "" +msgstr "Пожалуйста, укажите формат импорта для %s" #, javascript-format msgid "" "This item is currently encrypted: %s \"%s\". Please wait for all items to be " "decrypted and try again." msgstr "" +"Этот элемент сейчас зашифрован: %s «%s». Пожалуйста, дождитесь расшифровки " +"всех элементов и попробуйте снова." msgid "There is no data to export." -msgstr "" +msgstr "Нет данных для экспорта." -#, fuzzy msgid "Please specify the notebook where the notes should be imported to." -msgstr "Выберите, куда должен быть экспортирован статус синхронизации" +msgstr "" +"Пожалуйста, укажите блокнот, в который должны быть импортированы заметки." msgid "Items that cannot be synchronised" msgstr "Элементы, которые не могут быть синхронизированы" @@ -1319,7 +1307,7 @@ msgid "Cancel synchronisation" msgstr "Отменить синхронизацию" msgid "Joplin website" -msgstr "" +msgstr "Сайт Joplin" #, javascript-format msgid "Master Key %s" @@ -1346,11 +1334,10 @@ msgid "Edit notebook" msgstr "Редактировать блокнот" msgid "Show all" -msgstr "" +msgstr "Показать всё" -#, fuzzy msgid "Errors only" -msgstr "Ошибка" +msgstr "Только ошибки" msgid "This note has been modified:" msgstr "Эта заметка была изменена:" From 7828eef2ad3ef022c900e5e4876c0125266a4bb7 Mon Sep 17 00:00:00 2001 From: Fernando Date: Thu, 15 Mar 2018 15:24:37 +0100 Subject: [PATCH 44/86] Updated Spanish translation --- CliClient/locales/es_ES.po | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/CliClient/locales/es_ES.po b/CliClient/locales/es_ES.po index 906112df28..ce1994fbe5 100644 --- a/CliClient/locales/es_ES.po +++ b/CliClient/locales/es_ES.po @@ -16,6 +16,8 @@ msgstr "" "X-Generator: Poedit 1.8.11\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-SourceCharset: UTF-8\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" msgid "To delete a tag, untag the associated notes." msgstr "Desmarque las notas asociadas para eliminar una etiqueta." @@ -571,9 +573,8 @@ msgstr "Exportando el formato de \"%s\" a \"%s\". Por favor espere..." msgid "Importing from \"%s\" as \"%s\" format. Please wait..." msgstr "Importando el formato de \"%s\" a \"%s\". Por favor espere..." -#, fuzzy msgid "PDF File" -msgstr "Archivo" +msgstr "Archivo PDF" msgid "File" msgstr "Archivo" @@ -594,7 +595,7 @@ msgid "Export" msgstr "Exportar" msgid "Print" -msgstr "" +msgstr "Imprimir" #, javascript-format msgid "Hide %s" @@ -1005,15 +1006,15 @@ msgstr "Cancelando..." msgid "Completed: %s" msgstr "Completado: %s" -#, fuzzy, javascript-format +#, javascript-format msgid "Last error: %s" -msgstr "Error fatal:" +msgstr "Último error: %s" msgid "Idle" -msgstr "" +msgstr "Espera" msgid "In progress" -msgstr "" +msgstr "En progreso" #, javascript-format msgid "Synchronisation is already in progress. State: %s" From 945018b69820e9b381e4d776edcbeaa0644bbf41 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Thu, 15 Mar 2018 17:46:54 +0000 Subject: [PATCH 45/86] All: Allow deleting and syncing deleted resources --- CliClient/tests/synchronizer.js | 31 ++++++++++++++++++++++++ CliClient/tests/test-utils.js | 10 +++++--- ReactNativeClient/lib/file-api.js | 4 ++- ReactNativeClient/lib/models/Note.js | 4 +-- ReactNativeClient/lib/models/Resource.js | 13 ++++++++++ 5 files changed, 56 insertions(+), 6 deletions(-) diff --git a/CliClient/tests/synchronizer.js b/CliClient/tests/synchronizer.js index 0664365da5..f4cd3d3b3b 100644 --- a/CliClient/tests/synchronizer.js +++ b/CliClient/tests/synchronizer.js @@ -883,6 +883,37 @@ describe('Synchronizer', function() { expect(fileContentEqual(resourcePath1, resourcePath1_2)).toBe(true); })); + it('should delete resources', asyncTest(async () => { + while (insideBeforeEach) await time.msleep(500); + + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id }); + await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg'); + let resource1 = (await Resource.all())[0]; + let resourcePath1 = Resource.fullPath(resource1); + await synchronizer().start(); + + await switchClient(2); + + await synchronizer().start(); + let allResources = await Resource.all(); + expect(allResources.length).toBe(1); + let all = await fileApi().list(); + expect(all.items.length).toBe(3); + await Resource.delete(resource1.id); + await synchronizer().start(); + all = await fileApi().list(); + expect(all.items.length).toBe(2); + + await switchClient(1); + + expect(await shim.fsDriver().exists(resourcePath1)).toBe(true); + await synchronizer().start(); + allResources = await Resource.all(); + expect(allResources.length).toBe(0); + expect(await shim.fsDriver().exists(resourcePath1)).toBe(false); + })); + it('should encryt resources', asyncTest(async () => { Setting.setValue('encryption.enabled', true); const masterKey = await loadEncryptionMasterKey(); diff --git a/CliClient/tests/test-utils.js b/CliClient/tests/test-utils.js index b0c5727b5d..67821570c9 100644 --- a/CliClient/tests/test-utils.js +++ b/CliClient/tests/test-utils.js @@ -16,6 +16,7 @@ const { FileApi } = require('lib/file-api.js'); const { FileApiDriverMemory } = require('lib/file-api-driver-memory.js'); const { FileApiDriverLocal } = require('lib/file-api-driver-local.js'); const { FileApiDriverWebDav } = require('lib/file-api-driver-webdav.js'); +const BaseService = require('lib/services/BaseService.js'); const { FsDriverNode } = require('lib/fs-driver-node.js'); const { time } = require('lib/time-utils.js'); const { shimInit } = require('lib/shim-init-node.js'); @@ -63,7 +64,7 @@ console.info('Testing with sync target: ' + SyncTargetRegistry.idToName(syncTarg const logger = new Logger(); logger.addTarget('console'); logger.addTarget('file', { path: logDir + '/log.txt' }); -logger.setLevel(Logger.LEVEL_WARN); // Set to INFO to display sync process in console +logger.setLevel(Logger.LEVEL_WARN); // Set to DEBUG to display sync process in console BaseItem.loadClass('Note', Note); BaseItem.loadClass('Folder', Folder); @@ -75,6 +76,8 @@ BaseItem.loadClass('MasterKey', MasterKey); Setting.setConstant('appId', 'net.cozic.joplin-cli'); Setting.setConstant('appType', 'cli'); +BaseService.logger_ = logger; + Setting.autoSaveEnabled = false; function syncTargetId() { @@ -118,8 +121,9 @@ async function clearDatabase(id = null) { 'DELETE FROM tags', 'DELETE FROM note_tags', 'DELETE FROM master_keys', - 'DELETE FROM settings', - + 'DELETE FROM item_changes', + 'DELETE FROM note_resources', + 'DELETE FROM settings', 'DELETE FROM deleted_items', 'DELETE FROM sync_items', ]; diff --git a/ReactNativeClient/lib/file-api.js b/ReactNativeClient/lib/file-api.js index 93ff626b16..316a7d80d5 100644 --- a/ReactNativeClient/lib/file-api.js +++ b/ReactNativeClient/lib/file-api.js @@ -243,7 +243,9 @@ async function basicDelta(path, getDirStatFn, options) { newContext.statsCache.sort(function(a, b) { return a.updated_time - b.updated_time; }); - newContext.statIdsCache = newContext.statsCache.map((item) => BaseItem.pathToId(item.path)); + newContext.statIdsCache = newContext.statsCache + .filter(item => BaseItem.isSystemPath(item.path)) + .map(item => BaseItem.pathToId(item.path)); newContext.statIdsCache.sort(); // Items must be sorted to use binary search below } diff --git a/ReactNativeClient/lib/models/Note.js b/ReactNativeClient/lib/models/Note.js index d21f3b40f9..8977dd49d9 100644 --- a/ReactNativeClient/lib/models/Note.js +++ b/ReactNativeClient/lib/models/Note.js @@ -436,8 +436,8 @@ class Note extends BaseItem { // }); // } - static batchDelete(ids, options = null) { - const result = super.batchDelete(ids, options); + static async batchDelete(ids, options = null) { + const result = await super.batchDelete(ids, options); for (let i = 0; i < ids.length; i++) { ItemChange.add(BaseModel.TYPE_NOTE, ids[i], ItemChange.TYPE_DELETE); diff --git a/ReactNativeClient/lib/models/Resource.js b/ReactNativeClient/lib/models/Resource.js index 1a575505d0..303b91791c 100644 --- a/ReactNativeClient/lib/models/Resource.js +++ b/ReactNativeClient/lib/models/Resource.js @@ -143,6 +143,19 @@ class Resource extends BaseItem { return url.substr(2); } + static async batchDelete(ids, options = null) { + // For resources, there's not really batch deleting since there's the file data to delete + // too, so each is processed one by one with the item being deleted last (since the db + // call is the less likely to fail). + for (let i = 0; i < ids.length; i++) { + const id = ids[i]; + const resource = await Resource.load(id); + const path = Resource.fullPath(resource); + await this.fsDriver().remove(path); + await super.batchDelete([id], options) + } + } + } Resource.IMAGE_MAX_DIMENSION = 1920; From 1532b6d159b720535a0115ed5cd0c83af07ccce4 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Thu, 15 Mar 2018 17:57:11 +0000 Subject: [PATCH 46/86] All: Made WebDAV options dynamics so that changing username or password doesn't require restarting the app --- ElectronClient/app/gui/NoteText.jsx | 2 +- ElectronClient/app/main-html.js | 2 +- ReactNativeClient/lib/ObjectUtils.js | 9 +++++++++ ReactNativeClient/lib/SyncTargetNextcloud.js | 6 +++--- ReactNativeClient/lib/SyncTargetWebDAV.js | 12 ++++++------ .../lib/components/shared/config-shared.js | 3 ++- 6 files changed, 22 insertions(+), 12 deletions(-) diff --git a/ElectronClient/app/gui/NoteText.jsx b/ElectronClient/app/gui/NoteText.jsx index ad473421d9..05d190c911 100644 --- a/ElectronClient/app/gui/NoteText.jsx +++ b/ElectronClient/app/gui/NoteText.jsx @@ -366,7 +366,7 @@ class NoteTextComponent extends React.Component { webviewReady: true, }); - if (Setting.value('env') === 'dev') this.webview_.openDevTools(); + // if (Setting.value('env') === 'dev') this.webview_.openDevTools(); } webview_ref(element) { diff --git a/ElectronClient/app/main-html.js b/ElectronClient/app/main-html.js index d127c883d9..7a71c3613a 100644 --- a/ElectronClient/app/main-html.js +++ b/ElectronClient/app/main-html.js @@ -73,7 +73,7 @@ app().start(bridge().processArgv()).then(() => { if (error.fileName) msg.push(error.fileName); if (error.lineNumber) msg.push(error.lineNumber); if (error.stack) msg.push(error.stack); - bridge().showErrorMessageBox(msg.join('\n')); + bridge().showErrorMessageBox(msg.join('\n\n')); } bridge().electronApp().exit(1); diff --git a/ReactNativeClient/lib/ObjectUtils.js b/ReactNativeClient/lib/ObjectUtils.js index 366156e5f0..3bb0234992 100644 --- a/ReactNativeClient/lib/ObjectUtils.js +++ b/ReactNativeClient/lib/ObjectUtils.js @@ -44,4 +44,13 @@ ObjectUtils.fieldsEqual = function(o1, o2) { return true; } +ObjectUtils.convertValuesToFunctions = function(o) { + const output = {}; + for (let n in o) { + if (!o.hasOwnProperty(n)) continue; + output[n] = () => { return typeof o[n] === 'function' ? o[n]() : o[n]; } + } + return output; +} + module.exports = ObjectUtils; \ No newline at end of file diff --git a/ReactNativeClient/lib/SyncTargetNextcloud.js b/ReactNativeClient/lib/SyncTargetNextcloud.js index b050146a71..57ba9900cf 100644 --- a/ReactNativeClient/lib/SyncTargetNextcloud.js +++ b/ReactNativeClient/lib/SyncTargetNextcloud.js @@ -38,9 +38,9 @@ class SyncTargetNextcloud extends BaseSyncTarget { async initFileApi() { const fileApi = await SyncTargetWebDAV.newFileApi_(SyncTargetNextcloud.id(), { - path: Setting.value('sync.5.path'), - username: Setting.value('sync.5.username'), - password: Setting.value('sync.5.password'), + path: () => Setting.value('sync.5.path'), + username: () => Setting.value('sync.5.username'), + password: () => Setting.value('sync.5.password'), }); fileApi.setLogger(this.logger()); diff --git a/ReactNativeClient/lib/SyncTargetWebDAV.js b/ReactNativeClient/lib/SyncTargetWebDAV.js index 7c67fb5eb7..6c17e9617d 100644 --- a/ReactNativeClient/lib/SyncTargetWebDAV.js +++ b/ReactNativeClient/lib/SyncTargetWebDAV.js @@ -30,9 +30,9 @@ class SyncTargetWebDAV extends BaseSyncTarget { static async newFileApi_(syncTargetId, options) { const apiOptions = { - baseUrl: () => options.path, - username: () => options.username, - password: () => options.password, + baseUrl: () => options.path(), + username: () => options.username(), + password: () => options.password(), }; const api = new WebDavApi(apiOptions); @@ -65,9 +65,9 @@ class SyncTargetWebDAV extends BaseSyncTarget { async initFileApi() { const fileApi = await SyncTargetWebDAV.newFileApi_(SyncTargetWebDAV.id(), { - path: Setting.value('sync.6.path'), - username: Setting.value('sync.6.username'), - password: Setting.value('sync.6.password'), + path: () => Setting.value('sync.6.path'), + username: () => Setting.value('sync.6.username'), + password: () => Setting.value('sync.6.password'), }); fileApi.setLogger(this.logger()); diff --git a/ReactNativeClient/lib/components/shared/config-shared.js b/ReactNativeClient/lib/components/shared/config-shared.js index 60a1ddd7a2..4a907a261d 100644 --- a/ReactNativeClient/lib/components/shared/config-shared.js +++ b/ReactNativeClient/lib/components/shared/config-shared.js @@ -1,5 +1,6 @@ const Setting = require('lib/models/Setting.js'); const SyncTargetRegistry = require('lib/SyncTargetRegistry'); +const ObjectUtils = require('lib/ObjectUtils'); const { _ } = require('lib/locale.js'); const shared = {} @@ -16,7 +17,7 @@ shared.checkSyncConfig = async function(comp, settings) { const SyncTargetClass = SyncTargetRegistry.classById(syncTargetId); const options = Setting.subValues('sync.' + syncTargetId, settings); comp.setState({ checkSyncConfigResult: 'checking' }); - const result = await SyncTargetClass.checkConfig(options); + const result = await SyncTargetClass.checkConfig(ObjectUtils.convertValuesToFunctions(options)); comp.setState({ checkSyncConfigResult: result }); } From c1bb51c12b4cc3462d8593fb92f27179b434fdeb Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Thu, 15 Mar 2018 18:08:46 +0000 Subject: [PATCH 47/86] All: Finished service to clean up resources --- CliClient/app/app.js | 7 ++ CliClient/tests/services_ResourceService.js | 72 +++++++++++++++++++ ElectronClient/app/app.js | 7 ++ ReactNativeClient/lib/BaseApplication.js | 2 + ReactNativeClient/lib/joplin-database.js | 6 +- ReactNativeClient/lib/models/ItemChange.js | 19 +++++ ReactNativeClient/lib/models/NoteResource.js | 36 +++++++--- ReactNativeClient/lib/services/BaseService.js | 12 ++++ .../lib/services/ResourceService.js | 62 +++++++++++----- ReactNativeClient/root.js | 10 +++ 10 files changed, 205 insertions(+), 28 deletions(-) create mode 100644 CliClient/tests/services_ResourceService.js create mode 100644 ReactNativeClient/lib/services/BaseService.js diff --git a/CliClient/app/app.js b/CliClient/app/app.js index b702fbfb34..43f17843de 100644 --- a/CliClient/app/app.js +++ b/CliClient/app/app.js @@ -5,6 +5,7 @@ const { JoplinDatabase } = require('lib/joplin-database.js'); const { Database } = require('lib/database.js'); const { FoldersScreenUtils } = require('lib/folders-screen-utils.js'); const { DatabaseDriverNode } = require('lib/database-driver-node.js'); +const ResourceService = require('lib/services/ResourceService'); const BaseModel = require('lib/BaseModel.js'); const Folder = require('lib/models/Folder.js'); const BaseItem = require('lib/models/BaseItem.js'); @@ -412,6 +413,12 @@ class Application extends BaseApplication { const tags = await Tag.allWithNotes(); + const resourceService = new ResourceService(); + resourceService.maintenance(); + setInterval(() => { + resourceService.maintenance(); + }, 1000 * 60 * 60 * 4); + this.dispatch({ type: 'TAG_UPDATE_ALL', items: tags, diff --git a/CliClient/tests/services_ResourceService.js b/CliClient/tests/services_ResourceService.js new file mode 100644 index 0000000000..8a99298291 --- /dev/null +++ b/CliClient/tests/services_ResourceService.js @@ -0,0 +1,72 @@ +require('app-module-path').addPath(__dirname); + +const { time } = require('lib/time-utils.js'); +const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js'); +const InteropService = require('lib/services/InteropService.js'); +const Folder = require('lib/models/Folder.js'); +const Note = require('lib/models/Note.js'); +const Tag = require('lib/models/Tag.js'); +const NoteTag = require('lib/models/NoteTag.js'); +const Resource = require('lib/models/Resource.js'); +const ResourceService = require('lib/services/ResourceService.js'); +const fs = require('fs-extra'); +const ArrayUtils = require('lib/ArrayUtils'); +const ObjectUtils = require('lib/ObjectUtils'); +const { shim } = require('lib/shim.js'); + +process.on('unhandledRejection', (reason, p) => { + console.log('Unhandled Rejection at: Promise', p, 'reason:', reason); +}); + +jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000; + +function exportDir() { + return __dirname + '/export'; +} + +function fieldsEqual(model1, model2, fieldNames) { + for (let i = 0; i < fieldNames.length; i++) { + const f = fieldNames[i]; + expect(model1[f]).toBe(model2[f], 'For key ' + f); + } +} + +describe('services_ResourceService', function() { + + beforeEach(async (done) => { + await setupDatabaseAndSynchronizer(1); + await switchClient(1); + done(); + }); + + it('should delete orphaned resources', asyncTest(async () => { + const service = new ResourceService(); + + let folder1 = await Folder.save({ title: "folder1" }); + let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id }); + note1 = await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg'); + let resource1 = (await Resource.all())[0]; + const resourcePath = Resource.fullPath(resource1); + + await service.indexNoteResources(); + await service.deleteOrphanResources(0); + + expect(!!(await Resource.load(resource1.id))).toBe(true); + + await Note.delete(note1.id); + await service.deleteOrphanResources(0); + + expect(!!(await Resource.load(resource1.id))).toBe(true); + + await service.indexNoteResources(); + await service.deleteOrphanResources(1000 * 60); + + expect(!!(await Resource.load(resource1.id))).toBe(true); + + await service.deleteOrphanResources(0); + + expect(!!(await Resource.load(resource1.id))).toBe(false); + expect(await shim.fsDriver().exists(resourcePath)).toBe(false); + })); + +}); \ No newline at end of file diff --git a/ElectronClient/app/app.js b/ElectronClient/app/app.js index 16e9e931bb..da4075339f 100644 --- a/ElectronClient/app/app.js +++ b/ElectronClient/app/app.js @@ -22,6 +22,7 @@ const AlarmServiceDriverNode = require('lib/services/AlarmServiceDriverNode'); const DecryptionWorker = require('lib/services/DecryptionWorker'); const InteropService = require('lib/services/InteropService'); const InteropServiceHelper = require('./InteropServiceHelper.js'); +const ResourceService = require('lib/services/ResourceService'); const { bridge } = require('electron').remote.require('./bridge'); const Menu = bridge().Menu; @@ -608,6 +609,12 @@ class Application extends BaseApplication { AlarmService.garbageCollect(); }, 1000 * 60 * 60); + const resourceService = new ResourceService(); + resourceService.maintenance(); + setInterval(() => { + resourceService.maintenance(); + }, 1000 * 60 * 60 * 4); + if (Setting.value('env') === 'dev') { AlarmService.updateAllNotifications(); } else { diff --git a/ReactNativeClient/lib/BaseApplication.js b/ReactNativeClient/lib/BaseApplication.js index 103e064848..f360da354d 100644 --- a/ReactNativeClient/lib/BaseApplication.js +++ b/ReactNativeClient/lib/BaseApplication.js @@ -31,6 +31,7 @@ const SyncTargetNextcloud = require('lib/SyncTargetNextcloud.js'); const SyncTargetWebDAV = require('lib/SyncTargetWebDAV.js'); const EncryptionService = require('lib/services/EncryptionService'); const DecryptionWorker = require('lib/services/DecryptionWorker'); +const BaseService = require('lib/services/BaseService'); SyncTargetRegistry.addClass(SyncTargetFilesystem); SyncTargetRegistry.addClass(SyncTargetOneDrive); @@ -426,6 +427,7 @@ class BaseApplication { setLocale(Setting.value('locale')); } + BaseService.logger_ = this.logger_; EncryptionService.instance().setLogger(this.logger_); BaseItem.encryptionService_ = EncryptionService.instance(); DecryptionWorker.instance().setLogger(this.logger_); diff --git a/ReactNativeClient/lib/joplin-database.js b/ReactNativeClient/lib/joplin-database.js index 34adfc422d..b66d449b98 100644 --- a/ReactNativeClient/lib/joplin-database.js +++ b/ReactNativeClient/lib/joplin-database.js @@ -301,7 +301,7 @@ class JoplinDatabase extends Database { if (targetVersion == 10) { const itemChangesTable = ` CREATE TABLE item_changes ( - id INTEGER PRIMARY KEY, + id INTEGER PRIMARY KEY AUTOINCREMENT, item_type INT NOT NULL, item_id TEXT NOT NULL, type INT NOT NULL, @@ -313,7 +313,9 @@ class JoplinDatabase extends Database { CREATE TABLE note_resources ( id INTEGER PRIMARY KEY, note_id TEXT NOT NULL, - resource_id TEXT NOT NULL + resource_id TEXT NOT NULL, + is_associated INT NOT NULL, + last_seen_time INT NOT NULL ); `; diff --git a/ReactNativeClient/lib/models/ItemChange.js b/ReactNativeClient/lib/models/ItemChange.js index ed648ac5d8..61dc19d78b 100644 --- a/ReactNativeClient/lib/models/ItemChange.js +++ b/ReactNativeClient/lib/models/ItemChange.js @@ -12,6 +12,10 @@ class ItemChange extends BaseModel { } static async add(itemType, itemId, type) { + ItemChange.saveCalls_.push(true); + + // Using a mutex so that records can be added to the database in the + // background, without making the UI wait. const release = await ItemChange.addChangeMutex_.acquire(); try { @@ -21,12 +25,27 @@ class ItemChange extends BaseModel { ]); } finally { release(); + ItemChange.saveCalls_.pop(); } } + // Because item changes are recorded in the background, this function + // can be used for synchronous code, in particular when unit testing. + static async waitForAllSaved() { + return new Promise((resolve, reject) => { + const iid = setInterval(() => { + if (!ItemChange.saveCalls_.length) { + clearInterval(iid); + resolve(); + } + }, 100); + }); + } + } ItemChange.addChangeMutex_ = new Mutex(); +ItemChange.saveCalls_ = []; ItemChange.TYPE_CREATE = 1; ItemChange.TYPE_UPDATE = 2; diff --git a/ReactNativeClient/lib/models/NoteResource.js b/ReactNativeClient/lib/models/NoteResource.js index 02bf83f2cb..2ac92e74fd 100644 --- a/ReactNativeClient/lib/models/NoteResource.js +++ b/ReactNativeClient/lib/models/NoteResource.js @@ -10,21 +10,39 @@ class NoteResource extends BaseModel { return BaseModel.TYPE_NOTE_RESOURCE; } - static async associate(noteId, resourceIds) { - let queries = []; - queries.push({ sql: 'DELETE FROM note_resources WHERE note_id = ?', params: [noteId] }); + static async setAssociatedResources(noteId, resourceIds) { + const existingRows = await this.modelSelectAll('SELECT * FROM note_resources WHERE note_id = ?', [noteId]); - for (let i = 0; i < resourceIds.length; i++) { - queries.push({ sql: 'INSERT INTO note_resources (note_id, resource_id) VALUES (?, ?)', params: [noteId, resourceIds[i]] }); + const notProcessedResourceIds = resourceIds.slice(); + const queries = []; + for (let i = 0; i < existingRows.length; i++) { + const row = existingRows[i]; + const resourceIndex = resourceIds.indexOf(row.resource_id); + + if (resourceIndex >= 0) { + queries.push({ sql: 'UPDATE note_resources SET last_seen_time = ?, is_associated = 1 WHERE id = ?', params: [Date.now(), row.id] }); + notProcessedResourceIds.splice(notProcessedResourceIds.indexOf(row.resource_id), 1); + } else { + queries.push({ sql: 'UPDATE note_resources SET is_associated = 0 WHERE id = ?', params: [row.id] }); + } } - await this.db().transactionExecBatch(queries); + for (let i = 0; i < notProcessedResourceIds.length; i++) { + queries.push({ sql: 'INSERT INTO note_resources (note_id, resource_id, is_associated, last_seen_time) VALUES (?, ?, ?, ?)', params: [noteId, notProcessedResourceIds[i], 1, Date.now()] }); + } + + await this.db().transactionExecBatch(queries); } static async remove(noteId) { - let queries = []; - queries.push({ sql: 'DELETE FROM note_resources WHERE note_id = ?', params: [noteId] }); - await this.db().transactionExecBatch(queries); + await this.db().exec({ sql: 'UPDATE note_resources SET is_associated = 0 WHERE note_id = ?', params: [noteId] }); + } + + static async orphanResources(expiryDelay = null) { + if (expiryDelay === null) expiryDelay = 1000 * 60 * 60 * 24; + const cutOffTime = Date.now() - expiryDelay; + const output = await this.modelSelectAll('SELECT DISTINCT resource_id FROM note_resources WHERE is_associated = 0 AND last_seen_time < ?', [cutOffTime]); + return output.map(r => r.resource_id); } } diff --git a/ReactNativeClient/lib/services/BaseService.js b/ReactNativeClient/lib/services/BaseService.js new file mode 100644 index 0000000000..54985caf92 --- /dev/null +++ b/ReactNativeClient/lib/services/BaseService.js @@ -0,0 +1,12 @@ +class BaseService { + + logger() { + if (!BaseService.logger_) throw new Error('BaseService.logger_ not set!!'); + return BaseService.logger_; + } + +} + +BaseService.logger_ = null; + +module.exports = BaseService; \ No newline at end of file diff --git a/ReactNativeClient/lib/services/ResourceService.js b/ReactNativeClient/lib/services/ResourceService.js index 711dd23fc5..16a048e728 100644 --- a/ReactNativeClient/lib/services/ResourceService.js +++ b/ReactNativeClient/lib/services/ResourceService.js @@ -1,52 +1,80 @@ const ItemChange = require('lib/models/ItemChange'); const NoteResource = require('lib/models/NoteResource'); const Note = require('lib/models/Note'); +const Resource = require('lib/models/Resource'); const BaseModel = require('lib/BaseModel'); +const BaseService = require('lib/services/BaseService'); -class ResourceService { +class ResourceService extends BaseService { async indexNoteResources() { + this.logger().info('ResourceService::indexNoteResources: Start'); + let lastId = 0; - let lastCreatedTime = 0 + + const processedChangeIds = []; + + await ItemChange.waitForAllSaved(); while (true) { const changes = await ItemChange.modelSelectAll(` - SELECT id, item_id, type, created_time + SELECT id, item_id, type FROM item_changes WHERE item_type = ? AND id > ? - AND created_time >= ? - ORDER BY id, created_time ASC + ORDER BY id ASC LIMIT 10 - `, [BaseModel.TYPE_NOTE, lastId, lastCreatedTime]); + `, [BaseModel.TYPE_NOTE, lastId]); if (!changes.length) break; const noteIds = changes.map(a => a.item_id); - const changesByNoteId = {}; - for (let i = 0; i < changes.length; i++) { - changesByNoteId[changes[i].item_id] = changes[i]; - } - const notes = await Note.modelSelectAll('SELECT id, title, body FROM notes WHERE id IN ("' + noteIds.join('","') + '")'); - for (let i = 0; i < notes.length; i++) { - const note = notes[i]; - const change = changesByNoteId[note.id]; + const noteById = (noteId) => { + for (let i = 0; i < notes.length; i++) { + if (notes[i].id === noteId) return notes[i]; + } + throw new Error('Invalid note ID: ' + noteId); + } + + for (let i = 0; i < changes.length; i++) { + const change = changes[i]; if (change.type === ItemChange.TYPE_CREATE || change.type === ItemChange.TYPE_UPDATE) { + const note = noteById(change.item_id); const resourceIds = Note.linkedResourceIds(note.body); - await NoteResource.associate(note.id, resourceIds); + await NoteResource.setAssociatedResources(note.id, resourceIds); } else if (change.type === ItemChange.TYPE_DELETE) { - await NoteResource.remove(note.id); + await NoteResource.remove(change.item_id); } else { throw new Error('Invalid change type: ' + change.type); } lastId = change.id; - lastCreatedTime = change.created_time; + + processedChangeIds.push(change.id); } } + + if (lastId) { + await ItemChange.db().exec('DELETE FROM item_changes WHERE id <= ?', [lastId]); + } + + this.logger().info('ResourceService::indexNoteResources: Completed'); + } + + async deleteOrphanResources(expiryDelay = null) { + const resourceIds = await NoteResource.orphanResources(expiryDelay); + this.logger().info('ResourceService::deleteOrphanResources:', resourceIds); + for (let i = 0; i < resourceIds.length; i++) { + await Resource.delete(resourceIds[i]); + } + } + + async maintenance() { + await this.indexNoteResources(); + await this.deleteOrphanResources(); } } diff --git a/ReactNativeClient/root.js b/ReactNativeClient/root.js index d8b332a764..5313ea9349 100644 --- a/ReactNativeClient/root.js +++ b/ReactNativeClient/root.js @@ -22,6 +22,8 @@ const NoteTag = require('lib/models/NoteTag.js'); const BaseItem = require('lib/models/BaseItem.js'); const MasterKey = require('lib/models/MasterKey.js'); const BaseModel = require('lib/BaseModel.js'); +const BaseService = require('lib/services/BaseService.js'); +const ResourceService = require('lib/services/ResourceService'); const { JoplinDatabase } = require('lib/joplin-database.js'); const { Database } = require('lib/database.js'); const { NotesScreen } = require('lib/components/screens/notes.js'); @@ -318,6 +320,8 @@ async function initialize(dispatch) { reg.setLogger(mainLogger); reg.setShowErrorMessageBoxHandler((message) => { alert(message) }); + BaseService.logger_ = mainLogger; + reg.logger().info('===================================='); reg.logger().info('Starting application ' + Setting.value('appId') + ' (' + Setting.value('env') + ')'); @@ -450,6 +454,12 @@ async function initialize(dispatch) { AlarmService.garbageCollect(); }, 1000 * 60 * 60); + const resourceService = new ResourceService(); + resourceService.maintenance(); + PoorManIntervals.setInterval(() => { + resourceService.maintenance(); + }, 1000 * 60 * 60 * 4); + reg.scheduleSync().then(() => { // Wait for the first sync before updating the notifications, since synchronisation // might change the notifications. From 2599c425c351ae28a1126e2adf192f68b74f5ada Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Thu, 15 Mar 2018 18:15:33 +0000 Subject: [PATCH 48/86] Updated translations --- CliClient/locales/es_ES.po | 2 - CliClient/locales/pt_BR.po | 320 ++++++++++++++------------ CliClient/locales/ru_RU.po | 2 - ElectronClient/app/locales/es_ES.json | 2 +- ElectronClient/app/locales/pt_BR.json | 2 +- ElectronClient/app/locales/ru_RU.json | 2 +- README.md | 6 +- ReactNativeClient/locales/es_ES.json | 2 +- ReactNativeClient/locales/pt_BR.json | 2 +- ReactNativeClient/locales/ru_RU.json | 2 +- docs/index.html | 18 +- 11 files changed, 189 insertions(+), 171 deletions(-) diff --git a/CliClient/locales/es_ES.po b/CliClient/locales/es_ES.po index ce1994fbe5..ea2e4161ec 100644 --- a/CliClient/locales/es_ES.po +++ b/CliClient/locales/es_ES.po @@ -16,8 +16,6 @@ msgstr "" "X-Generator: Poedit 1.8.11\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-SourceCharset: UTF-8\n" -"POT-Creation-Date: \n" -"PO-Revision-Date: \n" msgid "To delete a tag, untag the associated notes." msgstr "Desmarque las notas asociadas para eliminar una etiqueta." diff --git a/CliClient/locales/pt_BR.po b/CliClient/locales/pt_BR.po index f231e97004..85f5da3557 100644 --- a/CliClient/locales/pt_BR.po +++ b/CliClient/locales/pt_BR.po @@ -7,13 +7,13 @@ msgid "" msgstr "" "Project-Id-Version: Joplin-CLI 1.0.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: \n" +"Last-Translator: Renato Nunes Bastos \n" "Language-Team: \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.5\n" +"X-Generator: Poedit 2.0.6\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" msgid "To delete a tag, untag the associated notes." @@ -50,16 +50,16 @@ msgstr "s" msgid "Cancelling background synchronisation... Please wait." msgstr "Cancelando sincronização em segundo plano... Por favor, aguarde." -#, fuzzy, javascript-format +#, javascript-format msgid "No such command: %s" -msgstr "Comando inválido: \"%s\"" +msgstr "Não existe o comando: \"%s\"" #, javascript-format msgid "The command \"%s\" is only available in GUI mode" msgstr "O comando \"%s\" está disponível somente em modo gráfico" msgid "Cannot change encrypted item" -msgstr "" +msgstr "Não pode mudar um item encriptado" #, javascript-format msgid "Missing required argument: %s" @@ -127,22 +127,25 @@ msgid "" "Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, " "`status` and `target-status`." msgstr "" +"Gerencia a configuração E2EE. Os comandos são `enable`, `disable`, " +"`decrypt`, `status` e `target-status`." msgid "Enter master password:" -msgstr "" +msgstr "Entre a senha master:" msgid "Operation cancelled" -msgstr "" +msgstr "Operação cancelada" msgid "" "Starting decryption... Please wait as it may take several minutes depending " "on how much there is to decrypt." msgstr "" +"Iniciando decriptação... Por favor aguarde, pois isso pode demorar vários " +"minutos, dependendo de quanto há para decriptar." msgid "Completed decryption." -msgstr "" +msgstr "Decriptação completada." -#, fuzzy msgid "Enabled" msgstr "Desabilitado" @@ -151,7 +154,7 @@ msgstr "Desabilitado" #, javascript-format msgid "Encryption is: %s" -msgstr "" +msgstr "Encriptação está: %s" msgid "Edit note." msgstr "Editar nota." @@ -174,7 +177,7 @@ msgstr "Começando a editar a nota. Feche o editor para voltar ao prompt." #, javascript-format msgid "Error opening note in editor: %s" -msgstr "" +msgstr "Erro ao abir a nota no editor: %s" msgid "Note has been saved." msgstr "Nota gravada." @@ -182,7 +185,6 @@ msgstr "Nota gravada." msgid "Exits the application." msgstr "Sai da aplicação." -#, fuzzy msgid "" "Exports Joplin data to the given path. By default, it will export the " "complete database including notebooks, notes, tags and resources." @@ -191,9 +193,9 @@ msgstr "" "exportará o banco de dados completo, incluindo cadernos, notas, tags e " "recursos." -#, fuzzy, javascript-format +#, javascript-format msgid "Destination format: %s" -msgstr "Formato de data" +msgstr "Formato do destino: %s" msgid "Exports only the given note." msgstr "Exporta apenas a nota fornecida." @@ -209,16 +211,17 @@ msgstr "Exibe informações de uso." #, javascript-format msgid "For information on how to customise the shortcuts please visit %s" -msgstr "" +msgstr "Para informações sobre como customizar os atalhos, por favor visite %s" msgid "Shortcuts are not available in CLI mode." msgstr "Os atalhos não estão disponíveis no modo CLI." -#, fuzzy msgid "" "Type `help [command]` for more information about a command; or type `help " "all` for the complete usage information." -msgstr "Digite `help [comando]` para obter mais informações sobre um comando." +msgstr "" +"Digite `help [comando]` para obter mais informações sobre um comando; ou " +"digite `help all` para informações completas de uso." msgid "The possible commands are:" msgstr "Os comandos possíveis são:" @@ -252,19 +255,17 @@ msgstr "Para entrar no modo de linha de comando, pressione \":\"" msgid "To exit command line mode, press ESCAPE" msgstr "Para sair do modo de linha de comando, pressione o ESC" -#, fuzzy msgid "" "For the list of keyboard shortcuts and config options, type `help keymap`" msgstr "" -"Para a lista completa de atalhos de teclado disponíveis, digite `help " -"shortcuts`" +"Para a lista completa de atalhos de teclado disponíveis, digite `help keymap`" msgid "Imports data into Joplin." -msgstr "" +msgstr "Importa dados para o Joplin." -#, fuzzy, javascript-format +#, javascript-format msgid "Source format: %s" -msgstr "Comando inválido: \"%s\"" +msgstr "Formato da origem: \"%s\"" msgid "Do not ask for confirmation." msgstr "Não pedir confirmação." @@ -363,6 +364,8 @@ msgstr "Exclui o caderno sem pedir confirmação." msgid "Delete notebook? All notes within this notebook will also be deleted." msgstr "" +"Excluir o caderno? Todas as notas deste caderno notebook também serão " +"excluídas." msgid "Deletes the notes matching ." msgstr "Exclui as notas correspondentes ao padrão ." @@ -380,13 +383,17 @@ msgstr "Apagar nota?" msgid "Searches for the given in all the notes." msgstr "Procura o padrão em todas as notas." -#, fuzzy, javascript-format +#, javascript-format msgid "" "Sets the property of the given to the given [value]. Possible " "properties are:\n" "\n" "%s" -msgstr "Define a propriedade da para o dado [valor]." +msgstr "" +"Define a propriedade da para o valor [value]. As propriedades " +"possíveis são:\n" +"\n" +"%s" msgid "Displays summary about the notes and notebooks." msgstr "Exibe sumário sobre as notas e cadernos." @@ -407,6 +414,8 @@ msgstr "" #, javascript-format msgid "Not authentified with %s. Please provide any missing credentials." msgstr "" +"Não autenticado com %s. Por favor, complete as credenciais que estiverem " +"faltando." msgid "Synchronisation is already in progress." msgstr "A sincronização já está em andamento." @@ -493,9 +502,8 @@ msgstr "Padrão: %s" msgid "Possible keys/values:" msgstr "Possíveis chaves/valores:" -#, fuzzy msgid "Type `joplin help` for usage information." -msgstr "Exibe informações de uso." +msgstr "Digite 'joplin help' para informações de uso." msgid "Fatal error:" msgstr "Erro fatal:" @@ -532,6 +540,13 @@ msgid "" "\n" "For example, to create a notebook press `mb`; to create a note press `mn`." msgstr "" +"Bem-vindo ao Joplin!\n" +"\n" +"Digite `:help shortcuts` para obter a lista de atalhos de teclado, ou apenas " +"`:help` para informações de utilização.\n" +"\n" +"Por exemplo, para criar um caderno digite `mb`; para criar uma nota, digite " +"`mn`." msgid "" "One or more items are currently encrypted and you may need to supply a " @@ -539,14 +554,18 @@ msgid "" "supplied the password, the encrypted items are being decrypted in the " "background and will be available soon." msgstr "" +"Um ou mais itens estão criptografados, e você pode precisar de informar uma " +"senha master. Para fazer isso, por favor digite `e2ee decrypt`. Se você já " +"forneceu a senha, os itens criptografados estão sendo decriptados em " +"background e logo estarão disponíveis." #, javascript-format msgid "Exporting to \"%s\" as \"%s\" format. Please wait..." -msgstr "" +msgstr "Exportando para \"%s\" com o formato \"%s\". Por favor, aguarde..." #, javascript-format msgid "Importing from \"%s\" as \"%s\" format. Please wait..." -msgstr "" +msgstr "Importando de \"%s\" com o formato \"%s\". Por favor, aguarde..." #, fuzzy msgid "PDF File" @@ -567,16 +586,15 @@ msgstr "Novo caderno" msgid "Import" msgstr "Importar" -#, fuzzy msgid "Export" -msgstr "Importar" +msgstr "Exportar" msgid "Print" msgstr "" #, javascript-format msgid "Hide %s" -msgstr "" +msgstr "Ocultar %s" msgid "Quit" msgstr "Sair" @@ -597,24 +615,22 @@ msgid "Search in all the notes" msgstr "Pesquisar em todas as notas" msgid "View" -msgstr "" +msgstr "Visualizar" msgid "Toggle editor layout" -msgstr "" +msgstr "Alternar layout do editor" msgid "Tools" msgstr "Ferramentas" -#, fuzzy msgid "Synchronisation status" -msgstr "Alvo de sincronização" +msgstr "Status de sincronização" msgid "Encryption options" -msgstr "" +msgstr "Opções de Encriptação" -#, fuzzy msgid "General Options" -msgstr "Opções" +msgstr "Opções Gerais" msgid "Help" msgstr "Ajuda" @@ -622,12 +638,11 @@ msgstr "Ajuda" msgid "Website and documentation" msgstr "Website e documentação" -#, fuzzy msgid "Make a donation" -msgstr "Website e documentação" +msgstr "Fazer uma doação" msgid "Check for updates..." -msgstr "" +msgstr "Verificar atualizações..." msgid "About Joplin" msgstr "Sobre o Joplin" @@ -636,12 +651,12 @@ msgstr "Sobre o Joplin" msgid "%s %s (%s, %s)" msgstr "%s %s (%s, %s)" -#, fuzzy, javascript-format +#, javascript-format msgid "Open %s" -msgstr "Em %s: %s" +msgstr "Abrir %s" msgid "Exit" -msgstr "" +msgstr "Sair" msgid "OK" msgstr "OK" @@ -650,34 +665,34 @@ msgid "Cancel" msgstr "Cancelar" msgid "Current version is up-to-date." -msgstr "" +msgstr "A versão atual está atualizada." msgid "An update is available, do you want to download it now?" -msgstr "" +msgstr "Uma atualização está disponível, você quer baixar agora?" msgid "Yes" -msgstr "" +msgstr "Sim" -#, fuzzy msgid "No" -msgstr "N" +msgstr "Não" -#, fuzzy msgid "Check synchronisation configuration" -msgstr "Cancelar sincronização" +msgstr "Verificar a configuração da sincronização" #, javascript-format msgid "Notes and settings are stored in: %s" -msgstr "" +msgstr "Notas e configurações estão armazenadas em: %s" msgid "Save" -msgstr "" +msgstr "Salvar" msgid "" "Disabling encryption means *all* your notes and attachments are going to be " "re-synchronised and sent unencrypted to the sync target. Do you wish to " "continue?" msgstr "" +"Desabilitar a encriptação significa que *todas* as suas notas e anexos serão " +"re-sincronizados e enviados sem encriptação. Você quer continuar?" msgid "" "Enabling encryption means *all* your notes and attachments are going to be " @@ -685,59 +700,68 @@ msgid "" "password as, for security purposes, this will be the *only* way to decrypt " "the data! To enable encryption, please enter your password below." msgstr "" +"Habilitar a encriptação significa que *todas* as suas notas e anexos serão " +"re-sincronizados e re-enviados com encriptação. Não perca sua senha, pois, " +"por medidas de segurança, esse será o *único* modo de decriptar seus dados! " +"Para habilitar a encriptação, por favor entre sua senha abaixo." msgid "Disable encryption" -msgstr "" +msgstr "Desabilitar encriptação" msgid "Enable encryption" -msgstr "" +msgstr "Habilitar encriptação" msgid "Master Keys" -msgstr "" +msgstr "Chaves mestras" msgid "Active" -msgstr "" +msgstr "Ativar" msgid "ID" -msgstr "" +msgstr "ID" msgid "Source" -msgstr "" +msgstr "Origem" -#, fuzzy msgid "Created" -msgstr "Criado: %d." +msgstr "Criado" -#, fuzzy msgid "Updated" -msgstr "Atualizado: %d." +msgstr "Atualizado" msgid "Password" -msgstr "" +msgstr "Senha" msgid "Password OK" -msgstr "" +msgstr "Senha OK" msgid "" "Note: Only one master key is going to be used for encryption (the one marked " "as \"active\"). Any of the keys might be used for decryption, depending on " "how the notes or notebooks were originally encrypted." msgstr "" +"Noto: Apenas uma chave máster será usada para encriptação (a que estiver " +"marcada como \"ativa\"). Qualquer uma das chaves pode ser usada para " +"decriptação, dependendo de como as notas ou os cadernos foram encriptados " +"originalmente." msgid "Missing Master Keys" -msgstr "" +msgstr "Chaves Master faltando" msgid "" "The master keys with these IDs are used to encrypt some of your items, " "however the application does not currently have access to them. It is likely " "they will eventually be downloaded via synchronisation." msgstr "" +"As chaves master com essas IDs são usadas para encriptar alguns de seus " +"itens, contudo a aplicação atualmente não tem acesso a elas. Provavelmente, " +"elas serão baixadas via sincronização." msgid "Status" msgstr "Status" msgid "Encryption is:" -msgstr "" +msgstr "Encriptação está:" msgid "Back" msgstr "Voltar" @@ -775,19 +799,17 @@ msgstr "Procurar" msgid "Layout" msgstr "Layout" -#, fuzzy msgid "Some items cannot be synchronised." -msgstr "Não é possível inicializar o sincronizador." +msgstr "Alguns itens não podem ser sincronizados." msgid "View them now" -msgstr "" +msgstr "Visualizar agora" -#, fuzzy msgid "Some items cannot be decrypted." -msgstr "Não é possível inicializar o sincronizador." +msgstr "Alguns itens não podem ser decriptados." msgid "Set the password" -msgstr "" +msgstr "Configurar a senha" msgid "Add or remove tags" msgstr "Adicionar ou remover tags" @@ -804,17 +826,15 @@ msgstr "Excluir notas?" msgid "No notes in here. Create one by clicking on \"New note\"." msgstr "Não há notas aqui. Crie uma, clicando em \"Nova nota\"." -#, fuzzy msgid "" "There is currently no notebook. Create one by clicking on \"New notebook\"." -msgstr "Atualmente, não há notas. Crie uma, clicando no botão (+)." +msgstr "Atualmente, não há cadernos. Crie um, clicando em \"Novo caderno\"." msgid "Open..." -msgstr "" +msgstr "Abrir..." -#, fuzzy msgid "Save as..." -msgstr "Gravar alterações" +msgstr "Salvar como..." #, javascript-format msgid "Unsupported link or message: %s" @@ -834,18 +854,18 @@ msgid "" "This note has no content. Click on \"%s\" to toggle the editor and edit the " "note." msgstr "" +"Esta nota não possui conteúdo. Clique em \"%s\" para alternar para o editor, " +"e edite a nota." -#, fuzzy msgid "to-do" -msgstr "Nova tarefa" +msgstr "tarefa" -#, fuzzy msgid "note" -msgstr "Nova nota" +msgstr "nota" -#, fuzzy, javascript-format +#, javascript-format msgid "Creating new %s..." -msgstr "Importando notas ..." +msgstr "Criando novo %s..." msgid "Refresh" msgstr "Atualizar" @@ -859,12 +879,11 @@ msgstr "Login no OneDrive" msgid "Options" msgstr "Opções" -#, fuzzy msgid "Synchronisation Status" -msgstr "Alvo de sincronização" +msgstr "Status de sincronização" msgid "Encryption Options" -msgstr "" +msgstr "Opções de Encriptação" msgid "Remove this tag from all the notes?" msgstr "Remover esta tag de todas as notas?" @@ -884,9 +903,10 @@ msgstr "Cadernos" msgid "Searches" msgstr "Pesquisas" -#, fuzzy msgid "Please select where the sync status should be exported to" -msgstr "Por favor, primeiro, selecione a nota ou caderno a excluir." +msgstr "" +"Favor selecionar o local para onde o status de sincronia deveria ser " +"exportado" #, javascript-format msgid "Usage: %s" @@ -900,7 +920,7 @@ msgid "File system" msgstr "Sistema de arquivos" msgid "Nextcloud" -msgstr "" +msgstr "Nextcloud" msgid "OneDrive" msgstr "OneDrive" @@ -909,7 +929,7 @@ msgid "OneDrive Dev (For testing only)" msgstr "OneDrive Dev (apenas para testes)" msgid "WebDAV" -msgstr "" +msgstr "WebDAV" #, javascript-format msgid "Unknown log level: %s" @@ -969,9 +989,9 @@ msgstr "Itens locais excluídos: %d." msgid "Deleted remote items: %d." msgstr "Itens remotos excluídos: %d." -#, fuzzy, javascript-format +#, javascript-format msgid "Fetched items: %d/%d." -msgstr "Itens locais criados: %d." +msgstr "Itens pesquisados: %d/%d." #, javascript-format msgid "State: \"%s\"." @@ -999,11 +1019,10 @@ msgid "Synchronisation is already in progress. State: %s" msgstr "Sincronização já em andamento. Estado: %s" msgid "Encrypted" -msgstr "" +msgstr "Encriptado" -#, fuzzy msgid "Encrypted items cannot be modified" -msgstr "Não é possível inicializar o sincronizador." +msgstr "Itens encriptados não podem ser modificados" msgid "Conflicts" msgstr "Conflitos" @@ -1025,7 +1044,7 @@ msgstr "Esta nota não possui informações de geolocalização." #, javascript-format msgid "Cannot copy note to \"%s\" notebook" -msgstr "Não é possível copiar a nota para o caderno \"%s\" " +msgstr "Não é possível copiar a nota para o caderno \"%s\"" #, javascript-format msgid "Cannot move note to \"%s\" notebook" @@ -1059,48 +1078,45 @@ msgstr "Light" msgid "Dark" msgstr "Dark" -#, fuzzy msgid "Uncompleted to-dos on top" -msgstr "Mostrar tarefas incompletas no topo das listas" +msgstr "Mostrar tarefas incompletas no topo" msgid "Sort notes by" -msgstr "" +msgstr "Ordenar notas por" -#, fuzzy msgid "Reverse sort order" -msgstr "Inverte a ordem de classificação." +msgstr "Inverter ordem de classificação." msgid "Save geo-location with notes" msgstr "Salvar geolocalização com notas" -#, fuzzy msgid "When creating a new to-do:" -msgstr "Cria uma nova tarefa." +msgstr "Quando criar uma nova tarefa:" -#, fuzzy msgid "Focus title" -msgstr "Título da nota:" +msgstr "Foco no título" msgid "Focus body" -msgstr "" +msgstr "Focar no corpo" -#, fuzzy msgid "When creating a new note:" -msgstr "Cria uma nova nota." +msgstr "Quando criar uma nota nova:" msgid "Show tray icon" -msgstr "" +msgstr "Exibir tray icon" msgid "Global zoom percentage" -msgstr "" +msgstr "Porcentagem global do zoom" msgid "Editor font family" -msgstr "" +msgstr "Família de fontes do editor" msgid "" "The font name will not be checked. If incorrect or empty, it will default to " "a generic monospace font." msgstr "" +"O nomes da fonte não será verificado. Se estiver incorreto ou vazio, será " +"usado por default uma fonte genérica monospace." msgid "Automatically update the application" msgstr "Atualizar automaticamente o aplicativo" @@ -1130,9 +1146,11 @@ msgid "" "The target to synchonise to. Each sync target may have additional parameters " "which are named as `sync.NUM.NAME` (all documented below)." msgstr "" +"O alvo para onde sincronizar. Cada alvo pode ter parâmetros adicionais que " +"são nomeados como `sync.NUM.NAME` (todos documentados abaixo)." msgid "Directory to synchronise with (absolute path)" -msgstr "" +msgstr "Diretório para sincronizar (caminho absoluto)" msgid "" "The path to synchronise with when file system synchronisation is enabled. " @@ -1142,77 +1160,80 @@ msgstr "" "está habilitada. Veja `sync.target`." msgid "Nextcloud WebDAV URL" -msgstr "" +msgstr "Nextcloud WebDAV URL" msgid "Nextcloud username" -msgstr "" +msgstr "Usuário da Nextcloud" msgid "Nextcloud password" -msgstr "" +msgstr "Senha da Nextcloud" msgid "WebDAV URL" -msgstr "" +msgstr "WebDAV URL" msgid "WebDAV username" -msgstr "" +msgstr "Usuário do WebDAV" msgid "WebDAV password" -msgstr "" +msgstr "Senha do WebDAV" #, javascript-format msgid "Invalid option value: \"%s\". Possible values are: %s." msgstr "Valor da opção inválida: \"%s\". Os valores possíveis são: %s." -#, fuzzy msgid "Joplin Export File" -msgstr "Arquivos de Exportação do Evernote" +msgstr "Arquivo de Exportação do Joplin" msgid "Markdown" -msgstr "" +msgstr "Markdown" msgid "Joplin Export Directory" -msgstr "" +msgstr "Diretório de Exportação do Joplin" -#, fuzzy msgid "Evernote Export File" -msgstr "Arquivos de Exportação do Evernote" +msgstr "Arquivo de Exportação do Evernote" msgid "Directory" -msgstr "" +msgstr "DIretório" #, javascript-format msgid "Cannot load \"%s\" module for format \"%s\"" -msgstr "" +msgstr "Não é possível carregar o módulo \"%s\" para o formato \"%s\"" #, javascript-format msgid "Please specify import format for %s" -msgstr "" +msgstr "Favor especificar o formato de importação para %s" #, javascript-format msgid "" "This item is currently encrypted: %s \"%s\". Please wait for all items to be " "decrypted and try again." msgstr "" +"Este item atualmente está encriptado: %s \"%s\". Favor aguardar que todos os " +"itens sejam decriptados e tente novamente." msgid "There is no data to export." -msgstr "" +msgstr "Não há dados a exportar." -#, fuzzy msgid "Please specify the notebook where the notes should be imported to." -msgstr "Por favor, primeiro, selecione a nota ou caderno a excluir." +msgstr "" +"Por favor, especifique o caderno para onde as notas deveriam ser importadas." msgid "Items that cannot be synchronised" -msgstr "" +msgstr "Os itens não podem ser sincronizados" -#, fuzzy, javascript-format +#, javascript-format msgid "%s (%s): %s" -msgstr "%s %s (%s)" +msgstr "%s (%s): %s" msgid "" "These items will remain on the device but will not be uploaded to the sync " "target. In order to find these items, either search for the title or the ID " "(which is displayed in brackets above)." msgstr "" +"Estes itens continuarão no dispositivo mas não serão enviados ao alvo de " +"sincronização. Para encontrar esses itens, ou pesquise pelo título ou pelo " +"ID (que é exibido nos colchetes acima)" msgid "Sync status (synced items / total items)" msgstr "Status de sincronização (sincronizados / totais)" @@ -1260,7 +1281,7 @@ msgid "Export Debug Report" msgstr "Exportar Relatório de Debug" msgid "Encryption Config" -msgstr "" +msgstr "Configuração de Encriptação" msgid "Configuration" msgstr "Configuração" @@ -1273,7 +1294,7 @@ msgid "Move %d notes to notebook \"%s\"?" msgstr "Mover %d notas para o caderno \"%s\"?" msgid "Press to set the decryption password." -msgstr "" +msgstr "Pressione para configurar a senha de decriptação." msgid "Select date" msgstr "Selecionar data" @@ -1285,25 +1306,24 @@ msgid "Cancel synchronisation" msgstr "Cancelar sincronização" msgid "Joplin website" -msgstr "" +msgstr "Site do Joplin" #, javascript-format msgid "Master Key %s" -msgstr "" +msgstr "Chave Master %s" -#, fuzzy, javascript-format +#, javascript-format msgid "Created: %s" -msgstr "Criado: %d." +msgstr "Criado: %s" msgid "Password:" -msgstr "" +msgstr "Senha:" msgid "Password cannot be empty" -msgstr "" +msgstr "Senha não pode ser vazia" -#, fuzzy msgid "Enable" -msgstr "Desabilitado" +msgstr "Habilitar" #, javascript-format msgid "The notebook could not be saved: %s" @@ -1313,10 +1333,10 @@ msgid "Edit notebook" msgstr "Editar caderno" msgid "Show all" -msgstr "" +msgstr "Exibir tudo" msgid "Errors only" -msgstr "" +msgstr "Somente erros" msgid "This note has been modified:" msgstr "Esta nota foi modificada:" @@ -1371,12 +1391,14 @@ msgstr "Você não possui cadernos. Crie um clicando no botão (+)." msgid "Welcome" msgstr "Bem-vindo" -#, fuzzy #~ msgid "" #~ "Release notes:\n" #~ "\n" #~ "%s" -#~ msgstr "Excluir notas?" +#~ msgstr "" +#~ "Notas da versão:\n" +#~ "\n" +#~ "%s" #~ msgid "Imports an Evernote notebook file (.enex file)." #~ msgstr "Importa um arquivo de caderno do Evernote (arquivo .enex)." diff --git a/CliClient/locales/ru_RU.po b/CliClient/locales/ru_RU.po index bde02956c8..0eea8492e2 100644 --- a/CliClient/locales/ru_RU.po +++ b/CliClient/locales/ru_RU.po @@ -16,8 +16,6 @@ msgstr "" "X-Generator: Poedit 2.0.6\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"POT-Creation-Date: \n" -"PO-Revision-Date: \n" msgid "To delete a tag, untag the associated notes." msgstr "Чтобы удалить тег, уберите его с ассоциированных с ним заметок." diff --git a/ElectronClient/app/locales/es_ES.json b/ElectronClient/app/locales/es_ES.json index 8fce3fbd81..83465eb5d1 100644 --- a/ElectronClient/app/locales/es_ES.json +++ b/ElectronClient/app/locales/es_ES.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Desmarque las notas asociadas para eliminar una etiqueta.","Please select the note or notebook to be deleted first.":"Seleccione primero la nota o libreta que desea eliminar.","Press Ctrl+D or type \"exit\" to exit the application":"Pulse Ctrl+D o escriba «salir» para salir de la aplicación","More than one item match \"%s\". Please narrow down your query.":"Hay más de un elemento que coincide con «%s», intente mejorar su consulta.","No notebook selected.":"No se ha seleccionado ninguna libreta.","No notebook has been specified.":"Ninguna libreta fue especificada","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Cancelando sincronización de segundo plano... Por favor espere.","No such command: %s":"El comando no existe: %s","The command \"%s\" is only available in GUI mode":"El comando «%s» solamente está disponible en modo GUI","Cannot change encrypted item":"No se puede cambiar el elemento cifrado","Missing required argument: %s":"Falta un argumento requerido: %s","%s: %s":"%s: %s","Your choice: ":"Su elección: ","Invalid answer: %s":"Respuesta inválida: %s","Attaches the given file to the note.":"Adjuntar archivo a la nota.","Cannot find \"%s\".":"No se encuentra \"%s\".","Displays the given note.":"Mostrar la nota dada.","Displays the complete information about note.":"Mostrar la información completa acerca de la nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtener o configurar un valor. Si no se provee el [valor], se mostrará el valor de [nombre]. Si no se provee [nombre] ni [valor], se listará la configuración actual.","Also displays unset and hidden config variables.":"También muestra variables ocultas o no configuradas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica las notas que coincidan con en la libreta. Si no se especifica una libreta la nota se duplica en la libreta actual.","Marks a to-do as done.":"Marca una tarea como hecha.","Note is not a to-do: \"%s\"":"La nota no es una tarea: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Maneja la configuración E2EE. Comandos disponibles `enable`, `disable`, `decrypt`, `status` y `target-status`.","Enter master password:":"Introduzca la contraseña maestra:","Operation cancelled":"Operación cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando descifrado... Por favor espere, puede tardar varios minutos dependiendo de cuanto haya que descifrar.","Completed decryption.":"Descifrado completado.","Enabled":"Habilitado","Disabled":"Deshabilitado","Encryption is: %s":"El cifrado es: %s","Edit note.":"Editar una nota.","No text editor is defined. Please set it using `config editor `":"No hay editor de texto definido. Por favor configure uno usando `config editor `","No active notebook.":"No hay libreta activa.","Note does not exist: \"%s\". Create it?":"La nota no existe: \"%s\". ¿Crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Iniciando la edición de una nota. Cierre el editor para regresar al prompt.","Error opening note in editor: %s":"Error abriendo la nota en el editor: %s","Note has been saved.":"La nota ha sido guardada.","Exits the application.":"Sale de la aplicación.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporta datos de Joplin al directorio indicado. Por defecto, se exportará la base de datos completa incluyendo libretas, notas, etiquetas y recursos.","Destination format: %s":"Formato de destino: %s","Exports only the given note.":"Exporta únicamente la nota indicada.","Exports only the given notebook.":"Exporta únicamente la libreta indicada.","Displays a geolocation URL for the note.":"Muestra la URL de la geolocalización de la nota.","Displays usage information.":"Muestra información de uso.","For information on how to customise the shortcuts please visit %s":"Para información de cómo personalizar los atajos por favor visite %s","Shortcuts are not available in CLI mode.":"Atajos no disponibles en modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Escriba `help [command]` para obtener más información sobre el comando, o escriba `help all` para obtener toda la información acerca del uso del programa.","The possible commands are:":"Los posibles comandos son:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Con cualquier comando, una nota o libreta puede ser referida por su título o ID, o utilizando atajos `$n` o `$b`, respectivamente, para la nota o libreta seleccionada. Se puede utilizar `$c` para hacer referencia al elemento seleccionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover desde un panel a otro, presione Tabulador o Mayúsuclas+Tabulador.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Para desplazar en las listas y areas de texto (incluyendo la consola) utilice las flechas y re pág/av pág.","To maximise/minimise the console, press \"TC\".":"Para maximizar/minimizar la consola, presione \"TC\".","To enter command line mode, press \":\"":"Para entrar a modo línea de comando, presione \":\"","To exit command line mode, press ESCAPE":"Para salir de modo línea de comando, presione ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Para una lista de los atajos de teclado disponibles, escriba `help keymap`","Imports data into Joplin.":"Importa los datos en Joplin.","Source format: %s":"Formato de origen: %s","Do not ask for confirmation.":"No requiere confirmación.","Found: %d.":"Encontrado: %d.","Created: %d.":"Creado: %d.","Updated: %d.":"Actualizado: %d.","Skipped: %d.":"Omitido: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Etiquetado: %d.","Importing notes...":"Importando notas...","The notes have been imported: %s":"Las notas han sido importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Muestra las notas en la libreta actual. Usa `ls /` para mostrar la lista de libretas.","Displays only the first top notes.":"Muestra las primeras notas.","Sorts the item by (eg. title, updated_time, created_time).":"Ordena los elementos por campo ( ej. title, updated_time, created_time).","Reverses the sorting order.":"Invierte el orden.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Muestra únicamente los elementos de los tipos especificados. Pueden ser `n` para notas, `t` para tareas, o `nt` para libretas y tareas (ej. `-tt` mostrará unicamente las tareas, mientras `-ttd` mostrará notas y tareas).","Either \"text\" or \"json\"":"Puede ser \"text\" o \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usar formato largo de lista. El formato es ID, NOTE_COUNT ( para libretas), DATE,TODO_CHECKED ( para tareas), TITLE","Please select a notebook first.":"Por favor seleccione la libreta.","Creates a new notebook.":"Crea una nueva libreta.","Creates a new note.":"Crea una nueva nota.","Notes can only be created within a notebook.":"Notas solamente pueden ser creadas dentro de una libreta.","Creates a new to-do.":"Crea una nueva lista de tareas.","Moves the notes matching to [notebook].":"Mueve las notas que coincidan con a la [libreta].","Renames the given (note or notebook) to .":"Renombra el elemento dado (nota o libreta) a .","Deletes the given notebook.":"Elimina la libreta dada.","Deletes the notebook without asking for confirmation.":"Elimina una libreta sin pedir confirmación.","Delete notebook? All notes within this notebook will also be deleted.":"¿Desea eliminar la libreta? Todas las notas dentro de esta libreta también serán eliminadas.","Deletes the notes matching .":"Elimina las notas que coinciden con .","Deletes the notes without asking for confirmation.":"Elimina las notas sin pedir confirmación.","%d notes match this pattern. Delete them?":"%d notas coinciden con el patrón. ¿Eliminarlas?","Delete note?":"¿Eliminar nota?","Searches for the given in all the notes.":"Buscar el patrón en todas las notas.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Asigna el valor [value] a la propiedad de la nota indicada . Propiedades disponibles:\n\n%s","Displays summary about the notes and notebooks.":"Muestra un resumen acerca de las notas y las libretas.","Synchronises with remote storage.":"Sincroniza con el almacenamiento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincroniza con el destino indicado (por defecto al valor de configuración sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticación no completada (no se recibió token de autenticación).","Not authentified with %s. Please provide any missing credentials.":"No autenticado con %s. Por favor provea las credenciales.","Synchronisation is already in progress.":"Sincronzación en progreso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ya hay un archivo de bloqueo. Si está seguro de que no hay una sincronización en curso puede eliminar el archivo de bloqueo «%s» y reanudar la operación.","Synchronisation target: %s (%s)":"Destino de la sincronización: %s (%s)","Cannot initialize synchroniser.":"No se puede inicializar sincronizador.","Starting synchronisation...":"Iniciando sincronización...","Cancelling... Please wait.":"Cancelando... Por favor espere."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" puede ser \"add\", \"remove\" o \"list\" para asignar o eliminar [tag] de [note], o para listar las notas asociadas con [tag]. El comando `tag list` puede ser usado para listar todas las etiquetas.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" puede ser \"toggle\" o \"clear\". Usa \"toggle\" para cambiar la tarea dada entre estado completado y sin completar. (Si el objetivo es una nota regular se convertirá en una tarea). Usa \"clear\" para convertir la tarea a una nota regular.","Marks a to-do as non-completed.":"Marca una tarea como no completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Cambia una [libreta] - todas las demás operaciones se realizan en ésta libreta.","Displays version information":"Muestra información de la versión","%s %s (%s)":"%s %s (%s)","Enum":"Enumeración","Type: %s.":"Tipo: %s.","Possible values: %s.":"Posibles valores: %s.","Default: %s":"Por defecto: %s","Possible keys/values:":"Claves/valores posbiles:","Type `joplin help` for usage information.":"Escriba `joplin help` para mostrar información de uso.","Fatal error:":"Error fatal:","The application has been authorised - you may now close this browser tab.":"La aplicación ha sido autorizada - ahora puede cerrar esta pestaña de su navegador.","The application has been successfully authorised.":"La aplicacion ha sido autorizada éxitosamente.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra la siguiente URL en su navegador para autenticar la aplicación. La aplicación creará un directorio en «Apps/Joplin» y solo leerá y escribirá archivos en ese directorio. No tendrá acceso a ningún archivo fuera de ese directorio ni a ningún otro archivo personal. No se compartirá información con terceros.","Search:":"Buscar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenido a Joplin.\n\nEscriba «:help shortcuts» para obtener una lista con los atajos de teclado, o simplemente «:help» para información general.\n\nPor ejemplo, para crear una libreta escriba «mb», para crear una nota escriba «mn».","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Uno o más elementos están cifrados y debe proporcionar la contraseña maestra. Para hacerlo por favor escriba `e2ee decrypt`. Si ya ha proporcionado la contraseña, los elementos están siendo descifrados en segundo plano y estarán disponibles en breve.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportando el formato de \"%s\" a \"%s\". Por favor espere...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importando el formato de \"%s\" a \"%s\". Por favor espere...","PDF File":"PDF File","File":"Archivo","New note":"Nueva nota","New to-do":"Nueva lista de tareas","New notebook":"Nueva libreta","Import":"Importar","Export":"Exportar","Print":"","Hide %s":"Oculta %s","Quit":"Salir","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Pegar","Search in all the notes":"Buscar en todas las notas","View":"Ver","Toggle editor layout":"Cambia el diseño del editor","Tools":"Herramientas","Synchronisation status":"Estado de la sincronización","Encryption options":"Opciones de cifrado","General Options":"Opciones generales","Help":"Ayuda","Website and documentation":"Sitio web y documentación","Make a donation":"Hacer una donación","Check for updates...":"Comprobar actualizaciones...","About Joplin":"Acerca de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Abrir %s","Exit":"Salir","OK":"OK","Cancel":"Cancelar","Current version is up-to-date.":"La versión actual está actualizada.","An update is available, do you want to download it now?":"Hay disponible una actualización. ¿Quiere descargarla ahora?","Yes":"Sí","No":"No","Check synchronisation configuration":"Comprobar sincronización","Notes and settings are stored in: %s":"Las notas y los ajustes se guardan en: %s","Save":"Guardar","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Deshabilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán descifrados al destino. ¿Desea continuar?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Habilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán cifrados al destino. No pierda la contraseña, por cuestiones de seguridad, ¡es la *única* forma de descifrar los datos! Para habilitar el cifrado, por favor introduzca su contraseña más abajo.","Disable encryption":"Deshabilitar cifrado","Enable encryption":"Habilitar cifrado","Master Keys":"Clave maestra","Active":"Activo","ID":"ID","Source":"Origen","Created":"Creado","Updated":"Actualizado","Password":"Contraseña","Password OK":"Contraseña OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Nota: Solo una clave maestra va a ser utilizar para el cifrado (la marcada como \"activa\"). Cualquiera de las claves puede ser utilizada para descifrar, dependiendo de como fueron cifradas originalmente las notas o las libretas.","Missing Master Keys":"No se encuentra la clave maestra","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"La clave maestra con estos ID son utilizadas para descifrar algunos de tus elementos, pero la apliación no tiene acceso a ellas. Serán descargadas a través de la sincronización.","Status":"Estado","Encryption is:":"El cifrado está:","Back":"Atrás","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Se creará la nueva libreta «%s» y se importará en ella el archivo «%s»","Please create a notebook first.":"Por favor cree una libreta primero.","Please create a notebook first":"Por favor cree una libreta primero","Notebook title:":"Título de libreta:","Add or remove tags:":"Agregar o borrar etiquetas: ","Separate each tag by a comma.":"Separar cada etiqueta por una coma.","Rename notebook:":"Renombrar libreta:","Set alarm:":"Ajustar alarma:","Search":"Buscar","Layout":"Diseño","Some items cannot be synchronised.":"No se han podido sincronizar algunos de los elementos.","View them now":"Verlos ahora","Some items cannot be decrypted.":"No se han podido descifrar algunos elementos.","Set the password":"Establecer la contraseña","Add or remove tags":"Añadir o borrar etiquetas","Switch between note and to-do type":"Cambiar entre nota y lista de tareas","Delete":"Eliminar","Delete notes?":"¿Desea eliminar notas?","No notes in here. Create one by clicking on \"New note\".":"No hay ninguna nota. Cree una pulsando «Nota nueva».","There is currently no notebook. Create one by clicking on \"New notebook\".":"No hay ninguna libreta. Cree una pulsando en «Libreta nueva».","Open...":"Abrir...","Save as...":"Guardar como...","Unsupported link or message: %s":"Enlace o mensaje no soportado: %s","Attach file":"Adjuntar archivo","Tags":"Etiquetas","Set alarm":"Establecer alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota no tiene contenido. Pulse en \"%s\" para cambiar al editor y editar la nota.","to-do":"lista de tareas","note":"nota","Creating new %s...":"Creando nuevo %s...","Refresh":"Refrescar","Clear":"Limpiar","OneDrive Login":"Inicio de sesión de OneDrive","Options":"Opciones","Synchronisation Status":"Estado de la sincronización","Encryption Options":"Opciones de cifrado","Remove this tag from all the notes?":"¿Desea eliminar esta etiqueta de todas las notas?","Remove this search from the sidebar?":"¿Desea eliminar esta búsqueda de la barra lateral?","Rename":"Renombrar","Synchronise":"Sincronizar","Notebooks":"Libretas","Searches":"Búsquedas","Please select where the sync status should be exported to":"Seleccione a dónde se debería exportar el estado de sincronización","Usage: %s":"Uso: %s","Unknown flag: %s":"Etiqueta desconocida: %s","File system":"Sistema de archivos","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Solo para pruebas)","WebDAV":"WebDAV","Unknown log level: %s":"Nivel de log desconocido: %s","Unknown level ID: %s":"ID de nivel desconocido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"No se ha podido actualizar token: faltan datos de autenticación. Reiniciar la sincronización podría solucionar el problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"No se ha podido sincronizar con OneDrive.\n\nEste error suele ocurrir al utilizar OneDrive for Business. Este producto no está soportado.\n\nPodría considerar utilizar una cuenta Personal de OneDrive.","Cannot access %s":"No se ha podido acceder a %s","Created local items: %d.":"Elementos locales creados: %d.","Updated local items: %d.":"Elementos locales actualizados: %d.","Created remote items: %d.":"Elementos remotos creados: %d.","Updated remote items: %d.":"Elementos remotos actualizados: %d.","Deleted local items: %d.":"Elementos locales borrados: %d.","Deleted remote items: %d.":"Elementos remotos borrados: %d.","Fetched items: %d/%d.":"Elementos obtenidos: %d/%d.","State: \"%s\".":"Estado: «%s».","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"La sincronización ya está en progreso. Estado: %s","Encrypted":"Cifrado","Encrypted items cannot be modified":"Los elementos cifrados no pueden ser modificados","Conflicts":"Conflictos","A notebook with this title already exists: \"%s\"":"Ya existe una libreta con este nombre: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"No se puede usar el nombre «%s» para una libreta; es un título reservado.","Untitled":"Sin título","This note does not have geolocation information.":"Esta nota no tiene informacion de geolocalización.","Cannot copy note to \"%s\" notebook":"No se ha podido copiar la nota a la libreta «%s»","Cannot move note to \"%s\" notebook":"No se ha podido mover la nota a la libreta «%s»","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"El editor que se usará para abrir una nota. Se intentará auto-detectar el editor predeterminado si no se proporciona ninguno.","Language":"Idioma","Date format":"Formato de fecha","Time format":"Formato de hora","Theme":"Tema","Light":"Claro","Dark":"Oscuro","Uncompleted to-dos on top":"Mostrar tareas incompletas al inicio de las listas","Sort notes by":"Ordenar notas por","Reverse sort order":"Invierte el orden","Save geo-location with notes":"Guardar geolocalización en las notas","When creating a new to-do:":"Al crear una nueva lista de tareas:","Focus title":"Foco en el título","Focus body":"Foco en el cuerpo","When creating a new note:":"Cuando se crear una nota nueva:","Show tray icon":"Mostrar icono en la bandeja","Global zoom percentage":"Establecer el porcentaje de aumento de la aplicación","Editor font family":"Fuente del editor","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"El nombre de la fuente no se comprobado. Si es incorrecto o está vacío, se utilizará una fuente genérica monoespaciada.","Automatically update the application":"Actualizar la aplicación automáticamente","Synchronisation interval":"Intervalo de sincronización","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opciones avanzadas","Synchronisation target":"Destino de sincronización","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"El destino de la sincronización. Cada destino de la sincronización puede tener parámetros adicionales los cuales son llamados como `sync.NUM.NAME` (todos abajo documentados).","Directory to synchronise with (absolute path)":"Directorio con el que sincronizarse (ruta completa)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"La ruta a la que sincronizar cuando se activa la sincronización con sistema de archivos. Vea «sync.target».","Nextcloud WebDAV URL":"Servidor WebDAV de Nextcloud","Nextcloud username":"Usuario de Nextcloud","Nextcloud password":"Contraseña de Nextcloud","WebDAV URL":"Servidor WebDAV","WebDAV username":"Usuario de WebDAV","WebDAV password":"Contraseña de WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Opción inválida: «%s». Los valores posibles son: %s.","Joplin Export File":"Archivo de exportación de Joplin","Markdown":"Markdown","Joplin Export Directory":"Directorio para exportar de Joplin","Evernote Export File":"Archivo exportado de Evernote","Directory":"Directorio","Cannot load \"%s\" module for format \"%s\"":"No se puede cargar el módulo \"%s\" para el formato \"%s\"","Please specify import format for %s":"Por favor especifique el formato para importar de %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"El elemento se encuentra cifrado: %s \"%s\". Por favor espere a que todos los elementos estén descifrados y pruebe de nuevo.","There is no data to export.":"No hay datos para exportar.","Please specify the notebook where the notes should be imported to.":"Por favor especifique la libreta donde las notas deben ser importadas.","Items that cannot be synchronised":"Elementos que no se pueden sincronizar","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Estos elementos se mantendrán en el dispositivo pero no serán enviados al destino de sincronización. Para encontrar dichos elementos busca en el título o en el ID (el cual se muestra arriba entre corchetes).","Sync status (synced items / total items)":"Estado de sincronización (elementos sincronizados/elementos totales)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Conflictos: %d","To delete: %d":"Borrar: %d","Folders":"Carpetas","%s: %d notes":"%s: %d notas","Coming alarms":"Alarmas próximas","On %s: %s":"En %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"No hay notas. Cree una pulsando en el botón (+).","Delete these notes?":"¿Desea borrar estas notas?","Log":"Log","Export Debug Report":"Exportar informe de depuración","Encryption Config":"Configuración de cifrado","Configuration":"Configuración","Move to notebook...":"Mover a la libreta...","Move %d notes to notebook \"%s\"?":"¿Desea mover %d notas a libreta «%s»?","Press to set the decryption password.":"Presione para establecer la contraseña de descifrado.","Select date":"Seleccione fecha","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronización","Joplin website":"Sitio web de Joplin","Master Key %s":"Clave maestra %s","Created: %s":"Creado: %s","Password:":"Contraseña:","Password cannot be empty":"La contraseña no puede estar vacía","Enable":"Habilitado","The notebook could not be saved: %s":"No se ha podido guardar esta libreta: %s","Edit notebook":"Editar libreta","Show all":"Mostrar todo","Errors only":"Solo errores","This note has been modified:":"Esta nota ha sido modificada:","Save changes":"Guardar cambios","Discard changes":"Descartar cambios","Unsupported image type: %s":"Tipo de imagen no soportado: %s","Attach photo":"Adjuntar foto","Attach any file":"Adjuntar cualquier archivo","Convert to note":"Convertir a nota","Convert to todo":"Convertir a lista de tareas","Hide metadata":"Ocultar metadatos","Show metadata":"Mostrar metadatos","View on map":"Ver en un mapa","Delete notebook":"Borrar libreta","Login with OneDrive":"Acceder con OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Pulse en el botón (+) para crear una nueva nota o libreta. Pulse en el menú lateral para acceder a las libretas existentes.","You currently have no notebook. Create one by clicking on (+) button.":"No hay ninguna libreta. Cree una nueva libreta pulsando en el botón (+).","Welcome":"Bienvenido"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Desmarque las notas asociadas para eliminar una etiqueta.","Please select the note or notebook to be deleted first.":"Seleccione primero la nota o libreta que desea eliminar.","Press Ctrl+D or type \"exit\" to exit the application":"Pulse Ctrl+D o escriba «salir» para salir de la aplicación","More than one item match \"%s\". Please narrow down your query.":"Hay más de un elemento que coincide con «%s», intente mejorar su consulta.","No notebook selected.":"No se ha seleccionado ninguna libreta.","No notebook has been specified.":"Ninguna libreta fue especificada","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Cancelando sincronización de segundo plano... Por favor espere.","No such command: %s":"El comando no existe: %s","The command \"%s\" is only available in GUI mode":"El comando «%s» solamente está disponible en modo GUI","Cannot change encrypted item":"No se puede cambiar el elemento cifrado","Missing required argument: %s":"Falta un argumento requerido: %s","%s: %s":"%s: %s","Your choice: ":"Su elección: ","Invalid answer: %s":"Respuesta inválida: %s","Attaches the given file to the note.":"Adjuntar archivo a la nota.","Cannot find \"%s\".":"No se encuentra \"%s\".","Displays the given note.":"Mostrar la nota dada.","Displays the complete information about note.":"Mostrar la información completa acerca de la nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtener o configurar un valor. Si no se provee el [valor], se mostrará el valor de [nombre]. Si no se provee [nombre] ni [valor], se listará la configuración actual.","Also displays unset and hidden config variables.":"También muestra variables ocultas o no configuradas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica las notas que coincidan con en la libreta. Si no se especifica una libreta la nota se duplica en la libreta actual.","Marks a to-do as done.":"Marca una tarea como hecha.","Note is not a to-do: \"%s\"":"La nota no es una tarea: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Maneja la configuración E2EE. Comandos disponibles `enable`, `disable`, `decrypt`, `status` y `target-status`.","Enter master password:":"Introduzca la contraseña maestra:","Operation cancelled":"Operación cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando descifrado... Por favor espere, puede tardar varios minutos dependiendo de cuanto haya que descifrar.","Completed decryption.":"Descifrado completado.","Enabled":"Habilitado","Disabled":"Deshabilitado","Encryption is: %s":"El cifrado es: %s","Edit note.":"Editar una nota.","No text editor is defined. Please set it using `config editor `":"No hay editor de texto definido. Por favor configure uno usando `config editor `","No active notebook.":"No hay libreta activa.","Note does not exist: \"%s\". Create it?":"La nota no existe: \"%s\". ¿Crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Iniciando la edición de una nota. Cierre el editor para regresar al prompt.","Error opening note in editor: %s":"Error abriendo la nota en el editor: %s","Note has been saved.":"La nota ha sido guardada.","Exits the application.":"Sale de la aplicación.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporta datos de Joplin al directorio indicado. Por defecto, se exportará la base de datos completa incluyendo libretas, notas, etiquetas y recursos.","Destination format: %s":"Formato de destino: %s","Exports only the given note.":"Exporta únicamente la nota indicada.","Exports only the given notebook.":"Exporta únicamente la libreta indicada.","Displays a geolocation URL for the note.":"Muestra la URL de la geolocalización de la nota.","Displays usage information.":"Muestra información de uso.","For information on how to customise the shortcuts please visit %s":"Para información de cómo personalizar los atajos por favor visite %s","Shortcuts are not available in CLI mode.":"Atajos no disponibles en modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Escriba `help [command]` para obtener más información sobre el comando, o escriba `help all` para obtener toda la información acerca del uso del programa.","The possible commands are:":"Los posibles comandos son:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Con cualquier comando, una nota o libreta puede ser referida por su título o ID, o utilizando atajos `$n` o `$b`, respectivamente, para la nota o libreta seleccionada. Se puede utilizar `$c` para hacer referencia al elemento seleccionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover desde un panel a otro, presione Tabulador o Mayúsuclas+Tabulador.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Para desplazar en las listas y areas de texto (incluyendo la consola) utilice las flechas y re pág/av pág.","To maximise/minimise the console, press \"TC\".":"Para maximizar/minimizar la consola, presione \"TC\".","To enter command line mode, press \":\"":"Para entrar a modo línea de comando, presione \":\"","To exit command line mode, press ESCAPE":"Para salir de modo línea de comando, presione ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Para una lista de los atajos de teclado disponibles, escriba `help keymap`","Imports data into Joplin.":"Importa los datos en Joplin.","Source format: %s":"Formato de origen: %s","Do not ask for confirmation.":"No requiere confirmación.","Found: %d.":"Encontrado: %d.","Created: %d.":"Creado: %d.","Updated: %d.":"Actualizado: %d.","Skipped: %d.":"Omitido: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Etiquetado: %d.","Importing notes...":"Importando notas...","The notes have been imported: %s":"Las notas han sido importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Muestra las notas en la libreta actual. Usa `ls /` para mostrar la lista de libretas.","Displays only the first top notes.":"Muestra las primeras notas.","Sorts the item by (eg. title, updated_time, created_time).":"Ordena los elementos por campo ( ej. title, updated_time, created_time).","Reverses the sorting order.":"Invierte el orden.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Muestra únicamente los elementos de los tipos especificados. Pueden ser `n` para notas, `t` para tareas, o `nt` para libretas y tareas (ej. `-tt` mostrará unicamente las tareas, mientras `-ttd` mostrará notas y tareas).","Either \"text\" or \"json\"":"Puede ser \"text\" o \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usar formato largo de lista. El formato es ID, NOTE_COUNT ( para libretas), DATE,TODO_CHECKED ( para tareas), TITLE","Please select a notebook first.":"Por favor seleccione la libreta.","Creates a new notebook.":"Crea una nueva libreta.","Creates a new note.":"Crea una nueva nota.","Notes can only be created within a notebook.":"Notas solamente pueden ser creadas dentro de una libreta.","Creates a new to-do.":"Crea una nueva lista de tareas.","Moves the notes matching to [notebook].":"Mueve las notas que coincidan con a la [libreta].","Renames the given (note or notebook) to .":"Renombra el elemento dado (nota o libreta) a .","Deletes the given notebook.":"Elimina la libreta dada.","Deletes the notebook without asking for confirmation.":"Elimina una libreta sin pedir confirmación.","Delete notebook? All notes within this notebook will also be deleted.":"¿Desea eliminar la libreta? Todas las notas dentro de esta libreta también serán eliminadas.","Deletes the notes matching .":"Elimina las notas que coinciden con .","Deletes the notes without asking for confirmation.":"Elimina las notas sin pedir confirmación.","%d notes match this pattern. Delete them?":"%d notas coinciden con el patrón. ¿Eliminarlas?","Delete note?":"¿Eliminar nota?","Searches for the given in all the notes.":"Buscar el patrón en todas las notas.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Asigna el valor [value] a la propiedad de la nota indicada . Propiedades disponibles:\n\n%s","Displays summary about the notes and notebooks.":"Muestra un resumen acerca de las notas y las libretas.","Synchronises with remote storage.":"Sincroniza con el almacenamiento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincroniza con el destino indicado (por defecto al valor de configuración sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticación no completada (no se recibió token de autenticación).","Not authentified with %s. Please provide any missing credentials.":"No autenticado con %s. Por favor provea las credenciales.","Synchronisation is already in progress.":"Sincronzación en progreso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ya hay un archivo de bloqueo. Si está seguro de que no hay una sincronización en curso puede eliminar el archivo de bloqueo «%s» y reanudar la operación.","Synchronisation target: %s (%s)":"Destino de la sincronización: %s (%s)","Cannot initialize synchroniser.":"No se puede inicializar sincronizador.","Starting synchronisation...":"Iniciando sincronización...","Cancelling... Please wait.":"Cancelando... Por favor espere."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" puede ser \"add\", \"remove\" o \"list\" para asignar o eliminar [tag] de [note], o para listar las notas asociadas con [tag]. El comando `tag list` puede ser usado para listar todas las etiquetas.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" puede ser \"toggle\" o \"clear\". Usa \"toggle\" para cambiar la tarea dada entre estado completado y sin completar. (Si el objetivo es una nota regular se convertirá en una tarea). Usa \"clear\" para convertir la tarea a una nota regular.","Marks a to-do as non-completed.":"Marca una tarea como no completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Cambia una [libreta] - todas las demás operaciones se realizan en ésta libreta.","Displays version information":"Muestra información de la versión","%s %s (%s)":"%s %s (%s)","Enum":"Enumeración","Type: %s.":"Tipo: %s.","Possible values: %s.":"Posibles valores: %s.","Default: %s":"Por defecto: %s","Possible keys/values:":"Claves/valores posbiles:","Type `joplin help` for usage information.":"Escriba `joplin help` para mostrar información de uso.","Fatal error:":"Error fatal:","The application has been authorised - you may now close this browser tab.":"La aplicación ha sido autorizada - ahora puede cerrar esta pestaña de su navegador.","The application has been successfully authorised.":"La aplicacion ha sido autorizada éxitosamente.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra la siguiente URL en su navegador para autenticar la aplicación. La aplicación creará un directorio en «Apps/Joplin» y solo leerá y escribirá archivos en ese directorio. No tendrá acceso a ningún archivo fuera de ese directorio ni a ningún otro archivo personal. No se compartirá información con terceros.","Search:":"Buscar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenido a Joplin.\n\nEscriba «:help shortcuts» para obtener una lista con los atajos de teclado, o simplemente «:help» para información general.\n\nPor ejemplo, para crear una libreta escriba «mb», para crear una nota escriba «mn».","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Uno o más elementos están cifrados y debe proporcionar la contraseña maestra. Para hacerlo por favor escriba `e2ee decrypt`. Si ya ha proporcionado la contraseña, los elementos están siendo descifrados en segundo plano y estarán disponibles en breve.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportando el formato de \"%s\" a \"%s\". Por favor espere...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importando el formato de \"%s\" a \"%s\". Por favor espere...","PDF File":"Archivo PDF","File":"Archivo","New note":"Nueva nota","New to-do":"Nueva lista de tareas","New notebook":"Nueva libreta","Import":"Importar","Export":"Exportar","Print":"Imprimir","Hide %s":"Oculta %s","Quit":"Salir","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Pegar","Search in all the notes":"Buscar en todas las notas","View":"Ver","Toggle editor layout":"Cambia el diseño del editor","Tools":"Herramientas","Synchronisation status":"Estado de la sincronización","Encryption options":"Opciones de cifrado","General Options":"Opciones generales","Help":"Ayuda","Website and documentation":"Sitio web y documentación","Make a donation":"Hacer una donación","Check for updates...":"Comprobar actualizaciones...","About Joplin":"Acerca de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Abrir %s","Exit":"Salir","OK":"OK","Cancel":"Cancelar","Current version is up-to-date.":"La versión actual está actualizada.","An update is available, do you want to download it now?":"Hay disponible una actualización. ¿Quiere descargarla ahora?","Yes":"Sí","No":"No","Check synchronisation configuration":"Comprobar sincronización","Notes and settings are stored in: %s":"Las notas y los ajustes se guardan en: %s","Save":"Guardar","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Deshabilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán descifrados al destino. ¿Desea continuar?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Habilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán cifrados al destino. No pierda la contraseña, por cuestiones de seguridad, ¡es la *única* forma de descifrar los datos! Para habilitar el cifrado, por favor introduzca su contraseña más abajo.","Disable encryption":"Deshabilitar cifrado","Enable encryption":"Habilitar cifrado","Master Keys":"Clave maestra","Active":"Activo","ID":"ID","Source":"Origen","Created":"Creado","Updated":"Actualizado","Password":"Contraseña","Password OK":"Contraseña OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Nota: Solo una clave maestra va a ser utilizar para el cifrado (la marcada como \"activa\"). Cualquiera de las claves puede ser utilizada para descifrar, dependiendo de como fueron cifradas originalmente las notas o las libretas.","Missing Master Keys":"No se encuentra la clave maestra","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"La clave maestra con estos ID son utilizadas para descifrar algunos de tus elementos, pero la apliación no tiene acceso a ellas. Serán descargadas a través de la sincronización.","Status":"Estado","Encryption is:":"El cifrado está:","Back":"Atrás","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Se creará la nueva libreta «%s» y se importará en ella el archivo «%s»","Please create a notebook first.":"Por favor cree una libreta primero.","Please create a notebook first":"Por favor cree una libreta primero","Notebook title:":"Título de libreta:","Add or remove tags:":"Agregar o borrar etiquetas: ","Separate each tag by a comma.":"Separar cada etiqueta por una coma.","Rename notebook:":"Renombrar libreta:","Set alarm:":"Ajustar alarma:","Search":"Buscar","Layout":"Diseño","Some items cannot be synchronised.":"No se han podido sincronizar algunos de los elementos.","View them now":"Verlos ahora","Some items cannot be decrypted.":"No se han podido descifrar algunos elementos.","Set the password":"Establecer la contraseña","Add or remove tags":"Añadir o borrar etiquetas","Switch between note and to-do type":"Cambiar entre nota y lista de tareas","Delete":"Eliminar","Delete notes?":"¿Desea eliminar notas?","No notes in here. Create one by clicking on \"New note\".":"No hay ninguna nota. Cree una pulsando «Nota nueva».","There is currently no notebook. Create one by clicking on \"New notebook\".":"No hay ninguna libreta. Cree una pulsando en «Libreta nueva».","Open...":"Abrir...","Save as...":"Guardar como...","Unsupported link or message: %s":"Enlace o mensaje no soportado: %s","Attach file":"Adjuntar archivo","Tags":"Etiquetas","Set alarm":"Establecer alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota no tiene contenido. Pulse en \"%s\" para cambiar al editor y editar la nota.","to-do":"lista de tareas","note":"nota","Creating new %s...":"Creando nuevo %s...","Refresh":"Refrescar","Clear":"Limpiar","OneDrive Login":"Inicio de sesión de OneDrive","Options":"Opciones","Synchronisation Status":"Estado de la sincronización","Encryption Options":"Opciones de cifrado","Remove this tag from all the notes?":"¿Desea eliminar esta etiqueta de todas las notas?","Remove this search from the sidebar?":"¿Desea eliminar esta búsqueda de la barra lateral?","Rename":"Renombrar","Synchronise":"Sincronizar","Notebooks":"Libretas","Searches":"Búsquedas","Please select where the sync status should be exported to":"Seleccione a dónde se debería exportar el estado de sincronización","Usage: %s":"Uso: %s","Unknown flag: %s":"Etiqueta desconocida: %s","File system":"Sistema de archivos","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Solo para pruebas)","WebDAV":"WebDAV","Unknown log level: %s":"Nivel de log desconocido: %s","Unknown level ID: %s":"ID de nivel desconocido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"No se ha podido actualizar token: faltan datos de autenticación. Reiniciar la sincronización podría solucionar el problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"No se ha podido sincronizar con OneDrive.\n\nEste error suele ocurrir al utilizar OneDrive for Business. Este producto no está soportado.\n\nPodría considerar utilizar una cuenta Personal de OneDrive.","Cannot access %s":"No se ha podido acceder a %s","Created local items: %d.":"Elementos locales creados: %d.","Updated local items: %d.":"Elementos locales actualizados: %d.","Created remote items: %d.":"Elementos remotos creados: %d.","Updated remote items: %d.":"Elementos remotos actualizados: %d.","Deleted local items: %d.":"Elementos locales borrados: %d.","Deleted remote items: %d.":"Elementos remotos borrados: %d.","Fetched items: %d/%d.":"Elementos obtenidos: %d/%d.","State: \"%s\".":"Estado: «%s».","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Last error: %s":"Último error: %s","Idle":"Espera","In progress":"En progreso","Synchronisation is already in progress. State: %s":"La sincronización ya está en progreso. Estado: %s","Encrypted":"Cifrado","Encrypted items cannot be modified":"Los elementos cifrados no pueden ser modificados","Conflicts":"Conflictos","A notebook with this title already exists: \"%s\"":"Ya existe una libreta con este nombre: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"No se puede usar el nombre «%s» para una libreta; es un título reservado.","Untitled":"Sin título","This note does not have geolocation information.":"Esta nota no tiene informacion de geolocalización.","Cannot copy note to \"%s\" notebook":"No se ha podido copiar la nota a la libreta «%s»","Cannot move note to \"%s\" notebook":"No se ha podido mover la nota a la libreta «%s»","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"El editor que se usará para abrir una nota. Se intentará auto-detectar el editor predeterminado si no se proporciona ninguno.","Language":"Idioma","Date format":"Formato de fecha","Time format":"Formato de hora","Theme":"Tema","Light":"Claro","Dark":"Oscuro","Uncompleted to-dos on top":"Mostrar tareas incompletas al inicio de las listas","Sort notes by":"Ordenar notas por","Reverse sort order":"Invierte el orden","Save geo-location with notes":"Guardar geolocalización en las notas","When creating a new to-do:":"Al crear una nueva lista de tareas:","Focus title":"Foco en el título","Focus body":"Foco en el cuerpo","When creating a new note:":"Cuando se crear una nota nueva:","Show tray icon":"Mostrar icono en la bandeja","Global zoom percentage":"Establecer el porcentaje de aumento de la aplicación","Editor font family":"Fuente del editor","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"El nombre de la fuente no se comprobado. Si es incorrecto o está vacío, se utilizará una fuente genérica monoespaciada.","Automatically update the application":"Actualizar la aplicación automáticamente","Synchronisation interval":"Intervalo de sincronización","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opciones avanzadas","Synchronisation target":"Destino de sincronización","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"El destino de la sincronización. Cada destino de la sincronización puede tener parámetros adicionales los cuales son llamados como `sync.NUM.NAME` (todos abajo documentados).","Directory to synchronise with (absolute path)":"Directorio con el que sincronizarse (ruta completa)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"La ruta a la que sincronizar cuando se activa la sincronización con sistema de archivos. Vea «sync.target».","Nextcloud WebDAV URL":"Servidor WebDAV de Nextcloud","Nextcloud username":"Usuario de Nextcloud","Nextcloud password":"Contraseña de Nextcloud","WebDAV URL":"Servidor WebDAV","WebDAV username":"Usuario de WebDAV","WebDAV password":"Contraseña de WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Opción inválida: «%s». Los valores posibles son: %s.","Joplin Export File":"Archivo de exportación de Joplin","Markdown":"Markdown","Joplin Export Directory":"Directorio para exportar de Joplin","Evernote Export File":"Archivo exportado de Evernote","Directory":"Directorio","Cannot load \"%s\" module for format \"%s\"":"No se puede cargar el módulo \"%s\" para el formato \"%s\"","Please specify import format for %s":"Por favor especifique el formato para importar de %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"El elemento se encuentra cifrado: %s \"%s\". Por favor espere a que todos los elementos estén descifrados y pruebe de nuevo.","There is no data to export.":"No hay datos para exportar.","Please specify the notebook where the notes should be imported to.":"Por favor especifique la libreta donde las notas deben ser importadas.","Items that cannot be synchronised":"Elementos que no se pueden sincronizar","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Estos elementos se mantendrán en el dispositivo pero no serán enviados al destino de sincronización. Para encontrar dichos elementos busca en el título o en el ID (el cual se muestra arriba entre corchetes).","Sync status (synced items / total items)":"Estado de sincronización (elementos sincronizados/elementos totales)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Conflictos: %d","To delete: %d":"Borrar: %d","Folders":"Carpetas","%s: %d notes":"%s: %d notas","Coming alarms":"Alarmas próximas","On %s: %s":"En %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"No hay notas. Cree una pulsando en el botón (+).","Delete these notes?":"¿Desea borrar estas notas?","Log":"Log","Export Debug Report":"Exportar informe de depuración","Encryption Config":"Configuración de cifrado","Configuration":"Configuración","Move to notebook...":"Mover a la libreta...","Move %d notes to notebook \"%s\"?":"¿Desea mover %d notas a libreta «%s»?","Press to set the decryption password.":"Presione para establecer la contraseña de descifrado.","Select date":"Seleccione fecha","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronización","Joplin website":"Sitio web de Joplin","Master Key %s":"Clave maestra %s","Created: %s":"Creado: %s","Password:":"Contraseña:","Password cannot be empty":"La contraseña no puede estar vacía","Enable":"Habilitado","The notebook could not be saved: %s":"No se ha podido guardar esta libreta: %s","Edit notebook":"Editar libreta","Show all":"Mostrar todo","Errors only":"Solo errores","This note has been modified:":"Esta nota ha sido modificada:","Save changes":"Guardar cambios","Discard changes":"Descartar cambios","Unsupported image type: %s":"Tipo de imagen no soportado: %s","Attach photo":"Adjuntar foto","Attach any file":"Adjuntar cualquier archivo","Convert to note":"Convertir a nota","Convert to todo":"Convertir a lista de tareas","Hide metadata":"Ocultar metadatos","Show metadata":"Mostrar metadatos","View on map":"Ver en un mapa","Delete notebook":"Borrar libreta","Login with OneDrive":"Acceder con OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Pulse en el botón (+) para crear una nueva nota o libreta. Pulse en el menú lateral para acceder a las libretas existentes.","You currently have no notebook. Create one by clicking on (+) button.":"No hay ninguna libreta. Cree una nueva libreta pulsando en el botón (+).","Welcome":"Bienvenido"} \ No newline at end of file diff --git a/ElectronClient/app/locales/pt_BR.json b/ElectronClient/app/locales/pt_BR.json index f1d4bb5fc5..40152a6098 100644 --- a/ElectronClient/app/locales/pt_BR.json +++ b/ElectronClient/app/locales/pt_BR.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Para eliminar uma tag, remova a tag das notas associadas a ela.","Please select the note or notebook to be deleted first.":"Por favor, primeiro, selecione a nota ou caderno a excluir.","Press Ctrl+D or type \"exit\" to exit the application":"Digite Ctrl+D ou \"exit\" para sair da aplicação","More than one item match \"%s\". Please narrow down your query.":"Mais que um item combinam com \"%s\". Por favor, refine sua pesquisa.","No notebook selected.":"Nenhum caderno selecionado.","No notebook has been specified.":"Nenhum caderno foi especificado.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancelando sincronização em segundo plano... Por favor, aguarde.","No such command: %s":"No such command: %s","The command \"%s\" is only available in GUI mode":"O comando \"%s\" está disponível somente em modo gráfico","Cannot change encrypted item":"","Missing required argument: %s":"Argumento requerido faltando: %s","%s: %s":"%s: %s","Your choice: ":"Sua escolha: ","Invalid answer: %s":"Resposta inválida: %s","Attaches the given file to the note.":"Anexa o arquivo dado à nota.","Cannot find \"%s\".":"Não posso encontrar \"%s\".","Displays the given note.":"Exibe a nota informada.","Displays the complete information about note.":"Exibe a informação completa sobre a nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtém ou define um valor de configuração. Se [valor] não for fornecido, ele mostrará o valor de [nome]. Se nem [nome] nem [valor] forem fornecidos, ele listará a configuração atual.","Also displays unset and hidden config variables.":"Também exibe variáveis de configuração não definidas e ocultas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica as notas que correspondem a para o [caderno]. Se nenhum caderno for especificado, a nota será duplicada no caderno atual.","Marks a to-do as done.":"Marca uma tarefa como feita.","Note is not a to-do: \"%s\"":"Nota não é uma tarefa: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Desabilitado","Encryption is: %s":"","Edit note.":"Editar nota.","No text editor is defined. Please set it using `config editor `":"Nenhum editor de texto está definido. Defina-o usando o comando `config edit `","No active notebook.":"Nenhum caderno ativo.","Note does not exist: \"%s\". Create it?":"A nota não existe: \"%s\". Criar?","Starting to edit note. Close the editor to get back to the prompt.":"Começando a editar a nota. Feche o editor para voltar ao prompt.","Error opening note in editor: %s":"","Note has been saved.":"Nota gravada.","Exits the application.":"Sai da aplicação.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exporta apenas a nota fornecida.","Exports only the given notebook.":"Exporta apenas o caderno fornecido.","Displays a geolocation URL for the note.":"Exibe uma URL de geolocalização para a nota.","Displays usage information.":"Exibe informações de uso.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Os atalhos não estão disponíveis no modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"Os comandos possíveis são:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Em qualquer comando, uma nota ou caderno pode ser referenciado por título ou ID, ou usando os atalhos `$n` ou` $b` para, respectivamente, a nota ou caderno selecionado. `$c` pode ser usado para se referenciar ao item atualmente selecionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover de um painel para outro, pressione Tab ou Shift + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use as setas e a Page Up/Page Down para rolar as listas e áreas de texto (incluindo este console).","To maximise/minimise the console, press \"TC\".":"Para maximizar / minimizar o console, pressione \"TC\".","To enter command line mode, press \":\"":"Para entrar no modo de linha de comando, pressione \":\"","To exit command line mode, press ESCAPE":"Para sair do modo de linha de comando, pressione o ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Não pedir confirmação.","Found: %d.":"Encontrado: %d.","Created: %d.":"Criado: %d.","Updated: %d.":"Atualizado: %d.","Skipped: %d.":"Ignorado: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Tag adicionada: %d.","Importing notes...":"Importando notas ...","The notes have been imported: %s":"As notas foram importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Exibe as notas no caderno atual. Use `ls /` para exibir a lista de cadernos.","Displays only the first top notes.":"Exibe apenas as primeiras notas.","Sorts the item by (eg. title, updated_time, created_time).":"Classifica o item por (ex.: title, update_time, created_time).","Reverses the sorting order.":"Inverte a ordem de classificação.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Exibe apenas os itens do(s) tipo(s) específico(s). Pode ser `n` para notas,` t` para tarefas, ou `nt` para notas e tarefas (por exemplo.` -tt` exibiria apenas os itens pendentes, enquanto `-ttd` exibiria notas e tarefas .","Either \"text\" or \"json\"":"Ou \"text\" ou \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use o formato da lista longa. O formato é ID, NOTE_COUNT (para caderno), DATE, TODO_CHECKED (para tarefas), TITLE","Please select a notebook first.":"Por favor, selecione um caderno primeiro.","Creates a new notebook.":"Cria um novo caderno.","Creates a new note.":"Cria uma nova nota.","Notes can only be created within a notebook.":"As notas só podem ser criadas dentro de um caderno.","Creates a new to-do.":"Cria uma nova tarefa.","Moves the notes matching to [notebook].":"Move as notas correspondentes para [caderno].","Renames the given (note or notebook) to .":"Renomeia o dado (nota ou caderno) para .","Deletes the given notebook.":"Exclui o caderno informado.","Deletes the notebook without asking for confirmation.":"Exclui o caderno sem pedir confirmação.","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"Exclui as notas correspondentes ao padrão .","Deletes the notes without asking for confirmation.":"Exclui as notas sem pedir confirmação.","%d notes match this pattern. Delete them?":"%d notas correspondem a este padrão. Apagar todos?","Delete note?":"Apagar nota?","Searches for the given in all the notes.":"Procura o padrão em todas as notas.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Sets the property of the given to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Exibe sumário sobre as notas e cadernos.","Synchronises with remote storage.":"Sincroniza com o armazenamento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizar para destino fornecido (p padrão é o valor de configuração sync.target)","Authentication was not completed (did not receive an authentication token).":"A autenticação não foi concluída (não recebeu um token de autenticação).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"A sincronização já está em andamento.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"O arquivo de bloqueio já está ativo. Se você sabe que nenhuma sincronização está ocorrendo, você pode excluir o arquivo de bloqueio em \"%s\" e retomar a operação.","Synchronisation target: %s (%s)":"Alvo de sincronização: %s (%s)","Cannot initialize synchroniser.":"Não é possível inicializar o sincronizador.","Starting synchronisation...":"Iniciando sincronização...","Cancelling... Please wait.":"Cancelando... Aguarde."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" pode ser \"add\", \"remove\" ou \"list\" para atribuir ou remover [tag] de [nota], ou para listar as notas associadas a [tag]. O comando `taglist` pode ser usado para listar todas as tags.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" pode ser \"toggle\" ou \"clear\". Use \"toggle\" para alternar entre as tarefas entre o estado completo e incompleto (se o alvo for uma nota comum, ele será convertido em uma tarefa a fazer). Use \"clear\" para converter a tarefa em uma nota normal.","Marks a to-do as non-completed.":"Marca uma tarefa como não completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Alterna para [caderno] - todas as operações adicionais acontecerão dentro deste caderno.","Displays version information":"Exibe informações da versão","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valores possíveis: %s.","Default: %s":"Padrão: %s","Possible keys/values:":"Possíveis chaves/valores:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Erro fatal:","The application has been authorised - you may now close this browser tab.":"O aplicativo foi autorizado - agora você pode fechar esta guia do navegador.","The application has been successfully authorised.":"O aplicativo foi autorizado com sucesso.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra a seguinte URL no seu navegador para autenticar o aplicativo. O aplicativo criará um diretório em \"Apps/Joplin\" e somente lerá e gravará arquivos neste diretório. Não terá acesso a nenhum arquivo fora deste diretório nem a nenhum outro dado pessoal. Nenhum dado será compartilhado com terceiros.","Search:":"Procurar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"Arquivo","New note":"Nova nota","New to-do":"Nova tarefa","New notebook":"Novo caderno","Import":"Importar","Export":"Export","Print":"","Hide %s":"","Quit":"Sair","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Colar","Search in all the notes":"Pesquisar em todas as notas","View":"","Toggle editor layout":"","Tools":"Ferramentas","Synchronisation status":"Synchronisation status","Encryption options":"","General Options":"General Options","Help":"Ajuda","Website and documentation":"Website e documentação","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Sobre o Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Cancelar","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"","Back":"Voltar","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"O novo caderno \"%s\" será criado e o arquivo \"%s\" será importado para ele","Please create a notebook first.":"Primeiro, crie um caderno.","Please create a notebook first":"Primeiro, crie um caderno","Notebook title:":"Título do caderno:","Add or remove tags:":"Adicionar ou remover tags:","Separate each tag by a comma.":"Separe cada tag por vírgula.","Rename notebook:":"Renomear caderno:","Set alarm:":"Definir alarme:","Search":"Procurar","Layout":"Layout","Some items cannot be synchronised.":"Some items cannot be synchronised.","View them now":"","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Adicionar ou remover tags","Switch between note and to-do type":"Alternar entre os tipos Nota e Tarefa","Delete":"Excluir","Delete notes?":"Excluir notas?","No notes in here. Create one by clicking on \"New note\".":"Não há notas aqui. Crie uma, clicando em \"Nova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Link ou mensagem não suportada: %s","Attach file":"Anexar arquivo","Tags":"Tags","Set alarm":"Definir alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Atualizar","Clear":"Limpar (clear)","OneDrive Login":"Login no OneDrive","Options":"Opções","Synchronisation Status":"Synchronisation Status","Encryption Options":"","Remove this tag from all the notes?":"Remover esta tag de todas as notas?","Remove this search from the sidebar?":"Remover essa pesquisa da barra lateral?","Rename":"Renomear","Synchronise":"Sincronizar","Notebooks":"Cadernos","Searches":"Pesquisas","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Uso: %s","Unknown flag: %s":"Flag desconhecido: %s","File system":"Sistema de arquivos","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (apenas para testes)","WebDAV":"","Unknown log level: %s":"Nível de log desconhecido: %s","Unknown level ID: %s":"Nível ID desconhecido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Não é possível atualizar token: faltam dados de autenticação. Iniciar a sincronização novamente pode corrigir o problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Não foi possível sincronizar com o OneDrive.\n\nEste erro geralmente acontece ao usar o OneDrive for Business, que infelizmente não pode ser suportado.\n\nConsidere usar uma conta regular do OneDrive.","Cannot access %s":"Não é possível acessar %s","Created local items: %d.":"Itens locais criados: %d.","Updated local items: %d.":"Itens locais atualizados: %d.","Created remote items: %d.":"Itens remotos criados: %d.","Updated remote items: %d.":"Itens remotos atualizados: %d.","Deleted local items: %d.":"Itens locais excluídos: %d.","Deleted remote items: %d.":"Itens remotos excluídos: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"Estado: \"%s\".","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Sincronização já em andamento. Estado: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Conflitos","A notebook with this title already exists: \"%s\"":"Já existe caderno com este título: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Os cadernos não podem ser nomeados como\"%s\", que é um título reservado.","Untitled":"Sem título","This note does not have geolocation information.":"Esta nota não possui informações de geolocalização.","Cannot copy note to \"%s\" notebook":"Não é possível copiar a nota para o caderno \"%s\" ","Cannot move note to \"%s\" notebook":"Não é possível mover a nota para o caderno \"%s\"","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"O editor que será usado para abrir uma nota. Se nenhum for indicado, ele tentará detectar automaticamente o editor padrão.","Language":"Idioma","Date format":"Formato de data","Time format":"Formato de hora","Theme":"Tema","Light":"Light","Dark":"Dark","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Salvar geolocalização com notas","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Atualizar automaticamente o aplicativo","Synchronisation interval":"Intervalo de sincronização","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opções avançadas","Synchronisation target":"Alvo de sincronização","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"O caminho para sincronizar, quando a sincronização do sistema de arquivos está habilitada. Veja `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Valor da opção inválida: \"%s\". Os valores possíveis são: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Status de sincronização (sincronizados / totais)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Em conflito: %d","To delete: %d":"Para excluir: %d","Folders":"Pastas","%s: %d notes":"%s: %d notas","Coming alarms":"Próximos alarmes","On %s: %s":"Em %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Atualmente, não há notas. Crie uma, clicando no botão (+).","Delete these notes?":"Excluir estas notas?","Log":"Log","Export Debug Report":"Exportar Relatório de Debug","Encryption Config":"","Configuration":"Configuração","Move to notebook...":"Mover para o caderno...","Move %d notes to notebook \"%s\"?":"Mover %d notas para o caderno \"%s\"?","Press to set the decryption password.":"","Select date":"Selecionar data","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronização","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"O caderno não pôde ser salvo: %s","Edit notebook":"Editar caderno","Show all":"","Errors only":"","This note has been modified:":"Esta nota foi modificada:","Save changes":"Gravar alterações","Discard changes":"Descartar alterações","Unsupported image type: %s":"Tipo de imagem não suportada: %s","Attach photo":"Anexar foto","Attach any file":"Anexar qualquer arquivo","Convert to note":"Converter para nota","Convert to todo":"Converter para tarefa","Hide metadata":"Ocultar metadados","Show metadata":"Exibir metadados","View on map":"Ver no mapa","Delete notebook":"Excluir caderno","Login with OneDrive":"Login com OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Clique no botão (+) para criar uma nova nota ou caderno. Clique no menu lateral para acessar seus cadernos existentes.","You currently have no notebook. Create one by clicking on (+) button.":"Você não possui cadernos. Crie um clicando no botão (+).","Welcome":"Bem-vindo"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Para eliminar uma tag, remova a tag das notas associadas a ela.","Please select the note or notebook to be deleted first.":"Por favor, primeiro, selecione a nota ou caderno a excluir.","Press Ctrl+D or type \"exit\" to exit the application":"Digite Ctrl+D ou \"exit\" para sair da aplicação","More than one item match \"%s\". Please narrow down your query.":"Mais que um item combinam com \"%s\". Por favor, refine sua pesquisa.","No notebook selected.":"Nenhum caderno selecionado.","No notebook has been specified.":"Nenhum caderno foi especificado.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancelando sincronização em segundo plano... Por favor, aguarde.","No such command: %s":"Não existe o comando: \"%s\"","The command \"%s\" is only available in GUI mode":"O comando \"%s\" está disponível somente em modo gráfico","Cannot change encrypted item":"Não pode mudar um item encriptado","Missing required argument: %s":"Argumento requerido faltando: %s","%s: %s":"%s: %s","Your choice: ":"Sua escolha: ","Invalid answer: %s":"Resposta inválida: %s","Attaches the given file to the note.":"Anexa o arquivo dado à nota.","Cannot find \"%s\".":"Não posso encontrar \"%s\".","Displays the given note.":"Exibe a nota informada.","Displays the complete information about note.":"Exibe a informação completa sobre a nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtém ou define um valor de configuração. Se [valor] não for fornecido, ele mostrará o valor de [nome]. Se nem [nome] nem [valor] forem fornecidos, ele listará a configuração atual.","Also displays unset and hidden config variables.":"Também exibe variáveis de configuração não definidas e ocultas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica as notas que correspondem a para o [caderno]. Se nenhum caderno for especificado, a nota será duplicada no caderno atual.","Marks a to-do as done.":"Marca uma tarefa como feita.","Note is not a to-do: \"%s\"":"Nota não é uma tarefa: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Gerencia a configuração E2EE. Os comandos são `enable`, `disable`, `decrypt`, `status` e `target-status`.","Enter master password:":"Entre a senha master:","Operation cancelled":"Operação cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando decriptação... Por favor aguarde, pois isso pode demorar vários minutos, dependendo de quanto há para decriptar.","Completed decryption.":"Decriptação completada.","Enabled":"Desabilitado","Disabled":"Desabilitado","Encryption is: %s":"Encriptação está: %s","Edit note.":"Editar nota.","No text editor is defined. Please set it using `config editor `":"Nenhum editor de texto está definido. Defina-o usando o comando `config edit `","No active notebook.":"Nenhum caderno ativo.","Note does not exist: \"%s\". Create it?":"A nota não existe: \"%s\". Criar?","Starting to edit note. Close the editor to get back to the prompt.":"Começando a editar a nota. Feche o editor para voltar ao prompt.","Error opening note in editor: %s":"Erro ao abir a nota no editor: %s","Note has been saved.":"Nota gravada.","Exits the application.":"Sai da aplicação.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporta os dados do Joplin para o diretório informado. Por padrão, ele exportará o banco de dados completo, incluindo cadernos, notas, tags e recursos.","Destination format: %s":"Formato do destino: %s","Exports only the given note.":"Exporta apenas a nota fornecida.","Exports only the given notebook.":"Exporta apenas o caderno fornecido.","Displays a geolocation URL for the note.":"Exibe uma URL de geolocalização para a nota.","Displays usage information.":"Exibe informações de uso.","For information on how to customise the shortcuts please visit %s":"Para informações sobre como customizar os atalhos, por favor visite %s","Shortcuts are not available in CLI mode.":"Os atalhos não estão disponíveis no modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Digite `help [comando]` para obter mais informações sobre um comando; ou digite `help all` para informações completas de uso.","The possible commands are:":"Os comandos possíveis são:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Em qualquer comando, uma nota ou caderno pode ser referenciado por título ou ID, ou usando os atalhos `$n` ou` $b` para, respectivamente, a nota ou caderno selecionado. `$c` pode ser usado para se referenciar ao item atualmente selecionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover de um painel para outro, pressione Tab ou Shift + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use as setas e a Page Up/Page Down para rolar as listas e áreas de texto (incluindo este console).","To maximise/minimise the console, press \"TC\".":"Para maximizar / minimizar o console, pressione \"TC\".","To enter command line mode, press \":\"":"Para entrar no modo de linha de comando, pressione \":\"","To exit command line mode, press ESCAPE":"Para sair do modo de linha de comando, pressione o ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"Para a lista completa de atalhos de teclado disponíveis, digite `help keymap`","Imports data into Joplin.":"Importa dados para o Joplin.","Source format: %s":"Formato da origem: \"%s\"","Do not ask for confirmation.":"Não pedir confirmação.","Found: %d.":"Encontrado: %d.","Created: %d.":"Criado: %d.","Updated: %d.":"Atualizado: %d.","Skipped: %d.":"Ignorado: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Tag adicionada: %d.","Importing notes...":"Importando notas ...","The notes have been imported: %s":"As notas foram importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Exibe as notas no caderno atual. Use `ls /` para exibir a lista de cadernos.","Displays only the first top notes.":"Exibe apenas as primeiras notas.","Sorts the item by (eg. title, updated_time, created_time).":"Classifica o item por (ex.: title, update_time, created_time).","Reverses the sorting order.":"Inverte a ordem de classificação.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Exibe apenas os itens do(s) tipo(s) específico(s). Pode ser `n` para notas,` t` para tarefas, ou `nt` para notas e tarefas (por exemplo.` -tt` exibiria apenas os itens pendentes, enquanto `-ttd` exibiria notas e tarefas .","Either \"text\" or \"json\"":"Ou \"text\" ou \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use o formato da lista longa. O formato é ID, NOTE_COUNT (para caderno), DATE, TODO_CHECKED (para tarefas), TITLE","Please select a notebook first.":"Por favor, selecione um caderno primeiro.","Creates a new notebook.":"Cria um novo caderno.","Creates a new note.":"Cria uma nova nota.","Notes can only be created within a notebook.":"As notas só podem ser criadas dentro de um caderno.","Creates a new to-do.":"Cria uma nova tarefa.","Moves the notes matching to [notebook].":"Move as notas correspondentes para [caderno].","Renames the given (note or notebook) to .":"Renomeia o dado (nota ou caderno) para .","Deletes the given notebook.":"Exclui o caderno informado.","Deletes the notebook without asking for confirmation.":"Exclui o caderno sem pedir confirmação.","Delete notebook? All notes within this notebook will also be deleted.":"Excluir o caderno? Todas as notas deste caderno notebook também serão excluídas.","Deletes the notes matching .":"Exclui as notas correspondentes ao padrão .","Deletes the notes without asking for confirmation.":"Exclui as notas sem pedir confirmação.","%d notes match this pattern. Delete them?":"%d notas correspondem a este padrão. Apagar todos?","Delete note?":"Apagar nota?","Searches for the given in all the notes.":"Procura o padrão em todas as notas.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Define a propriedade da para o valor [value]. As propriedades possíveis são:\n\n%s","Displays summary about the notes and notebooks.":"Exibe sumário sobre as notas e cadernos.","Synchronises with remote storage.":"Sincroniza com o armazenamento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizar para destino fornecido (p padrão é o valor de configuração sync.target)","Authentication was not completed (did not receive an authentication token).":"A autenticação não foi concluída (não recebeu um token de autenticação).","Not authentified with %s. Please provide any missing credentials.":"Não autenticado com %s. Por favor, complete as credenciais que estiverem faltando.","Synchronisation is already in progress.":"A sincronização já está em andamento.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"O arquivo de bloqueio já está ativo. Se você sabe que nenhuma sincronização está ocorrendo, você pode excluir o arquivo de bloqueio em \"%s\" e retomar a operação.","Synchronisation target: %s (%s)":"Alvo de sincronização: %s (%s)","Cannot initialize synchroniser.":"Não é possível inicializar o sincronizador.","Starting synchronisation...":"Iniciando sincronização...","Cancelling... Please wait.":"Cancelando... Aguarde."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" pode ser \"add\", \"remove\" ou \"list\" para atribuir ou remover [tag] de [nota], ou para listar as notas associadas a [tag]. O comando `taglist` pode ser usado para listar todas as tags.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" pode ser \"toggle\" ou \"clear\". Use \"toggle\" para alternar entre as tarefas entre o estado completo e incompleto (se o alvo for uma nota comum, ele será convertido em uma tarefa a fazer). Use \"clear\" para converter a tarefa em uma nota normal.","Marks a to-do as non-completed.":"Marca uma tarefa como não completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Alterna para [caderno] - todas as operações adicionais acontecerão dentro deste caderno.","Displays version information":"Exibe informações da versão","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valores possíveis: %s.","Default: %s":"Padrão: %s","Possible keys/values:":"Possíveis chaves/valores:","Type `joplin help` for usage information.":"Digite 'joplin help' para informações de uso.","Fatal error:":"Erro fatal:","The application has been authorised - you may now close this browser tab.":"O aplicativo foi autorizado - agora você pode fechar esta guia do navegador.","The application has been successfully authorised.":"O aplicativo foi autorizado com sucesso.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra a seguinte URL no seu navegador para autenticar o aplicativo. O aplicativo criará um diretório em \"Apps/Joplin\" e somente lerá e gravará arquivos neste diretório. Não terá acesso a nenhum arquivo fora deste diretório nem a nenhum outro dado pessoal. Nenhum dado será compartilhado com terceiros.","Search:":"Procurar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bem-vindo ao Joplin!\n\nDigite `:help shortcuts` para obter a lista de atalhos de teclado, ou apenas `:help` para informações de utilização.\n\nPor exemplo, para criar um caderno digite `mb`; para criar uma nota, digite `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Um ou mais itens estão criptografados, e você pode precisar de informar uma senha master. Para fazer isso, por favor digite `e2ee decrypt`. Se você já forneceu a senha, os itens criptografados estão sendo decriptados em background e logo estarão disponíveis.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportando para \"%s\" com o formato \"%s\". Por favor, aguarde...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importando de \"%s\" com o formato \"%s\". Por favor, aguarde...","PDF File":"PDF File","File":"Arquivo","New note":"Nova nota","New to-do":"Nova tarefa","New notebook":"Novo caderno","Import":"Importar","Export":"Exportar","Print":"","Hide %s":"Ocultar %s","Quit":"Sair","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Colar","Search in all the notes":"Pesquisar em todas as notas","View":"Visualizar","Toggle editor layout":"Alternar layout do editor","Tools":"Ferramentas","Synchronisation status":"Status de sincronização","Encryption options":"Opções de Encriptação","General Options":"Opções Gerais","Help":"Ajuda","Website and documentation":"Website e documentação","Make a donation":"Fazer uma doação","Check for updates...":"Verificar atualizações...","About Joplin":"Sobre o Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Abrir %s","Exit":"Sair","OK":"OK","Cancel":"Cancelar","Current version is up-to-date.":"A versão atual está atualizada.","An update is available, do you want to download it now?":"Uma atualização está disponível, você quer baixar agora?","Yes":"Sim","No":"Não","Check synchronisation configuration":"Verificar a configuração da sincronização","Notes and settings are stored in: %s":"Notas e configurações estão armazenadas em: %s","Save":"Salvar","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Desabilitar a encriptação significa que *todas* as suas notas e anexos serão re-sincronizados e enviados sem encriptação. Você quer continuar?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Habilitar a encriptação significa que *todas* as suas notas e anexos serão re-sincronizados e re-enviados com encriptação. Não perca sua senha, pois, por medidas de segurança, esse será o *único* modo de decriptar seus dados! Para habilitar a encriptação, por favor entre sua senha abaixo.","Disable encryption":"Desabilitar encriptação","Enable encryption":"Habilitar encriptação","Master Keys":"Chaves mestras","Active":"Ativar","ID":"ID","Source":"Origem","Created":"Criado","Updated":"Atualizado","Password":"Senha","Password OK":"Senha OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Noto: Apenas uma chave máster será usada para encriptação (a que estiver marcada como \"ativa\"). Qualquer uma das chaves pode ser usada para decriptação, dependendo de como as notas ou os cadernos foram encriptados originalmente.","Missing Master Keys":"Chaves Master faltando","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"As chaves master com essas IDs são usadas para encriptar alguns de seus itens, contudo a aplicação atualmente não tem acesso a elas. Provavelmente, elas serão baixadas via sincronização.","Status":"Status","Encryption is:":"Encriptação está:","Back":"Voltar","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"O novo caderno \"%s\" será criado e o arquivo \"%s\" será importado para ele","Please create a notebook first.":"Primeiro, crie um caderno.","Please create a notebook first":"Primeiro, crie um caderno","Notebook title:":"Título do caderno:","Add or remove tags:":"Adicionar ou remover tags:","Separate each tag by a comma.":"Separe cada tag por vírgula.","Rename notebook:":"Renomear caderno:","Set alarm:":"Definir alarme:","Search":"Procurar","Layout":"Layout","Some items cannot be synchronised.":"Alguns itens não podem ser sincronizados.","View them now":"Visualizar agora","Some items cannot be decrypted.":"Alguns itens não podem ser decriptados.","Set the password":"Configurar a senha","Add or remove tags":"Adicionar ou remover tags","Switch between note and to-do type":"Alternar entre os tipos Nota e Tarefa","Delete":"Excluir","Delete notes?":"Excluir notas?","No notes in here. Create one by clicking on \"New note\".":"Não há notas aqui. Crie uma, clicando em \"Nova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Atualmente, não há cadernos. Crie um, clicando em \"Novo caderno\".","Open...":"Abrir...","Save as...":"Salvar como...","Unsupported link or message: %s":"Link ou mensagem não suportada: %s","Attach file":"Anexar arquivo","Tags":"Tags","Set alarm":"Definir alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota não possui conteúdo. Clique em \"%s\" para alternar para o editor, e edite a nota.","to-do":"tarefa","note":"nota","Creating new %s...":"Criando novo %s...","Refresh":"Atualizar","Clear":"Limpar (clear)","OneDrive Login":"Login no OneDrive","Options":"Opções","Synchronisation Status":"Status de sincronização","Encryption Options":"Opções de Encriptação","Remove this tag from all the notes?":"Remover esta tag de todas as notas?","Remove this search from the sidebar?":"Remover essa pesquisa da barra lateral?","Rename":"Renomear","Synchronise":"Sincronizar","Notebooks":"Cadernos","Searches":"Pesquisas","Please select where the sync status should be exported to":"Favor selecionar o local para onde o status de sincronia deveria ser exportado","Usage: %s":"Uso: %s","Unknown flag: %s":"Flag desconhecido: %s","File system":"Sistema de arquivos","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (apenas para testes)","WebDAV":"WebDAV","Unknown log level: %s":"Nível de log desconhecido: %s","Unknown level ID: %s":"Nível ID desconhecido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Não é possível atualizar token: faltam dados de autenticação. Iniciar a sincronização novamente pode corrigir o problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Não foi possível sincronizar com o OneDrive.\n\nEste erro geralmente acontece ao usar o OneDrive for Business, que infelizmente não pode ser suportado.\n\nConsidere usar uma conta regular do OneDrive.","Cannot access %s":"Não é possível acessar %s","Created local items: %d.":"Itens locais criados: %d.","Updated local items: %d.":"Itens locais atualizados: %d.","Created remote items: %d.":"Itens remotos criados: %d.","Updated remote items: %d.":"Itens remotos atualizados: %d.","Deleted local items: %d.":"Itens locais excluídos: %d.","Deleted remote items: %d.":"Itens remotos excluídos: %d.","Fetched items: %d/%d.":"Itens pesquisados: %d/%d.","State: \"%s\".":"Estado: \"%s\".","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Sincronização já em andamento. Estado: %s","Encrypted":"Encriptado","Encrypted items cannot be modified":"Itens encriptados não podem ser modificados","Conflicts":"Conflitos","A notebook with this title already exists: \"%s\"":"Já existe caderno com este título: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Os cadernos não podem ser nomeados como\"%s\", que é um título reservado.","Untitled":"Sem título","This note does not have geolocation information.":"Esta nota não possui informações de geolocalização.","Cannot copy note to \"%s\" notebook":"Não é possível copiar a nota para o caderno \"%s\"","Cannot move note to \"%s\" notebook":"Não é possível mover a nota para o caderno \"%s\"","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"O editor que será usado para abrir uma nota. Se nenhum for indicado, ele tentará detectar automaticamente o editor padrão.","Language":"Idioma","Date format":"Formato de data","Time format":"Formato de hora","Theme":"Tema","Light":"Light","Dark":"Dark","Uncompleted to-dos on top":"Mostrar tarefas incompletas no topo","Sort notes by":"Ordenar notas por","Reverse sort order":"Inverter ordem de classificação.","Save geo-location with notes":"Salvar geolocalização com notas","When creating a new to-do:":"Quando criar uma nova tarefa:","Focus title":"Foco no título","Focus body":"Focar no corpo","When creating a new note:":"Quando criar uma nota nova:","Show tray icon":"Exibir tray icon","Global zoom percentage":"Porcentagem global do zoom","Editor font family":"Família de fontes do editor","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"O nomes da fonte não será verificado. Se estiver incorreto ou vazio, será usado por default uma fonte genérica monospace.","Automatically update the application":"Atualizar automaticamente o aplicativo","Synchronisation interval":"Intervalo de sincronização","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opções avançadas","Synchronisation target":"Alvo de sincronização","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"O alvo para onde sincronizar. Cada alvo pode ter parâmetros adicionais que são nomeados como `sync.NUM.NAME` (todos documentados abaixo).","Directory to synchronise with (absolute path)":"Diretório para sincronizar (caminho absoluto)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"O caminho para sincronizar, quando a sincronização do sistema de arquivos está habilitada. Veja `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Usuário da Nextcloud","Nextcloud password":"Senha da Nextcloud","WebDAV URL":"WebDAV URL","WebDAV username":"Usuário do WebDAV","WebDAV password":"Senha do WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Valor da opção inválida: \"%s\". Os valores possíveis são: %s.","Joplin Export File":"Arquivo de Exportação do Joplin","Markdown":"Markdown","Joplin Export Directory":"Diretório de Exportação do Joplin","Evernote Export File":"Arquivo de Exportação do Evernote","Directory":"DIretório","Cannot load \"%s\" module for format \"%s\"":"Não é possível carregar o módulo \"%s\" para o formato \"%s\"","Please specify import format for %s":"Favor especificar o formato de importação para %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Este item atualmente está encriptado: %s \"%s\". Favor aguardar que todos os itens sejam decriptados e tente novamente.","There is no data to export.":"Não há dados a exportar.","Please specify the notebook where the notes should be imported to.":"Por favor, especifique o caderno para onde as notas deveriam ser importadas.","Items that cannot be synchronised":"Os itens não podem ser sincronizados","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Estes itens continuarão no dispositivo mas não serão enviados ao alvo de sincronização. Para encontrar esses itens, ou pesquise pelo título ou pelo ID (que é exibido nos colchetes acima)","Sync status (synced items / total items)":"Status de sincronização (sincronizados / totais)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Em conflito: %d","To delete: %d":"Para excluir: %d","Folders":"Pastas","%s: %d notes":"%s: %d notas","Coming alarms":"Próximos alarmes","On %s: %s":"Em %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Atualmente, não há notas. Crie uma, clicando no botão (+).","Delete these notes?":"Excluir estas notas?","Log":"Log","Export Debug Report":"Exportar Relatório de Debug","Encryption Config":"Configuração de Encriptação","Configuration":"Configuração","Move to notebook...":"Mover para o caderno...","Move %d notes to notebook \"%s\"?":"Mover %d notas para o caderno \"%s\"?","Press to set the decryption password.":"Pressione para configurar a senha de decriptação.","Select date":"Selecionar data","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronização","Joplin website":"Site do Joplin","Master Key %s":"Chave Master %s","Created: %s":"Criado: %s","Password:":"Senha:","Password cannot be empty":"Senha não pode ser vazia","Enable":"Habilitar","The notebook could not be saved: %s":"O caderno não pôde ser salvo: %s","Edit notebook":"Editar caderno","Show all":"Exibir tudo","Errors only":"Somente erros","This note has been modified:":"Esta nota foi modificada:","Save changes":"Gravar alterações","Discard changes":"Descartar alterações","Unsupported image type: %s":"Tipo de imagem não suportada: %s","Attach photo":"Anexar foto","Attach any file":"Anexar qualquer arquivo","Convert to note":"Converter para nota","Convert to todo":"Converter para tarefa","Hide metadata":"Ocultar metadados","Show metadata":"Exibir metadados","View on map":"Ver no mapa","Delete notebook":"Excluir caderno","Login with OneDrive":"Login com OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Clique no botão (+) para criar uma nova nota ou caderno. Clique no menu lateral para acessar seus cadernos existentes.","You currently have no notebook. Create one by clicking on (+) button.":"Você não possui cadernos. Crie um clicando no botão (+).","Welcome":"Bem-vindo"} \ No newline at end of file diff --git a/ElectronClient/app/locales/ru_RU.json b/ElectronClient/app/locales/ru_RU.json index 8c9f62599a..29f9ce14bd 100644 --- a/ElectronClient/app/locales/ru_RU.json +++ b/ElectronClient/app/locales/ru_RU.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Чтобы удалить тег, уберите его с ассоциированных с ним заметок.","Please select the note or notebook to be deleted first.":"Сначала выберите заметку или блокнот, которые должны быть удалены.","Press Ctrl+D or type \"exit\" to exit the application":"Для выхода из приложения нажмите Ctrl+D или введите «exit»","More than one item match \"%s\". Please narrow down your query.":"Более одного элемента соответствуют «%s». Уточните ваш запрос, пожалуйста.","No notebook selected.":"Не выбран блокнот.","No notebook has been specified.":"Не был указан блокнот.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Отмена фоновой синхронизации... Пожалуйста, ожидайте.","No such command: %s":"Нет такой команды: %s","The command \"%s\" is only available in GUI mode":"Команда «%s» доступна только в режиме GUI","Cannot change encrypted item":"Не удалось изменить зашифрованный элемент","Missing required argument: %s":"Отсутствует требуемый аргумент: %s","%s: %s":"%s: %s","Your choice: ":"Ваш выбор: ","Invalid answer: %s":"Неверный ответ: %s","Attaches the given file to the note.":"Прикрепляет заданный файл к заметке.","Cannot find \"%s\".":"Не удалось найти «%s».","Displays the given note.":"Отображает заданную заметку.","Displays the complete information about note.":"Отображает полную информацию о заметке.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Выводит или задаёт параметр конфигурации. Если [value] не указано, выведет значение [name]. Если не указаны ни [name], ни [value], выведет текущую конфигурацию.","Also displays unset and hidden config variables.":"Также выводит неустановленные или скрытые переменные конфигурации.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Дублирует заметки, содержащие , в [notebook]. Если блокнот не указан, заметки продублируются в текущем.","Marks a to-do as done.":"Отмечает задачу как завершённую.","Note is not a to-do: \"%s\"":"Заметка не является задачей: «%s»","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Управляет конфигурацией E2EE. Команды: `enable`, `disable`, `decrypt`, `status` и `target-status`.","Enter master password:":"Введите мастер-пароль:","Operation cancelled":"Операция отменена","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Запуск расшифровки... Пожалуйста, ожидайте. Время расшифровки зависит от объёма расшифровываемых данных.","Completed decryption.":"Расшифровка завершена.","Enabled":"Включено","Disabled":"Отключено","Encryption is: %s":"Шифрование: %s","Edit note.":"Редактировать заметку.","No text editor is defined. Please set it using `config editor `":"Текстовый редактор не определён. Задайте его, используя `config editor `","No active notebook.":"Нет активного блокнота.","Note does not exist: \"%s\". Create it?":"Заметки не существует: «%s». Создать?","Starting to edit note. Close the editor to get back to the prompt.":"Запуск редактирования заметки. Закройте редактор, чтобы вернуться к командной строке.","Error opening note in editor: %s":"Ошибка при открытии заметки в редакторе: %s","Note has been saved.":"Заметка сохранена.","Exits the application.":"Выход из приложения.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Экспортирует только заданную заметку.","Exports only the given notebook.":"Экспортирует только заданный блокнот.","Displays a geolocation URL for the note.":"Выводит URL геолокации для заметки.","Displays usage information.":"Выводит информацию об использовании.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Ярлыки недоступны в режиме командной строки.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Введите `help [команда]` для получения информации о команде или `help all` для получения полной информации по использованию.","The possible commands are:":"Доступные команды:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"В любой команде можно ссылаться на заметку или блокнот по названию или ID, либо используя ярлыки `$n` или `$b`, указывающие на текущую заметку или блокнот соответственно. С помощью `$c` можно ссылаться на текущий выбранный элемент.","To move from one pane to another, press Tab or Shift+Tab.":"Чтобы переключаться между панелями, нажимайте Tab или Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Используйте стрелки и клавиши перелистывания страницы вверх/вниз для прокрутки списков и текстовых областей (включая эту консоль).","To maximise/minimise the console, press \"TC\".":"Чтобы развернуть/свернуть консоль, нажимайте «TC».","To enter command line mode, press \":\"":"Чтобы войти в режим командной строки, нажмите «:»","To exit command line mode, press ESCAPE":"Чтобы выйти из режима командной строки, нажмите ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Не запрашивать подтверждение.","Found: %d.":"Найдено: %d.","Created: %d.":"Создано: %d.","Updated: %d.":"Обновлено: %d.","Skipped: %d.":"Пропущено: %d.","Resources: %d.":"Ресурсов: %d.","Tagged: %d.":"С тегами: %d.","Importing notes...":"Импорт заметок...","The notes have been imported: %s":"Импортировано заметок: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Выводит заметки текущего блокнота. Используйте `ls /` для вывода списка блокнотов.","Displays only the first top notes.":"Выводит только первые заметок.","Sorts the item by (eg. title, updated_time, created_time).":"Сортирует элементы по (например, title, updated_time, created_time).","Reverses the sorting order.":"Обращает порядок сортировки.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Выводит только элементы указанного типа. Может быть `n` для заметок, `t` для задач или `nt` для заметок и задач (например, `-tt` выведет только задачи, в то время как `-ttd` выведет заметки и задачи).","Either \"text\" or \"json\"":"«text» или «json»","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Использовать формат длинного списка. Форматом является ID, NOTE_COUNT (для блокнотов), DATE, TODO_CHECKED (для задач), TITLE","Please select a notebook first.":"Сначала выберите блокнот.","Creates a new notebook.":"Создаёт новый блокнот.","Creates a new note.":"Создаёт новую заметку.","Notes can only be created within a notebook.":"Заметки могут быть созданы только в блокноте.","Creates a new to-do.":"Создаёт новую задачу.","Moves the notes matching to [notebook].":"Перемещает заметки, содержащие в [notebook].","Renames the given (note or notebook) to .":"Переименовывает заданный (заметку или блокнот) в .","Deletes the given notebook.":"Удаляет заданный блокнот.","Deletes the notebook without asking for confirmation.":"Удаляет блокнот без запроса подтверждения.","Delete notebook? All notes within this notebook will also be deleted.":"Удалить блокнот? Все заметки в этом блокноте также будут удалены.","Deletes the notes matching .":"Удаляет заметки, соответствующие .","Deletes the notes without asking for confirmation.":"Удаляет заметки без запроса подтверждения.","%d notes match this pattern. Delete them?":"%d заметок соответствуют этому шаблону. Удалить их?","Delete note?":"Удалить заметку?","Searches for the given in all the notes.":"Запросы для заданного во всех заметках.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Устанавливает для свойства заданной заданное [value]. Возможные свойства:\n\n%s","Displays summary about the notes and notebooks.":"Выводит общую информацию о заметках и блокнотах.","Synchronises with remote storage.":"Синхронизирует с удалённым хранилищем.","Sync to provided target (defaults to sync.target config value)":"Синхронизация с заданной целью (по умолчанию — значение конфигурации sync.target)","Authentication was not completed (did not receive an authentication token).":"Аутентификация не была завершена (не получен токен аутентификации).","Not authentified with %s. Please provide any missing credentials.":"Не аутентифицировано с %s. Пожалуйста, предоставьте все недостающие данные.","Synchronisation is already in progress.":"Синхронизация уже выполняется.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Файл блокировки уже установлен. Если вам известно, что синхронизация не производится, вы можете удалить файл блокировки в «%s» и возобновить операцию.","Synchronisation target: %s (%s)":"Цель синхронизации: %s (%s)","Cannot initialize synchroniser.":"Не удалось инициировать синхронизацию.","Starting synchronisation...":"Начало синхронизации...","Cancelling... Please wait.":"Отмена... Пожалуйста, ожидайте."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" может быть «add», «remove» или «list», чтобы назначить или убрать [tag] с [note], или чтобы вывести список заметок, ассоциированых с [tag]. Команда `tag list` может быть использована для вывода списка всех тегов.","Invalid command: \"%s\"":"Неверная команда: «%s»"," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" может быть «toggle» или «clear». «toggle» используется для переключения статуса заданной задачи на завершённую или незавершённую (если применить к обычной заметке, она будет преобразована в задачу). «clear» используется для преобразования задачи обратно в обычную заметку.","Marks a to-do as non-completed.":"Отмечает задачу как незавершённую.","Switches to [notebook] - all further operations will happen within this notebook.":"Переключает на [блокнот] — все дальнейшие операции будут происходить в этом блокноте.","Displays version information":"Выводит информацию о версии","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Тип: %s.","Possible values: %s.":"Возможные значения: %s.","Default: %s":"По умолчанию: %s","Possible keys/values:":"Возможные ключи/значения:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Фатальная ошибка:","The application has been authorised - you may now close this browser tab.":"Приложение авторизовано — можно закрыть вкладку браузера.","The application has been successfully authorised.":"Приложение успешно авторизовано.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Откройте следующую ссылку в вашем браузере для аутентификации приложения. Приложением будет создан каталог «Apps/Joplin». Чтение и запись файлов будет осуществляться только в его пределах. У приложения не будет доступа к каким-либо файлам за пределами этого каталога и другим личным данным. Никакая информация не будет передана третьим лицам.","Search:":"Поиск:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Добро пожаловать в Joplin!\n\nВведите `:help shortcuts` для просмотра списка клавиатурных сочетаний или просто `:help` для просмотра информации об использовании.\n\nНапример, для создания блокнота нужно ввести `mb`, для создания заметки — `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Один или несколько элементов сейчас зашифрованы и может потребоваться, чтобы вы предоставили мастер-пароль. Для этого введите, пожалуйста, «e2ee decrypt». Если пароль уже был вами предоставлен, зашифрованные элементы расшифруются в фоновом режиме и вскоре станут доступны.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"Файл","New note":"Новая заметка","New to-do":"Новая задача","New notebook":"Новый блокнот","Import":"Импорт","Export":"Export","Print":"","Hide %s":"","Quit":"Выход","Edit":"Правка","Copy":"Копировать","Cut":"Вырезать","Paste":"Вставить","Search in all the notes":"Поиск во всех заметках","View":"","Toggle editor layout":"","Tools":"Инструменты","Synchronisation status":"Статус синхронизации","Encryption options":"Настройки шифрования","General Options":"Основные настройки","Help":"Помощь","Website and documentation":"Сайт и документация","Make a donation":"Make a donation","Check for updates...":"Проверить обновления...","About Joplin":"О Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Отмена","Current version is up-to-date.":"Вы используете самую свежую версию.","An update is available, do you want to download it now?":"An update is available, do you want to download it now?","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Заметки и настройки сохранены в: %s","Save":"Сохранить","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Отключение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в расшифрованном виде к цели синхронизации. Желаете продолжить?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Включение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в зашифрованном виде к цели синхронизации. Не теряйте пароль, так как в целях безопасности *только* с его помощью можно будет расшифровать данные! Чтобы включить шифрование, введите ваш пароль ниже.","Disable encryption":"Отключить шифрование","Enable encryption":"Включить шифрование","Master Keys":"Мастер-ключи","Active":"Активен","ID":"ID","Source":"Источник","Created":"Создан","Updated":"Обновлён","Password":"Пароль","Password OK":"Пароль OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Внимание: Для шифрования может быть использован только один мастер-ключ (отмеченный как «активный»). Для расшифровки может использоваться любой из ключей, в зависимости от того, как изначально были зашифрованы заметки или блокноты.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Статус","Encryption is:":"Шифрование:","Back":"Назад","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Будет создан новый блокнот «%s» и в него будет импортирован файл «%s»","Please create a notebook first.":"Сначала создайте блокнот.","Please create a notebook first":"Сначала создайте блокнот","Notebook title:":"Название блокнота:","Add or remove tags:":"Добавить или удалить теги:","Separate each tag by a comma.":"Каждый тег отделяется запятой.","Rename notebook:":"Переименовать блокнот:","Set alarm:":"Установить напоминание:","Search":"Поиск","Layout":"Вид","Some items cannot be synchronised.":"Некоторые элементы не могут быть синхронизированы.","View them now":"Просмотреть их сейчас","Some items cannot be decrypted.":"Некоторые элементы не могут быть расшифрованы.","Set the password":"Установить пароль","Add or remove tags":"Добавить или удалить теги","Switch between note and to-do type":"Переключить тип между заметкой и задачей","Delete":"Удалить","Delete notes?":"Удалить заметки?","No notes in here. Create one by clicking on \"New note\".":"Здесь нет заметок. Создайте новую нажатием на «Новая заметка».","There is currently no notebook. Create one by clicking on \"New notebook\".":"Сейчас здесь нет блокнотов. Создайте новый нажав «Новый блокнот».","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Неподдерживаемая ссыка или сообщение: %s","Attach file":"Прикрепить файл","Tags":"Теги","Set alarm":"Установить напоминание","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Обновить","Clear":"Очистить","OneDrive Login":"Вход в OneDrive","Options":"Настройки","Synchronisation Status":"Статус синхронизации","Encryption Options":"Настройки шифрования","Remove this tag from all the notes?":"Убрать этот тег со всех заметок?","Remove this search from the sidebar?":"Убрать этот запрос с боковой панели?","Rename":"Переименовать","Synchronise":"Синхронизировать","Notebooks":"Блокноты","Searches":"Запросы","Please select where the sync status should be exported to":"Выберите, куда должен быть экспортирован статус синхронизации","Usage: %s":"Использование: %s","Unknown flag: %s":"Неизвестный флаг: %s","File system":"Файловая система","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (только для тестирования)","WebDAV":"WebDAV","Unknown log level: %s":"Неизвестный уровень лога: %s","Unknown level ID: %s":"Неизвестный ID уровня: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Не удалось обновить токен: отсутствуют данные аутентификации. Повторный запуск синхронизации может решить проблему.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Не удалось синхронизироваться с OneDrive.\n\nТакая ошибка часто возникает при использовании OneDrive для бизнеса, который, к сожалению, не поддерживается.\n\nПожалуйста, рассмотрите возможность использования обычного аккаунта OneDrive.","Cannot access %s":"Не удалось получить доступ %s","Created local items: %d.":"Создано локальных элементов: %d.","Updated local items: %d.":"Обновлено локальных элементов: %d.","Created remote items: %d.":"Создано удалённых элементов: %d.","Updated remote items: %d.":"Обновлено удалённых элементов: %d.","Deleted local items: %d.":"Удалено локальных элементов: %d.","Deleted remote items: %d.":"Удалено удалённых элементов: %d.","Fetched items: %d/%d.":"Получено элементов: %d/%d.","State: \"%s\".":"Статус: «%s».","Cancelling...":"Отмена...","Completed: %s":"Завершено: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Синхронизация уже выполняется. Статус: %s","Encrypted":"Зашифровано","Encrypted items cannot be modified":"Зашифрованные элементы не могут быть изменены","Conflicts":"Конфликты","A notebook with this title already exists: \"%s\"":"Блокнот с таким названием уже существует: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"Блокнот не может быть назван «%s», это зарезервированное название.","Untitled":"Без имени","This note does not have geolocation information.":"Эта заметка не содержит информации о геолокации.","Cannot copy note to \"%s\" notebook":"Не удалось скопировать заметку в блокнот «%s»","Cannot move note to \"%s\" notebook":"Не удалось переместить заметку в блокнот «%s»","Text editor":"Текстовый редактор","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Редактор, в котором будут открываться заметки. Если не задан, будет произведена попытка автоматического определения редактора по умолчанию.","Language":"Язык","Date format":"Формат даты","Time format":"Формат времени","Theme":"Тема","Light":"Светлая","Dark":"Тёмная","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Сохранять информацию о геолокации в заметках","When creating a new to-do:":"При создании новой задачи:","Focus title":"Фокус на названии","Focus body":"Фокус на содержимом","When creating a new note:":"При создании новой заметки:","Show tray icon":"","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Автоматически обновлять приложение","Synchronisation interval":"Интервал синхронизации","%d minutes":"%d минут","%d hour":"%d час","%d hours":"%d часов","Show advanced options":"Показывать расширенные настройки","Synchronisation target":"Цель синхронизации","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Цель синхронизации. Каждая цель синхронизации может иметь дополнительные параметры, именованные как «sync.NUM.NAME» (все описаны ниже).","Directory to synchronise with (absolute path)":"Каталог синхронизации (абсолютный путь)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Путь для синхронизации при включённой синхронизации с файловой системой. См. `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Имя пользователя Nextcloud","Nextcloud password":"Пароль Nextcloud","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV username","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Неверное значение параметра: «%s». Доступные значения: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Элементы, которые не могут быть синхронизированы","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Эти элементы будут оставаться на устройстве, но не будут загружены в целевой объект синхронизации. Чтобы найти эти элементы, воспользуйтесь поиском по названию или ID (который указывается в скобках выше).","Sync status (synced items / total items)":"Статус синхронизации (элементов синхронизировано/всего)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Всего: %d/%d","Conflicted: %d":"Конфликтующих: %d","To delete: %d":"К удалению: %d","Folders":"Папки","%s: %d notes":"%s: %d заметок","Coming alarms":"Грядущие напоминания","On %s: %s":"В %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Сейчас здесь нет заметок. Создаёте новую, нажав кнопку (+).","Delete these notes?":"Удалить эти заметки?","Log":"Лог","Export Debug Report":"Экспортировать отладочный отчёт","Encryption Config":"Конфигурация шифрования","Configuration":"Конфигурация","Move to notebook...":"Переместить в блокнот...","Move %d notes to notebook \"%s\"?":"Переместить %d заметок в блокнот «%s»?","Press to set the decryption password.":"Нажмите, чтобы установить пароль для расшифровки.","Select date":"Выбрать дату","Confirm":"Подтвердить","Cancel synchronisation":"Отменить синхронизацию","Joplin website":"","Master Key %s":"Мастер-ключ %s","Created: %s":"Создано: %s","Password:":"Пароль:","Password cannot be empty":"Пароль не может быть пустым","Enable":"Включено","The notebook could not be saved: %s":"Не удалось сохранить блокнот: %s","Edit notebook":"Редактировать блокнот","Show all":"","Errors only":"Errors only","This note has been modified:":"Эта заметка была изменена:","Save changes":"Сохранить изменения","Discard changes":"Отменить изменения","Unsupported image type: %s":"Неподдерживаемый формат изображения: %s","Attach photo":"Прикрепить фото","Attach any file":"Прикрепить любой файл","Convert to note":"Преобразовать в заметку","Convert to todo":"Преобразовать в задачу","Hide metadata":"Скрыть метаданные","Show metadata":"Показать метаданные","View on map":"Посмотреть на карте","Delete notebook":"Удалить блокнот","Login with OneDrive":"Войти в OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Нажмите на кнопку (+) для создания новой заметки или нового блокнота. Нажмите на боковое меню для доступа к вашим существующим блокнотам.","You currently have no notebook. Create one by clicking on (+) button.":"У вас сейчас нет блокнота. Создайте его нажатием на кнопку (+).","Welcome":"Добро пожаловать"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Чтобы удалить тег, уберите его с ассоциированных с ним заметок.","Please select the note or notebook to be deleted first.":"Сначала выберите заметку или блокнот, которые должны быть удалены.","Press Ctrl+D or type \"exit\" to exit the application":"Для выхода из приложения нажмите Ctrl+D или введите «exit»","More than one item match \"%s\". Please narrow down your query.":"Более одного элемента соответствуют «%s». Уточните ваш запрос, пожалуйста.","No notebook selected.":"Не выбран блокнот.","No notebook has been specified.":"Не был указан блокнот.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Отмена фоновой синхронизации... Пожалуйста, ожидайте.","No such command: %s":"Нет такой команды: %s","The command \"%s\" is only available in GUI mode":"Команда «%s» доступна только в режиме GUI","Cannot change encrypted item":"Не удалось изменить зашифрованный элемент","Missing required argument: %s":"Отсутствует требуемый аргумент: %s","%s: %s":"%s: %s","Your choice: ":"Ваш выбор: ","Invalid answer: %s":"Неверный ответ: %s","Attaches the given file to the note.":"Прикрепляет заданный файл к заметке.","Cannot find \"%s\".":"Не удалось найти «%s».","Displays the given note.":"Отображает заданную заметку.","Displays the complete information about note.":"Отображает полную информацию о заметке.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Выводит или задаёт параметр конфигурации. Если [value] не указано, выведет значение [name]. Если не указаны ни [name], ни [value], выведет текущую конфигурацию.","Also displays unset and hidden config variables.":"Также выводит неустановленные или скрытые переменные конфигурации.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Дублирует заметки, содержащие , в [notebook]. Если блокнот не указан, заметки продублируются в текущем.","Marks a to-do as done.":"Отмечает задачу как завершённую.","Note is not a to-do: \"%s\"":"Заметка не является задачей: «%s»","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Управляет конфигурацией E2EE. Команды: `enable`, `disable`, `decrypt`, `status` и `target-status`.","Enter master password:":"Введите мастер-пароль:","Operation cancelled":"Операция отменена","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Запуск расшифровки... Пожалуйста, ожидайте. Время расшифровки зависит от объёма расшифровываемых данных.","Completed decryption.":"Расшифровка завершена.","Enabled":"Включено","Disabled":"Отключено","Encryption is: %s":"Шифрование: %s","Edit note.":"Редактировать заметку.","No text editor is defined. Please set it using `config editor `":"Текстовый редактор не определён. Задайте его, используя `config editor `","No active notebook.":"Нет активного блокнота.","Note does not exist: \"%s\". Create it?":"Заметки не существует: «%s». Создать?","Starting to edit note. Close the editor to get back to the prompt.":"Запуск редактирования заметки. Закройте редактор, чтобы вернуться к командной строке.","Error opening note in editor: %s":"Ошибка при открытии заметки в редакторе: %s","Note has been saved.":"Заметка сохранена.","Exits the application.":"Выход из приложения.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Экспортирует данные Joplin по заданному пути. По умолчанию экспортируется полная база данных, включая блокноты, заметки, теги и ресурсы.","Destination format: %s":"Целевой формат: %s","Exports only the given note.":"Экспортирует только заданную заметку.","Exports only the given notebook.":"Экспортирует только заданный блокнот.","Displays a geolocation URL for the note.":"Выводит URL геолокации для заметки.","Displays usage information.":"Выводит информацию об использовании.","For information on how to customise the shortcuts please visit %s":"Информацию по настройке сочетаний можно получить, посетив %s","Shortcuts are not available in CLI mode.":"Ярлыки недоступны в режиме командной строки.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Введите `help [команда]` для получения информации о команде или `help all` для получения полной информации по использованию.","The possible commands are:":"Доступные команды:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"В любой команде можно ссылаться на заметку или блокнот по названию или ID, либо используя ярлыки `$n` или `$b`, указывающие на текущую заметку или блокнот соответственно. С помощью `$c` можно ссылаться на текущий выбранный элемент.","To move from one pane to another, press Tab or Shift+Tab.":"Чтобы переключаться между панелями, нажимайте Tab или Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Используйте стрелки и клавиши перелистывания страницы вверх/вниз для прокрутки списков и текстовых областей (включая эту консоль).","To maximise/minimise the console, press \"TC\".":"Чтобы развернуть/свернуть консоль, нажимайте «TC».","To enter command line mode, press \":\"":"Чтобы войти в режим командной строки, нажмите «:»","To exit command line mode, press ESCAPE":"Чтобы выйти из режима командной строки, нажмите ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Для просмотра списка клавиатурных сочетаний и настроек конфигурации введите `help keymap`","Imports data into Joplin.":"Импортирует данные в Joplin.","Source format: %s":"Исходный формат: %s","Do not ask for confirmation.":"Не запрашивать подтверждение.","Found: %d.":"Найдено: %d.","Created: %d.":"Создано: %d.","Updated: %d.":"Обновлено: %d.","Skipped: %d.":"Пропущено: %d.","Resources: %d.":"Ресурсов: %d.","Tagged: %d.":"С тегами: %d.","Importing notes...":"Импорт заметок...","The notes have been imported: %s":"Импортировано заметок: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Выводит заметки текущего блокнота. Используйте `ls /` для вывода списка блокнотов.","Displays only the first top notes.":"Выводит только первые заметок.","Sorts the item by (eg. title, updated_time, created_time).":"Сортирует элементы по (например, title, updated_time, created_time).","Reverses the sorting order.":"Обращает порядок сортировки.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Выводит только элементы указанного типа. Может быть `n` для заметок, `t` для задач или `nt` для заметок и задач (например, `-tt` выведет только задачи, в то время как `-ttd` выведет заметки и задачи).","Either \"text\" or \"json\"":"«text» или «json»","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Использовать формат длинного списка. Форматом является ID, NOTE_COUNT (для блокнотов), DATE, TODO_CHECKED (для задач), TITLE","Please select a notebook first.":"Сначала выберите блокнот.","Creates a new notebook.":"Создаёт новый блокнот.","Creates a new note.":"Создаёт новую заметку.","Notes can only be created within a notebook.":"Заметки могут быть созданы только в блокноте.","Creates a new to-do.":"Создаёт новую задачу.","Moves the notes matching to [notebook].":"Перемещает заметки, содержащие в [notebook].","Renames the given (note or notebook) to .":"Переименовывает заданный (заметку или блокнот) в .","Deletes the given notebook.":"Удаляет заданный блокнот.","Deletes the notebook without asking for confirmation.":"Удаляет блокнот без запроса подтверждения.","Delete notebook? All notes within this notebook will also be deleted.":"Удалить блокнот? Все заметки в этом блокноте также будут удалены.","Deletes the notes matching .":"Удаляет заметки, соответствующие .","Deletes the notes without asking for confirmation.":"Удаляет заметки без запроса подтверждения.","%d notes match this pattern. Delete them?":"%d заметок соответствуют этому шаблону. Удалить их?","Delete note?":"Удалить заметку?","Searches for the given in all the notes.":"Запросы для заданного во всех заметках.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Устанавливает для свойства заданной заданное [value]. Возможные свойства:\n\n%s","Displays summary about the notes and notebooks.":"Выводит общую информацию о заметках и блокнотах.","Synchronises with remote storage.":"Синхронизирует с удалённым хранилищем.","Sync to provided target (defaults to sync.target config value)":"Синхронизация с заданной целью (по умолчанию — значение конфигурации sync.target)","Authentication was not completed (did not receive an authentication token).":"Аутентификация не была завершена (не получен токен аутентификации).","Not authentified with %s. Please provide any missing credentials.":"Не аутентифицировано с %s. Пожалуйста, предоставьте все недостающие данные.","Synchronisation is already in progress.":"Синхронизация уже выполняется.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Файл блокировки уже установлен. Если вам известно, что синхронизация не производится, вы можете удалить файл блокировки в «%s» и возобновить операцию.","Synchronisation target: %s (%s)":"Цель синхронизации: %s (%s)","Cannot initialize synchroniser.":"Не удалось инициировать синхронизацию.","Starting synchronisation...":"Начало синхронизации...","Cancelling... Please wait.":"Отмена... Пожалуйста, ожидайте."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" может быть «add», «remove» или «list», чтобы назначить или убрать [tag] с [note], или чтобы вывести список заметок, ассоциированых с [tag]. Команда `tag list` может быть использована для вывода списка всех тегов.","Invalid command: \"%s\"":"Неверная команда: «%s»"," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" может быть «toggle» или «clear». «toggle» используется для переключения статуса заданной задачи на завершённую или незавершённую (если применить к обычной заметке, она будет преобразована в задачу). «clear» используется для преобразования задачи обратно в обычную заметку.","Marks a to-do as non-completed.":"Отмечает задачу как незавершённую.","Switches to [notebook] - all further operations will happen within this notebook.":"Переключает на [блокнот] — все дальнейшие операции будут происходить в этом блокноте.","Displays version information":"Выводит информацию о версии","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Тип: %s.","Possible values: %s.":"Возможные значения: %s.","Default: %s":"По умолчанию: %s","Possible keys/values:":"Возможные ключи/значения:","Type `joplin help` for usage information.":"Введите `joplin help` для получения информации об использовании.","Fatal error:":"Фатальная ошибка:","The application has been authorised - you may now close this browser tab.":"Приложение авторизовано — можно закрыть вкладку браузера.","The application has been successfully authorised.":"Приложение успешно авторизовано.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Откройте следующую ссылку в вашем браузере для аутентификации приложения. Приложением будет создан каталог «Apps/Joplin». Чтение и запись файлов будет осуществляться только в его пределах. У приложения не будет доступа к каким-либо файлам за пределами этого каталога и другим личным данным. Никакая информация не будет передана третьим лицам.","Search:":"Поиск:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Добро пожаловать в Joplin!\n\nВведите `:help shortcuts` для просмотра списка клавиатурных сочетаний или просто `:help` для просмотра информации об использовании.\n\nНапример, для создания блокнота нужно ввести `mb`, для создания заметки — `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Один или несколько элементов сейчас зашифрованы и может потребоваться, чтобы вы предоставили мастер-пароль. Для этого введите, пожалуйста, «e2ee decrypt». Если пароль уже был вами предоставлен, зашифрованные элементы расшифруются в фоновом режиме и вскоре станут доступны.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Экспорт в «%s» в формате «%s». Пожалуйста, ожидайте...","Importing from \"%s\" as \"%s\" format. Please wait...":"Импорт из «%s» в формате «%s». Пожалуйста, ожидайте...","PDF File":"PDF-файл","File":"Файл","New note":"Новая заметка","New to-do":"Новая задача","New notebook":"Новый блокнот","Import":"Импорт","Export":"Экспорт","Print":"Печать","Hide %s":"Скрыть %s","Quit":"Выход","Edit":"Правка","Copy":"Копировать","Cut":"Вырезать","Paste":"Вставить","Search in all the notes":"Поиск во всех заметках","View":"Вид","Toggle editor layout":"Переключить вид редактора","Tools":"Инструменты","Synchronisation status":"Статус синхронизации","Encryption options":"Настройки шифрования","General Options":"Основные настройки","Help":"Помощь","Website and documentation":"Сайт и документация","Make a donation":"Сделать пожертвование","Check for updates...":"Проверить обновления...","About Joplin":"О Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Открыть %s","Exit":"Выход","OK":"OK","Cancel":"Отмена","Current version is up-to-date.":"Вы используете самую свежую версию.","An update is available, do you want to download it now?":"Доступно обновление. Желаете скачать его сейчас?","Yes":"Да","No":"Нет","Check synchronisation configuration":"Проверить настройки синхронизации","Notes and settings are stored in: %s":"Заметки и настройки сохранены в: %s","Save":"Сохранить","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Отключение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в расшифрованном виде к цели синхронизации. Желаете продолжить?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Включение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в зашифрованном виде к цели синхронизации. Не теряйте пароль, так как в целях безопасности *только* с его помощью можно будет расшифровать данные! Чтобы включить шифрование, введите ваш пароль ниже.","Disable encryption":"Отключить шифрование","Enable encryption":"Включить шифрование","Master Keys":"Мастер-ключи","Active":"Активен","ID":"ID","Source":"Источник","Created":"Создан","Updated":"Обновлён","Password":"Пароль","Password OK":"Пароль OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Внимание: Для шифрования может быть использован только один мастер-ключ (отмеченный как «активный»). Для расшифровки может использоваться любой из ключей, в зависимости от того, как изначально были зашифрованы заметки или блокноты.","Missing Master Keys":"Недостающие мастер-ключи","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"Мастер-ключи с такими ID используются для шифрования некоторых из ваших элементов, однако у приложения сейчас нет к ним доступа. Скорее всего, они загрузятся при синхронизации.","Status":"Статус","Encryption is:":"Шифрование:","Back":"Назад","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Будет создан новый блокнот «%s» и в него будет импортирован файл «%s»","Please create a notebook first.":"Сначала создайте блокнот.","Please create a notebook first":"Сначала создайте блокнот","Notebook title:":"Название блокнота:","Add or remove tags:":"Добавить или удалить теги:","Separate each tag by a comma.":"Каждый тег отделяется запятой.","Rename notebook:":"Переименовать блокнот:","Set alarm:":"Установить напоминание:","Search":"Поиск","Layout":"Вид","Some items cannot be synchronised.":"Некоторые элементы не могут быть синхронизированы.","View them now":"Просмотреть их сейчас","Some items cannot be decrypted.":"Некоторые элементы не могут быть расшифрованы.","Set the password":"Установить пароль","Add or remove tags":"Добавить или удалить теги","Switch between note and to-do type":"Переключить тип между заметкой и задачей","Delete":"Удалить","Delete notes?":"Удалить заметки?","No notes in here. Create one by clicking on \"New note\".":"Здесь нет заметок. Создайте новую нажатием на «Новая заметка».","There is currently no notebook. Create one by clicking on \"New notebook\".":"Сейчас здесь нет блокнотов. Создайте новый нажав «Новый блокнот».","Open...":"Открыть...","Save as...":"Сохранить как...","Unsupported link or message: %s":"Неподдерживаемая ссыка или сообщение: %s","Attach file":"Прикрепить файл","Tags":"Теги","Set alarm":"Установить напоминание","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Заметка пуста. Нажмите на «%s», чтобы переключиться в редактор и отредактировать её.","to-do":"задача","note":"заметка","Creating new %s...":"Создание новой %s...","Refresh":"Обновить","Clear":"Очистить","OneDrive Login":"Вход в OneDrive","Options":"Настройки","Synchronisation Status":"Статус синхронизации","Encryption Options":"Настройки шифрования","Remove this tag from all the notes?":"Убрать этот тег со всех заметок?","Remove this search from the sidebar?":"Убрать этот запрос с боковой панели?","Rename":"Переименовать","Synchronise":"Синхронизировать","Notebooks":"Блокноты","Searches":"Запросы","Please select where the sync status should be exported to":"Выберите, куда должен быть экспортирован статус синхронизации","Usage: %s":"Использование: %s","Unknown flag: %s":"Неизвестный флаг: %s","File system":"Файловая система","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (только для тестирования)","WebDAV":"WebDAV","Unknown log level: %s":"Неизвестный уровень лога: %s","Unknown level ID: %s":"Неизвестный ID уровня: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Не удалось обновить токен: отсутствуют данные аутентификации. Повторный запуск синхронизации может решить проблему.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Не удалось синхронизироваться с OneDrive.\n\nТакая ошибка часто возникает при использовании OneDrive для бизнеса, который, к сожалению, не поддерживается.\n\nПожалуйста, рассмотрите возможность использования обычного аккаунта OneDrive.","Cannot access %s":"Не удалось получить доступ %s","Created local items: %d.":"Создано локальных элементов: %d.","Updated local items: %d.":"Обновлено локальных элементов: %d.","Created remote items: %d.":"Создано удалённых элементов: %d.","Updated remote items: %d.":"Обновлено удалённых элементов: %d.","Deleted local items: %d.":"Удалено локальных элементов: %d.","Deleted remote items: %d.":"Удалено удалённых элементов: %d.","Fetched items: %d/%d.":"Получено элементов: %d/%d.","State: \"%s\".":"Статус: «%s».","Cancelling...":"Отмена...","Completed: %s":"Завершено: %s","Last error: %s":"Последняя ошибка: %s","Idle":"Простой","In progress":"Выполнение","Synchronisation is already in progress. State: %s":"Синхронизация уже выполняется. Статус: %s","Encrypted":"Зашифровано","Encrypted items cannot be modified":"Зашифрованные элементы не могут быть изменены","Conflicts":"Конфликты","A notebook with this title already exists: \"%s\"":"Блокнот с таким названием уже существует: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"Блокнот не может быть назван «%s», это зарезервированное название.","Untitled":"Без имени","This note does not have geolocation information.":"Эта заметка не содержит информации о геолокации.","Cannot copy note to \"%s\" notebook":"Не удалось скопировать заметку в блокнот «%s»","Cannot move note to \"%s\" notebook":"Не удалось переместить заметку в блокнот «%s»","Text editor":"Текстовый редактор","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Редактор, в котором будут открываться заметки. Если не задан, будет произведена попытка автоматического определения редактора по умолчанию.","Language":"Язык","Date format":"Формат даты","Time format":"Формат времени","Theme":"Тема","Light":"Светлая","Dark":"Тёмная","Uncompleted to-dos on top":"Незавершённые задачи сверху","Sort notes by":"Сортировать заметки по","Reverse sort order":"Обратный порядок сортировки","Save geo-location with notes":"Сохранять информацию о геолокации в заметках","When creating a new to-do:":"При создании новой задачи:","Focus title":"Фокус на названии","Focus body":"Фокус на содержимом","When creating a new note:":"При создании новой заметки:","Show tray icon":"Показывать иконку в панели задач","Global zoom percentage":"Глобальный масштаб в процентах","Editor font family":"Семейство шрифтов редактора","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"Название шрифта не проверяется. Если оно указано некорректно или не задано, будет использоваться стандартный моноширинный шрифт.","Automatically update the application":"Автоматически обновлять приложение","Synchronisation interval":"Интервал синхронизации","%d minutes":"%d минут","%d hour":"%d час","%d hours":"%d часов","Show advanced options":"Показывать расширенные настройки","Synchronisation target":"Цель синхронизации","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Цель синхронизации. Каждая цель синхронизации может иметь дополнительные параметры, именованные как «sync.NUM.NAME» (все описаны ниже).","Directory to synchronise with (absolute path)":"Каталог синхронизации (абсолютный путь)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Путь для синхронизации при включённой синхронизации с файловой системой. См. `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Имя пользователя Nextcloud","Nextcloud password":"Пароль Nextcloud","WebDAV URL":"URL WebDAV","WebDAV username":"Имя пользователя WebDAV","WebDAV password":"Пароль WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Неверное значение параметра: «%s». Доступные значения: %s.","Joplin Export File":"Файл экспорта Joplin","Markdown":"Markdown","Joplin Export Directory":"Папка экспорта Joplin","Evernote Export File":"Файл экспорта Evernote","Directory":"Директория","Cannot load \"%s\" module for format \"%s\"":"Не удалось загрузить модуль «%s» для формата «%s»","Please specify import format for %s":"Пожалуйста, укажите формат импорта для %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Этот элемент сейчас зашифрован: %s «%s». Пожалуйста, дождитесь расшифровки всех элементов и попробуйте снова.","There is no data to export.":"Нет данных для экспорта.","Please specify the notebook where the notes should be imported to.":"Пожалуйста, укажите блокнот, в который должны быть импортированы заметки.","Items that cannot be synchronised":"Элементы, которые не могут быть синхронизированы","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Эти элементы будут оставаться на устройстве, но не будут загружены в целевой объект синхронизации. Чтобы найти эти элементы, воспользуйтесь поиском по названию или ID (который указывается в скобках выше).","Sync status (synced items / total items)":"Статус синхронизации (элементов синхронизировано/всего)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Всего: %d/%d","Conflicted: %d":"Конфликтующих: %d","To delete: %d":"К удалению: %d","Folders":"Папки","%s: %d notes":"%s: %d заметок","Coming alarms":"Грядущие напоминания","On %s: %s":"В %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Сейчас здесь нет заметок. Создаёте новую, нажав кнопку (+).","Delete these notes?":"Удалить эти заметки?","Log":"Лог","Export Debug Report":"Экспортировать отладочный отчёт","Encryption Config":"Конфигурация шифрования","Configuration":"Конфигурация","Move to notebook...":"Переместить в блокнот...","Move %d notes to notebook \"%s\"?":"Переместить %d заметок в блокнот «%s»?","Press to set the decryption password.":"Нажмите, чтобы установить пароль для расшифровки.","Select date":"Выбрать дату","Confirm":"Подтвердить","Cancel synchronisation":"Отменить синхронизацию","Joplin website":"Сайт Joplin","Master Key %s":"Мастер-ключ %s","Created: %s":"Создано: %s","Password:":"Пароль:","Password cannot be empty":"Пароль не может быть пустым","Enable":"Включено","The notebook could not be saved: %s":"Не удалось сохранить блокнот: %s","Edit notebook":"Редактировать блокнот","Show all":"Показать всё","Errors only":"Только ошибки","This note has been modified:":"Эта заметка была изменена:","Save changes":"Сохранить изменения","Discard changes":"Отменить изменения","Unsupported image type: %s":"Неподдерживаемый формат изображения: %s","Attach photo":"Прикрепить фото","Attach any file":"Прикрепить любой файл","Convert to note":"Преобразовать в заметку","Convert to todo":"Преобразовать в задачу","Hide metadata":"Скрыть метаданные","Show metadata":"Показать метаданные","View on map":"Посмотреть на карте","Delete notebook":"Удалить блокнот","Login with OneDrive":"Войти в OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Нажмите на кнопку (+) для создания новой заметки или нового блокнота. Нажмите на боковое меню для доступа к вашим существующим блокнотам.","You currently have no notebook. Create one by clicking on (+) button.":"У вас сейчас нет блокнота. Создайте его нажатием на кнопку (+).","Welcome":"Добро пожаловать"} \ No newline at end of file diff --git a/README.md b/README.md index 5b050af871..ea65e5145b 100644 --- a/README.md +++ b/README.md @@ -232,12 +232,12 @@ Current translations: ![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/hr.png) | Croatian | [hr_HR](https://github.com/laurent22/joplin/blob/master/CliClient/locales/hr_HR.po) | Hrvoje Mandić | 65% ![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/de.png) | Deutsch | [de_DE](https://github.com/laurent22/joplin/blob/master/CliClient/locales/de_DE.po) | Tobias Strobel | 97% ![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/gb.png) | English | [en_GB](https://github.com/laurent22/joplin/blob/master/CliClient/locales/en_GB.po) | | 100% -![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/es.png) | Español | [es_ES](https://github.com/laurent22/joplin/blob/master/CliClient/locales/es_ES.po) | Fernando Martín | 98% +![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/es.png) | Español | [es_ES](https://github.com/laurent22/joplin/blob/master/CliClient/locales/es_ES.po) | Fernando Martín | 100% ![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/fr.png) | Français | [fr_FR](https://github.com/laurent22/joplin/blob/master/CliClient/locales/fr_FR.po) | Laurent Cozic | 100% ![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/it.png) | Italiano | [it_IT](https://github.com/laurent22/joplin/blob/master/CliClient/locales/it_IT.po) | | 66% ![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/be.png) | Nederlands | [nl_BE](https://github.com/laurent22/joplin/blob/master/CliClient/locales/nl_BE.po) | | 80% -![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/br.png) | Português (Brasil) | [pt_BR](https://github.com/laurent22/joplin/blob/master/CliClient/locales/pt_BR.po) | | 65% -![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/ru.png) | Русский | [ru_RU](https://github.com/laurent22/joplin/blob/master/CliClient/locales/ru_RU.po) | Artyom Karlov | 83% +![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/br.png) | Português (Brasil) | [pt_BR](https://github.com/laurent22/joplin/blob/master/CliClient/locales/pt_BR.po) | Renato Nunes Bastos | 98% +![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/ru.png) | Русский | [ru_RU](https://github.com/laurent22/joplin/blob/master/CliClient/locales/ru_RU.po) | Artyom Karlov | 100% ![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/cn.png) | 中文 (简体) | [zh_CN](https://github.com/laurent22/joplin/blob/master/CliClient/locales/zh_CN.po) | RCJacH | 66% ![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/jp.png) | 日本語 | [ja_JP](https://github.com/laurent22/joplin/blob/master/CliClient/locales/ja_JP.po) | | 65% diff --git a/ReactNativeClient/locales/es_ES.json b/ReactNativeClient/locales/es_ES.json index 8fce3fbd81..83465eb5d1 100644 --- a/ReactNativeClient/locales/es_ES.json +++ b/ReactNativeClient/locales/es_ES.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Desmarque las notas asociadas para eliminar una etiqueta.","Please select the note or notebook to be deleted first.":"Seleccione primero la nota o libreta que desea eliminar.","Press Ctrl+D or type \"exit\" to exit the application":"Pulse Ctrl+D o escriba «salir» para salir de la aplicación","More than one item match \"%s\". Please narrow down your query.":"Hay más de un elemento que coincide con «%s», intente mejorar su consulta.","No notebook selected.":"No se ha seleccionado ninguna libreta.","No notebook has been specified.":"Ninguna libreta fue especificada","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Cancelando sincronización de segundo plano... Por favor espere.","No such command: %s":"El comando no existe: %s","The command \"%s\" is only available in GUI mode":"El comando «%s» solamente está disponible en modo GUI","Cannot change encrypted item":"No se puede cambiar el elemento cifrado","Missing required argument: %s":"Falta un argumento requerido: %s","%s: %s":"%s: %s","Your choice: ":"Su elección: ","Invalid answer: %s":"Respuesta inválida: %s","Attaches the given file to the note.":"Adjuntar archivo a la nota.","Cannot find \"%s\".":"No se encuentra \"%s\".","Displays the given note.":"Mostrar la nota dada.","Displays the complete information about note.":"Mostrar la información completa acerca de la nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtener o configurar un valor. Si no se provee el [valor], se mostrará el valor de [nombre]. Si no se provee [nombre] ni [valor], se listará la configuración actual.","Also displays unset and hidden config variables.":"También muestra variables ocultas o no configuradas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica las notas que coincidan con en la libreta. Si no se especifica una libreta la nota se duplica en la libreta actual.","Marks a to-do as done.":"Marca una tarea como hecha.","Note is not a to-do: \"%s\"":"La nota no es una tarea: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Maneja la configuración E2EE. Comandos disponibles `enable`, `disable`, `decrypt`, `status` y `target-status`.","Enter master password:":"Introduzca la contraseña maestra:","Operation cancelled":"Operación cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando descifrado... Por favor espere, puede tardar varios minutos dependiendo de cuanto haya que descifrar.","Completed decryption.":"Descifrado completado.","Enabled":"Habilitado","Disabled":"Deshabilitado","Encryption is: %s":"El cifrado es: %s","Edit note.":"Editar una nota.","No text editor is defined. Please set it using `config editor `":"No hay editor de texto definido. Por favor configure uno usando `config editor `","No active notebook.":"No hay libreta activa.","Note does not exist: \"%s\". Create it?":"La nota no existe: \"%s\". ¿Crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Iniciando la edición de una nota. Cierre el editor para regresar al prompt.","Error opening note in editor: %s":"Error abriendo la nota en el editor: %s","Note has been saved.":"La nota ha sido guardada.","Exits the application.":"Sale de la aplicación.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporta datos de Joplin al directorio indicado. Por defecto, se exportará la base de datos completa incluyendo libretas, notas, etiquetas y recursos.","Destination format: %s":"Formato de destino: %s","Exports only the given note.":"Exporta únicamente la nota indicada.","Exports only the given notebook.":"Exporta únicamente la libreta indicada.","Displays a geolocation URL for the note.":"Muestra la URL de la geolocalización de la nota.","Displays usage information.":"Muestra información de uso.","For information on how to customise the shortcuts please visit %s":"Para información de cómo personalizar los atajos por favor visite %s","Shortcuts are not available in CLI mode.":"Atajos no disponibles en modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Escriba `help [command]` para obtener más información sobre el comando, o escriba `help all` para obtener toda la información acerca del uso del programa.","The possible commands are:":"Los posibles comandos son:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Con cualquier comando, una nota o libreta puede ser referida por su título o ID, o utilizando atajos `$n` o `$b`, respectivamente, para la nota o libreta seleccionada. Se puede utilizar `$c` para hacer referencia al elemento seleccionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover desde un panel a otro, presione Tabulador o Mayúsuclas+Tabulador.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Para desplazar en las listas y areas de texto (incluyendo la consola) utilice las flechas y re pág/av pág.","To maximise/minimise the console, press \"TC\".":"Para maximizar/minimizar la consola, presione \"TC\".","To enter command line mode, press \":\"":"Para entrar a modo línea de comando, presione \":\"","To exit command line mode, press ESCAPE":"Para salir de modo línea de comando, presione ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Para una lista de los atajos de teclado disponibles, escriba `help keymap`","Imports data into Joplin.":"Importa los datos en Joplin.","Source format: %s":"Formato de origen: %s","Do not ask for confirmation.":"No requiere confirmación.","Found: %d.":"Encontrado: %d.","Created: %d.":"Creado: %d.","Updated: %d.":"Actualizado: %d.","Skipped: %d.":"Omitido: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Etiquetado: %d.","Importing notes...":"Importando notas...","The notes have been imported: %s":"Las notas han sido importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Muestra las notas en la libreta actual. Usa `ls /` para mostrar la lista de libretas.","Displays only the first top notes.":"Muestra las primeras notas.","Sorts the item by (eg. title, updated_time, created_time).":"Ordena los elementos por campo ( ej. title, updated_time, created_time).","Reverses the sorting order.":"Invierte el orden.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Muestra únicamente los elementos de los tipos especificados. Pueden ser `n` para notas, `t` para tareas, o `nt` para libretas y tareas (ej. `-tt` mostrará unicamente las tareas, mientras `-ttd` mostrará notas y tareas).","Either \"text\" or \"json\"":"Puede ser \"text\" o \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usar formato largo de lista. El formato es ID, NOTE_COUNT ( para libretas), DATE,TODO_CHECKED ( para tareas), TITLE","Please select a notebook first.":"Por favor seleccione la libreta.","Creates a new notebook.":"Crea una nueva libreta.","Creates a new note.":"Crea una nueva nota.","Notes can only be created within a notebook.":"Notas solamente pueden ser creadas dentro de una libreta.","Creates a new to-do.":"Crea una nueva lista de tareas.","Moves the notes matching to [notebook].":"Mueve las notas que coincidan con a la [libreta].","Renames the given (note or notebook) to .":"Renombra el elemento dado (nota o libreta) a .","Deletes the given notebook.":"Elimina la libreta dada.","Deletes the notebook without asking for confirmation.":"Elimina una libreta sin pedir confirmación.","Delete notebook? All notes within this notebook will also be deleted.":"¿Desea eliminar la libreta? Todas las notas dentro de esta libreta también serán eliminadas.","Deletes the notes matching .":"Elimina las notas que coinciden con .","Deletes the notes without asking for confirmation.":"Elimina las notas sin pedir confirmación.","%d notes match this pattern. Delete them?":"%d notas coinciden con el patrón. ¿Eliminarlas?","Delete note?":"¿Eliminar nota?","Searches for the given in all the notes.":"Buscar el patrón en todas las notas.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Asigna el valor [value] a la propiedad de la nota indicada . Propiedades disponibles:\n\n%s","Displays summary about the notes and notebooks.":"Muestra un resumen acerca de las notas y las libretas.","Synchronises with remote storage.":"Sincroniza con el almacenamiento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincroniza con el destino indicado (por defecto al valor de configuración sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticación no completada (no se recibió token de autenticación).","Not authentified with %s. Please provide any missing credentials.":"No autenticado con %s. Por favor provea las credenciales.","Synchronisation is already in progress.":"Sincronzación en progreso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ya hay un archivo de bloqueo. Si está seguro de que no hay una sincronización en curso puede eliminar el archivo de bloqueo «%s» y reanudar la operación.","Synchronisation target: %s (%s)":"Destino de la sincronización: %s (%s)","Cannot initialize synchroniser.":"No se puede inicializar sincronizador.","Starting synchronisation...":"Iniciando sincronización...","Cancelling... Please wait.":"Cancelando... Por favor espere."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" puede ser \"add\", \"remove\" o \"list\" para asignar o eliminar [tag] de [note], o para listar las notas asociadas con [tag]. El comando `tag list` puede ser usado para listar todas las etiquetas.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" puede ser \"toggle\" o \"clear\". Usa \"toggle\" para cambiar la tarea dada entre estado completado y sin completar. (Si el objetivo es una nota regular se convertirá en una tarea). Usa \"clear\" para convertir la tarea a una nota regular.","Marks a to-do as non-completed.":"Marca una tarea como no completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Cambia una [libreta] - todas las demás operaciones se realizan en ésta libreta.","Displays version information":"Muestra información de la versión","%s %s (%s)":"%s %s (%s)","Enum":"Enumeración","Type: %s.":"Tipo: %s.","Possible values: %s.":"Posibles valores: %s.","Default: %s":"Por defecto: %s","Possible keys/values:":"Claves/valores posbiles:","Type `joplin help` for usage information.":"Escriba `joplin help` para mostrar información de uso.","Fatal error:":"Error fatal:","The application has been authorised - you may now close this browser tab.":"La aplicación ha sido autorizada - ahora puede cerrar esta pestaña de su navegador.","The application has been successfully authorised.":"La aplicacion ha sido autorizada éxitosamente.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra la siguiente URL en su navegador para autenticar la aplicación. La aplicación creará un directorio en «Apps/Joplin» y solo leerá y escribirá archivos en ese directorio. No tendrá acceso a ningún archivo fuera de ese directorio ni a ningún otro archivo personal. No se compartirá información con terceros.","Search:":"Buscar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenido a Joplin.\n\nEscriba «:help shortcuts» para obtener una lista con los atajos de teclado, o simplemente «:help» para información general.\n\nPor ejemplo, para crear una libreta escriba «mb», para crear una nota escriba «mn».","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Uno o más elementos están cifrados y debe proporcionar la contraseña maestra. Para hacerlo por favor escriba `e2ee decrypt`. Si ya ha proporcionado la contraseña, los elementos están siendo descifrados en segundo plano y estarán disponibles en breve.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportando el formato de \"%s\" a \"%s\". Por favor espere...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importando el formato de \"%s\" a \"%s\". Por favor espere...","PDF File":"PDF File","File":"Archivo","New note":"Nueva nota","New to-do":"Nueva lista de tareas","New notebook":"Nueva libreta","Import":"Importar","Export":"Exportar","Print":"","Hide %s":"Oculta %s","Quit":"Salir","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Pegar","Search in all the notes":"Buscar en todas las notas","View":"Ver","Toggle editor layout":"Cambia el diseño del editor","Tools":"Herramientas","Synchronisation status":"Estado de la sincronización","Encryption options":"Opciones de cifrado","General Options":"Opciones generales","Help":"Ayuda","Website and documentation":"Sitio web y documentación","Make a donation":"Hacer una donación","Check for updates...":"Comprobar actualizaciones...","About Joplin":"Acerca de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Abrir %s","Exit":"Salir","OK":"OK","Cancel":"Cancelar","Current version is up-to-date.":"La versión actual está actualizada.","An update is available, do you want to download it now?":"Hay disponible una actualización. ¿Quiere descargarla ahora?","Yes":"Sí","No":"No","Check synchronisation configuration":"Comprobar sincronización","Notes and settings are stored in: %s":"Las notas y los ajustes se guardan en: %s","Save":"Guardar","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Deshabilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán descifrados al destino. ¿Desea continuar?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Habilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán cifrados al destino. No pierda la contraseña, por cuestiones de seguridad, ¡es la *única* forma de descifrar los datos! Para habilitar el cifrado, por favor introduzca su contraseña más abajo.","Disable encryption":"Deshabilitar cifrado","Enable encryption":"Habilitar cifrado","Master Keys":"Clave maestra","Active":"Activo","ID":"ID","Source":"Origen","Created":"Creado","Updated":"Actualizado","Password":"Contraseña","Password OK":"Contraseña OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Nota: Solo una clave maestra va a ser utilizar para el cifrado (la marcada como \"activa\"). Cualquiera de las claves puede ser utilizada para descifrar, dependiendo de como fueron cifradas originalmente las notas o las libretas.","Missing Master Keys":"No se encuentra la clave maestra","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"La clave maestra con estos ID son utilizadas para descifrar algunos de tus elementos, pero la apliación no tiene acceso a ellas. Serán descargadas a través de la sincronización.","Status":"Estado","Encryption is:":"El cifrado está:","Back":"Atrás","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Se creará la nueva libreta «%s» y se importará en ella el archivo «%s»","Please create a notebook first.":"Por favor cree una libreta primero.","Please create a notebook first":"Por favor cree una libreta primero","Notebook title:":"Título de libreta:","Add or remove tags:":"Agregar o borrar etiquetas: ","Separate each tag by a comma.":"Separar cada etiqueta por una coma.","Rename notebook:":"Renombrar libreta:","Set alarm:":"Ajustar alarma:","Search":"Buscar","Layout":"Diseño","Some items cannot be synchronised.":"No se han podido sincronizar algunos de los elementos.","View them now":"Verlos ahora","Some items cannot be decrypted.":"No se han podido descifrar algunos elementos.","Set the password":"Establecer la contraseña","Add or remove tags":"Añadir o borrar etiquetas","Switch between note and to-do type":"Cambiar entre nota y lista de tareas","Delete":"Eliminar","Delete notes?":"¿Desea eliminar notas?","No notes in here. Create one by clicking on \"New note\".":"No hay ninguna nota. Cree una pulsando «Nota nueva».","There is currently no notebook. Create one by clicking on \"New notebook\".":"No hay ninguna libreta. Cree una pulsando en «Libreta nueva».","Open...":"Abrir...","Save as...":"Guardar como...","Unsupported link or message: %s":"Enlace o mensaje no soportado: %s","Attach file":"Adjuntar archivo","Tags":"Etiquetas","Set alarm":"Establecer alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota no tiene contenido. Pulse en \"%s\" para cambiar al editor y editar la nota.","to-do":"lista de tareas","note":"nota","Creating new %s...":"Creando nuevo %s...","Refresh":"Refrescar","Clear":"Limpiar","OneDrive Login":"Inicio de sesión de OneDrive","Options":"Opciones","Synchronisation Status":"Estado de la sincronización","Encryption Options":"Opciones de cifrado","Remove this tag from all the notes?":"¿Desea eliminar esta etiqueta de todas las notas?","Remove this search from the sidebar?":"¿Desea eliminar esta búsqueda de la barra lateral?","Rename":"Renombrar","Synchronise":"Sincronizar","Notebooks":"Libretas","Searches":"Búsquedas","Please select where the sync status should be exported to":"Seleccione a dónde se debería exportar el estado de sincronización","Usage: %s":"Uso: %s","Unknown flag: %s":"Etiqueta desconocida: %s","File system":"Sistema de archivos","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Solo para pruebas)","WebDAV":"WebDAV","Unknown log level: %s":"Nivel de log desconocido: %s","Unknown level ID: %s":"ID de nivel desconocido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"No se ha podido actualizar token: faltan datos de autenticación. Reiniciar la sincronización podría solucionar el problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"No se ha podido sincronizar con OneDrive.\n\nEste error suele ocurrir al utilizar OneDrive for Business. Este producto no está soportado.\n\nPodría considerar utilizar una cuenta Personal de OneDrive.","Cannot access %s":"No se ha podido acceder a %s","Created local items: %d.":"Elementos locales creados: %d.","Updated local items: %d.":"Elementos locales actualizados: %d.","Created remote items: %d.":"Elementos remotos creados: %d.","Updated remote items: %d.":"Elementos remotos actualizados: %d.","Deleted local items: %d.":"Elementos locales borrados: %d.","Deleted remote items: %d.":"Elementos remotos borrados: %d.","Fetched items: %d/%d.":"Elementos obtenidos: %d/%d.","State: \"%s\".":"Estado: «%s».","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"La sincronización ya está en progreso. Estado: %s","Encrypted":"Cifrado","Encrypted items cannot be modified":"Los elementos cifrados no pueden ser modificados","Conflicts":"Conflictos","A notebook with this title already exists: \"%s\"":"Ya existe una libreta con este nombre: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"No se puede usar el nombre «%s» para una libreta; es un título reservado.","Untitled":"Sin título","This note does not have geolocation information.":"Esta nota no tiene informacion de geolocalización.","Cannot copy note to \"%s\" notebook":"No se ha podido copiar la nota a la libreta «%s»","Cannot move note to \"%s\" notebook":"No se ha podido mover la nota a la libreta «%s»","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"El editor que se usará para abrir una nota. Se intentará auto-detectar el editor predeterminado si no se proporciona ninguno.","Language":"Idioma","Date format":"Formato de fecha","Time format":"Formato de hora","Theme":"Tema","Light":"Claro","Dark":"Oscuro","Uncompleted to-dos on top":"Mostrar tareas incompletas al inicio de las listas","Sort notes by":"Ordenar notas por","Reverse sort order":"Invierte el orden","Save geo-location with notes":"Guardar geolocalización en las notas","When creating a new to-do:":"Al crear una nueva lista de tareas:","Focus title":"Foco en el título","Focus body":"Foco en el cuerpo","When creating a new note:":"Cuando se crear una nota nueva:","Show tray icon":"Mostrar icono en la bandeja","Global zoom percentage":"Establecer el porcentaje de aumento de la aplicación","Editor font family":"Fuente del editor","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"El nombre de la fuente no se comprobado. Si es incorrecto o está vacío, se utilizará una fuente genérica monoespaciada.","Automatically update the application":"Actualizar la aplicación automáticamente","Synchronisation interval":"Intervalo de sincronización","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opciones avanzadas","Synchronisation target":"Destino de sincronización","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"El destino de la sincronización. Cada destino de la sincronización puede tener parámetros adicionales los cuales son llamados como `sync.NUM.NAME` (todos abajo documentados).","Directory to synchronise with (absolute path)":"Directorio con el que sincronizarse (ruta completa)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"La ruta a la que sincronizar cuando se activa la sincronización con sistema de archivos. Vea «sync.target».","Nextcloud WebDAV URL":"Servidor WebDAV de Nextcloud","Nextcloud username":"Usuario de Nextcloud","Nextcloud password":"Contraseña de Nextcloud","WebDAV URL":"Servidor WebDAV","WebDAV username":"Usuario de WebDAV","WebDAV password":"Contraseña de WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Opción inválida: «%s». Los valores posibles son: %s.","Joplin Export File":"Archivo de exportación de Joplin","Markdown":"Markdown","Joplin Export Directory":"Directorio para exportar de Joplin","Evernote Export File":"Archivo exportado de Evernote","Directory":"Directorio","Cannot load \"%s\" module for format \"%s\"":"No se puede cargar el módulo \"%s\" para el formato \"%s\"","Please specify import format for %s":"Por favor especifique el formato para importar de %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"El elemento se encuentra cifrado: %s \"%s\". Por favor espere a que todos los elementos estén descifrados y pruebe de nuevo.","There is no data to export.":"No hay datos para exportar.","Please specify the notebook where the notes should be imported to.":"Por favor especifique la libreta donde las notas deben ser importadas.","Items that cannot be synchronised":"Elementos que no se pueden sincronizar","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Estos elementos se mantendrán en el dispositivo pero no serán enviados al destino de sincronización. Para encontrar dichos elementos busca en el título o en el ID (el cual se muestra arriba entre corchetes).","Sync status (synced items / total items)":"Estado de sincronización (elementos sincronizados/elementos totales)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Conflictos: %d","To delete: %d":"Borrar: %d","Folders":"Carpetas","%s: %d notes":"%s: %d notas","Coming alarms":"Alarmas próximas","On %s: %s":"En %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"No hay notas. Cree una pulsando en el botón (+).","Delete these notes?":"¿Desea borrar estas notas?","Log":"Log","Export Debug Report":"Exportar informe de depuración","Encryption Config":"Configuración de cifrado","Configuration":"Configuración","Move to notebook...":"Mover a la libreta...","Move %d notes to notebook \"%s\"?":"¿Desea mover %d notas a libreta «%s»?","Press to set the decryption password.":"Presione para establecer la contraseña de descifrado.","Select date":"Seleccione fecha","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronización","Joplin website":"Sitio web de Joplin","Master Key %s":"Clave maestra %s","Created: %s":"Creado: %s","Password:":"Contraseña:","Password cannot be empty":"La contraseña no puede estar vacía","Enable":"Habilitado","The notebook could not be saved: %s":"No se ha podido guardar esta libreta: %s","Edit notebook":"Editar libreta","Show all":"Mostrar todo","Errors only":"Solo errores","This note has been modified:":"Esta nota ha sido modificada:","Save changes":"Guardar cambios","Discard changes":"Descartar cambios","Unsupported image type: %s":"Tipo de imagen no soportado: %s","Attach photo":"Adjuntar foto","Attach any file":"Adjuntar cualquier archivo","Convert to note":"Convertir a nota","Convert to todo":"Convertir a lista de tareas","Hide metadata":"Ocultar metadatos","Show metadata":"Mostrar metadatos","View on map":"Ver en un mapa","Delete notebook":"Borrar libreta","Login with OneDrive":"Acceder con OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Pulse en el botón (+) para crear una nueva nota o libreta. Pulse en el menú lateral para acceder a las libretas existentes.","You currently have no notebook. Create one by clicking on (+) button.":"No hay ninguna libreta. Cree una nueva libreta pulsando en el botón (+).","Welcome":"Bienvenido"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Desmarque las notas asociadas para eliminar una etiqueta.","Please select the note or notebook to be deleted first.":"Seleccione primero la nota o libreta que desea eliminar.","Press Ctrl+D or type \"exit\" to exit the application":"Pulse Ctrl+D o escriba «salir» para salir de la aplicación","More than one item match \"%s\". Please narrow down your query.":"Hay más de un elemento que coincide con «%s», intente mejorar su consulta.","No notebook selected.":"No se ha seleccionado ninguna libreta.","No notebook has been specified.":"Ninguna libreta fue especificada","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Cancelando sincronización de segundo plano... Por favor espere.","No such command: %s":"El comando no existe: %s","The command \"%s\" is only available in GUI mode":"El comando «%s» solamente está disponible en modo GUI","Cannot change encrypted item":"No se puede cambiar el elemento cifrado","Missing required argument: %s":"Falta un argumento requerido: %s","%s: %s":"%s: %s","Your choice: ":"Su elección: ","Invalid answer: %s":"Respuesta inválida: %s","Attaches the given file to the note.":"Adjuntar archivo a la nota.","Cannot find \"%s\".":"No se encuentra \"%s\".","Displays the given note.":"Mostrar la nota dada.","Displays the complete information about note.":"Mostrar la información completa acerca de la nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtener o configurar un valor. Si no se provee el [valor], se mostrará el valor de [nombre]. Si no se provee [nombre] ni [valor], se listará la configuración actual.","Also displays unset and hidden config variables.":"También muestra variables ocultas o no configuradas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica las notas que coincidan con en la libreta. Si no se especifica una libreta la nota se duplica en la libreta actual.","Marks a to-do as done.":"Marca una tarea como hecha.","Note is not a to-do: \"%s\"":"La nota no es una tarea: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Maneja la configuración E2EE. Comandos disponibles `enable`, `disable`, `decrypt`, `status` y `target-status`.","Enter master password:":"Introduzca la contraseña maestra:","Operation cancelled":"Operación cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando descifrado... Por favor espere, puede tardar varios minutos dependiendo de cuanto haya que descifrar.","Completed decryption.":"Descifrado completado.","Enabled":"Habilitado","Disabled":"Deshabilitado","Encryption is: %s":"El cifrado es: %s","Edit note.":"Editar una nota.","No text editor is defined. Please set it using `config editor `":"No hay editor de texto definido. Por favor configure uno usando `config editor `","No active notebook.":"No hay libreta activa.","Note does not exist: \"%s\". Create it?":"La nota no existe: \"%s\". ¿Crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Iniciando la edición de una nota. Cierre el editor para regresar al prompt.","Error opening note in editor: %s":"Error abriendo la nota en el editor: %s","Note has been saved.":"La nota ha sido guardada.","Exits the application.":"Sale de la aplicación.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporta datos de Joplin al directorio indicado. Por defecto, se exportará la base de datos completa incluyendo libretas, notas, etiquetas y recursos.","Destination format: %s":"Formato de destino: %s","Exports only the given note.":"Exporta únicamente la nota indicada.","Exports only the given notebook.":"Exporta únicamente la libreta indicada.","Displays a geolocation URL for the note.":"Muestra la URL de la geolocalización de la nota.","Displays usage information.":"Muestra información de uso.","For information on how to customise the shortcuts please visit %s":"Para información de cómo personalizar los atajos por favor visite %s","Shortcuts are not available in CLI mode.":"Atajos no disponibles en modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Escriba `help [command]` para obtener más información sobre el comando, o escriba `help all` para obtener toda la información acerca del uso del programa.","The possible commands are:":"Los posibles comandos son:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Con cualquier comando, una nota o libreta puede ser referida por su título o ID, o utilizando atajos `$n` o `$b`, respectivamente, para la nota o libreta seleccionada. Se puede utilizar `$c` para hacer referencia al elemento seleccionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover desde un panel a otro, presione Tabulador o Mayúsuclas+Tabulador.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Para desplazar en las listas y areas de texto (incluyendo la consola) utilice las flechas y re pág/av pág.","To maximise/minimise the console, press \"TC\".":"Para maximizar/minimizar la consola, presione \"TC\".","To enter command line mode, press \":\"":"Para entrar a modo línea de comando, presione \":\"","To exit command line mode, press ESCAPE":"Para salir de modo línea de comando, presione ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Para una lista de los atajos de teclado disponibles, escriba `help keymap`","Imports data into Joplin.":"Importa los datos en Joplin.","Source format: %s":"Formato de origen: %s","Do not ask for confirmation.":"No requiere confirmación.","Found: %d.":"Encontrado: %d.","Created: %d.":"Creado: %d.","Updated: %d.":"Actualizado: %d.","Skipped: %d.":"Omitido: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Etiquetado: %d.","Importing notes...":"Importando notas...","The notes have been imported: %s":"Las notas han sido importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Muestra las notas en la libreta actual. Usa `ls /` para mostrar la lista de libretas.","Displays only the first top notes.":"Muestra las primeras notas.","Sorts the item by (eg. title, updated_time, created_time).":"Ordena los elementos por campo ( ej. title, updated_time, created_time).","Reverses the sorting order.":"Invierte el orden.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Muestra únicamente los elementos de los tipos especificados. Pueden ser `n` para notas, `t` para tareas, o `nt` para libretas y tareas (ej. `-tt` mostrará unicamente las tareas, mientras `-ttd` mostrará notas y tareas).","Either \"text\" or \"json\"":"Puede ser \"text\" o \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usar formato largo de lista. El formato es ID, NOTE_COUNT ( para libretas), DATE,TODO_CHECKED ( para tareas), TITLE","Please select a notebook first.":"Por favor seleccione la libreta.","Creates a new notebook.":"Crea una nueva libreta.","Creates a new note.":"Crea una nueva nota.","Notes can only be created within a notebook.":"Notas solamente pueden ser creadas dentro de una libreta.","Creates a new to-do.":"Crea una nueva lista de tareas.","Moves the notes matching to [notebook].":"Mueve las notas que coincidan con a la [libreta].","Renames the given (note or notebook) to .":"Renombra el elemento dado (nota o libreta) a .","Deletes the given notebook.":"Elimina la libreta dada.","Deletes the notebook without asking for confirmation.":"Elimina una libreta sin pedir confirmación.","Delete notebook? All notes within this notebook will also be deleted.":"¿Desea eliminar la libreta? Todas las notas dentro de esta libreta también serán eliminadas.","Deletes the notes matching .":"Elimina las notas que coinciden con .","Deletes the notes without asking for confirmation.":"Elimina las notas sin pedir confirmación.","%d notes match this pattern. Delete them?":"%d notas coinciden con el patrón. ¿Eliminarlas?","Delete note?":"¿Eliminar nota?","Searches for the given in all the notes.":"Buscar el patrón en todas las notas.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Asigna el valor [value] a la propiedad de la nota indicada . Propiedades disponibles:\n\n%s","Displays summary about the notes and notebooks.":"Muestra un resumen acerca de las notas y las libretas.","Synchronises with remote storage.":"Sincroniza con el almacenamiento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincroniza con el destino indicado (por defecto al valor de configuración sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticación no completada (no se recibió token de autenticación).","Not authentified with %s. Please provide any missing credentials.":"No autenticado con %s. Por favor provea las credenciales.","Synchronisation is already in progress.":"Sincronzación en progreso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ya hay un archivo de bloqueo. Si está seguro de que no hay una sincronización en curso puede eliminar el archivo de bloqueo «%s» y reanudar la operación.","Synchronisation target: %s (%s)":"Destino de la sincronización: %s (%s)","Cannot initialize synchroniser.":"No se puede inicializar sincronizador.","Starting synchronisation...":"Iniciando sincronización...","Cancelling... Please wait.":"Cancelando... Por favor espere."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" puede ser \"add\", \"remove\" o \"list\" para asignar o eliminar [tag] de [note], o para listar las notas asociadas con [tag]. El comando `tag list` puede ser usado para listar todas las etiquetas.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" puede ser \"toggle\" o \"clear\". Usa \"toggle\" para cambiar la tarea dada entre estado completado y sin completar. (Si el objetivo es una nota regular se convertirá en una tarea). Usa \"clear\" para convertir la tarea a una nota regular.","Marks a to-do as non-completed.":"Marca una tarea como no completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Cambia una [libreta] - todas las demás operaciones se realizan en ésta libreta.","Displays version information":"Muestra información de la versión","%s %s (%s)":"%s %s (%s)","Enum":"Enumeración","Type: %s.":"Tipo: %s.","Possible values: %s.":"Posibles valores: %s.","Default: %s":"Por defecto: %s","Possible keys/values:":"Claves/valores posbiles:","Type `joplin help` for usage information.":"Escriba `joplin help` para mostrar información de uso.","Fatal error:":"Error fatal:","The application has been authorised - you may now close this browser tab.":"La aplicación ha sido autorizada - ahora puede cerrar esta pestaña de su navegador.","The application has been successfully authorised.":"La aplicacion ha sido autorizada éxitosamente.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra la siguiente URL en su navegador para autenticar la aplicación. La aplicación creará un directorio en «Apps/Joplin» y solo leerá y escribirá archivos en ese directorio. No tendrá acceso a ningún archivo fuera de ese directorio ni a ningún otro archivo personal. No se compartirá información con terceros.","Search:":"Buscar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenido a Joplin.\n\nEscriba «:help shortcuts» para obtener una lista con los atajos de teclado, o simplemente «:help» para información general.\n\nPor ejemplo, para crear una libreta escriba «mb», para crear una nota escriba «mn».","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Uno o más elementos están cifrados y debe proporcionar la contraseña maestra. Para hacerlo por favor escriba `e2ee decrypt`. Si ya ha proporcionado la contraseña, los elementos están siendo descifrados en segundo plano y estarán disponibles en breve.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportando el formato de \"%s\" a \"%s\". Por favor espere...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importando el formato de \"%s\" a \"%s\". Por favor espere...","PDF File":"Archivo PDF","File":"Archivo","New note":"Nueva nota","New to-do":"Nueva lista de tareas","New notebook":"Nueva libreta","Import":"Importar","Export":"Exportar","Print":"Imprimir","Hide %s":"Oculta %s","Quit":"Salir","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Pegar","Search in all the notes":"Buscar en todas las notas","View":"Ver","Toggle editor layout":"Cambia el diseño del editor","Tools":"Herramientas","Synchronisation status":"Estado de la sincronización","Encryption options":"Opciones de cifrado","General Options":"Opciones generales","Help":"Ayuda","Website and documentation":"Sitio web y documentación","Make a donation":"Hacer una donación","Check for updates...":"Comprobar actualizaciones...","About Joplin":"Acerca de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Abrir %s","Exit":"Salir","OK":"OK","Cancel":"Cancelar","Current version is up-to-date.":"La versión actual está actualizada.","An update is available, do you want to download it now?":"Hay disponible una actualización. ¿Quiere descargarla ahora?","Yes":"Sí","No":"No","Check synchronisation configuration":"Comprobar sincronización","Notes and settings are stored in: %s":"Las notas y los ajustes se guardan en: %s","Save":"Guardar","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Deshabilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán descifrados al destino. ¿Desea continuar?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Habilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán cifrados al destino. No pierda la contraseña, por cuestiones de seguridad, ¡es la *única* forma de descifrar los datos! Para habilitar el cifrado, por favor introduzca su contraseña más abajo.","Disable encryption":"Deshabilitar cifrado","Enable encryption":"Habilitar cifrado","Master Keys":"Clave maestra","Active":"Activo","ID":"ID","Source":"Origen","Created":"Creado","Updated":"Actualizado","Password":"Contraseña","Password OK":"Contraseña OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Nota: Solo una clave maestra va a ser utilizar para el cifrado (la marcada como \"activa\"). Cualquiera de las claves puede ser utilizada para descifrar, dependiendo de como fueron cifradas originalmente las notas o las libretas.","Missing Master Keys":"No se encuentra la clave maestra","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"La clave maestra con estos ID son utilizadas para descifrar algunos de tus elementos, pero la apliación no tiene acceso a ellas. Serán descargadas a través de la sincronización.","Status":"Estado","Encryption is:":"El cifrado está:","Back":"Atrás","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Se creará la nueva libreta «%s» y se importará en ella el archivo «%s»","Please create a notebook first.":"Por favor cree una libreta primero.","Please create a notebook first":"Por favor cree una libreta primero","Notebook title:":"Título de libreta:","Add or remove tags:":"Agregar o borrar etiquetas: ","Separate each tag by a comma.":"Separar cada etiqueta por una coma.","Rename notebook:":"Renombrar libreta:","Set alarm:":"Ajustar alarma:","Search":"Buscar","Layout":"Diseño","Some items cannot be synchronised.":"No se han podido sincronizar algunos de los elementos.","View them now":"Verlos ahora","Some items cannot be decrypted.":"No se han podido descifrar algunos elementos.","Set the password":"Establecer la contraseña","Add or remove tags":"Añadir o borrar etiquetas","Switch between note and to-do type":"Cambiar entre nota y lista de tareas","Delete":"Eliminar","Delete notes?":"¿Desea eliminar notas?","No notes in here. Create one by clicking on \"New note\".":"No hay ninguna nota. Cree una pulsando «Nota nueva».","There is currently no notebook. Create one by clicking on \"New notebook\".":"No hay ninguna libreta. Cree una pulsando en «Libreta nueva».","Open...":"Abrir...","Save as...":"Guardar como...","Unsupported link or message: %s":"Enlace o mensaje no soportado: %s","Attach file":"Adjuntar archivo","Tags":"Etiquetas","Set alarm":"Establecer alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota no tiene contenido. Pulse en \"%s\" para cambiar al editor y editar la nota.","to-do":"lista de tareas","note":"nota","Creating new %s...":"Creando nuevo %s...","Refresh":"Refrescar","Clear":"Limpiar","OneDrive Login":"Inicio de sesión de OneDrive","Options":"Opciones","Synchronisation Status":"Estado de la sincronización","Encryption Options":"Opciones de cifrado","Remove this tag from all the notes?":"¿Desea eliminar esta etiqueta de todas las notas?","Remove this search from the sidebar?":"¿Desea eliminar esta búsqueda de la barra lateral?","Rename":"Renombrar","Synchronise":"Sincronizar","Notebooks":"Libretas","Searches":"Búsquedas","Please select where the sync status should be exported to":"Seleccione a dónde se debería exportar el estado de sincronización","Usage: %s":"Uso: %s","Unknown flag: %s":"Etiqueta desconocida: %s","File system":"Sistema de archivos","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Solo para pruebas)","WebDAV":"WebDAV","Unknown log level: %s":"Nivel de log desconocido: %s","Unknown level ID: %s":"ID de nivel desconocido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"No se ha podido actualizar token: faltan datos de autenticación. Reiniciar la sincronización podría solucionar el problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"No se ha podido sincronizar con OneDrive.\n\nEste error suele ocurrir al utilizar OneDrive for Business. Este producto no está soportado.\n\nPodría considerar utilizar una cuenta Personal de OneDrive.","Cannot access %s":"No se ha podido acceder a %s","Created local items: %d.":"Elementos locales creados: %d.","Updated local items: %d.":"Elementos locales actualizados: %d.","Created remote items: %d.":"Elementos remotos creados: %d.","Updated remote items: %d.":"Elementos remotos actualizados: %d.","Deleted local items: %d.":"Elementos locales borrados: %d.","Deleted remote items: %d.":"Elementos remotos borrados: %d.","Fetched items: %d/%d.":"Elementos obtenidos: %d/%d.","State: \"%s\".":"Estado: «%s».","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Last error: %s":"Último error: %s","Idle":"Espera","In progress":"En progreso","Synchronisation is already in progress. State: %s":"La sincronización ya está en progreso. Estado: %s","Encrypted":"Cifrado","Encrypted items cannot be modified":"Los elementos cifrados no pueden ser modificados","Conflicts":"Conflictos","A notebook with this title already exists: \"%s\"":"Ya existe una libreta con este nombre: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"No se puede usar el nombre «%s» para una libreta; es un título reservado.","Untitled":"Sin título","This note does not have geolocation information.":"Esta nota no tiene informacion de geolocalización.","Cannot copy note to \"%s\" notebook":"No se ha podido copiar la nota a la libreta «%s»","Cannot move note to \"%s\" notebook":"No se ha podido mover la nota a la libreta «%s»","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"El editor que se usará para abrir una nota. Se intentará auto-detectar el editor predeterminado si no se proporciona ninguno.","Language":"Idioma","Date format":"Formato de fecha","Time format":"Formato de hora","Theme":"Tema","Light":"Claro","Dark":"Oscuro","Uncompleted to-dos on top":"Mostrar tareas incompletas al inicio de las listas","Sort notes by":"Ordenar notas por","Reverse sort order":"Invierte el orden","Save geo-location with notes":"Guardar geolocalización en las notas","When creating a new to-do:":"Al crear una nueva lista de tareas:","Focus title":"Foco en el título","Focus body":"Foco en el cuerpo","When creating a new note:":"Cuando se crear una nota nueva:","Show tray icon":"Mostrar icono en la bandeja","Global zoom percentage":"Establecer el porcentaje de aumento de la aplicación","Editor font family":"Fuente del editor","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"El nombre de la fuente no se comprobado. Si es incorrecto o está vacío, se utilizará una fuente genérica monoespaciada.","Automatically update the application":"Actualizar la aplicación automáticamente","Synchronisation interval":"Intervalo de sincronización","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opciones avanzadas","Synchronisation target":"Destino de sincronización","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"El destino de la sincronización. Cada destino de la sincronización puede tener parámetros adicionales los cuales son llamados como `sync.NUM.NAME` (todos abajo documentados).","Directory to synchronise with (absolute path)":"Directorio con el que sincronizarse (ruta completa)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"La ruta a la que sincronizar cuando se activa la sincronización con sistema de archivos. Vea «sync.target».","Nextcloud WebDAV URL":"Servidor WebDAV de Nextcloud","Nextcloud username":"Usuario de Nextcloud","Nextcloud password":"Contraseña de Nextcloud","WebDAV URL":"Servidor WebDAV","WebDAV username":"Usuario de WebDAV","WebDAV password":"Contraseña de WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Opción inválida: «%s». Los valores posibles son: %s.","Joplin Export File":"Archivo de exportación de Joplin","Markdown":"Markdown","Joplin Export Directory":"Directorio para exportar de Joplin","Evernote Export File":"Archivo exportado de Evernote","Directory":"Directorio","Cannot load \"%s\" module for format \"%s\"":"No se puede cargar el módulo \"%s\" para el formato \"%s\"","Please specify import format for %s":"Por favor especifique el formato para importar de %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"El elemento se encuentra cifrado: %s \"%s\". Por favor espere a que todos los elementos estén descifrados y pruebe de nuevo.","There is no data to export.":"No hay datos para exportar.","Please specify the notebook where the notes should be imported to.":"Por favor especifique la libreta donde las notas deben ser importadas.","Items that cannot be synchronised":"Elementos que no se pueden sincronizar","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Estos elementos se mantendrán en el dispositivo pero no serán enviados al destino de sincronización. Para encontrar dichos elementos busca en el título o en el ID (el cual se muestra arriba entre corchetes).","Sync status (synced items / total items)":"Estado de sincronización (elementos sincronizados/elementos totales)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Conflictos: %d","To delete: %d":"Borrar: %d","Folders":"Carpetas","%s: %d notes":"%s: %d notas","Coming alarms":"Alarmas próximas","On %s: %s":"En %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"No hay notas. Cree una pulsando en el botón (+).","Delete these notes?":"¿Desea borrar estas notas?","Log":"Log","Export Debug Report":"Exportar informe de depuración","Encryption Config":"Configuración de cifrado","Configuration":"Configuración","Move to notebook...":"Mover a la libreta...","Move %d notes to notebook \"%s\"?":"¿Desea mover %d notas a libreta «%s»?","Press to set the decryption password.":"Presione para establecer la contraseña de descifrado.","Select date":"Seleccione fecha","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronización","Joplin website":"Sitio web de Joplin","Master Key %s":"Clave maestra %s","Created: %s":"Creado: %s","Password:":"Contraseña:","Password cannot be empty":"La contraseña no puede estar vacía","Enable":"Habilitado","The notebook could not be saved: %s":"No se ha podido guardar esta libreta: %s","Edit notebook":"Editar libreta","Show all":"Mostrar todo","Errors only":"Solo errores","This note has been modified:":"Esta nota ha sido modificada:","Save changes":"Guardar cambios","Discard changes":"Descartar cambios","Unsupported image type: %s":"Tipo de imagen no soportado: %s","Attach photo":"Adjuntar foto","Attach any file":"Adjuntar cualquier archivo","Convert to note":"Convertir a nota","Convert to todo":"Convertir a lista de tareas","Hide metadata":"Ocultar metadatos","Show metadata":"Mostrar metadatos","View on map":"Ver en un mapa","Delete notebook":"Borrar libreta","Login with OneDrive":"Acceder con OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Pulse en el botón (+) para crear una nueva nota o libreta. Pulse en el menú lateral para acceder a las libretas existentes.","You currently have no notebook. Create one by clicking on (+) button.":"No hay ninguna libreta. Cree una nueva libreta pulsando en el botón (+).","Welcome":"Bienvenido"} \ No newline at end of file diff --git a/ReactNativeClient/locales/pt_BR.json b/ReactNativeClient/locales/pt_BR.json index f1d4bb5fc5..40152a6098 100644 --- a/ReactNativeClient/locales/pt_BR.json +++ b/ReactNativeClient/locales/pt_BR.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Para eliminar uma tag, remova a tag das notas associadas a ela.","Please select the note or notebook to be deleted first.":"Por favor, primeiro, selecione a nota ou caderno a excluir.","Press Ctrl+D or type \"exit\" to exit the application":"Digite Ctrl+D ou \"exit\" para sair da aplicação","More than one item match \"%s\". Please narrow down your query.":"Mais que um item combinam com \"%s\". Por favor, refine sua pesquisa.","No notebook selected.":"Nenhum caderno selecionado.","No notebook has been specified.":"Nenhum caderno foi especificado.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancelando sincronização em segundo plano... Por favor, aguarde.","No such command: %s":"No such command: %s","The command \"%s\" is only available in GUI mode":"O comando \"%s\" está disponível somente em modo gráfico","Cannot change encrypted item":"","Missing required argument: %s":"Argumento requerido faltando: %s","%s: %s":"%s: %s","Your choice: ":"Sua escolha: ","Invalid answer: %s":"Resposta inválida: %s","Attaches the given file to the note.":"Anexa o arquivo dado à nota.","Cannot find \"%s\".":"Não posso encontrar \"%s\".","Displays the given note.":"Exibe a nota informada.","Displays the complete information about note.":"Exibe a informação completa sobre a nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtém ou define um valor de configuração. Se [valor] não for fornecido, ele mostrará o valor de [nome]. Se nem [nome] nem [valor] forem fornecidos, ele listará a configuração atual.","Also displays unset and hidden config variables.":"Também exibe variáveis de configuração não definidas e ocultas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica as notas que correspondem a para o [caderno]. Se nenhum caderno for especificado, a nota será duplicada no caderno atual.","Marks a to-do as done.":"Marca uma tarefa como feita.","Note is not a to-do: \"%s\"":"Nota não é uma tarefa: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Desabilitado","Encryption is: %s":"","Edit note.":"Editar nota.","No text editor is defined. Please set it using `config editor `":"Nenhum editor de texto está definido. Defina-o usando o comando `config edit `","No active notebook.":"Nenhum caderno ativo.","Note does not exist: \"%s\". Create it?":"A nota não existe: \"%s\". Criar?","Starting to edit note. Close the editor to get back to the prompt.":"Começando a editar a nota. Feche o editor para voltar ao prompt.","Error opening note in editor: %s":"","Note has been saved.":"Nota gravada.","Exits the application.":"Sai da aplicação.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exporta apenas a nota fornecida.","Exports only the given notebook.":"Exporta apenas o caderno fornecido.","Displays a geolocation URL for the note.":"Exibe uma URL de geolocalização para a nota.","Displays usage information.":"Exibe informações de uso.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Os atalhos não estão disponíveis no modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"Os comandos possíveis são:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Em qualquer comando, uma nota ou caderno pode ser referenciado por título ou ID, ou usando os atalhos `$n` ou` $b` para, respectivamente, a nota ou caderno selecionado. `$c` pode ser usado para se referenciar ao item atualmente selecionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover de um painel para outro, pressione Tab ou Shift + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use as setas e a Page Up/Page Down para rolar as listas e áreas de texto (incluindo este console).","To maximise/minimise the console, press \"TC\".":"Para maximizar / minimizar o console, pressione \"TC\".","To enter command line mode, press \":\"":"Para entrar no modo de linha de comando, pressione \":\"","To exit command line mode, press ESCAPE":"Para sair do modo de linha de comando, pressione o ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Não pedir confirmação.","Found: %d.":"Encontrado: %d.","Created: %d.":"Criado: %d.","Updated: %d.":"Atualizado: %d.","Skipped: %d.":"Ignorado: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Tag adicionada: %d.","Importing notes...":"Importando notas ...","The notes have been imported: %s":"As notas foram importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Exibe as notas no caderno atual. Use `ls /` para exibir a lista de cadernos.","Displays only the first top notes.":"Exibe apenas as primeiras notas.","Sorts the item by (eg. title, updated_time, created_time).":"Classifica o item por (ex.: title, update_time, created_time).","Reverses the sorting order.":"Inverte a ordem de classificação.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Exibe apenas os itens do(s) tipo(s) específico(s). Pode ser `n` para notas,` t` para tarefas, ou `nt` para notas e tarefas (por exemplo.` -tt` exibiria apenas os itens pendentes, enquanto `-ttd` exibiria notas e tarefas .","Either \"text\" or \"json\"":"Ou \"text\" ou \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use o formato da lista longa. O formato é ID, NOTE_COUNT (para caderno), DATE, TODO_CHECKED (para tarefas), TITLE","Please select a notebook first.":"Por favor, selecione um caderno primeiro.","Creates a new notebook.":"Cria um novo caderno.","Creates a new note.":"Cria uma nova nota.","Notes can only be created within a notebook.":"As notas só podem ser criadas dentro de um caderno.","Creates a new to-do.":"Cria uma nova tarefa.","Moves the notes matching to [notebook].":"Move as notas correspondentes para [caderno].","Renames the given (note or notebook) to .":"Renomeia o dado (nota ou caderno) para .","Deletes the given notebook.":"Exclui o caderno informado.","Deletes the notebook without asking for confirmation.":"Exclui o caderno sem pedir confirmação.","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"Exclui as notas correspondentes ao padrão .","Deletes the notes without asking for confirmation.":"Exclui as notas sem pedir confirmação.","%d notes match this pattern. Delete them?":"%d notas correspondem a este padrão. Apagar todos?","Delete note?":"Apagar nota?","Searches for the given in all the notes.":"Procura o padrão em todas as notas.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Sets the property of the given to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Exibe sumário sobre as notas e cadernos.","Synchronises with remote storage.":"Sincroniza com o armazenamento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizar para destino fornecido (p padrão é o valor de configuração sync.target)","Authentication was not completed (did not receive an authentication token).":"A autenticação não foi concluída (não recebeu um token de autenticação).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"A sincronização já está em andamento.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"O arquivo de bloqueio já está ativo. Se você sabe que nenhuma sincronização está ocorrendo, você pode excluir o arquivo de bloqueio em \"%s\" e retomar a operação.","Synchronisation target: %s (%s)":"Alvo de sincronização: %s (%s)","Cannot initialize synchroniser.":"Não é possível inicializar o sincronizador.","Starting synchronisation...":"Iniciando sincronização...","Cancelling... Please wait.":"Cancelando... Aguarde."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" pode ser \"add\", \"remove\" ou \"list\" para atribuir ou remover [tag] de [nota], ou para listar as notas associadas a [tag]. O comando `taglist` pode ser usado para listar todas as tags.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" pode ser \"toggle\" ou \"clear\". Use \"toggle\" para alternar entre as tarefas entre o estado completo e incompleto (se o alvo for uma nota comum, ele será convertido em uma tarefa a fazer). Use \"clear\" para converter a tarefa em uma nota normal.","Marks a to-do as non-completed.":"Marca uma tarefa como não completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Alterna para [caderno] - todas as operações adicionais acontecerão dentro deste caderno.","Displays version information":"Exibe informações da versão","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valores possíveis: %s.","Default: %s":"Padrão: %s","Possible keys/values:":"Possíveis chaves/valores:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Erro fatal:","The application has been authorised - you may now close this browser tab.":"O aplicativo foi autorizado - agora você pode fechar esta guia do navegador.","The application has been successfully authorised.":"O aplicativo foi autorizado com sucesso.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra a seguinte URL no seu navegador para autenticar o aplicativo. O aplicativo criará um diretório em \"Apps/Joplin\" e somente lerá e gravará arquivos neste diretório. Não terá acesso a nenhum arquivo fora deste diretório nem a nenhum outro dado pessoal. Nenhum dado será compartilhado com terceiros.","Search:":"Procurar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"Arquivo","New note":"Nova nota","New to-do":"Nova tarefa","New notebook":"Novo caderno","Import":"Importar","Export":"Export","Print":"","Hide %s":"","Quit":"Sair","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Colar","Search in all the notes":"Pesquisar em todas as notas","View":"","Toggle editor layout":"","Tools":"Ferramentas","Synchronisation status":"Synchronisation status","Encryption options":"","General Options":"General Options","Help":"Ajuda","Website and documentation":"Website e documentação","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Sobre o Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Cancelar","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"","Back":"Voltar","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"O novo caderno \"%s\" será criado e o arquivo \"%s\" será importado para ele","Please create a notebook first.":"Primeiro, crie um caderno.","Please create a notebook first":"Primeiro, crie um caderno","Notebook title:":"Título do caderno:","Add or remove tags:":"Adicionar ou remover tags:","Separate each tag by a comma.":"Separe cada tag por vírgula.","Rename notebook:":"Renomear caderno:","Set alarm:":"Definir alarme:","Search":"Procurar","Layout":"Layout","Some items cannot be synchronised.":"Some items cannot be synchronised.","View them now":"","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Adicionar ou remover tags","Switch between note and to-do type":"Alternar entre os tipos Nota e Tarefa","Delete":"Excluir","Delete notes?":"Excluir notas?","No notes in here. Create one by clicking on \"New note\".":"Não há notas aqui. Crie uma, clicando em \"Nova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Link ou mensagem não suportada: %s","Attach file":"Anexar arquivo","Tags":"Tags","Set alarm":"Definir alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Atualizar","Clear":"Limpar (clear)","OneDrive Login":"Login no OneDrive","Options":"Opções","Synchronisation Status":"Synchronisation Status","Encryption Options":"","Remove this tag from all the notes?":"Remover esta tag de todas as notas?","Remove this search from the sidebar?":"Remover essa pesquisa da barra lateral?","Rename":"Renomear","Synchronise":"Sincronizar","Notebooks":"Cadernos","Searches":"Pesquisas","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Uso: %s","Unknown flag: %s":"Flag desconhecido: %s","File system":"Sistema de arquivos","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (apenas para testes)","WebDAV":"","Unknown log level: %s":"Nível de log desconhecido: %s","Unknown level ID: %s":"Nível ID desconhecido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Não é possível atualizar token: faltam dados de autenticação. Iniciar a sincronização novamente pode corrigir o problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Não foi possível sincronizar com o OneDrive.\n\nEste erro geralmente acontece ao usar o OneDrive for Business, que infelizmente não pode ser suportado.\n\nConsidere usar uma conta regular do OneDrive.","Cannot access %s":"Não é possível acessar %s","Created local items: %d.":"Itens locais criados: %d.","Updated local items: %d.":"Itens locais atualizados: %d.","Created remote items: %d.":"Itens remotos criados: %d.","Updated remote items: %d.":"Itens remotos atualizados: %d.","Deleted local items: %d.":"Itens locais excluídos: %d.","Deleted remote items: %d.":"Itens remotos excluídos: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"Estado: \"%s\".","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Sincronização já em andamento. Estado: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Conflitos","A notebook with this title already exists: \"%s\"":"Já existe caderno com este título: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Os cadernos não podem ser nomeados como\"%s\", que é um título reservado.","Untitled":"Sem título","This note does not have geolocation information.":"Esta nota não possui informações de geolocalização.","Cannot copy note to \"%s\" notebook":"Não é possível copiar a nota para o caderno \"%s\" ","Cannot move note to \"%s\" notebook":"Não é possível mover a nota para o caderno \"%s\"","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"O editor que será usado para abrir uma nota. Se nenhum for indicado, ele tentará detectar automaticamente o editor padrão.","Language":"Idioma","Date format":"Formato de data","Time format":"Formato de hora","Theme":"Tema","Light":"Light","Dark":"Dark","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Salvar geolocalização com notas","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Atualizar automaticamente o aplicativo","Synchronisation interval":"Intervalo de sincronização","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opções avançadas","Synchronisation target":"Alvo de sincronização","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"O caminho para sincronizar, quando a sincronização do sistema de arquivos está habilitada. Veja `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Valor da opção inválida: \"%s\". Os valores possíveis são: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Status de sincronização (sincronizados / totais)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Em conflito: %d","To delete: %d":"Para excluir: %d","Folders":"Pastas","%s: %d notes":"%s: %d notas","Coming alarms":"Próximos alarmes","On %s: %s":"Em %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Atualmente, não há notas. Crie uma, clicando no botão (+).","Delete these notes?":"Excluir estas notas?","Log":"Log","Export Debug Report":"Exportar Relatório de Debug","Encryption Config":"","Configuration":"Configuração","Move to notebook...":"Mover para o caderno...","Move %d notes to notebook \"%s\"?":"Mover %d notas para o caderno \"%s\"?","Press to set the decryption password.":"","Select date":"Selecionar data","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronização","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"O caderno não pôde ser salvo: %s","Edit notebook":"Editar caderno","Show all":"","Errors only":"","This note has been modified:":"Esta nota foi modificada:","Save changes":"Gravar alterações","Discard changes":"Descartar alterações","Unsupported image type: %s":"Tipo de imagem não suportada: %s","Attach photo":"Anexar foto","Attach any file":"Anexar qualquer arquivo","Convert to note":"Converter para nota","Convert to todo":"Converter para tarefa","Hide metadata":"Ocultar metadados","Show metadata":"Exibir metadados","View on map":"Ver no mapa","Delete notebook":"Excluir caderno","Login with OneDrive":"Login com OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Clique no botão (+) para criar uma nova nota ou caderno. Clique no menu lateral para acessar seus cadernos existentes.","You currently have no notebook. Create one by clicking on (+) button.":"Você não possui cadernos. Crie um clicando no botão (+).","Welcome":"Bem-vindo"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Para eliminar uma tag, remova a tag das notas associadas a ela.","Please select the note or notebook to be deleted first.":"Por favor, primeiro, selecione a nota ou caderno a excluir.","Press Ctrl+D or type \"exit\" to exit the application":"Digite Ctrl+D ou \"exit\" para sair da aplicação","More than one item match \"%s\". Please narrow down your query.":"Mais que um item combinam com \"%s\". Por favor, refine sua pesquisa.","No notebook selected.":"Nenhum caderno selecionado.","No notebook has been specified.":"Nenhum caderno foi especificado.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancelando sincronização em segundo plano... Por favor, aguarde.","No such command: %s":"Não existe o comando: \"%s\"","The command \"%s\" is only available in GUI mode":"O comando \"%s\" está disponível somente em modo gráfico","Cannot change encrypted item":"Não pode mudar um item encriptado","Missing required argument: %s":"Argumento requerido faltando: %s","%s: %s":"%s: %s","Your choice: ":"Sua escolha: ","Invalid answer: %s":"Resposta inválida: %s","Attaches the given file to the note.":"Anexa o arquivo dado à nota.","Cannot find \"%s\".":"Não posso encontrar \"%s\".","Displays the given note.":"Exibe a nota informada.","Displays the complete information about note.":"Exibe a informação completa sobre a nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtém ou define um valor de configuração. Se [valor] não for fornecido, ele mostrará o valor de [nome]. Se nem [nome] nem [valor] forem fornecidos, ele listará a configuração atual.","Also displays unset and hidden config variables.":"Também exibe variáveis de configuração não definidas e ocultas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica as notas que correspondem a para o [caderno]. Se nenhum caderno for especificado, a nota será duplicada no caderno atual.","Marks a to-do as done.":"Marca uma tarefa como feita.","Note is not a to-do: \"%s\"":"Nota não é uma tarefa: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Gerencia a configuração E2EE. Os comandos são `enable`, `disable`, `decrypt`, `status` e `target-status`.","Enter master password:":"Entre a senha master:","Operation cancelled":"Operação cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando decriptação... Por favor aguarde, pois isso pode demorar vários minutos, dependendo de quanto há para decriptar.","Completed decryption.":"Decriptação completada.","Enabled":"Desabilitado","Disabled":"Desabilitado","Encryption is: %s":"Encriptação está: %s","Edit note.":"Editar nota.","No text editor is defined. Please set it using `config editor `":"Nenhum editor de texto está definido. Defina-o usando o comando `config edit `","No active notebook.":"Nenhum caderno ativo.","Note does not exist: \"%s\". Create it?":"A nota não existe: \"%s\". Criar?","Starting to edit note. Close the editor to get back to the prompt.":"Começando a editar a nota. Feche o editor para voltar ao prompt.","Error opening note in editor: %s":"Erro ao abir a nota no editor: %s","Note has been saved.":"Nota gravada.","Exits the application.":"Sai da aplicação.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporta os dados do Joplin para o diretório informado. Por padrão, ele exportará o banco de dados completo, incluindo cadernos, notas, tags e recursos.","Destination format: %s":"Formato do destino: %s","Exports only the given note.":"Exporta apenas a nota fornecida.","Exports only the given notebook.":"Exporta apenas o caderno fornecido.","Displays a geolocation URL for the note.":"Exibe uma URL de geolocalização para a nota.","Displays usage information.":"Exibe informações de uso.","For information on how to customise the shortcuts please visit %s":"Para informações sobre como customizar os atalhos, por favor visite %s","Shortcuts are not available in CLI mode.":"Os atalhos não estão disponíveis no modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Digite `help [comando]` para obter mais informações sobre um comando; ou digite `help all` para informações completas de uso.","The possible commands are:":"Os comandos possíveis são:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Em qualquer comando, uma nota ou caderno pode ser referenciado por título ou ID, ou usando os atalhos `$n` ou` $b` para, respectivamente, a nota ou caderno selecionado. `$c` pode ser usado para se referenciar ao item atualmente selecionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover de um painel para outro, pressione Tab ou Shift + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use as setas e a Page Up/Page Down para rolar as listas e áreas de texto (incluindo este console).","To maximise/minimise the console, press \"TC\".":"Para maximizar / minimizar o console, pressione \"TC\".","To enter command line mode, press \":\"":"Para entrar no modo de linha de comando, pressione \":\"","To exit command line mode, press ESCAPE":"Para sair do modo de linha de comando, pressione o ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"Para a lista completa de atalhos de teclado disponíveis, digite `help keymap`","Imports data into Joplin.":"Importa dados para o Joplin.","Source format: %s":"Formato da origem: \"%s\"","Do not ask for confirmation.":"Não pedir confirmação.","Found: %d.":"Encontrado: %d.","Created: %d.":"Criado: %d.","Updated: %d.":"Atualizado: %d.","Skipped: %d.":"Ignorado: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Tag adicionada: %d.","Importing notes...":"Importando notas ...","The notes have been imported: %s":"As notas foram importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Exibe as notas no caderno atual. Use `ls /` para exibir a lista de cadernos.","Displays only the first top notes.":"Exibe apenas as primeiras notas.","Sorts the item by (eg. title, updated_time, created_time).":"Classifica o item por (ex.: title, update_time, created_time).","Reverses the sorting order.":"Inverte a ordem de classificação.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Exibe apenas os itens do(s) tipo(s) específico(s). Pode ser `n` para notas,` t` para tarefas, ou `nt` para notas e tarefas (por exemplo.` -tt` exibiria apenas os itens pendentes, enquanto `-ttd` exibiria notas e tarefas .","Either \"text\" or \"json\"":"Ou \"text\" ou \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use o formato da lista longa. O formato é ID, NOTE_COUNT (para caderno), DATE, TODO_CHECKED (para tarefas), TITLE","Please select a notebook first.":"Por favor, selecione um caderno primeiro.","Creates a new notebook.":"Cria um novo caderno.","Creates a new note.":"Cria uma nova nota.","Notes can only be created within a notebook.":"As notas só podem ser criadas dentro de um caderno.","Creates a new to-do.":"Cria uma nova tarefa.","Moves the notes matching to [notebook].":"Move as notas correspondentes para [caderno].","Renames the given (note or notebook) to .":"Renomeia o dado (nota ou caderno) para .","Deletes the given notebook.":"Exclui o caderno informado.","Deletes the notebook without asking for confirmation.":"Exclui o caderno sem pedir confirmação.","Delete notebook? All notes within this notebook will also be deleted.":"Excluir o caderno? Todas as notas deste caderno notebook também serão excluídas.","Deletes the notes matching .":"Exclui as notas correspondentes ao padrão .","Deletes the notes without asking for confirmation.":"Exclui as notas sem pedir confirmação.","%d notes match this pattern. Delete them?":"%d notas correspondem a este padrão. Apagar todos?","Delete note?":"Apagar nota?","Searches for the given in all the notes.":"Procura o padrão em todas as notas.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Define a propriedade da para o valor [value]. As propriedades possíveis são:\n\n%s","Displays summary about the notes and notebooks.":"Exibe sumário sobre as notas e cadernos.","Synchronises with remote storage.":"Sincroniza com o armazenamento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizar para destino fornecido (p padrão é o valor de configuração sync.target)","Authentication was not completed (did not receive an authentication token).":"A autenticação não foi concluída (não recebeu um token de autenticação).","Not authentified with %s. Please provide any missing credentials.":"Não autenticado com %s. Por favor, complete as credenciais que estiverem faltando.","Synchronisation is already in progress.":"A sincronização já está em andamento.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"O arquivo de bloqueio já está ativo. Se você sabe que nenhuma sincronização está ocorrendo, você pode excluir o arquivo de bloqueio em \"%s\" e retomar a operação.","Synchronisation target: %s (%s)":"Alvo de sincronização: %s (%s)","Cannot initialize synchroniser.":"Não é possível inicializar o sincronizador.","Starting synchronisation...":"Iniciando sincronização...","Cancelling... Please wait.":"Cancelando... Aguarde."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" pode ser \"add\", \"remove\" ou \"list\" para atribuir ou remover [tag] de [nota], ou para listar as notas associadas a [tag]. O comando `taglist` pode ser usado para listar todas as tags.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" pode ser \"toggle\" ou \"clear\". Use \"toggle\" para alternar entre as tarefas entre o estado completo e incompleto (se o alvo for uma nota comum, ele será convertido em uma tarefa a fazer). Use \"clear\" para converter a tarefa em uma nota normal.","Marks a to-do as non-completed.":"Marca uma tarefa como não completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Alterna para [caderno] - todas as operações adicionais acontecerão dentro deste caderno.","Displays version information":"Exibe informações da versão","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valores possíveis: %s.","Default: %s":"Padrão: %s","Possible keys/values:":"Possíveis chaves/valores:","Type `joplin help` for usage information.":"Digite 'joplin help' para informações de uso.","Fatal error:":"Erro fatal:","The application has been authorised - you may now close this browser tab.":"O aplicativo foi autorizado - agora você pode fechar esta guia do navegador.","The application has been successfully authorised.":"O aplicativo foi autorizado com sucesso.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra a seguinte URL no seu navegador para autenticar o aplicativo. O aplicativo criará um diretório em \"Apps/Joplin\" e somente lerá e gravará arquivos neste diretório. Não terá acesso a nenhum arquivo fora deste diretório nem a nenhum outro dado pessoal. Nenhum dado será compartilhado com terceiros.","Search:":"Procurar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bem-vindo ao Joplin!\n\nDigite `:help shortcuts` para obter a lista de atalhos de teclado, ou apenas `:help` para informações de utilização.\n\nPor exemplo, para criar um caderno digite `mb`; para criar uma nota, digite `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Um ou mais itens estão criptografados, e você pode precisar de informar uma senha master. Para fazer isso, por favor digite `e2ee decrypt`. Se você já forneceu a senha, os itens criptografados estão sendo decriptados em background e logo estarão disponíveis.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportando para \"%s\" com o formato \"%s\". Por favor, aguarde...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importando de \"%s\" com o formato \"%s\". Por favor, aguarde...","PDF File":"PDF File","File":"Arquivo","New note":"Nova nota","New to-do":"Nova tarefa","New notebook":"Novo caderno","Import":"Importar","Export":"Exportar","Print":"","Hide %s":"Ocultar %s","Quit":"Sair","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Colar","Search in all the notes":"Pesquisar em todas as notas","View":"Visualizar","Toggle editor layout":"Alternar layout do editor","Tools":"Ferramentas","Synchronisation status":"Status de sincronização","Encryption options":"Opções de Encriptação","General Options":"Opções Gerais","Help":"Ajuda","Website and documentation":"Website e documentação","Make a donation":"Fazer uma doação","Check for updates...":"Verificar atualizações...","About Joplin":"Sobre o Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Abrir %s","Exit":"Sair","OK":"OK","Cancel":"Cancelar","Current version is up-to-date.":"A versão atual está atualizada.","An update is available, do you want to download it now?":"Uma atualização está disponível, você quer baixar agora?","Yes":"Sim","No":"Não","Check synchronisation configuration":"Verificar a configuração da sincronização","Notes and settings are stored in: %s":"Notas e configurações estão armazenadas em: %s","Save":"Salvar","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Desabilitar a encriptação significa que *todas* as suas notas e anexos serão re-sincronizados e enviados sem encriptação. Você quer continuar?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Habilitar a encriptação significa que *todas* as suas notas e anexos serão re-sincronizados e re-enviados com encriptação. Não perca sua senha, pois, por medidas de segurança, esse será o *único* modo de decriptar seus dados! Para habilitar a encriptação, por favor entre sua senha abaixo.","Disable encryption":"Desabilitar encriptação","Enable encryption":"Habilitar encriptação","Master Keys":"Chaves mestras","Active":"Ativar","ID":"ID","Source":"Origem","Created":"Criado","Updated":"Atualizado","Password":"Senha","Password OK":"Senha OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Noto: Apenas uma chave máster será usada para encriptação (a que estiver marcada como \"ativa\"). Qualquer uma das chaves pode ser usada para decriptação, dependendo de como as notas ou os cadernos foram encriptados originalmente.","Missing Master Keys":"Chaves Master faltando","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"As chaves master com essas IDs são usadas para encriptar alguns de seus itens, contudo a aplicação atualmente não tem acesso a elas. Provavelmente, elas serão baixadas via sincronização.","Status":"Status","Encryption is:":"Encriptação está:","Back":"Voltar","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"O novo caderno \"%s\" será criado e o arquivo \"%s\" será importado para ele","Please create a notebook first.":"Primeiro, crie um caderno.","Please create a notebook first":"Primeiro, crie um caderno","Notebook title:":"Título do caderno:","Add or remove tags:":"Adicionar ou remover tags:","Separate each tag by a comma.":"Separe cada tag por vírgula.","Rename notebook:":"Renomear caderno:","Set alarm:":"Definir alarme:","Search":"Procurar","Layout":"Layout","Some items cannot be synchronised.":"Alguns itens não podem ser sincronizados.","View them now":"Visualizar agora","Some items cannot be decrypted.":"Alguns itens não podem ser decriptados.","Set the password":"Configurar a senha","Add or remove tags":"Adicionar ou remover tags","Switch between note and to-do type":"Alternar entre os tipos Nota e Tarefa","Delete":"Excluir","Delete notes?":"Excluir notas?","No notes in here. Create one by clicking on \"New note\".":"Não há notas aqui. Crie uma, clicando em \"Nova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Atualmente, não há cadernos. Crie um, clicando em \"Novo caderno\".","Open...":"Abrir...","Save as...":"Salvar como...","Unsupported link or message: %s":"Link ou mensagem não suportada: %s","Attach file":"Anexar arquivo","Tags":"Tags","Set alarm":"Definir alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota não possui conteúdo. Clique em \"%s\" para alternar para o editor, e edite a nota.","to-do":"tarefa","note":"nota","Creating new %s...":"Criando novo %s...","Refresh":"Atualizar","Clear":"Limpar (clear)","OneDrive Login":"Login no OneDrive","Options":"Opções","Synchronisation Status":"Status de sincronização","Encryption Options":"Opções de Encriptação","Remove this tag from all the notes?":"Remover esta tag de todas as notas?","Remove this search from the sidebar?":"Remover essa pesquisa da barra lateral?","Rename":"Renomear","Synchronise":"Sincronizar","Notebooks":"Cadernos","Searches":"Pesquisas","Please select where the sync status should be exported to":"Favor selecionar o local para onde o status de sincronia deveria ser exportado","Usage: %s":"Uso: %s","Unknown flag: %s":"Flag desconhecido: %s","File system":"Sistema de arquivos","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (apenas para testes)","WebDAV":"WebDAV","Unknown log level: %s":"Nível de log desconhecido: %s","Unknown level ID: %s":"Nível ID desconhecido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Não é possível atualizar token: faltam dados de autenticação. Iniciar a sincronização novamente pode corrigir o problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Não foi possível sincronizar com o OneDrive.\n\nEste erro geralmente acontece ao usar o OneDrive for Business, que infelizmente não pode ser suportado.\n\nConsidere usar uma conta regular do OneDrive.","Cannot access %s":"Não é possível acessar %s","Created local items: %d.":"Itens locais criados: %d.","Updated local items: %d.":"Itens locais atualizados: %d.","Created remote items: %d.":"Itens remotos criados: %d.","Updated remote items: %d.":"Itens remotos atualizados: %d.","Deleted local items: %d.":"Itens locais excluídos: %d.","Deleted remote items: %d.":"Itens remotos excluídos: %d.","Fetched items: %d/%d.":"Itens pesquisados: %d/%d.","State: \"%s\".":"Estado: \"%s\".","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Sincronização já em andamento. Estado: %s","Encrypted":"Encriptado","Encrypted items cannot be modified":"Itens encriptados não podem ser modificados","Conflicts":"Conflitos","A notebook with this title already exists: \"%s\"":"Já existe caderno com este título: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Os cadernos não podem ser nomeados como\"%s\", que é um título reservado.","Untitled":"Sem título","This note does not have geolocation information.":"Esta nota não possui informações de geolocalização.","Cannot copy note to \"%s\" notebook":"Não é possível copiar a nota para o caderno \"%s\"","Cannot move note to \"%s\" notebook":"Não é possível mover a nota para o caderno \"%s\"","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"O editor que será usado para abrir uma nota. Se nenhum for indicado, ele tentará detectar automaticamente o editor padrão.","Language":"Idioma","Date format":"Formato de data","Time format":"Formato de hora","Theme":"Tema","Light":"Light","Dark":"Dark","Uncompleted to-dos on top":"Mostrar tarefas incompletas no topo","Sort notes by":"Ordenar notas por","Reverse sort order":"Inverter ordem de classificação.","Save geo-location with notes":"Salvar geolocalização com notas","When creating a new to-do:":"Quando criar uma nova tarefa:","Focus title":"Foco no título","Focus body":"Focar no corpo","When creating a new note:":"Quando criar uma nota nova:","Show tray icon":"Exibir tray icon","Global zoom percentage":"Porcentagem global do zoom","Editor font family":"Família de fontes do editor","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"O nomes da fonte não será verificado. Se estiver incorreto ou vazio, será usado por default uma fonte genérica monospace.","Automatically update the application":"Atualizar automaticamente o aplicativo","Synchronisation interval":"Intervalo de sincronização","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opções avançadas","Synchronisation target":"Alvo de sincronização","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"O alvo para onde sincronizar. Cada alvo pode ter parâmetros adicionais que são nomeados como `sync.NUM.NAME` (todos documentados abaixo).","Directory to synchronise with (absolute path)":"Diretório para sincronizar (caminho absoluto)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"O caminho para sincronizar, quando a sincronização do sistema de arquivos está habilitada. Veja `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Usuário da Nextcloud","Nextcloud password":"Senha da Nextcloud","WebDAV URL":"WebDAV URL","WebDAV username":"Usuário do WebDAV","WebDAV password":"Senha do WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Valor da opção inválida: \"%s\". Os valores possíveis são: %s.","Joplin Export File":"Arquivo de Exportação do Joplin","Markdown":"Markdown","Joplin Export Directory":"Diretório de Exportação do Joplin","Evernote Export File":"Arquivo de Exportação do Evernote","Directory":"DIretório","Cannot load \"%s\" module for format \"%s\"":"Não é possível carregar o módulo \"%s\" para o formato \"%s\"","Please specify import format for %s":"Favor especificar o formato de importação para %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Este item atualmente está encriptado: %s \"%s\". Favor aguardar que todos os itens sejam decriptados e tente novamente.","There is no data to export.":"Não há dados a exportar.","Please specify the notebook where the notes should be imported to.":"Por favor, especifique o caderno para onde as notas deveriam ser importadas.","Items that cannot be synchronised":"Os itens não podem ser sincronizados","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Estes itens continuarão no dispositivo mas não serão enviados ao alvo de sincronização. Para encontrar esses itens, ou pesquise pelo título ou pelo ID (que é exibido nos colchetes acima)","Sync status (synced items / total items)":"Status de sincronização (sincronizados / totais)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Em conflito: %d","To delete: %d":"Para excluir: %d","Folders":"Pastas","%s: %d notes":"%s: %d notas","Coming alarms":"Próximos alarmes","On %s: %s":"Em %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Atualmente, não há notas. Crie uma, clicando no botão (+).","Delete these notes?":"Excluir estas notas?","Log":"Log","Export Debug Report":"Exportar Relatório de Debug","Encryption Config":"Configuração de Encriptação","Configuration":"Configuração","Move to notebook...":"Mover para o caderno...","Move %d notes to notebook \"%s\"?":"Mover %d notas para o caderno \"%s\"?","Press to set the decryption password.":"Pressione para configurar a senha de decriptação.","Select date":"Selecionar data","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronização","Joplin website":"Site do Joplin","Master Key %s":"Chave Master %s","Created: %s":"Criado: %s","Password:":"Senha:","Password cannot be empty":"Senha não pode ser vazia","Enable":"Habilitar","The notebook could not be saved: %s":"O caderno não pôde ser salvo: %s","Edit notebook":"Editar caderno","Show all":"Exibir tudo","Errors only":"Somente erros","This note has been modified:":"Esta nota foi modificada:","Save changes":"Gravar alterações","Discard changes":"Descartar alterações","Unsupported image type: %s":"Tipo de imagem não suportada: %s","Attach photo":"Anexar foto","Attach any file":"Anexar qualquer arquivo","Convert to note":"Converter para nota","Convert to todo":"Converter para tarefa","Hide metadata":"Ocultar metadados","Show metadata":"Exibir metadados","View on map":"Ver no mapa","Delete notebook":"Excluir caderno","Login with OneDrive":"Login com OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Clique no botão (+) para criar uma nova nota ou caderno. Clique no menu lateral para acessar seus cadernos existentes.","You currently have no notebook. Create one by clicking on (+) button.":"Você não possui cadernos. Crie um clicando no botão (+).","Welcome":"Bem-vindo"} \ No newline at end of file diff --git a/ReactNativeClient/locales/ru_RU.json b/ReactNativeClient/locales/ru_RU.json index 8c9f62599a..29f9ce14bd 100644 --- a/ReactNativeClient/locales/ru_RU.json +++ b/ReactNativeClient/locales/ru_RU.json @@ -1 +1 @@ -{"To delete a tag, untag the associated notes.":"Чтобы удалить тег, уберите его с ассоциированных с ним заметок.","Please select the note or notebook to be deleted first.":"Сначала выберите заметку или блокнот, которые должны быть удалены.","Press Ctrl+D or type \"exit\" to exit the application":"Для выхода из приложения нажмите Ctrl+D или введите «exit»","More than one item match \"%s\". Please narrow down your query.":"Более одного элемента соответствуют «%s». Уточните ваш запрос, пожалуйста.","No notebook selected.":"Не выбран блокнот.","No notebook has been specified.":"Не был указан блокнот.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Отмена фоновой синхронизации... Пожалуйста, ожидайте.","No such command: %s":"Нет такой команды: %s","The command \"%s\" is only available in GUI mode":"Команда «%s» доступна только в режиме GUI","Cannot change encrypted item":"Не удалось изменить зашифрованный элемент","Missing required argument: %s":"Отсутствует требуемый аргумент: %s","%s: %s":"%s: %s","Your choice: ":"Ваш выбор: ","Invalid answer: %s":"Неверный ответ: %s","Attaches the given file to the note.":"Прикрепляет заданный файл к заметке.","Cannot find \"%s\".":"Не удалось найти «%s».","Displays the given note.":"Отображает заданную заметку.","Displays the complete information about note.":"Отображает полную информацию о заметке.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Выводит или задаёт параметр конфигурации. Если [value] не указано, выведет значение [name]. Если не указаны ни [name], ни [value], выведет текущую конфигурацию.","Also displays unset and hidden config variables.":"Также выводит неустановленные или скрытые переменные конфигурации.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Дублирует заметки, содержащие , в [notebook]. Если блокнот не указан, заметки продублируются в текущем.","Marks a to-do as done.":"Отмечает задачу как завершённую.","Note is not a to-do: \"%s\"":"Заметка не является задачей: «%s»","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Управляет конфигурацией E2EE. Команды: `enable`, `disable`, `decrypt`, `status` и `target-status`.","Enter master password:":"Введите мастер-пароль:","Operation cancelled":"Операция отменена","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Запуск расшифровки... Пожалуйста, ожидайте. Время расшифровки зависит от объёма расшифровываемых данных.","Completed decryption.":"Расшифровка завершена.","Enabled":"Включено","Disabled":"Отключено","Encryption is: %s":"Шифрование: %s","Edit note.":"Редактировать заметку.","No text editor is defined. Please set it using `config editor `":"Текстовый редактор не определён. Задайте его, используя `config editor `","No active notebook.":"Нет активного блокнота.","Note does not exist: \"%s\". Create it?":"Заметки не существует: «%s». Создать?","Starting to edit note. Close the editor to get back to the prompt.":"Запуск редактирования заметки. Закройте редактор, чтобы вернуться к командной строке.","Error opening note in editor: %s":"Ошибка при открытии заметки в редакторе: %s","Note has been saved.":"Заметка сохранена.","Exits the application.":"Выход из приложения.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Экспортирует только заданную заметку.","Exports only the given notebook.":"Экспортирует только заданный блокнот.","Displays a geolocation URL for the note.":"Выводит URL геолокации для заметки.","Displays usage information.":"Выводит информацию об использовании.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Ярлыки недоступны в режиме командной строки.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Введите `help [команда]` для получения информации о команде или `help all` для получения полной информации по использованию.","The possible commands are:":"Доступные команды:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"В любой команде можно ссылаться на заметку или блокнот по названию или ID, либо используя ярлыки `$n` или `$b`, указывающие на текущую заметку или блокнот соответственно. С помощью `$c` можно ссылаться на текущий выбранный элемент.","To move from one pane to another, press Tab or Shift+Tab.":"Чтобы переключаться между панелями, нажимайте Tab или Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Используйте стрелки и клавиши перелистывания страницы вверх/вниз для прокрутки списков и текстовых областей (включая эту консоль).","To maximise/minimise the console, press \"TC\".":"Чтобы развернуть/свернуть консоль, нажимайте «TC».","To enter command line mode, press \":\"":"Чтобы войти в режим командной строки, нажмите «:»","To exit command line mode, press ESCAPE":"Чтобы выйти из режима командной строки, нажмите ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Не запрашивать подтверждение.","Found: %d.":"Найдено: %d.","Created: %d.":"Создано: %d.","Updated: %d.":"Обновлено: %d.","Skipped: %d.":"Пропущено: %d.","Resources: %d.":"Ресурсов: %d.","Tagged: %d.":"С тегами: %d.","Importing notes...":"Импорт заметок...","The notes have been imported: %s":"Импортировано заметок: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Выводит заметки текущего блокнота. Используйте `ls /` для вывода списка блокнотов.","Displays only the first top notes.":"Выводит только первые заметок.","Sorts the item by (eg. title, updated_time, created_time).":"Сортирует элементы по (например, title, updated_time, created_time).","Reverses the sorting order.":"Обращает порядок сортировки.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Выводит только элементы указанного типа. Может быть `n` для заметок, `t` для задач или `nt` для заметок и задач (например, `-tt` выведет только задачи, в то время как `-ttd` выведет заметки и задачи).","Either \"text\" or \"json\"":"«text» или «json»","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Использовать формат длинного списка. Форматом является ID, NOTE_COUNT (для блокнотов), DATE, TODO_CHECKED (для задач), TITLE","Please select a notebook first.":"Сначала выберите блокнот.","Creates a new notebook.":"Создаёт новый блокнот.","Creates a new note.":"Создаёт новую заметку.","Notes can only be created within a notebook.":"Заметки могут быть созданы только в блокноте.","Creates a new to-do.":"Создаёт новую задачу.","Moves the notes matching to [notebook].":"Перемещает заметки, содержащие в [notebook].","Renames the given (note or notebook) to .":"Переименовывает заданный (заметку или блокнот) в .","Deletes the given notebook.":"Удаляет заданный блокнот.","Deletes the notebook without asking for confirmation.":"Удаляет блокнот без запроса подтверждения.","Delete notebook? All notes within this notebook will also be deleted.":"Удалить блокнот? Все заметки в этом блокноте также будут удалены.","Deletes the notes matching .":"Удаляет заметки, соответствующие .","Deletes the notes without asking for confirmation.":"Удаляет заметки без запроса подтверждения.","%d notes match this pattern. Delete them?":"%d заметок соответствуют этому шаблону. Удалить их?","Delete note?":"Удалить заметку?","Searches for the given in all the notes.":"Запросы для заданного во всех заметках.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Устанавливает для свойства заданной заданное [value]. Возможные свойства:\n\n%s","Displays summary about the notes and notebooks.":"Выводит общую информацию о заметках и блокнотах.","Synchronises with remote storage.":"Синхронизирует с удалённым хранилищем.","Sync to provided target (defaults to sync.target config value)":"Синхронизация с заданной целью (по умолчанию — значение конфигурации sync.target)","Authentication was not completed (did not receive an authentication token).":"Аутентификация не была завершена (не получен токен аутентификации).","Not authentified with %s. Please provide any missing credentials.":"Не аутентифицировано с %s. Пожалуйста, предоставьте все недостающие данные.","Synchronisation is already in progress.":"Синхронизация уже выполняется.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Файл блокировки уже установлен. Если вам известно, что синхронизация не производится, вы можете удалить файл блокировки в «%s» и возобновить операцию.","Synchronisation target: %s (%s)":"Цель синхронизации: %s (%s)","Cannot initialize synchroniser.":"Не удалось инициировать синхронизацию.","Starting synchronisation...":"Начало синхронизации...","Cancelling... Please wait.":"Отмена... Пожалуйста, ожидайте."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" может быть «add», «remove» или «list», чтобы назначить или убрать [tag] с [note], или чтобы вывести список заметок, ассоциированых с [tag]. Команда `tag list` может быть использована для вывода списка всех тегов.","Invalid command: \"%s\"":"Неверная команда: «%s»"," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" может быть «toggle» или «clear». «toggle» используется для переключения статуса заданной задачи на завершённую или незавершённую (если применить к обычной заметке, она будет преобразована в задачу). «clear» используется для преобразования задачи обратно в обычную заметку.","Marks a to-do as non-completed.":"Отмечает задачу как незавершённую.","Switches to [notebook] - all further operations will happen within this notebook.":"Переключает на [блокнот] — все дальнейшие операции будут происходить в этом блокноте.","Displays version information":"Выводит информацию о версии","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Тип: %s.","Possible values: %s.":"Возможные значения: %s.","Default: %s":"По умолчанию: %s","Possible keys/values:":"Возможные ключи/значения:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Фатальная ошибка:","The application has been authorised - you may now close this browser tab.":"Приложение авторизовано — можно закрыть вкладку браузера.","The application has been successfully authorised.":"Приложение успешно авторизовано.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Откройте следующую ссылку в вашем браузере для аутентификации приложения. Приложением будет создан каталог «Apps/Joplin». Чтение и запись файлов будет осуществляться только в его пределах. У приложения не будет доступа к каким-либо файлам за пределами этого каталога и другим личным данным. Никакая информация не будет передана третьим лицам.","Search:":"Поиск:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Добро пожаловать в Joplin!\n\nВведите `:help shortcuts` для просмотра списка клавиатурных сочетаний или просто `:help` для просмотра информации об использовании.\n\nНапример, для создания блокнота нужно ввести `mb`, для создания заметки — `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Один или несколько элементов сейчас зашифрованы и может потребоваться, чтобы вы предоставили мастер-пароль. Для этого введите, пожалуйста, «e2ee decrypt». Если пароль уже был вами предоставлен, зашифрованные элементы расшифруются в фоновом режиме и вскоре станут доступны.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"Файл","New note":"Новая заметка","New to-do":"Новая задача","New notebook":"Новый блокнот","Import":"Импорт","Export":"Export","Print":"","Hide %s":"","Quit":"Выход","Edit":"Правка","Copy":"Копировать","Cut":"Вырезать","Paste":"Вставить","Search in all the notes":"Поиск во всех заметках","View":"","Toggle editor layout":"","Tools":"Инструменты","Synchronisation status":"Статус синхронизации","Encryption options":"Настройки шифрования","General Options":"Основные настройки","Help":"Помощь","Website and documentation":"Сайт и документация","Make a donation":"Make a donation","Check for updates...":"Проверить обновления...","About Joplin":"О Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Отмена","Current version is up-to-date.":"Вы используете самую свежую версию.","An update is available, do you want to download it now?":"An update is available, do you want to download it now?","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Заметки и настройки сохранены в: %s","Save":"Сохранить","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Отключение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в расшифрованном виде к цели синхронизации. Желаете продолжить?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Включение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в зашифрованном виде к цели синхронизации. Не теряйте пароль, так как в целях безопасности *только* с его помощью можно будет расшифровать данные! Чтобы включить шифрование, введите ваш пароль ниже.","Disable encryption":"Отключить шифрование","Enable encryption":"Включить шифрование","Master Keys":"Мастер-ключи","Active":"Активен","ID":"ID","Source":"Источник","Created":"Создан","Updated":"Обновлён","Password":"Пароль","Password OK":"Пароль OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Внимание: Для шифрования может быть использован только один мастер-ключ (отмеченный как «активный»). Для расшифровки может использоваться любой из ключей, в зависимости от того, как изначально были зашифрованы заметки или блокноты.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Статус","Encryption is:":"Шифрование:","Back":"Назад","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Будет создан новый блокнот «%s» и в него будет импортирован файл «%s»","Please create a notebook first.":"Сначала создайте блокнот.","Please create a notebook first":"Сначала создайте блокнот","Notebook title:":"Название блокнота:","Add or remove tags:":"Добавить или удалить теги:","Separate each tag by a comma.":"Каждый тег отделяется запятой.","Rename notebook:":"Переименовать блокнот:","Set alarm:":"Установить напоминание:","Search":"Поиск","Layout":"Вид","Some items cannot be synchronised.":"Некоторые элементы не могут быть синхронизированы.","View them now":"Просмотреть их сейчас","Some items cannot be decrypted.":"Некоторые элементы не могут быть расшифрованы.","Set the password":"Установить пароль","Add or remove tags":"Добавить или удалить теги","Switch between note and to-do type":"Переключить тип между заметкой и задачей","Delete":"Удалить","Delete notes?":"Удалить заметки?","No notes in here. Create one by clicking on \"New note\".":"Здесь нет заметок. Создайте новую нажатием на «Новая заметка».","There is currently no notebook. Create one by clicking on \"New notebook\".":"Сейчас здесь нет блокнотов. Создайте новый нажав «Новый блокнот».","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Неподдерживаемая ссыка или сообщение: %s","Attach file":"Прикрепить файл","Tags":"Теги","Set alarm":"Установить напоминание","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Обновить","Clear":"Очистить","OneDrive Login":"Вход в OneDrive","Options":"Настройки","Synchronisation Status":"Статус синхронизации","Encryption Options":"Настройки шифрования","Remove this tag from all the notes?":"Убрать этот тег со всех заметок?","Remove this search from the sidebar?":"Убрать этот запрос с боковой панели?","Rename":"Переименовать","Synchronise":"Синхронизировать","Notebooks":"Блокноты","Searches":"Запросы","Please select where the sync status should be exported to":"Выберите, куда должен быть экспортирован статус синхронизации","Usage: %s":"Использование: %s","Unknown flag: %s":"Неизвестный флаг: %s","File system":"Файловая система","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (только для тестирования)","WebDAV":"WebDAV","Unknown log level: %s":"Неизвестный уровень лога: %s","Unknown level ID: %s":"Неизвестный ID уровня: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Не удалось обновить токен: отсутствуют данные аутентификации. Повторный запуск синхронизации может решить проблему.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Не удалось синхронизироваться с OneDrive.\n\nТакая ошибка часто возникает при использовании OneDrive для бизнеса, который, к сожалению, не поддерживается.\n\nПожалуйста, рассмотрите возможность использования обычного аккаунта OneDrive.","Cannot access %s":"Не удалось получить доступ %s","Created local items: %d.":"Создано локальных элементов: %d.","Updated local items: %d.":"Обновлено локальных элементов: %d.","Created remote items: %d.":"Создано удалённых элементов: %d.","Updated remote items: %d.":"Обновлено удалённых элементов: %d.","Deleted local items: %d.":"Удалено локальных элементов: %d.","Deleted remote items: %d.":"Удалено удалённых элементов: %d.","Fetched items: %d/%d.":"Получено элементов: %d/%d.","State: \"%s\".":"Статус: «%s».","Cancelling...":"Отмена...","Completed: %s":"Завершено: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Синхронизация уже выполняется. Статус: %s","Encrypted":"Зашифровано","Encrypted items cannot be modified":"Зашифрованные элементы не могут быть изменены","Conflicts":"Конфликты","A notebook with this title already exists: \"%s\"":"Блокнот с таким названием уже существует: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"Блокнот не может быть назван «%s», это зарезервированное название.","Untitled":"Без имени","This note does not have geolocation information.":"Эта заметка не содержит информации о геолокации.","Cannot copy note to \"%s\" notebook":"Не удалось скопировать заметку в блокнот «%s»","Cannot move note to \"%s\" notebook":"Не удалось переместить заметку в блокнот «%s»","Text editor":"Текстовый редактор","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Редактор, в котором будут открываться заметки. Если не задан, будет произведена попытка автоматического определения редактора по умолчанию.","Language":"Язык","Date format":"Формат даты","Time format":"Формат времени","Theme":"Тема","Light":"Светлая","Dark":"Тёмная","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Сохранять информацию о геолокации в заметках","When creating a new to-do:":"При создании новой задачи:","Focus title":"Фокус на названии","Focus body":"Фокус на содержимом","When creating a new note:":"При создании новой заметки:","Show tray icon":"","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Автоматически обновлять приложение","Synchronisation interval":"Интервал синхронизации","%d minutes":"%d минут","%d hour":"%d час","%d hours":"%d часов","Show advanced options":"Показывать расширенные настройки","Synchronisation target":"Цель синхронизации","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Цель синхронизации. Каждая цель синхронизации может иметь дополнительные параметры, именованные как «sync.NUM.NAME» (все описаны ниже).","Directory to synchronise with (absolute path)":"Каталог синхронизации (абсолютный путь)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Путь для синхронизации при включённой синхронизации с файловой системой. См. `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Имя пользователя Nextcloud","Nextcloud password":"Пароль Nextcloud","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV username","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Неверное значение параметра: «%s». Доступные значения: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Элементы, которые не могут быть синхронизированы","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Эти элементы будут оставаться на устройстве, но не будут загружены в целевой объект синхронизации. Чтобы найти эти элементы, воспользуйтесь поиском по названию или ID (который указывается в скобках выше).","Sync status (synced items / total items)":"Статус синхронизации (элементов синхронизировано/всего)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Всего: %d/%d","Conflicted: %d":"Конфликтующих: %d","To delete: %d":"К удалению: %d","Folders":"Папки","%s: %d notes":"%s: %d заметок","Coming alarms":"Грядущие напоминания","On %s: %s":"В %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Сейчас здесь нет заметок. Создаёте новую, нажав кнопку (+).","Delete these notes?":"Удалить эти заметки?","Log":"Лог","Export Debug Report":"Экспортировать отладочный отчёт","Encryption Config":"Конфигурация шифрования","Configuration":"Конфигурация","Move to notebook...":"Переместить в блокнот...","Move %d notes to notebook \"%s\"?":"Переместить %d заметок в блокнот «%s»?","Press to set the decryption password.":"Нажмите, чтобы установить пароль для расшифровки.","Select date":"Выбрать дату","Confirm":"Подтвердить","Cancel synchronisation":"Отменить синхронизацию","Joplin website":"","Master Key %s":"Мастер-ключ %s","Created: %s":"Создано: %s","Password:":"Пароль:","Password cannot be empty":"Пароль не может быть пустым","Enable":"Включено","The notebook could not be saved: %s":"Не удалось сохранить блокнот: %s","Edit notebook":"Редактировать блокнот","Show all":"","Errors only":"Errors only","This note has been modified:":"Эта заметка была изменена:","Save changes":"Сохранить изменения","Discard changes":"Отменить изменения","Unsupported image type: %s":"Неподдерживаемый формат изображения: %s","Attach photo":"Прикрепить фото","Attach any file":"Прикрепить любой файл","Convert to note":"Преобразовать в заметку","Convert to todo":"Преобразовать в задачу","Hide metadata":"Скрыть метаданные","Show metadata":"Показать метаданные","View on map":"Посмотреть на карте","Delete notebook":"Удалить блокнот","Login with OneDrive":"Войти в OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Нажмите на кнопку (+) для создания новой заметки или нового блокнота. Нажмите на боковое меню для доступа к вашим существующим блокнотам.","You currently have no notebook. Create one by clicking on (+) button.":"У вас сейчас нет блокнота. Создайте его нажатием на кнопку (+).","Welcome":"Добро пожаловать"} \ No newline at end of file +{"To delete a tag, untag the associated notes.":"Чтобы удалить тег, уберите его с ассоциированных с ним заметок.","Please select the note or notebook to be deleted first.":"Сначала выберите заметку или блокнот, которые должны быть удалены.","Press Ctrl+D or type \"exit\" to exit the application":"Для выхода из приложения нажмите Ctrl+D или введите «exit»","More than one item match \"%s\". Please narrow down your query.":"Более одного элемента соответствуют «%s». Уточните ваш запрос, пожалуйста.","No notebook selected.":"Не выбран блокнот.","No notebook has been specified.":"Не был указан блокнот.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Отмена фоновой синхронизации... Пожалуйста, ожидайте.","No such command: %s":"Нет такой команды: %s","The command \"%s\" is only available in GUI mode":"Команда «%s» доступна только в режиме GUI","Cannot change encrypted item":"Не удалось изменить зашифрованный элемент","Missing required argument: %s":"Отсутствует требуемый аргумент: %s","%s: %s":"%s: %s","Your choice: ":"Ваш выбор: ","Invalid answer: %s":"Неверный ответ: %s","Attaches the given file to the note.":"Прикрепляет заданный файл к заметке.","Cannot find \"%s\".":"Не удалось найти «%s».","Displays the given note.":"Отображает заданную заметку.","Displays the complete information about note.":"Отображает полную информацию о заметке.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Выводит или задаёт параметр конфигурации. Если [value] не указано, выведет значение [name]. Если не указаны ни [name], ни [value], выведет текущую конфигурацию.","Also displays unset and hidden config variables.":"Также выводит неустановленные или скрытые переменные конфигурации.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Дублирует заметки, содержащие , в [notebook]. Если блокнот не указан, заметки продублируются в текущем.","Marks a to-do as done.":"Отмечает задачу как завершённую.","Note is not a to-do: \"%s\"":"Заметка не является задачей: «%s»","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Управляет конфигурацией E2EE. Команды: `enable`, `disable`, `decrypt`, `status` и `target-status`.","Enter master password:":"Введите мастер-пароль:","Operation cancelled":"Операция отменена","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Запуск расшифровки... Пожалуйста, ожидайте. Время расшифровки зависит от объёма расшифровываемых данных.","Completed decryption.":"Расшифровка завершена.","Enabled":"Включено","Disabled":"Отключено","Encryption is: %s":"Шифрование: %s","Edit note.":"Редактировать заметку.","No text editor is defined. Please set it using `config editor `":"Текстовый редактор не определён. Задайте его, используя `config editor `","No active notebook.":"Нет активного блокнота.","Note does not exist: \"%s\". Create it?":"Заметки не существует: «%s». Создать?","Starting to edit note. Close the editor to get back to the prompt.":"Запуск редактирования заметки. Закройте редактор, чтобы вернуться к командной строке.","Error opening note in editor: %s":"Ошибка при открытии заметки в редакторе: %s","Note has been saved.":"Заметка сохранена.","Exits the application.":"Выход из приложения.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Экспортирует данные Joplin по заданному пути. По умолчанию экспортируется полная база данных, включая блокноты, заметки, теги и ресурсы.","Destination format: %s":"Целевой формат: %s","Exports only the given note.":"Экспортирует только заданную заметку.","Exports only the given notebook.":"Экспортирует только заданный блокнот.","Displays a geolocation URL for the note.":"Выводит URL геолокации для заметки.","Displays usage information.":"Выводит информацию об использовании.","For information on how to customise the shortcuts please visit %s":"Информацию по настройке сочетаний можно получить, посетив %s","Shortcuts are not available in CLI mode.":"Ярлыки недоступны в режиме командной строки.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Введите `help [команда]` для получения информации о команде или `help all` для получения полной информации по использованию.","The possible commands are:":"Доступные команды:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"В любой команде можно ссылаться на заметку или блокнот по названию или ID, либо используя ярлыки `$n` или `$b`, указывающие на текущую заметку или блокнот соответственно. С помощью `$c` можно ссылаться на текущий выбранный элемент.","To move from one pane to another, press Tab or Shift+Tab.":"Чтобы переключаться между панелями, нажимайте Tab или Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Используйте стрелки и клавиши перелистывания страницы вверх/вниз для прокрутки списков и текстовых областей (включая эту консоль).","To maximise/minimise the console, press \"TC\".":"Чтобы развернуть/свернуть консоль, нажимайте «TC».","To enter command line mode, press \":\"":"Чтобы войти в режим командной строки, нажмите «:»","To exit command line mode, press ESCAPE":"Чтобы выйти из режима командной строки, нажмите ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Для просмотра списка клавиатурных сочетаний и настроек конфигурации введите `help keymap`","Imports data into Joplin.":"Импортирует данные в Joplin.","Source format: %s":"Исходный формат: %s","Do not ask for confirmation.":"Не запрашивать подтверждение.","Found: %d.":"Найдено: %d.","Created: %d.":"Создано: %d.","Updated: %d.":"Обновлено: %d.","Skipped: %d.":"Пропущено: %d.","Resources: %d.":"Ресурсов: %d.","Tagged: %d.":"С тегами: %d.","Importing notes...":"Импорт заметок...","The notes have been imported: %s":"Импортировано заметок: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Выводит заметки текущего блокнота. Используйте `ls /` для вывода списка блокнотов.","Displays only the first top notes.":"Выводит только первые заметок.","Sorts the item by (eg. title, updated_time, created_time).":"Сортирует элементы по (например, title, updated_time, created_time).","Reverses the sorting order.":"Обращает порядок сортировки.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Выводит только элементы указанного типа. Может быть `n` для заметок, `t` для задач или `nt` для заметок и задач (например, `-tt` выведет только задачи, в то время как `-ttd` выведет заметки и задачи).","Either \"text\" or \"json\"":"«text» или «json»","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Использовать формат длинного списка. Форматом является ID, NOTE_COUNT (для блокнотов), DATE, TODO_CHECKED (для задач), TITLE","Please select a notebook first.":"Сначала выберите блокнот.","Creates a new notebook.":"Создаёт новый блокнот.","Creates a new note.":"Создаёт новую заметку.","Notes can only be created within a notebook.":"Заметки могут быть созданы только в блокноте.","Creates a new to-do.":"Создаёт новую задачу.","Moves the notes matching to [notebook].":"Перемещает заметки, содержащие в [notebook].","Renames the given (note or notebook) to .":"Переименовывает заданный (заметку или блокнот) в .","Deletes the given notebook.":"Удаляет заданный блокнот.","Deletes the notebook without asking for confirmation.":"Удаляет блокнот без запроса подтверждения.","Delete notebook? All notes within this notebook will also be deleted.":"Удалить блокнот? Все заметки в этом блокноте также будут удалены.","Deletes the notes matching .":"Удаляет заметки, соответствующие .","Deletes the notes without asking for confirmation.":"Удаляет заметки без запроса подтверждения.","%d notes match this pattern. Delete them?":"%d заметок соответствуют этому шаблону. Удалить их?","Delete note?":"Удалить заметку?","Searches for the given in all the notes.":"Запросы для заданного во всех заметках.","Sets the property of the given to the given [value]. Possible properties are:\n\n%s":"Устанавливает для свойства заданной заданное [value]. Возможные свойства:\n\n%s","Displays summary about the notes and notebooks.":"Выводит общую информацию о заметках и блокнотах.","Synchronises with remote storage.":"Синхронизирует с удалённым хранилищем.","Sync to provided target (defaults to sync.target config value)":"Синхронизация с заданной целью (по умолчанию — значение конфигурации sync.target)","Authentication was not completed (did not receive an authentication token).":"Аутентификация не была завершена (не получен токен аутентификации).","Not authentified with %s. Please provide any missing credentials.":"Не аутентифицировано с %s. Пожалуйста, предоставьте все недостающие данные.","Synchronisation is already in progress.":"Синхронизация уже выполняется.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Файл блокировки уже установлен. Если вам известно, что синхронизация не производится, вы можете удалить файл блокировки в «%s» и возобновить операцию.","Synchronisation target: %s (%s)":"Цель синхронизации: %s (%s)","Cannot initialize synchroniser.":"Не удалось инициировать синхронизацию.","Starting synchronisation...":"Начало синхронизации...","Cancelling... Please wait.":"Отмена... Пожалуйста, ожидайте."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" может быть «add», «remove» или «list», чтобы назначить или убрать [tag] с [note], или чтобы вывести список заметок, ассоциированых с [tag]. Команда `tag list` может быть использована для вывода списка всех тегов.","Invalid command: \"%s\"":"Неверная команда: «%s»"," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" может быть «toggle» или «clear». «toggle» используется для переключения статуса заданной задачи на завершённую или незавершённую (если применить к обычной заметке, она будет преобразована в задачу). «clear» используется для преобразования задачи обратно в обычную заметку.","Marks a to-do as non-completed.":"Отмечает задачу как незавершённую.","Switches to [notebook] - all further operations will happen within this notebook.":"Переключает на [блокнот] — все дальнейшие операции будут происходить в этом блокноте.","Displays version information":"Выводит информацию о версии","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Тип: %s.","Possible values: %s.":"Возможные значения: %s.","Default: %s":"По умолчанию: %s","Possible keys/values:":"Возможные ключи/значения:","Type `joplin help` for usage information.":"Введите `joplin help` для получения информации об использовании.","Fatal error:":"Фатальная ошибка:","The application has been authorised - you may now close this browser tab.":"Приложение авторизовано — можно закрыть вкладку браузера.","The application has been successfully authorised.":"Приложение успешно авторизовано.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Откройте следующую ссылку в вашем браузере для аутентификации приложения. Приложением будет создан каталог «Apps/Joplin». Чтение и запись файлов будет осуществляться только в его пределах. У приложения не будет доступа к каким-либо файлам за пределами этого каталога и другим личным данным. Никакая информация не будет передана третьим лицам.","Search:":"Поиск:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Добро пожаловать в Joplin!\n\nВведите `:help shortcuts` для просмотра списка клавиатурных сочетаний или просто `:help` для просмотра информации об использовании.\n\nНапример, для создания блокнота нужно ввести `mb`, для создания заметки — `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Один или несколько элементов сейчас зашифрованы и может потребоваться, чтобы вы предоставили мастер-пароль. Для этого введите, пожалуйста, «e2ee decrypt». Если пароль уже был вами предоставлен, зашифрованные элементы расшифруются в фоновом режиме и вскоре станут доступны.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Экспорт в «%s» в формате «%s». Пожалуйста, ожидайте...","Importing from \"%s\" as \"%s\" format. Please wait...":"Импорт из «%s» в формате «%s». Пожалуйста, ожидайте...","PDF File":"PDF-файл","File":"Файл","New note":"Новая заметка","New to-do":"Новая задача","New notebook":"Новый блокнот","Import":"Импорт","Export":"Экспорт","Print":"Печать","Hide %s":"Скрыть %s","Quit":"Выход","Edit":"Правка","Copy":"Копировать","Cut":"Вырезать","Paste":"Вставить","Search in all the notes":"Поиск во всех заметках","View":"Вид","Toggle editor layout":"Переключить вид редактора","Tools":"Инструменты","Synchronisation status":"Статус синхронизации","Encryption options":"Настройки шифрования","General Options":"Основные настройки","Help":"Помощь","Website and documentation":"Сайт и документация","Make a donation":"Сделать пожертвование","Check for updates...":"Проверить обновления...","About Joplin":"О Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Открыть %s","Exit":"Выход","OK":"OK","Cancel":"Отмена","Current version is up-to-date.":"Вы используете самую свежую версию.","An update is available, do you want to download it now?":"Доступно обновление. Желаете скачать его сейчас?","Yes":"Да","No":"Нет","Check synchronisation configuration":"Проверить настройки синхронизации","Notes and settings are stored in: %s":"Заметки и настройки сохранены в: %s","Save":"Сохранить","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Отключение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в расшифрованном виде к цели синхронизации. Желаете продолжить?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Включение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в зашифрованном виде к цели синхронизации. Не теряйте пароль, так как в целях безопасности *только* с его помощью можно будет расшифровать данные! Чтобы включить шифрование, введите ваш пароль ниже.","Disable encryption":"Отключить шифрование","Enable encryption":"Включить шифрование","Master Keys":"Мастер-ключи","Active":"Активен","ID":"ID","Source":"Источник","Created":"Создан","Updated":"Обновлён","Password":"Пароль","Password OK":"Пароль OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Внимание: Для шифрования может быть использован только один мастер-ключ (отмеченный как «активный»). Для расшифровки может использоваться любой из ключей, в зависимости от того, как изначально были зашифрованы заметки или блокноты.","Missing Master Keys":"Недостающие мастер-ключи","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"Мастер-ключи с такими ID используются для шифрования некоторых из ваших элементов, однако у приложения сейчас нет к ним доступа. Скорее всего, они загрузятся при синхронизации.","Status":"Статус","Encryption is:":"Шифрование:","Back":"Назад","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Будет создан новый блокнот «%s» и в него будет импортирован файл «%s»","Please create a notebook first.":"Сначала создайте блокнот.","Please create a notebook first":"Сначала создайте блокнот","Notebook title:":"Название блокнота:","Add or remove tags:":"Добавить или удалить теги:","Separate each tag by a comma.":"Каждый тег отделяется запятой.","Rename notebook:":"Переименовать блокнот:","Set alarm:":"Установить напоминание:","Search":"Поиск","Layout":"Вид","Some items cannot be synchronised.":"Некоторые элементы не могут быть синхронизированы.","View them now":"Просмотреть их сейчас","Some items cannot be decrypted.":"Некоторые элементы не могут быть расшифрованы.","Set the password":"Установить пароль","Add or remove tags":"Добавить или удалить теги","Switch between note and to-do type":"Переключить тип между заметкой и задачей","Delete":"Удалить","Delete notes?":"Удалить заметки?","No notes in here. Create one by clicking on \"New note\".":"Здесь нет заметок. Создайте новую нажатием на «Новая заметка».","There is currently no notebook. Create one by clicking on \"New notebook\".":"Сейчас здесь нет блокнотов. Создайте новый нажав «Новый блокнот».","Open...":"Открыть...","Save as...":"Сохранить как...","Unsupported link or message: %s":"Неподдерживаемая ссыка или сообщение: %s","Attach file":"Прикрепить файл","Tags":"Теги","Set alarm":"Установить напоминание","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Заметка пуста. Нажмите на «%s», чтобы переключиться в редактор и отредактировать её.","to-do":"задача","note":"заметка","Creating new %s...":"Создание новой %s...","Refresh":"Обновить","Clear":"Очистить","OneDrive Login":"Вход в OneDrive","Options":"Настройки","Synchronisation Status":"Статус синхронизации","Encryption Options":"Настройки шифрования","Remove this tag from all the notes?":"Убрать этот тег со всех заметок?","Remove this search from the sidebar?":"Убрать этот запрос с боковой панели?","Rename":"Переименовать","Synchronise":"Синхронизировать","Notebooks":"Блокноты","Searches":"Запросы","Please select where the sync status should be exported to":"Выберите, куда должен быть экспортирован статус синхронизации","Usage: %s":"Использование: %s","Unknown flag: %s":"Неизвестный флаг: %s","File system":"Файловая система","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (только для тестирования)","WebDAV":"WebDAV","Unknown log level: %s":"Неизвестный уровень лога: %s","Unknown level ID: %s":"Неизвестный ID уровня: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Не удалось обновить токен: отсутствуют данные аутентификации. Повторный запуск синхронизации может решить проблему.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Не удалось синхронизироваться с OneDrive.\n\nТакая ошибка часто возникает при использовании OneDrive для бизнеса, который, к сожалению, не поддерживается.\n\nПожалуйста, рассмотрите возможность использования обычного аккаунта OneDrive.","Cannot access %s":"Не удалось получить доступ %s","Created local items: %d.":"Создано локальных элементов: %d.","Updated local items: %d.":"Обновлено локальных элементов: %d.","Created remote items: %d.":"Создано удалённых элементов: %d.","Updated remote items: %d.":"Обновлено удалённых элементов: %d.","Deleted local items: %d.":"Удалено локальных элементов: %d.","Deleted remote items: %d.":"Удалено удалённых элементов: %d.","Fetched items: %d/%d.":"Получено элементов: %d/%d.","State: \"%s\".":"Статус: «%s».","Cancelling...":"Отмена...","Completed: %s":"Завершено: %s","Last error: %s":"Последняя ошибка: %s","Idle":"Простой","In progress":"Выполнение","Synchronisation is already in progress. State: %s":"Синхронизация уже выполняется. Статус: %s","Encrypted":"Зашифровано","Encrypted items cannot be modified":"Зашифрованные элементы не могут быть изменены","Conflicts":"Конфликты","A notebook with this title already exists: \"%s\"":"Блокнот с таким названием уже существует: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"Блокнот не может быть назван «%s», это зарезервированное название.","Untitled":"Без имени","This note does not have geolocation information.":"Эта заметка не содержит информации о геолокации.","Cannot copy note to \"%s\" notebook":"Не удалось скопировать заметку в блокнот «%s»","Cannot move note to \"%s\" notebook":"Не удалось переместить заметку в блокнот «%s»","Text editor":"Текстовый редактор","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Редактор, в котором будут открываться заметки. Если не задан, будет произведена попытка автоматического определения редактора по умолчанию.","Language":"Язык","Date format":"Формат даты","Time format":"Формат времени","Theme":"Тема","Light":"Светлая","Dark":"Тёмная","Uncompleted to-dos on top":"Незавершённые задачи сверху","Sort notes by":"Сортировать заметки по","Reverse sort order":"Обратный порядок сортировки","Save geo-location with notes":"Сохранять информацию о геолокации в заметках","When creating a new to-do:":"При создании новой задачи:","Focus title":"Фокус на названии","Focus body":"Фокус на содержимом","When creating a new note:":"При создании новой заметки:","Show tray icon":"Показывать иконку в панели задач","Global zoom percentage":"Глобальный масштаб в процентах","Editor font family":"Семейство шрифтов редактора","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"Название шрифта не проверяется. Если оно указано некорректно или не задано, будет использоваться стандартный моноширинный шрифт.","Automatically update the application":"Автоматически обновлять приложение","Synchronisation interval":"Интервал синхронизации","%d minutes":"%d минут","%d hour":"%d час","%d hours":"%d часов","Show advanced options":"Показывать расширенные настройки","Synchronisation target":"Цель синхронизации","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Цель синхронизации. Каждая цель синхронизации может иметь дополнительные параметры, именованные как «sync.NUM.NAME» (все описаны ниже).","Directory to synchronise with (absolute path)":"Каталог синхронизации (абсолютный путь)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Путь для синхронизации при включённой синхронизации с файловой системой. См. `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Имя пользователя Nextcloud","Nextcloud password":"Пароль Nextcloud","WebDAV URL":"URL WebDAV","WebDAV username":"Имя пользователя WebDAV","WebDAV password":"Пароль WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Неверное значение параметра: «%s». Доступные значения: %s.","Joplin Export File":"Файл экспорта Joplin","Markdown":"Markdown","Joplin Export Directory":"Папка экспорта Joplin","Evernote Export File":"Файл экспорта Evernote","Directory":"Директория","Cannot load \"%s\" module for format \"%s\"":"Не удалось загрузить модуль «%s» для формата «%s»","Please specify import format for %s":"Пожалуйста, укажите формат импорта для %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Этот элемент сейчас зашифрован: %s «%s». Пожалуйста, дождитесь расшифровки всех элементов и попробуйте снова.","There is no data to export.":"Нет данных для экспорта.","Please specify the notebook where the notes should be imported to.":"Пожалуйста, укажите блокнот, в который должны быть импортированы заметки.","Items that cannot be synchronised":"Элементы, которые не могут быть синхронизированы","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Эти элементы будут оставаться на устройстве, но не будут загружены в целевой объект синхронизации. Чтобы найти эти элементы, воспользуйтесь поиском по названию или ID (который указывается в скобках выше).","Sync status (synced items / total items)":"Статус синхронизации (элементов синхронизировано/всего)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Всего: %d/%d","Conflicted: %d":"Конфликтующих: %d","To delete: %d":"К удалению: %d","Folders":"Папки","%s: %d notes":"%s: %d заметок","Coming alarms":"Грядущие напоминания","On %s: %s":"В %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Сейчас здесь нет заметок. Создаёте новую, нажав кнопку (+).","Delete these notes?":"Удалить эти заметки?","Log":"Лог","Export Debug Report":"Экспортировать отладочный отчёт","Encryption Config":"Конфигурация шифрования","Configuration":"Конфигурация","Move to notebook...":"Переместить в блокнот...","Move %d notes to notebook \"%s\"?":"Переместить %d заметок в блокнот «%s»?","Press to set the decryption password.":"Нажмите, чтобы установить пароль для расшифровки.","Select date":"Выбрать дату","Confirm":"Подтвердить","Cancel synchronisation":"Отменить синхронизацию","Joplin website":"Сайт Joplin","Master Key %s":"Мастер-ключ %s","Created: %s":"Создано: %s","Password:":"Пароль:","Password cannot be empty":"Пароль не может быть пустым","Enable":"Включено","The notebook could not be saved: %s":"Не удалось сохранить блокнот: %s","Edit notebook":"Редактировать блокнот","Show all":"Показать всё","Errors only":"Только ошибки","This note has been modified:":"Эта заметка была изменена:","Save changes":"Сохранить изменения","Discard changes":"Отменить изменения","Unsupported image type: %s":"Неподдерживаемый формат изображения: %s","Attach photo":"Прикрепить фото","Attach any file":"Прикрепить любой файл","Convert to note":"Преобразовать в заметку","Convert to todo":"Преобразовать в задачу","Hide metadata":"Скрыть метаданные","Show metadata":"Показать метаданные","View on map":"Посмотреть на карте","Delete notebook":"Удалить блокнот","Login with OneDrive":"Войти в OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Нажмите на кнопку (+) для создания новой заметки или нового блокнота. Нажмите на боковое меню для доступа к вашим существующим блокнотам.","You currently have no notebook. Create one by clicking on (+) button.":"У вас сейчас нет блокнота. Создайте его нажатием на кнопку (+).","Welcome":"Добро пожаловать"} \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index ed23f33093..4d9bcf1d34 100644 --- a/docs/index.html +++ b/docs/index.html @@ -409,14 +409,14 @@ $$ Croatian hr_HR -Hrvoje Mandić trbuhom@net.hr +Hrvoje Mandić trbuhom@net.hr 65% Deutsch de_DE -Tobias Strobel git@strobeltobias.de +Tobias Strobel git@strobeltobias.de 97% @@ -430,8 +430,8 @@ $$ Español es_ES -Fernando Martín f@mrtn.es -98% +Fernando Martín f@mrtn.es +100% @@ -458,21 +458,21 @@ $$ Português (Brasil) pt_BR - -65% +Renato Nunes Bastos rnbastos@gmail.com +98% Русский ru_RU -Artyom Karlov artyom.karlov@gmail.com -83% +Artyom Karlov artyom.karlov@gmail.com +100% 中文 (简体) zh_CN -RCJacH RCJacH@outlook.com +RCJacH RCJacH@outlook.com 66% From 8e22d38eb3634145bd97795ebe0896821971bcaf Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 16 Mar 2018 08:08:10 +0000 Subject: [PATCH 49/86] Electron release v1.0.73 --- ElectronClient/app/package-lock.json | 2 +- ElectronClient/app/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ElectronClient/app/package-lock.json b/ElectronClient/app/package-lock.json index 4b262c5a8f..ee2e98c620 100644 --- a/ElectronClient/app/package-lock.json +++ b/ElectronClient/app/package-lock.json @@ -1,6 +1,6 @@ { "name": "Joplin", - "version": "1.0.70", + "version": "1.0.73", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/ElectronClient/app/package.json b/ElectronClient/app/package.json index 5c85322988..eae51e3fc0 100644 --- a/ElectronClient/app/package.json +++ b/ElectronClient/app/package.json @@ -1,6 +1,6 @@ { "name": "Joplin", - "version": "1.0.72", + "version": "1.0.73", "description": "Joplin for Desktop", "main": "main.js", "scripts": { From ed0f6d165c4e1415e88b7ee9a292222146c3dc59 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 16 Mar 2018 08:10:32 +0000 Subject: [PATCH 50/86] Android release v1.0.107 --- README.md | 2 +- ReactNativeClient/android/app/build.gradle | 4 ++-- docs/index.html | 14 +++++++------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index ea65e5145b..3c6faf904f 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Linux | Get it on Google Play | or [Download APK File](https://github.com/laurent22/joplin-android/releases/download/android-v1.0.106/joplin-v1.0.106.apk) +Android | Get it on Google Play | or [Download APK File](https://github.com/laurent22/joplin-android/releases/download/android-v1.0.107/joplin-v1.0.107.apk) iOS | Get it on the App Store | - ## Terminal application diff --git a/ReactNativeClient/android/app/build.gradle b/ReactNativeClient/android/app/build.gradle index 155392ef83..8aedd92ce7 100644 --- a/ReactNativeClient/android/app/build.gradle +++ b/ReactNativeClient/android/app/build.gradle @@ -90,8 +90,8 @@ android { applicationId "net.cozic.joplin" minSdkVersion 16 targetSdkVersion 22 - versionCode 2097284 - versionName "1.0.106" + versionCode 2097285 + versionName "1.0.107" ndk { abiFilters "armeabi-v7a", "x86" } diff --git a/docs/index.html b/docs/index.html index 4d9bcf1d34..334237eb61 100644 --- a/docs/index.html +++ b/docs/index.html @@ -247,7 +247,7 @@ Android Get it on Google Play -or Download APK File +or Download APK File iOS @@ -409,14 +409,14 @@ $$ Croatian hr_HR -Hrvoje Mandić trbuhom@net.hr +Hrvoje Mandić trbuhom@net.hr 65% Deutsch de_DE -Tobias Strobel git@strobeltobias.de +Tobias Strobel git@strobeltobias.de 97% @@ -430,7 +430,7 @@ $$ Español es_ES -Fernando Martín f@mrtn.es +Fernando Martín f@mrtn.es 100% @@ -458,21 +458,21 @@ $$ Português (Brasil) pt_BR -Renato Nunes Bastos rnbastos@gmail.com +Renato Nunes Bastos rnbastos@gmail.com 98% Русский ru_RU -Artyom Karlov artyom.karlov@gmail.com +Artyom Karlov artyom.karlov@gmail.com 100% 中文 (简体) zh_CN -RCJacH RCJacH@outlook.com +RCJacH RCJacH@outlook.com 66% From c2507cbc4e35c14133e3b334db9dc13ab79352f5 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 16 Mar 2018 08:17:27 +0000 Subject: [PATCH 51/86] CLI v1.0.101 --- CliClient/package-lock.json | 2 +- CliClient/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CliClient/package-lock.json b/CliClient/package-lock.json index 4b06c5595c..f78da66569 100644 --- a/CliClient/package-lock.json +++ b/CliClient/package-lock.json @@ -1,6 +1,6 @@ { "name": "joplin", - "version": "1.0.100", + "version": "1.0.101", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/CliClient/package.json b/CliClient/package.json index 9311adfb50..685ee55454 100644 --- a/CliClient/package.json +++ b/CliClient/package.json @@ -19,7 +19,7 @@ ], "owner": "Laurent Cozic" }, - "version": "1.0.100", + "version": "1.0.101", "bin": { "joplin": "./main.js" }, From 61881b528aed86a56723933373e3ee7780b71356 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 16 Mar 2018 09:11:10 +0000 Subject: [PATCH 52/86] Electron: Trying to fix signed executable issue --- ElectronClient/app/package-lock.json | 448 ++++++++++++--------------- ElectronClient/app/package.json | 2 +- 2 files changed, 195 insertions(+), 255 deletions(-) diff --git a/ElectronClient/app/package-lock.json b/ElectronClient/app/package-lock.json index ee2e98c620..ccd52e7fb4 100644 --- a/ElectronClient/app/package-lock.json +++ b/ElectronClient/app/package-lock.json @@ -643,7 +643,7 @@ "requires": { "ansi-align": "2.0.0", "camelcase": "4.1.0", - "chalk": "2.3.1", + "chalk": "2.3.2", "cli-boxes": "1.0.0", "string-width": "2.1.1", "term-size": "1.2.0", @@ -657,9 +657,9 @@ "dev": true }, "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" @@ -672,14 +672,14 @@ "dev": true }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "is-fullwidth-code-point": { @@ -708,9 +708,9 @@ } }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -748,45 +748,77 @@ } }, "builder-util": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-5.6.0.tgz", - "integrity": "sha512-5Enhnnm9gCHjzOUnVqqGjuMlx6pPA36VImQ9wgpRIIyfqLPXLVyWHOYbd0CThm/+GFMWx9xwAUyU6uL93+vwMg==", + "version": "5.6.5", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-5.6.5.tgz", + "integrity": "sha512-J03MEuyUf8li8KjTpml3r0K2Q9jZl21bHTEuGiZZX9vSMY81mXZe5AmEutsquyDrcsQFjCrDkbEDaqSc7vj5sw==", "dev": true, "requires": { "7zip-bin": "3.1.0", - "app-builder-bin": "1.5.0", + "app-builder-bin": "1.7.2", "bluebird-lst": "1.0.5", "builder-util-runtime": "4.0.5", - "chalk": "2.3.1", + "chalk": "2.3.2", "debug": "3.1.0", "fs-extra-p": "4.5.2", "is-ci": "1.1.0", - "js-yaml": "3.10.0", + "js-yaml": "3.11.0", "lazy-val": "1.0.3", "semver": "5.5.0", - "source-map-support": "0.5.3", + "source-map-support": "0.5.4", "stat-mode": "0.2.2", "temp-file": "3.1.1" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "app-builder-bin": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-1.7.2.tgz", + "integrity": "sha512-2uJICLdVnkDqizLZa4HclhBsAWiSf1sEPeKS5+GhuxGaDdWnabXZ4ed9hYQ5u81P3hW3lB+xvxDw2TTinDB9Tw==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "app-builder-bin-linux": "1.7.2", + "app-builder-bin-mac": "1.7.2", + "app-builder-bin-win": "1.7.2" + } + }, + "app-builder-bin-linux": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/app-builder-bin-linux/-/app-builder-bin-linux-1.7.2.tgz", + "integrity": "sha512-spoW8f6sqo5aKpoZx+scIPMonSTrh8JtKWM3MuDqBJiXiUCtpVIPez5c4AycGwQnmh167KFjK4pn129o3k+aHQ==", + "dev": true, + "optional": true + }, + "app-builder-bin-mac": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/app-builder-bin-mac/-/app-builder-bin-mac-1.7.2.tgz", + "integrity": "sha512-GLrQ9r17Hnc8dap2rKJ1N7ZukLBbTN88BSG4EC3xmNeafoWbekuxq3IdJYkZAT/eS1Ig4Q6nRcLI9TfnafwZEQ==", + "dev": true, + "optional": true + }, + "app-builder-bin-win": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/app-builder-bin-win/-/app-builder-bin-win-1.7.2.tgz", + "integrity": "sha512-/7tvJZas9T5TBM3QUV0xQkRQAyUlsXdtUsqtOg48mgp1ogPqDjs4W2Jr31YhhiUHDdNgamZc655PzWqAEnbZfQ==", + "dev": true, + "optional": true + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "debug": { @@ -798,22 +830,6 @@ "ms": "2.0.0" } }, - "fs-extra-p": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-4.5.2.tgz", - "integrity": "sha512-ZYqFpBdy9w7PsK+vB30j+TnHOyWHm/CJbUq1qqoE8tb71m6qgk5Wa7gp3MYQdlGFxb9vfznF+yD4jcl8l+y91A==", - "dev": true, - "requires": { - "bluebird-lst": "1.0.5", - "fs-extra": "5.0.0" - } - }, - "lazy-val": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.3.tgz", - "integrity": "sha512-pjCf3BYk+uv3ZcPzEVM0BFvO9Uw58TmlrU0oG5tTrr9Kcid3+kdKxapH8CjdYmVa2nO5wOoZn2rdvZx2PKj/xg==", - "dev": true - }, "semver": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", @@ -827,18 +843,18 @@ "dev": true }, "source-map-support": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz", - "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.4.tgz", + "integrity": "sha512-PETSPG6BjY1AHs2t64vS2aqAgu6dMIMXJULWFBGbh2Gr8nVLbCFDo6i/RMMvviIQ2h1Z8+5gQhVKSn2je9nmdg==", "dev": true, "requires": { "source-map": "0.6.1" } }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -866,16 +882,6 @@ "requires": { "ms": "2.0.0" } - }, - "fs-extra-p": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-4.5.2.tgz", - "integrity": "sha512-ZYqFpBdy9w7PsK+vB30j+TnHOyWHm/CJbUq1qqoE8tb71m6qgk5Wa7gp3MYQdlGFxb9vfznF+yD4jcl8l+y91A==", - "dev": true, - "requires": { - "bluebird-lst": "1.0.5", - "fs-extra": "5.0.0" - } } } }, @@ -971,9 +977,9 @@ "dev": true }, "ci-info": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz", - "integrity": "sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", + "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", "dev": true }, "cli-boxes": { @@ -1173,7 +1179,7 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.1", + "lru-cache": "4.1.2", "shebang-command": "1.2.0", "which": "1.3.0" } @@ -1282,31 +1288,19 @@ } }, "dmg-builder": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-4.1.1.tgz", - "integrity": "sha512-AhRa1J1coSVIUE2KpmievfIA8WI3G1Rxhf7qJYkiR5XWkJYp+6W1Z7vaCabRwEtEYyeJ0M8EdZnFT2BCYxEYVA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-4.1.2.tgz", + "integrity": "sha512-nH7PYrRG9er8sVEOEV9lhngRyZDznViBFVTV/E5p4ZDFy5YZLDHNFWI3m7RKiWnRli5UpOwqLVn0Nxn1vJqsGg==", "dev": true, "requires": { "bluebird-lst": "1.0.5", - "builder-util": "5.6.0", - "electron-builder-lib": "20.2.0", + "builder-util": "5.6.5", + "electron-builder-lib": "20.5.1", "fs-extra-p": "4.5.2", "iconv-lite": "0.4.19", - "js-yaml": "3.10.0", + "js-yaml": "3.11.0", "parse-color": "1.0.0", "sanitize-filename": "1.6.1" - }, - "dependencies": { - "fs-extra-p": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-4.5.2.tgz", - "integrity": "sha512-ZYqFpBdy9w7PsK+vB30j+TnHOyWHm/CJbUq1qqoE8tb71m6qgk5Wa7gp3MYQdlGFxb9vfznF+yD4jcl8l+y91A==", - "dev": true, - "requires": { - "bluebird-lst": "1.0.5", - "fs-extra": "5.0.0" - } - } } }, "dot-prop": { @@ -1363,17 +1357,17 @@ } }, "electron-builder": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-20.2.0.tgz", - "integrity": "sha512-gl+veD9FqunV5oGwBVhoHlHeHbVeXYiLoMw8/Cv3b91gC7XuXHoZ3oGbgaVGgycjm7suW8O6QXYaFujE8osnfw==", + "version": "20.5.1", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-20.5.1.tgz", + "integrity": "sha512-TBBWDXnqrRjTKAqnBJU/fxSxcwHjnXepTBVUEG02TZPUp7jQEdZjdvZDRvK0jM2xsGrL7q/UUS4jFqe4tRIF6g==", "dev": true, "requires": { "bluebird-lst": "1.0.5", - "builder-util": "5.6.0", + "builder-util": "5.6.5", "builder-util-runtime": "4.0.5", - "chalk": "2.3.1", - "dmg-builder": "4.1.1", - "electron-builder-lib": "20.2.0", + "chalk": "2.3.2", + "dmg-builder": "4.1.2", + "electron-builder-lib": "20.5.1", "electron-download-tf": "4.3.4", "fs-extra-p": "4.5.2", "is-ci": "1.1.0", @@ -1385,23 +1379,23 @@ }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "debug": { @@ -1441,35 +1435,6 @@ "universalify": "0.1.1" } }, - "fs-extra-p": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-4.5.2.tgz", - "integrity": "sha512-ZYqFpBdy9w7PsK+vB30j+TnHOyWHm/CJbUq1qqoE8tb71m6qgk5Wa7gp3MYQdlGFxb9vfznF+yD4jcl8l+y91A==", - "dev": true, - "requires": { - "bluebird-lst": "1.0.5", - "fs-extra": "5.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", - "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" - } - } - } - }, - "lazy-val": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.3.tgz", - "integrity": "sha512-pjCf3BYk+uv3ZcPzEVM0BFvO9Uw58TmlrU0oG5tTrr9Kcid3+kdKxapH8CjdYmVa2nO5wOoZn2rdvZx2PKj/xg==", - "dev": true - }, "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", @@ -1497,9 +1462,9 @@ } }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -1508,27 +1473,27 @@ } }, "electron-builder-lib": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/electron-builder-lib/-/electron-builder-lib-20.2.0.tgz", - "integrity": "sha512-bHESbb/OjO0F+tyUAj2wFXVDpuXweB5YR94/f7CKqdpd7k2LeYJvy+cYtgtVXt4CJyg5Vs4Kmak2VvDfWxbO/A==", + "version": "20.5.1", + "resolved": "https://registry.npmjs.org/electron-builder-lib/-/electron-builder-lib-20.5.1.tgz", + "integrity": "sha512-YAUu4KHZQNFPdHqnvwOHmYWmqnwiExKuB4fnETZl5jmN3ZUgxCQFqWdwIGQWoAIdxtkQxTervJMt+uJ/wJWbZA==", "dev": true, "requires": { "7zip-bin": "3.1.0", - "app-builder-bin": "1.5.0", + "app-builder-bin": "1.7.2", "async-exit-hook": "2.0.1", "bluebird-lst": "1.0.5", - "builder-util": "5.6.0", + "builder-util": "5.6.5", "builder-util-runtime": "4.0.5", "chromium-pickle-js": "0.2.0", "debug": "3.1.0", "ejs": "2.5.7", - "electron-osx-sign": "0.4.8", - "electron-publish": "20.2.0", + "electron-osx-sign": "0.4.10", + "electron-publish": "20.5.0", "fs-extra-p": "4.5.2", - "hosted-git-info": "2.5.0", + "hosted-git-info": "2.6.0", "is-ci": "1.1.0", "isbinaryfile": "3.0.2", - "js-yaml": "3.10.0", + "js-yaml": "3.11.0", "lazy-val": "1.0.3", "minimatch": "3.0.4", "normalize-package-data": "2.4.0", @@ -1539,6 +1504,38 @@ "temp-file": "3.1.1" }, "dependencies": { + "app-builder-bin": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-1.7.2.tgz", + "integrity": "sha512-2uJICLdVnkDqizLZa4HclhBsAWiSf1sEPeKS5+GhuxGaDdWnabXZ4ed9hYQ5u81P3hW3lB+xvxDw2TTinDB9Tw==", + "dev": true, + "requires": { + "app-builder-bin-linux": "1.7.2", + "app-builder-bin-mac": "1.7.2", + "app-builder-bin-win": "1.7.2" + } + }, + "app-builder-bin-linux": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/app-builder-bin-linux/-/app-builder-bin-linux-1.7.2.tgz", + "integrity": "sha512-spoW8f6sqo5aKpoZx+scIPMonSTrh8JtKWM3MuDqBJiXiUCtpVIPez5c4AycGwQnmh167KFjK4pn129o3k+aHQ==", + "dev": true, + "optional": true + }, + "app-builder-bin-mac": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/app-builder-bin-mac/-/app-builder-bin-mac-1.7.2.tgz", + "integrity": "sha512-GLrQ9r17Hnc8dap2rKJ1N7ZukLBbTN88BSG4EC3xmNeafoWbekuxq3IdJYkZAT/eS1Ig4Q6nRcLI9TfnafwZEQ==", + "dev": true, + "optional": true + }, + "app-builder-bin-win": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/app-builder-bin-win/-/app-builder-bin-win-1.7.2.tgz", + "integrity": "sha512-/7tvJZas9T5TBM3QUV0xQkRQAyUlsXdtUsqtOg48mgp1ogPqDjs4W2Jr31YhhiUHDdNgamZc655PzWqAEnbZfQ==", + "dev": true, + "optional": true + }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", @@ -1548,20 +1545,10 @@ "ms": "2.0.0" } }, - "fs-extra-p": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-4.5.2.tgz", - "integrity": "sha512-ZYqFpBdy9w7PsK+vB30j+TnHOyWHm/CJbUq1qqoE8tb71m6qgk5Wa7gp3MYQdlGFxb9vfznF+yD4jcl8l+y91A==", - "dev": true, - "requires": { - "bluebird-lst": "1.0.5", - "fs-extra": "5.0.0" - } - }, - "lazy-val": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.3.tgz", - "integrity": "sha512-pjCf3BYk+uv3ZcPzEVM0BFvO9Uw58TmlrU0oG5tTrr9Kcid3+kdKxapH8CjdYmVa2nO5wOoZn2rdvZx2PKj/xg==", + "hosted-git-info": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", + "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", "dev": true }, "semver": { @@ -1653,9 +1640,9 @@ "integrity": "sha1-ihBD4ys6HaHD9VPc4oznZCRhZ+M=" }, "electron-osx-sign": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.8.tgz", - "integrity": "sha1-8Ln63e2eHlTsNfqJh3tcbDTHvEA=", + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.10.tgz", + "integrity": "sha1-vk87ibKnWh3F8eckkIGrKSnKOiY=", "dev": true, "requires": { "bluebird": "3.5.1", @@ -1675,56 +1662,40 @@ } }, "electron-publish": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-20.2.0.tgz", - "integrity": "sha512-n8MEDVSYXi8ZC8sHJMoSzTrOrV6X+6cWmyQP4M6nh0RZaLcyPa/txWuHDeRNysvhOKJvgQJrf09Fuc+CMSY6zg==", + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-20.5.0.tgz", + "integrity": "sha512-BejALjAMG0QbjJNjN66pruwhWt07Iy86VBDxHWXO9IoupYykCEyFdy20jjl5rNTpfnojvynqZyj8QpRkNjJBZg==", "dev": true, "requires": { "bluebird-lst": "1.0.5", - "builder-util": "5.6.0", + "builder-util": "5.6.5", "builder-util-runtime": "4.0.5", - "chalk": "2.3.1", + "chalk": "2.3.2", "fs-extra-p": "4.5.2", "lazy-val": "1.0.3", "mime": "2.2.0" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, - "fs-extra-p": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-4.5.2.tgz", - "integrity": "sha512-ZYqFpBdy9w7PsK+vB30j+TnHOyWHm/CJbUq1qqoE8tb71m6qgk5Wa7gp3MYQdlGFxb9vfznF+yD4jcl8l+y91A==", - "dev": true, - "requires": { - "bluebird-lst": "1.0.5", - "fs-extra": "5.0.0" - } - }, - "lazy-val": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.3.tgz", - "integrity": "sha512-pjCf3BYk+uv3ZcPzEVM0BFvO9Uw58TmlrU0oG5tTrr9Kcid3+kdKxapH8CjdYmVa2nO5wOoZn2rdvZx2PKj/xg==", - "dev": true - }, "mime": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.2.0.tgz", @@ -1732,9 +1703,9 @@ "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -2056,6 +2027,16 @@ "universalify": "0.1.1" } }, + "fs-extra-p": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-4.5.2.tgz", + "integrity": "sha512-ZYqFpBdy9w7PsK+vB30j+TnHOyWHm/CJbUq1qqoE8tb71m6qgk5Wa7gp3MYQdlGFxb9vfznF+yD4jcl8l+y91A==", + "dev": true, + "requires": { + "bluebird-lst": "1.0.5", + "fs-extra": "5.0.0" + } + }, "fs-minipass": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", @@ -3329,7 +3310,7 @@ "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "dev": true, "requires": { - "ci-info": "1.1.2" + "ci-info": "1.1.3" } }, "is-dotfile": { @@ -3545,9 +3526,9 @@ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, "js-yaml": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", - "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", + "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", "dev": true, "requires": { "argparse": "1.0.9", @@ -3651,6 +3632,12 @@ "package-json": "4.0.1" } }, + "lazy-val": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.3.tgz", + "integrity": "sha512-pjCf3BYk+uv3ZcPzEVM0BFvO9Uw58TmlrU0oG5tTrr9Kcid3+kdKxapH8CjdYmVa2nO5wOoZn2rdvZx2PKj/xg==", + "dev": true + }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", @@ -3748,9 +3735,9 @@ "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" }, "lru-cache": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", + "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==", "dev": true, "requires": { "pseudomap": "1.0.2", @@ -4553,38 +4540,9 @@ "dotenv": "5.0.1", "dotenv-expand": "4.2.0", "fs-extra-p": "4.5.2", - "js-yaml": "3.10.0", + "js-yaml": "3.11.0", "json5": "0.5.1", "lazy-val": "1.0.3" - }, - "dependencies": { - "ajv": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.2.0.tgz", - "integrity": "sha1-r6wpW7qgFSRJ5SJ0LkVHwa6TKNI=", - "dev": true, - "requires": { - "fast-deep-equal": "1.0.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } - }, - "fs-extra-p": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-4.5.2.tgz", - "integrity": "sha512-ZYqFpBdy9w7PsK+vB30j+TnHOyWHm/CJbUq1qqoE8tb71m6qgk5Wa7gp3MYQdlGFxb9vfznF+yD4jcl8l+y91A==", - "dev": true, - "requires": { - "bluebird-lst": "1.0.5", - "fs-extra": "5.0.0" - } - }, - "lazy-val": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.3.tgz", - "integrity": "sha512-pjCf3BYk+uv3ZcPzEVM0BFvO9Uw58TmlrU0oG5tTrr9Kcid3+kdKxapH8CjdYmVa2nO5wOoZn2rdvZx2PKj/xg==", - "dev": true - } } }, "read-pkg": { @@ -5859,24 +5817,6 @@ "bluebird-lst": "1.0.5", "fs-extra-p": "4.5.2", "lazy-val": "1.0.3" - }, - "dependencies": { - "fs-extra-p": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-4.5.2.tgz", - "integrity": "sha512-ZYqFpBdy9w7PsK+vB30j+TnHOyWHm/CJbUq1qqoE8tb71m6qgk5Wa7gp3MYQdlGFxb9vfznF+yD4jcl8l+y91A==", - "dev": true, - "requires": { - "bluebird-lst": "1.0.5", - "fs-extra": "5.0.0" - } - }, - "lazy-val": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.3.tgz", - "integrity": "sha512-pjCf3BYk+uv3ZcPzEVM0BFvO9Uw58TmlrU0oG5tTrr9Kcid3+kdKxapH8CjdYmVa2nO5wOoZn2rdvZx2PKj/xg==", - "dev": true - } } }, "term-size": { @@ -6032,7 +5972,7 @@ "dev": true, "requires": { "boxen": "1.3.0", - "chalk": "2.3.1", + "chalk": "2.3.2", "configstore": "3.1.1", "import-lazy": "2.1.0", "is-installed-globally": "0.1.0", @@ -6043,29 +5983,29 @@ }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.3.0" } }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "dev": true, "requires": { "has-flag": "3.0.0" diff --git a/ElectronClient/app/package.json b/ElectronClient/app/package.json index eae51e3fc0..c51f0ca17e 100644 --- a/ElectronClient/app/package.json +++ b/ElectronClient/app/package.json @@ -48,7 +48,7 @@ "babel-cli": "^6.26.0", "babel-preset-react": "^6.24.1", "electron": "^1.7.11", - "electron-builder": "^20.2.0" + "electron-builder": "^20.5.1" }, "optionalDependencies": { "7zip-bin-mac": "^1.0.1", From 554a3eb10d9c1c8d221b9edb228256ed5f581a06 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 16 Mar 2018 09:11:25 +0000 Subject: [PATCH 53/86] Electron release v1.0.74 --- ElectronClient/app/package-lock.json | 2 +- ElectronClient/app/package.json | 2 +- ReactNativeClient/lib/synchronizer.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ElectronClient/app/package-lock.json b/ElectronClient/app/package-lock.json index ccd52e7fb4..727c4b3a8d 100644 --- a/ElectronClient/app/package-lock.json +++ b/ElectronClient/app/package-lock.json @@ -1,6 +1,6 @@ { "name": "Joplin", - "version": "1.0.73", + "version": "1.0.74", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/ElectronClient/app/package.json b/ElectronClient/app/package.json index c51f0ca17e..de3aef9221 100644 --- a/ElectronClient/app/package.json +++ b/ElectronClient/app/package.json @@ -1,6 +1,6 @@ { "name": "Joplin", - "version": "1.0.73", + "version": "1.0.74", "description": "Joplin for Desktop", "main": "main.js", "scripts": { diff --git a/ReactNativeClient/lib/synchronizer.js b/ReactNativeClient/lib/synchronizer.js index 188a134d93..e0afc4d7c7 100644 --- a/ReactNativeClient/lib/synchronizer.js +++ b/ReactNativeClient/lib/synchronizer.js @@ -72,7 +72,7 @@ class Synchronizer { if (report.deleteLocal) lines.push(_("Deleted local items: %d.", report.deleteLocal)); if (report.deleteRemote) lines.push(_("Deleted remote items: %d.", report.deleteRemote)); if (report.fetchingTotal && report.fetchingProcessed) lines.push(_("Fetched items: %d/%d.", report.fetchingProcessed, report.fetchingTotal)); - if (!report.completedTime && report.state) lines.push(_('State: "%s".', Synchronizer.stateToLabel(report.state))); + if (!report.completedTime && report.state) lines.push(_('State: %s.', Synchronizer.stateToLabel(report.state))); if (report.cancelling && !report.completedTime) lines.push(_("Cancelling...")); if (report.completedTime) lines.push(_("Completed: %s", time.unixMsToLocalDateTime(report.completedTime))); if (report.errors && report.errors.length) lines.push(_("Last error: %s", report.errors[report.errors.length - 1].toString().substr(0, 500))); From e4cf03ae46d69a9aacb5a01f8890e5a49a0846ee Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 16 Mar 2018 10:02:58 +0000 Subject: [PATCH 54/86] Only build master branch --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 84015723c2..b2bbf51409 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,10 @@ if: tag IS present rvm: 2.3.3 +branches: + only: + - master + matrix: include: - os: osx From 255a4fac9386af96709fa70c29cd9cf29bdcfbea Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 16 Mar 2018 10:03:47 +0000 Subject: [PATCH 55/86] Electron release v1.0.75 --- ElectronClient/app/package-lock.json | 2 +- ElectronClient/app/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ElectronClient/app/package-lock.json b/ElectronClient/app/package-lock.json index 727c4b3a8d..0d33022096 100644 --- a/ElectronClient/app/package-lock.json +++ b/ElectronClient/app/package-lock.json @@ -1,6 +1,6 @@ { "name": "Joplin", - "version": "1.0.74", + "version": "1.0.75", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/ElectronClient/app/package.json b/ElectronClient/app/package.json index de3aef9221..4765b49175 100644 --- a/ElectronClient/app/package.json +++ b/ElectronClient/app/package.json @@ -1,6 +1,6 @@ { "name": "Joplin", - "version": "1.0.74", + "version": "1.0.75", "description": "Joplin for Desktop", "main": "main.js", "scripts": { From 37fb81e9b278d68d85db9143a6d3626fa4356d3c Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 16 Mar 2018 10:12:23 +0000 Subject: [PATCH 56/86] Trying to build only master branch --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index b2bbf51409..f72fe43b22 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,7 @@ rvm: 2.3.3 branches: only: - master + - /^v\d+\.\d+(\.\d+)?(-\S*)?$/ matrix: include: From 2b45f745b6b4c1d4a70818d34a0b2d634631d5b0 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 16 Mar 2018 10:12:27 +0000 Subject: [PATCH 57/86] Electron release v1.0.76 --- ElectronClient/app/package-lock.json | 2 +- ElectronClient/app/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ElectronClient/app/package-lock.json b/ElectronClient/app/package-lock.json index 0d33022096..1428e36e98 100644 --- a/ElectronClient/app/package-lock.json +++ b/ElectronClient/app/package-lock.json @@ -1,6 +1,6 @@ { "name": "Joplin", - "version": "1.0.75", + "version": "1.0.76", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/ElectronClient/app/package.json b/ElectronClient/app/package.json index 4765b49175..ce500d2910 100644 --- a/ElectronClient/app/package.json +++ b/ElectronClient/app/package.json @@ -1,6 +1,6 @@ { "name": "Joplin", - "version": "1.0.75", + "version": "1.0.76", "description": "Joplin for Desktop", "main": "main.js", "scripts": { From efc46d998939e83d24fdee2bef4749c1fea30834 Mon Sep 17 00:00:00 2001 From: Tobias Grasse <834914+tobias-grasse@users.noreply.github.com> Date: Fri, 16 Mar 2018 12:13:42 +0100 Subject: [PATCH 58/86] Update de_DE.po Add missing translations, minor corrections for existing translations. --- CliClient/locales/de_DE.po | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/CliClient/locales/de_DE.po b/CliClient/locales/de_DE.po index 5d7ffae8a5..f118925809 100644 --- a/CliClient/locales/de_DE.po +++ b/CliClient/locales/de_DE.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Joplin-CLI 1.0.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Tobias Strobel \n" +"Last-Translator: Tobias Grasse \n" "Language-Team: \n" "Language: de_DE\n" "MIME-Version: 1.0\n" @@ -15,6 +15,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.6\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" msgid "To delete a tag, untag the associated notes." msgstr "" @@ -38,7 +40,7 @@ msgid "No notebook selected." msgstr "Kein Notizbuch ausgewählt." msgid "No notebook has been specified." -msgstr "Kein Notizbuch wurde ausgewählt." +msgstr "Es wurde kein Notizbuch festgelegt." msgid "Y" msgstr "J" @@ -586,9 +588,8 @@ msgstr "Exportiere „%s“ ins „%s“ Format. Bitte warten..." msgid "Importing from \"%s\" as \"%s\" format. Please wait..." msgstr "Importiere „%s“ ins „%s“ Format. Bitte warten…" -#, fuzzy msgid "PDF File" -msgstr "Datei" +msgstr "PDF-Datei" msgid "File" msgstr "Datei" @@ -609,7 +610,7 @@ msgid "Export" msgstr "Exportieren" msgid "Print" -msgstr "" +msgstr "Drucken" #, javascript-format msgid "Hide %s" @@ -657,9 +658,8 @@ msgstr "Hilfe" msgid "Website and documentation" msgstr "Webseite und Dokumentation" -#, fuzzy msgid "Make a donation" -msgstr "Webseite und Dokumentation" +msgstr "Spenden" msgid "Check for updates..." msgstr "Überprüfe auf Updates..." @@ -1027,15 +1027,15 @@ msgstr "Abbrechen..." msgid "Completed: %s" msgstr "Abgeschlossen: %s" -#, fuzzy, javascript-format +#, javascript-format msgid "Last error: %s" -msgstr "Schwerwiegender Fehler:" +msgstr "Letzte Fehlermeldung: %s" msgid "Idle" -msgstr "" +msgstr "wartend" msgid "In progress" -msgstr "" +msgstr "In Bearbeitung" #, javascript-format msgid "Synchronisation is already in progress. State: %s" @@ -1333,7 +1333,7 @@ msgid "Cancel synchronisation" msgstr "Synchronisation abbrechen" msgid "Joplin website" -msgstr "" +msgstr "Website von Joplin" #, javascript-format msgid "Master Key %s" From 1141074745dfd0b7c9e6f81085f9af966fb0684d Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 16 Mar 2018 14:19:10 +0000 Subject: [PATCH 59/86] Update faq.md --- readme/faq.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/readme/faq.md b/readme/faq.md index 93b54d7ca6..775770347f 100644 --- a/readme/faq.md +++ b/readme/faq.md @@ -6,6 +6,14 @@ It seems to be due to the setting `set term=ansi` in .vimrc. Removing it should Unfortunately it is not possible. Joplin synchronises with file systems using an open format however it does not mean the sync files are meant to be user-editable. The format is designed to be performant and reliable, not user friendly (it cannot be both), and that cannot be changed. Joplin sync directory is basically just a database. +# Could they be a PIN or password to restrict access to Joplin? + +Short answer: no. The end to end encryption that Joplin implements is to protect the data during transmission and on the cloud service so that only you can access it. + +On the local device it is assumed that the data is safe due to the OS built-in security features. If additional security is needed it's always possible to put the notes on an encrypted Truecrypt drive for instance. + +If someone that you don't trust has access to the computer, they can put a keylogger anyway so any local encryption or PIN access would not be useful. + # Why is it named Joplin? -The name comes from the composer and pianist [Scott Joplin](https://en.wikipedia.org/wiki/Scott_Joplin), which I often listen to. His name is also easy to remember and type so it fell like a good choice. And, to quote a user on Hacker News, "though Scott Joplin's ragtime musical style has a lot in common with some very informal music, his own approach was more educated, sophisticated, and precise. Every note was in its place for a reason, and he was known to prefer his pieces to be performed exactly as written. So you could say that compared to the people who came before him, his notes were more organized". \ No newline at end of file +The name comes from the composer and pianist [Scott Joplin](https://en.wikipedia.org/wiki/Scott_Joplin), which I often listen to. His name is also easy to remember and type so it fell like a good choice. And, to quote a user on Hacker News, "though Scott Joplin's ragtime musical style has a lot in common with some very informal music, his own approach was more educated, sophisticated, and precise. Every note was in its place for a reason, and he was known to prefer his pieces to be performed exactly as written. So you could say that compared to the people who came before him, his notes were more organized". From 86a0e34975482e5806e9a0d06f626093bce945fe Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 16 Mar 2018 14:19:24 +0000 Subject: [PATCH 60/86] Update faq.md --- readme/faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme/faq.md b/readme/faq.md index 775770347f..47b3da86c4 100644 --- a/readme/faq.md +++ b/readme/faq.md @@ -6,7 +6,7 @@ It seems to be due to the setting `set term=ansi` in .vimrc. Removing it should Unfortunately it is not possible. Joplin synchronises with file systems using an open format however it does not mean the sync files are meant to be user-editable. The format is designed to be performant and reliable, not user friendly (it cannot be both), and that cannot be changed. Joplin sync directory is basically just a database. -# Could they be a PIN or password to restrict access to Joplin? +# Could there be a PIN or password to restrict access to Joplin? Short answer: no. The end to end encryption that Joplin implements is to protect the data during transmission and on the cloud service so that only you can access it. From ae9ecdad404c128b21aa23bf1f38a103eb572124 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 16 Mar 2018 14:32:47 +0000 Subject: [PATCH 61/86] All: Fix database upgrade --- .travis.yml | 3 +++ CliClient/app/app.js | 6 +----- ElectronClient/app/app.js | 6 +----- README.md | 2 +- ReactNativeClient/lib/joplin-database.js | 14 ++++++++++++-- .../lib/services/ResourceService.js | 18 +++++++++++++++++- ReactNativeClient/root.js | 6 +----- docs/index.html | 14 +++++++------- 8 files changed, 43 insertions(+), 26 deletions(-) diff --git a/.travis.yml b/.travis.yml index f72fe43b22..18f1138457 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,9 @@ if: tag IS present rvm: 2.3.3 +# It's important to only build production branches otherwise Electron Builder +# might take assets from dev branches and overwrite those of production. +# https://docs.travis-ci.com/user/customizing-the-build/#Building-Specific-Branches branches: only: - master diff --git a/CliClient/app/app.js b/CliClient/app/app.js index 43f17843de..10ce53558d 100644 --- a/CliClient/app/app.js +++ b/CliClient/app/app.js @@ -413,11 +413,7 @@ class Application extends BaseApplication { const tags = await Tag.allWithNotes(); - const resourceService = new ResourceService(); - resourceService.maintenance(); - setInterval(() => { - resourceService.maintenance(); - }, 1000 * 60 * 60 * 4); + ResourceService.runInBackground(); this.dispatch({ type: 'TAG_UPDATE_ALL', diff --git a/ElectronClient/app/app.js b/ElectronClient/app/app.js index da4075339f..3fe37fd8c5 100644 --- a/ElectronClient/app/app.js +++ b/ElectronClient/app/app.js @@ -609,11 +609,7 @@ class Application extends BaseApplication { AlarmService.garbageCollect(); }, 1000 * 60 * 60); - const resourceService = new ResourceService(); - resourceService.maintenance(); - setInterval(() => { - resourceService.maintenance(); - }, 1000 * 60 * 60 * 4); + ResourceService.runInBackground(); if (Setting.value('env') === 'dev') { AlarmService.updateAllNotifications(); diff --git a/README.md b/README.md index 3c6faf904f..b191f58cc0 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ Currently, synchronisation is possible with Nextcloud and OneDrive (by default) ## Nextcloud synchronisation -On the **desktop application** or **mobile application**, go to the config screen and select Nextcloud as the synchronisation target. Then input [the WebDAV URL](https://docs.nextcloud.com/server/9/user_manual/files/access_webdav.html), this is normally `https://example.com/nextcloud/remote.php/dav/files/USERNAME/Joplin` (make sure to create the "Joplin" directory in Nextcloud and to replace USERNAME by your Nextcloud username), and set the username and password. +On the **desktop application** or **mobile application**, go to the config screen and select Nextcloud as the synchronisation target. Then input [the WebDAV URL](https://docs.nextcloud.com/server/9/user_manual/files/access_webdav.html), this is normally `https://example.com/nextcloud/remote.php/dav/files/USERNAME/Joplin` (**make sure to create the "Joplin" directory in Nextcloud** and to replace USERNAME by your Nextcloud username), and set the username and password. If it does not work, please [see this explanation](https://github.com/laurent22/joplin/issues/61#issuecomment-373282608) for more details. On the **terminal application**, you will need to set the `sync.target` config variable and all the `sync.5.path`, `sync.5.username` and `sync.5.password` config variables to, respectively the Nextcloud WebDAV URL, your username and your password. This can be done from the command line mode using: diff --git a/ReactNativeClient/lib/joplin-database.js b/ReactNativeClient/lib/joplin-database.js index b66d449b98..4a13347cf7 100644 --- a/ReactNativeClient/lib/joplin-database.js +++ b/ReactNativeClient/lib/joplin-database.js @@ -202,7 +202,7 @@ class JoplinDatabase extends Database { // default value and thus might cause problems. In that case, the default value // must be set in the synchronizer too. - const existingDatabaseVersions = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; + const existingDatabaseVersions = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]; let currentVersionIndex = existingDatabaseVersions.indexOf(fromVersion); @@ -298,7 +298,7 @@ class JoplinDatabase extends Database { queries.push('ALTER TABLE resources ADD COLUMN encryption_blob_encrypted INT NOT NULL DEFAULT 0'); } - if (targetVersion == 10) { + const upgradeVersion10 = () => { const itemChangesTable = ` CREATE TABLE item_changes ( id INTEGER PRIMARY KEY AUTOINCREMENT, @@ -331,6 +331,16 @@ class JoplinDatabase extends Database { queries.push({ sql: 'INSERT INTO item_changes (item_type, item_id, type, created_time) SELECT 1, id, 1, ? FROM notes', params: [Date.now()] }); } + if (targetVersion == 10) { + upgradeVersion10(); + } + + if (targetVersion == 11) { + queries.push('DROP TABLE item_changes'); + queries.push('DROP TABLE note_resources'); + upgradeVersion10(); + } + queries.push({ sql: 'UPDATE version SET version = ?', params: [targetVersion] }); await this.transactionExecBatch(queries); diff --git a/ReactNativeClient/lib/services/ResourceService.js b/ReactNativeClient/lib/services/ResourceService.js index 16a048e728..3caf9495ff 100644 --- a/ReactNativeClient/lib/services/ResourceService.js +++ b/ReactNativeClient/lib/services/ResourceService.js @@ -4,6 +4,7 @@ const Note = require('lib/models/Note'); const Resource = require('lib/models/Resource'); const BaseModel = require('lib/BaseModel'); const BaseService = require('lib/services/BaseService'); +const { shim } = require('lib/shim'); class ResourceService extends BaseService { @@ -23,7 +24,7 @@ class ResourceService extends BaseService { WHERE item_type = ? AND id > ? ORDER BY id ASC - LIMIT 10 + LIMIT 100 `, [BaseModel.TYPE_NOTE, lastId]); if (!changes.length) break; @@ -77,6 +78,21 @@ class ResourceService extends BaseService { await this.deleteOrphanResources(); } + static runInBackground() { + if (this.isRunningInBackground_) return; + + this.isRunningInBackground_ = true; + const service = new ResourceService(); + + setTimeout(() => { + service.maintenance(); + }, 1000 * 30); + + shim.setInterval(() => { + service.maintenance(); + }, 1000 * 60 * 60 * 4); + } + } module.exports = ResourceService; \ No newline at end of file diff --git a/ReactNativeClient/root.js b/ReactNativeClient/root.js index 5313ea9349..d4fbec9954 100644 --- a/ReactNativeClient/root.js +++ b/ReactNativeClient/root.js @@ -454,11 +454,7 @@ async function initialize(dispatch) { AlarmService.garbageCollect(); }, 1000 * 60 * 60); - const resourceService = new ResourceService(); - resourceService.maintenance(); - PoorManIntervals.setInterval(() => { - resourceService.maintenance(); - }, 1000 * 60 * 60 * 4); + ResourceService.runInBackground(); reg.scheduleSync().then(() => { // Wait for the first sync before updating the notifications, since synchronisation diff --git a/docs/index.html b/docs/index.html index 334237eb61..0a60260740 100644 --- a/docs/index.html +++ b/docs/index.html @@ -311,7 +311,7 @@ sudo ln -s ~/.joplin-bin/bin/joplin /usr/bin/joplin

        One of the goals of Joplin was to avoid being tied to any particular company or service, whether it is Evernote, Google or Microsoft. As such the synchronisation is designed without any hard dependency to any particular service. Most of the synchronisation process is done at an abstract level and access to external services, such as Nextcloud or OneDrive, is done via lightweight drivers. It is easy to support new services by creating simple drivers that provide a filesystem-like interface, i.e. the ability to read, write, delete and list items. It is also simple to switch from one service to another or to even sync to multiple services at once. Each note, notebook, tags, as well as the relation between items is transmitted as plain text files during synchronisation, which means the data can also be moved to a different application, can be easily backed up, inspected, etc.

        Currently, synchronisation is possible with Nextcloud and OneDrive (by default) or the local filesystem. A Dropbox one will also be available once this React Native bug is fixed. To setup synchronisation please follow the instructions below. After that, the application will synchronise in the background whenever it is running, or you can click on "Synchronise" to start a synchronisation manually.

        Nextcloud synchronisation

        -

        On the desktop application or mobile application, go to the config screen and select Nextcloud as the synchronisation target. Then input the WebDAV URL, this is normally https://example.com/nextcloud/remote.php/dav/files/USERNAME/Joplin (make sure to create the "Joplin" directory in Nextcloud and to replace USERNAME by your Nextcloud username), and set the username and password.

        +

        On the desktop application or mobile application, go to the config screen and select Nextcloud as the synchronisation target. Then input the WebDAV URL, this is normally https://example.com/nextcloud/remote.php/dav/files/USERNAME/Joplin (make sure to create the "Joplin" directory in Nextcloud and to replace USERNAME by your Nextcloud username), and set the username and password. If it does not work, please see this explanation for more details.

        On the terminal application, you will need to set the sync.target config variable and all the sync.5.path, sync.5.username and sync.5.password config variables to, respectively the Nextcloud WebDAV URL, your username and your password. This can be done from the command line mode using:

        :config sync.5.path https://example.com/nextcloud/remote.php/dav/files/USERNAME/Joplin
         :config sync.5.username YOUR_USERNAME
        @@ -409,14 +409,14 @@ $$
         
         Croatian
         hr_HR
        -Hrvoje Mandić trbuhom@net.hr
        +Hrvoje Mandić trbuhom@net.hr
         65%
         
         
         
         Deutsch
         de_DE
        -Tobias Strobel git@strobeltobias.de
        +Tobias Strobel git@strobeltobias.de
         97%
         
         
        @@ -430,7 +430,7 @@ $$
         
         Español
         es_ES
        -Fernando Martín f@mrtn.es
        +Fernando Martín f@mrtn.es
         100%
         
         
        @@ -458,21 +458,21 @@ $$
         
         Português (Brasil)
         pt_BR
        -Renato Nunes Bastos rnbastos@gmail.com
        +Renato Nunes Bastos rnbastos@gmail.com
         98%
         
         
         
         Русский
         ru_RU
        -Artyom Karlov artyom.karlov@gmail.com
        +Artyom Karlov artyom.karlov@gmail.com
         100%
         
         
         
         中文 (简体)
         zh_CN
        -RCJacH RCJacH@outlook.com
        +RCJacH RCJacH@outlook.com
         66%
         
         
        
        From 68d77a69e65fbcc08fbf8e48d142a1e1fdd39d5b Mon Sep 17 00:00:00 2001
        From: Laurent Cozic 
        Date: Fri, 16 Mar 2018 14:33:53 +0000
        Subject: [PATCH 62/86] Updated translations
        
        ---
         CliClient/locales/de_DE.po            |  6 ++----
         CliClient/locales/en_GB.po            |  2 +-
         CliClient/locales/es_ES.po            |  4 ++--
         CliClient/locales/eu.po               |  4 ++--
         CliClient/locales/fr_FR.po            |  6 ++++--
         CliClient/locales/hr_HR.po            |  4 ++--
         CliClient/locales/it_IT.po            |  4 ++--
         CliClient/locales/ja_JP.po            |  4 ++--
         CliClient/locales/joplin.pot          |  2 +-
         CliClient/locales/nl_BE.po            |  4 ++--
         CliClient/locales/pt_BR.po            |  4 ++--
         CliClient/locales/ru_RU.po            |  4 ++--
         CliClient/locales/zh_CN.po            |  4 ++--
         ElectronClient/app/locales/de_DE.json |  2 +-
         ElectronClient/app/locales/en_GB.json |  2 +-
         ElectronClient/app/locales/es_ES.json |  2 +-
         ElectronClient/app/locales/eu.json    |  2 +-
         ElectronClient/app/locales/fr_FR.json |  2 +-
         ElectronClient/app/locales/hr_HR.json |  2 +-
         ElectronClient/app/locales/it_IT.json |  2 +-
         ElectronClient/app/locales/ja_JP.json |  2 +-
         ElectronClient/app/locales/nl_BE.json |  2 +-
         ElectronClient/app/locales/pt_BR.json |  2 +-
         ElectronClient/app/locales/ru_RU.json |  2 +-
         ElectronClient/app/locales/zh_CN.json |  2 +-
         README.md                             | 14 +++++++-------
         ReactNativeClient/locales/de_DE.json  |  2 +-
         ReactNativeClient/locales/en_GB.json  |  2 +-
         ReactNativeClient/locales/es_ES.json  |  2 +-
         ReactNativeClient/locales/eu.json     |  2 +-
         ReactNativeClient/locales/fr_FR.json  |  2 +-
         ReactNativeClient/locales/hr_HR.json  |  2 +-
         ReactNativeClient/locales/it_IT.json  |  2 +-
         ReactNativeClient/locales/ja_JP.json  |  2 +-
         ReactNativeClient/locales/nl_BE.json  |  2 +-
         ReactNativeClient/locales/pt_BR.json  |  2 +-
         ReactNativeClient/locales/ru_RU.json  |  2 +-
         ReactNativeClient/locales/zh_CN.json  |  2 +-
         docs/index.html                       | 26 +++++++++++++-------------
         39 files changed, 70 insertions(+), 70 deletions(-)
        
        diff --git a/CliClient/locales/de_DE.po b/CliClient/locales/de_DE.po
        index f118925809..15d49ccdc9 100644
        --- a/CliClient/locales/de_DE.po
        +++ b/CliClient/locales/de_DE.po
        @@ -15,8 +15,6 @@ msgstr ""
         "Content-Transfer-Encoding: 8bit\n"
         "X-Generator: Poedit 2.0.6\n"
         "Plural-Forms: nplurals=2; plural=(n != 1);\n"
        -"POT-Creation-Date: \n"
        -"PO-Revision-Date: \n"
         
         msgid "To delete a tag, untag the associated notes."
         msgstr ""
        @@ -1016,8 +1014,8 @@ msgstr "Remote Objekte gelöscht: %d."
         msgid "Fetched items: %d/%d."
         msgstr "Geladene Objekte: %d/%d."
         
        -#, javascript-format
        -msgid "State: \"%s\"."
        +#, fuzzy, javascript-format
        +msgid "State: %s."
         msgstr "Status: \"%s\"."
         
         msgid "Cancelling..."
        diff --git a/CliClient/locales/en_GB.po b/CliClient/locales/en_GB.po
        index 55df48983a..6835bfc491 100644
        --- a/CliClient/locales/en_GB.po
        +++ b/CliClient/locales/en_GB.po
        @@ -897,7 +897,7 @@ msgid "Fetched items: %d/%d."
         msgstr ""
         
         #, javascript-format
        -msgid "State: \"%s\"."
        +msgid "State: %s."
         msgstr ""
         
         msgid "Cancelling..."
        diff --git a/CliClient/locales/es_ES.po b/CliClient/locales/es_ES.po
        index ea2e4161ec..1d4c53fc16 100644
        --- a/CliClient/locales/es_ES.po
        +++ b/CliClient/locales/es_ES.po
        @@ -993,8 +993,8 @@ msgstr "Elementos remotos borrados: %d."
         msgid "Fetched items: %d/%d."
         msgstr "Elementos obtenidos: %d/%d."
         
        -#, javascript-format
        -msgid "State: \"%s\"."
        +#, fuzzy, javascript-format
        +msgid "State: %s."
         msgstr "Estado: «%s»."
         
         msgid "Cancelling..."
        diff --git a/CliClient/locales/eu.po b/CliClient/locales/eu.po
        index f18e36d821..f23cea065f 100644
        --- a/CliClient/locales/eu.po
        +++ b/CliClient/locales/eu.po
        @@ -1000,8 +1000,8 @@ msgstr "Urruneko itemak ezabatuta: %d."
         msgid "Fetched items: %d/%d."
         msgstr "Itemak eskuratuta: %d%d."
         
        -#, javascript-format
        -msgid "State: \"%s\"."
        +#, fuzzy, javascript-format
        +msgid "State: %s."
         msgstr "Egoera: \"%s\"."
         
         msgid "Cancelling..."
        diff --git a/CliClient/locales/fr_FR.po b/CliClient/locales/fr_FR.po
        index 1b29da6101..0b124b4ac8 100644
        --- a/CliClient/locales/fr_FR.po
        +++ b/CliClient/locales/fr_FR.po
        @@ -14,6 +14,8 @@ 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."
        @@ -1000,8 +1002,8 @@ msgid "Fetched items: %d/%d."
         msgstr "Téléchargés : %d/%d."
         
         #, javascript-format
        -msgid "State: \"%s\"."
        -msgstr "État : \"%s\"."
        +msgid "State: %s."
        +msgstr "État : %s."
         
         msgid "Cancelling..."
         msgstr "Annulation..."
        diff --git a/CliClient/locales/hr_HR.po b/CliClient/locales/hr_HR.po
        index a54d59d65c..e00c2bc4dd 100644
        --- a/CliClient/locales/hr_HR.po
        +++ b/CliClient/locales/hr_HR.po
        @@ -987,8 +987,8 @@ msgstr "Obrisane udaljene stavke: %d."
         msgid "Fetched items: %d/%d."
         msgstr "Stvorene lokalne stavke: %d."
         
        -#, javascript-format
        -msgid "State: \"%s\"."
        +#, fuzzy, javascript-format
        +msgid "State: %s."
         msgstr "Stanje: \"%s\"."
         
         msgid "Cancelling..."
        diff --git a/CliClient/locales/it_IT.po b/CliClient/locales/it_IT.po
        index 1a72487ca3..3965459f0f 100644
        --- a/CliClient/locales/it_IT.po
        +++ b/CliClient/locales/it_IT.po
        @@ -973,8 +973,8 @@ msgstr "Elementi remoti eliminati: %d."
         msgid "Fetched items: %d/%d."
         msgstr "Elementi locali creati: %d."
         
        -#, javascript-format
        -msgid "State: \"%s\"."
        +#, fuzzy, javascript-format
        +msgid "State: %s."
         msgstr "Stato: \"%s\"."
         
         msgid "Cancelling..."
        diff --git a/CliClient/locales/ja_JP.po b/CliClient/locales/ja_JP.po
        index 05494d43be..33ed5060d9 100644
        --- a/CliClient/locales/ja_JP.po
        +++ b/CliClient/locales/ja_JP.po
        @@ -975,8 +975,8 @@ msgstr "リモートアイテムの削除: %d."
         msgid "Fetched items: %d/%d."
         msgstr "ローカルアイテムの作成: %d."
         
        -#, javascript-format
        -msgid "State: \"%s\"."
        +#, fuzzy, javascript-format
        +msgid "State: %s."
         msgstr "状態: \"%s\"。"
         
         msgid "Cancelling..."
        diff --git a/CliClient/locales/joplin.pot b/CliClient/locales/joplin.pot
        index 55df48983a..6835bfc491 100644
        --- a/CliClient/locales/joplin.pot
        +++ b/CliClient/locales/joplin.pot
        @@ -897,7 +897,7 @@ msgid "Fetched items: %d/%d."
         msgstr ""
         
         #, javascript-format
        -msgid "State: \"%s\"."
        +msgid "State: %s."
         msgstr ""
         
         msgid "Cancelling..."
        diff --git a/CliClient/locales/nl_BE.po b/CliClient/locales/nl_BE.po
        index 0eaa23c6eb..fac561b2e7 100644
        --- a/CliClient/locales/nl_BE.po
        +++ b/CliClient/locales/nl_BE.po
        @@ -1002,8 +1002,8 @@ msgstr "Verwijderde remote items: %d."
         msgid "Fetched items: %d/%d."
         msgstr "Opgehaalde items: %d/%d."
         
        -#, javascript-format
        -msgid "State: \"%s\"."
        +#, fuzzy, javascript-format
        +msgid "State: %s."
         msgstr "Status: \"%s\""
         
         msgid "Cancelling..."
        diff --git a/CliClient/locales/pt_BR.po b/CliClient/locales/pt_BR.po
        index 85f5da3557..39c8ee7511 100644
        --- a/CliClient/locales/pt_BR.po
        +++ b/CliClient/locales/pt_BR.po
        @@ -993,8 +993,8 @@ msgstr "Itens remotos excluídos: %d."
         msgid "Fetched items: %d/%d."
         msgstr "Itens pesquisados: %d/%d."
         
        -#, javascript-format
        -msgid "State: \"%s\"."
        +#, fuzzy, javascript-format
        +msgid "State: %s."
         msgstr "Estado: \"%s\"."
         
         msgid "Cancelling..."
        diff --git a/CliClient/locales/ru_RU.po b/CliClient/locales/ru_RU.po
        index 0eea8492e2..3e3b13bb88 100644
        --- a/CliClient/locales/ru_RU.po
        +++ b/CliClient/locales/ru_RU.po
        @@ -993,8 +993,8 @@ msgstr "Удалено удалённых элементов: %d."
         msgid "Fetched items: %d/%d."
         msgstr "Получено элементов: %d/%d."
         
        -#, javascript-format
        -msgid "State: \"%s\"."
        +#, fuzzy, javascript-format
        +msgid "State: %s."
         msgstr "Статус: «%s»."
         
         msgid "Cancelling..."
        diff --git a/CliClient/locales/zh_CN.po b/CliClient/locales/zh_CN.po
        index ce3dafa316..1500bdfb0d 100644
        --- a/CliClient/locales/zh_CN.po
        +++ b/CliClient/locales/zh_CN.po
        @@ -941,8 +941,8 @@ msgstr "已删除远程项目: %d。"
         msgid "Fetched items: %d/%d."
         msgstr "已新建本地项目: %d。"
         
        -#, javascript-format
        -msgid "State: \"%s\"."
        +#, fuzzy, javascript-format
        +msgid "State: %s."
         msgstr "状态:\"%s\"。"
         
         msgid "Cancelling..."
        diff --git a/ElectronClient/app/locales/de_DE.json b/ElectronClient/app/locales/de_DE.json
        index b3b3261428..f12d792bd9 100644
        --- a/ElectronClient/app/locales/de_DE.json
        +++ b/ElectronClient/app/locales/de_DE.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"Um eine Markierung zu löschen, entferne diese bei allen damit verbundenen Notizen.","Please select the note or notebook to be deleted first.":"Wähle bitte zuerst eine Notiz oder ein Notizbuch aus, das gelöscht werden soll.","Press Ctrl+D or type \"exit\" to exit the application":"Drücke Strg+D oder tippe \"exit\" um das Programm zu verlassen","More than one item match \"%s\". Please narrow down your query.":"Mehr als eine Notiz stimmt mit \"%s\" überein. Bitte die Suche einschränken.","No notebook selected.":"Kein Notizbuch ausgewählt.","No notebook has been specified.":"Kein Notizbuch wurde ausgewählt.","Y":"J","n":"n","N":"N","y":"j","Cancelling background synchronisation... Please wait.":"Breche Hintergrund-Synchronisation ab... Bitte warten.","No such command: %s":"Ungültiger Befehl: %s","The command \"%s\" is only available in GUI mode":"Der Befehl \"%s\" ist nur im GUI Modus verfügbar","Cannot change encrypted item":"Kann verschlüsseltes Objekt nicht ändern","Missing required argument: %s":"Fehlendes erforderliches Argument: %s","%s: %s":"%s: %s","Your choice: ":"Deine Auswahl: ","Invalid answer: %s":"Ungültige Antwort: %s","Attaches the given file to the note.":"Hängt die ausgewählte Datei an die Notiz an.","Cannot find \"%s\".":"Kann \"%s\" nicht finden.","Displays the given note.":"Zeigt die jeweilige Notiz an.","Displays the complete information about note.":"Zeigt alle Informationen über die Notiz an.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Zeigt an oder stellt einen Optionswert. Wenn kein [Wert] angegeben ist, wird der Wert vom gegebenen [Namen] angezeigt. Wenn weder [Name] noch [Wert] gegeben sind, wird eine Liste der momentanen Konfiguration angezeigt.","Also displays unset and hidden config variables.":"Zeigt auch nicht gesetzte und versteckte Konfigurationsvariablen an.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Dupliziert die Notizen die mit  übereinstimmen in [Notizbuch]. Wenn kein Notizbuch angegeben ist, wird die Notiz in das aktuelle Notizbuch kopiert.","Marks a to-do as done.":"Markiert ein To-Do als erledigt.","Note is not a to-do: \"%s\"":"Notiz ist kein To-Do: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Verwaltet die E2EE-Konfiguration. Die Befehle lauten `enable`, `disable`, `decrypt`, `status` und `target-status`.","Enter master password:":"Master-Passwort eingeben:","Operation cancelled":"Vorgang abgebrochen","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Starte Entschlüsselung.... Bitte warten, da dies je nach Anzahl der betreffenden Objekte einige Minuten dauern kann.","Completed decryption.":"Entschlüsselung abgeschlossen.","Enabled":"Aktiviert","Disabled":"Deaktiviert","Encryption is: %s":"Verschlüsselung ist: %s","Edit note.":"Notiz bearbeiten.","No text editor is defined. Please set it using `config editor `":"Kein Texteditor definiert. Bitte lege einen mit `config editor ` fest","No active notebook.":"Kein aktives Notizbuch.","Note does not exist: \"%s\". Create it?":"Notiz \"%s\" existiert nicht. Soll sie erstellt werden?","Starting to edit note. Close the editor to get back to the prompt.":"Beginne die Notiz zu bearbeiten. Schließe das Textverarbeitungsprogramm, um zurück zum Terminal zu gelangen.","Error opening note in editor: %s":"Fehler beim Öffnen der Notiz im Editor: %s","Note has been saved.":"Die Notiz wurde gespeichert.","Exits the application.":"Beendet das Programm.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exportiert Joplin Dateien in den angegebenen Pfad. Standardmäßig wird die komplette Datenbank inklusive Notizbüchern, Notizen, Markierungen und Anhängen exportiert.","Destination format: %s":"Zielformat: %s","Exports only the given note.":"Exportiert nur die angegebene Notiz.","Exports only the given notebook.":"Exportiert nur das angegebene Notizbuch.","Displays a geolocation URL for the note.":"Zeigt die Standort-URL der Notiz an.","Displays usage information.":"Zeigt die Nutzungsstatistik an.","For information on how to customise the shortcuts please visit %s":"Für weitere Informationen über die Anpassung von Tastenkürzel besuche bitte %s","Shortcuts are not available in CLI mode.":"Tastenkürzel sind im CLI Modus nicht verfügbar.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Tippe `help [Befehl]` um weitere Informationen über einen Befehl zu erhalten oder tippe `help all` für die vollständigen Informationen zur Befehlsverwendung.","The possible commands are:":"Mögliche Befehle lauten:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In jedem Befehl können Notizen oder Notizbücher durch ihren Titel oder ihre ID spezifiziert werden, oder durch die Abkürzung `$n` oder `$b` um entweder das momentan ausgewählte Notizbuch oder die momentan ausgewählte Notiz auszuwählen. `$c` kann benutzt werden, um auf die momentane Auswahl zu verweisen.","To move from one pane to another, press Tab or Shift+Tab.":"Um von einem Fenster zu einem anderen zu wechseln, drücke Tab oder Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Benutze die Pfeiltasten und Bild hoch/runter um durch Listen und Texte zu scrollen (inklusive diesem Terminal).","To maximise/minimise the console, press \"TC\".":"Um das Terminal zu maximieren/minimieren, drücke \"TC\".","To enter command line mode, press \":\"":"Um den Kommandozeilen Modus aufzurufen, drücke \":\"","To exit command line mode, press ESCAPE":"Um den Kommandozeilen Modus zu beenden, drücke ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Um die komplette Liste aller verfügbaren Tastenkürzeln anzuzeigen, tippe `help keymap` ein","Imports data into Joplin.":"Importiert Daten in Joplin.","Source format: %s":"Quellformat: %s","Do not ask for confirmation.":"Nicht nach einer Bestätigung fragen.","Found: %d.":"Gefunden: %d.","Created: %d.":"Erstellt: %d.","Updated: %d.":"Aktualisiert: %d.","Skipped: %d.":"Übersprungen: %d.","Resources: %d.":"Anhänge: %d.","Tagged: %d.":"Markiert: %d.","Importing notes...":"Importiere Notizen...","The notes have been imported: %s":"Die Notizen wurden importiert: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Zeigt die Notizen im momentanen Notizbuch an. Benutze `ls /` um eine Liste aller Notizbücher anzuzeigen.","Displays only the first top  notes.":"Zeigt nur die ersten  Notizen an.","Sorts the item by  (eg. title, updated_time, created_time).":"Sortiert nach  ( z.B. Titel, Bearbeitungszeitpunkt, Erstellungszeitpunkt)","Reverses the sorting order.":"Dreht die Sortierreihenfolge um.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Zeigt nur bestimmte Item Typen an. Kann `n` für Notizen sein, `t` für To-Dos, oder `nt` für Notizen und To-Dos ( z.B. zeigt `-tt` nur To-Dos an, während `-ttd` Notizen und To-Dos anzeigt).","Either \"text\" or \"json\"":"Entweder \"text\" oder \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Verwende ausführliches Listen Format. Das Format lautet: ID, NOTIZEN_ANZAHL (für Notizbuch), DATUM, TODO_BEARBEITET (für To-Dos), TITEL","Please select a notebook first.":"Bitte wähle erst ein Notizbuch aus.","Creates a new notebook.":"Erstellt ein neues Notizbuch.","Creates a new note.":"Erstellt eine neue Notiz.","Notes can only be created within a notebook.":"Notizen können nur in einem Notizbuch erstellt werden.","Creates a new to-do.":"Erstellt ein neues To-Do.","Moves the notes matching  to [notebook].":"Verschiebt die Notizen, die mit  übereinstimmen, zu [Notizbuch]","Renames the given  (note or notebook) to .":"Benennt das angegebene  ( Notiz oder Notizbuch ) zu  um.","Deletes the given notebook.":"Löscht das ausgewählte Notizbuch.","Deletes the notebook without asking for confirmation.":"Löscht das Notizbuch, ohne nach einer Bestätigung zu fragen.","Delete notebook? All notes within this notebook will also be deleted.":"Notizbuch wirklich löschen? Alle Notizen darin werden ebenfalls gelöscht.","Deletes the notes matching .":"Löscht die Notizen, die mit  übereinstimmen.","Deletes the notes without asking for confirmation.":"Löscht die Notizen, ohne nach einer Bestätigung zu fragen.","%d notes match this pattern. Delete them?":"%d Notizen stimmen mit diesem Muster überein. Sollen sie gelöscht werden?","Delete note?":"Notiz löschen?","Searches for the given  in all the notes.":"Sucht nach dem angegebenen  in allen Notizen.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Setzt die Eigenschaft  der gegebenen  auf den gegebenen [Wert]. Mögliche Werte sind:\n\n%s","Displays summary about the notes and notebooks.":"Zeigt eine Zusammenfassung der Notizen und Notizbücher an.","Synchronises with remote storage.":"Synchronisiert mit Remotespeicher.","Sync to provided target (defaults to sync.target config value)":"Mit dem angegebenen Ziel synchronisieren (voreingestellt auf den sync.target Optionswert)","Authentication was not completed (did not receive an authentication token).":"Authentifizierung wurde nicht abgeschlossen (keinen Authentifizierung-Token erhalten).","Not authentified with %s. Please provide any missing credentials.":"Keine Authentifizierung mit %s. Gib bitte alle fehlenden Zugangsdaten an.","Synchronisation is already in progress.":"Synchronisation wird bereits ausgeführt.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Eine Sperrdatei ist vorhanden. Wenn du dir sicher bist, dass keine Synchronisation im Gange ist, kannst du die Sperrdatei \"%s\" löschen und fortfahren.","Synchronisation target: %s (%s)":"Synchronisationsziel: %s (%s)","Cannot initialize synchroniser.":"Kann Synchronisierer nicht initialisieren.","Starting synchronisation...":"Starte Synchronisation...","Cancelling... Please wait.":"Abbrechen… Bitte warten."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" kann \"add\", \"remove\" or \"list\" sein, um eine [Markierung] zu [Notiz] zuzuweisen oder zu entfernen, oder um mit [Markierung] markierte Notizen anzuzeigen. Mit dem Befehl `tag list` können alle Markierungen angezeigt werden.","Invalid command: \"%s\"":"Ungültiger Befehl: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" kann entweder \"toggle\" oder \"clear\" sein. Benutze \"toggle\", um ein To-Do abzuschließen, oder es zu beginnen (Wenn das Ziel eine normale Notiz ist, wird diese in ein To-Do umgewandelt). Benutze \"clear\", um es zurück in ein To-Do zu verwandeln.","Marks a to-do as non-completed.":"Makiert ein To-Do als nicht-abgeschlossen.","Switches to [notebook] - all further operations will happen within this notebook.":"Wechselt zu [Notizbuch] - alle weiteren Aktionen werden in diesem Notizbuch ausgeführt.","Displays version information":"Zeigt die Versionsnummer an","%s %s (%s)":"%s %s (%s)","Enum":"Aufzählung","Type: %s.":"Typ: %s.","Possible values: %s.":"Mögliche Werte: %s.","Default: %s":"Standard: %s","Possible keys/values:":"Mögliche Werte:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Schwerwiegender Fehler:","The application has been authorised - you may now close this browser tab.":"Das Programm wurde autorisiert - Du kannst diesen Browsertab nun schließen.","The application has been successfully authorised.":"Das Programm wurde erfolgreich autorisiert.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Bitte öffne die folgende URL in deinem Browser, um das Programm zu authentifizieren. Das Programm wird einen Ordner in \"Apps/Joplin\" erstellen und wird nur in diesem Ordner schreiben und lesen. Es wird weder Zugriff auf Dateien außerhalb dieses Ordners haben, noch auf andere persönliche Daten. Es werden keine Daten mit Dritten geteilt.","Search:":"Suchen:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Willkommen bei Joplin!\n\nTippe `:help shortcuts` für eine Liste der Shortcuts oder `:help` für Nutzungsinformationen ein.\n\nUm zum Beispiel ein Notizbuch zu erstellen, drücke `mb`; um eine Notiz zu erstellen drücke `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Ein oder mehrere Objekte sind derzeit verschlüsselt und es kann erforderlich sein, ein Master-Passwort zu hinterlegen. Gib dazu bitte `e2ee decrypt` ein. Wenn du das Passwort bereits eingegeben hast, werden die verschlüsselten Objekte im Hintergrund entschlüsselt und stehen in Kürze zur Verfügung.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportiere „%s“ ins „%s“ Format. Bitte warten...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importiere „%s“ ins „%s“ Format. Bitte warten…","PDF File":"PDF File","File":"Datei","New note":"Neue Notiz","New to-do":"Neues To-Do","New notebook":"Neues Notizbuch","Import":"Importieren","Export":"Exportieren","Print":"","Hide %s":"%s ausblenden","Quit":"Verlassen","Edit":"Bearbeiten","Copy":"Kopieren","Cut":"Ausschneiden","Paste":"Einfügen","Search in all the notes":"Alle Notizen durchsuchen","View":"Ansicht","Toggle editor layout":"Editor Layout umschalten","Tools":"Werkzeuge","Synchronisation status":"Status der Synchronisation","Encryption options":"Verschlüsselung","General Options":"Allgemeine Einstellungen","Help":"Hilfe","Website and documentation":"Webseite und Dokumentation","Make a donation":"Make a donation","Check for updates...":"Überprüfe auf Updates...","About Joplin":"Über Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Öffne %s","Exit":"Verlassen","OK":"OK","Cancel":"Abbrechen","Current version is up-to-date.":"Die aktuelle Version ist up-to-date.","An update is available, do you want to download it now?":"Es ist ein Update verfügbar! Soll dies jetzt heruntergeladen werden?","Yes":"Ja","No":"Nein","Check synchronisation configuration":"Überprüfen der Synchronisationseinstellungen","Notes and settings are stored in: %s":"Notizen und Einstellungen werden gespeichert in: %s","Save":"Speichern","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Durch die Deaktivierung der Verschlüsselung werden *alle* Notizen und Anhänge neu synchronisiert und unverschlüsselt an das Synchronisierungsziel gesendet. Möchtest du fortfahren?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Durch das Aktivieren der Verschlüsselung werden alle Notizen und Anhänge neu synchronisiert und verschlüsselt an das Synchronisationsziel gesendet. Achte darauf, dass du das Passwort nicht verlierst, da dies aus Sicherheitsgründen die einzige Möglichkeit ist, deine Daten zu entschlüsseln! Um die Verschlüsselung zu aktivieren, gib bitte unten dein Passwort ein.","Disable encryption":"Verschlüsselung deaktivieren","Enable encryption":"Verschlüsselung aktivieren","Master Keys":"Hauptschlüssel","Active":"Aktiv","ID":"ID","Source":"Quelle","Created":"Erstellt","Updated":"Aktualisiert","Password":"Passwort","Password OK":"Passwort OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Hinweis: Nur ein Hauptschlüssel wird für die Verschlüsselung verwendet (der als \"aktiv\" markierte). Jeder der Schlüssel kann für die Entschlüsselung verwendet werden, abhängig davon, wie die jeweiligen Notizen oder Notizbücher ursprünglich verschlüsselt wurden.","Missing Master Keys":"Fehlender Master-Key","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"Die Master-Keas dieser IDs werden für die Verschlüsselung einiger ...","Status":"Status","Encryption is:":"Die Verschlüsselung ist:","Back":"Zurück","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Neues Notizbuch \"%s\" wird erstellt und die Datei \"%s\" wird dort hinein importiert","Please create a notebook first.":"Bitte erstelle zuerst ein Notizbuch.","Please create a notebook first":"Bitte erstelle zuerst ein Notizbuch","Notebook title:":"Notizbuch Titel:","Add or remove tags:":"Füge hinzu oder entferne Markierungen:","Separate each tag by a comma.":"Trenne jede Markierung mit einem Komma.","Rename notebook:":"Notizbuch umbenennen:","Set alarm:":"Alarm erstellen:","Search":"Suchen","Layout":"Layout","Some items cannot be synchronised.":"Manche Objekte können nicht synchronisiert werden.","View them now":"Zeige sie jetzt an","Some items cannot be decrypted.":"Einige Objekte können nicht entschlüsselt werden.","Set the password":"Setze ein Passwort","Add or remove tags":"Markierungen hinzufügen oder entfernen","Switch between note and to-do type":"Zwischen Notiz und To-Do Typ wechseln","Delete":"Löschen","Delete notes?":"Notizen löschen?","No notes in here. Create one by clicking on \"New note\".":"Hier sind noch keine Notizen. Erstelle eine, indem du auf \"Neue Notiz\" drückst.","There is currently no notebook. Create one by clicking on \"New notebook\".":"Momentan existieren noch keine Notizbücher. Erstelle eines, indem du auf den (+) Knopf drückst.","Open...":"Öffne...","Save as...":"Sichern unter...","Unsupported link or message: %s":"Nicht unterstützter Link oder Nachricht: %s","Attach file":"Datei anhängen","Tags":"Markierungen","Set alarm":"Alarm erstellen","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Diese Notiz hat keinen Inhalt. Klicke auf „%s“ um den Editor zu aktivieren und die Notiz zu bearbeiten.","to-do":"To-Do","note":"Notiz","Creating new %s...":"Erstelle neue %s...","Refresh":"Aktualisieren","Clear":"Leeren","OneDrive Login":"OneDrive Login","Options":"Optionen","Synchronisation Status":"Synchronisations Status","Encryption Options":"Verschlüsselungsoptionen","Remove this tag from all the notes?":"Diese Markierung von allen Notizen entfernen?","Remove this search from the sidebar?":"Diese Suche von der Seitenleiste entfernen?","Rename":"Umbenennen","Synchronise":"Synchronisieren","Notebooks":"Notizbücher","Searches":"Suchen","Please select where the sync status should be exported to":"Bitte wähle aus, wohin der Synchronisations Status exportiert werden soll","Usage: %s":"Nutzung: %s","Unknown flag: %s":"Unbekanntes Argument: %s","File system":"Dateisystem","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Nur für Tests)","WebDAV":"WebDAV","Unknown log level: %s":"Unbekanntes Log Level: %s","Unknown level ID: %s":"Unbekannte Level ID: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Kann Token nicht erneuern: Authentifikationsdaten nicht vorhanden. Ein Neustart der Synchronisation könnte das Problem beheben.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Konnte nicht mit OneDrive synchronisieren.\n\nDieser Fehler kommt oft vor, wenn OneDrive Business benutzt wird, das leider nicht unterstützt wird.\n\nBitte benutze stattdessen einen normalen OneDrive Account.","Cannot access %s":"Kann nicht auf %s zugreifen","Created local items: %d.":"Lokale Objekte erstellt: %d.","Updated local items: %d.":"Lokale Objekte aktualisiert: %d.","Created remote items: %d.":"Remote Objekte erstellt: %d.","Updated remote items: %d.":"Remote Objekte aktualisiert: %d.","Deleted local items: %d.":"Lokale Objekte gelöscht: %d.","Deleted remote items: %d.":"Remote Objekte gelöscht: %d.","Fetched items: %d/%d.":"Geladene Objekte: %d/%d.","State: \"%s\".":"Status: \"%s\".","Cancelling...":"Abbrechen...","Completed: %s":"Abgeschlossen: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Synchronisation ist bereits im Gange. Status: %s","Encrypted":"Verschlüsselt","Encrypted items cannot be modified":"Verschlüsselte Objekte können nicht verändert werden","Conflicts":"Konflikte","A notebook with this title already exists: \"%s\"":"Ein Notizbuch mit diesem Titel existiert bereits : \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Notizbuch kann nicht \"%s\" genannt werden. Dies ist ein reservierter Titel.","Untitled":"Unbenannt","This note does not have geolocation information.":"Diese Notiz hat keine Standort-Informationen.","Cannot copy note to \"%s\" notebook":"Kann Notiz nicht zu Notizbuch \"%s\" kopieren","Cannot move note to \"%s\" notebook":"Kann Notiz nicht zu Notizbuch \"%s\" verschieben","Text editor":"Textverarbeitungsprogramm","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Das Textverarbeitungsprogramm, mit dem Notizen geöffnet werden. Wenn keines ausgewählt wurde, wird Joplin versuchen das standard-Textverarbeitungsprogramm zu erkennen.","Language":"Sprache","Date format":"Datumsformat","Time format":"Zeitformat","Theme":"Thema","Light":"Hell","Dark":"Dunkel","Uncompleted to-dos on top":"Zeige unvollständige To-Dos an oberster Stelle","Sort notes by":"Sortiere Notizen nach","Reverse sort order":"Sortierreihenfolge umdrehen","Save geo-location with notes":"Momentanen Standort zusammen mit Notizen speichern","When creating a new to-do:":"Wenn eine neue To-Do erstellt wird:","Focus title":"Fokussiere Titel","Focus body":"Fokussiere Inhalt","When creating a new note:":"Wenn eine neue Notiz erstellt wird:","Show tray icon":"Zeige Tray Icon","Global zoom percentage":"Zoomstufe der Benutzeroberfläche","Editor font family":"Editor Schriftenfamilie","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"Der Name der Schrift wird nicht überprüft. Ist dieser inkorrekt oder leer wird eine generische Monospace Schrift verwendet.","Automatically update the application":"Die Applikation automatisch aktualisieren","Synchronisation interval":"Synchronisationsinterval","%d minutes":"%d Minuten","%d hour":"%d Stunde","%d hours":"%d Stunden","Show advanced options":"Erweiterte Optionen anzeigen","Synchronisation target":"Synchronisationsziel","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Das Ziel, mit dem synchronisiert werden soll. Jedes Synchronisationsziel kann zusätzliche Parameter haben, die als `sync.NUM.NAME` (alle unten dokumentiert) bezeichnet werden.","Directory to synchronise with (absolute path)":"Verzeichnis zum synchronisieren (absoluter Pfad)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Der Pfad, mit dem synchronisiert werden soll, wenn die Dateisystem-Synchronisation aktiviert ist. Siehe `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Nextcloud Benutzername","Nextcloud password":"Nextcloud Passwort","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV Benutzername","WebDAV password":"WebDAV Passwort","Invalid option value: \"%s\". Possible values are: %s.":"Ungültiger Optionswert: \"%s\". Mögliche Werte sind: %s.","Joplin Export File":"Joplin Export Datei","Markdown":"Markdown","Joplin Export Directory":"Joplin Export Verzeichnis","Evernote Export File":"Evernote Export Datei","Directory":"Verzeichnis","Cannot load \"%s\" module for format \"%s\"":"Das Modul „%s“ für das Format „%s“ kann nicht geladen werden","Please specify import format for %s":"Bitte das Exportformat für %s angeben","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Dieses Objekt ist zur Zeit verschlüsselt: %s „%s“. Bitte warten bis alle Objekte entschlüsselt wurden und versuche es dann erneut.","There is no data to export.":"Keine Daten für den Export vorhanden.","Please specify the notebook where the notes should be imported to.":"Bitte wähle aus, wohin der Synchronisations-Status exportiert werden soll.","Items that cannot be synchronised":"Objekte können nicht synchronisiert werden","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Diese Objekte verbleiben auf dem Gerät, werden aber nicht zum Synchronisationsziel hochgeladen. Um diese Objekte zu finden, suchen Sie entweder nach dem Titel oder der ID (die oben in Klammern angezeigt wird).","Sync status (synced items / total items)":"Synchronisationsstatus (synchronisierte Objekte / gesamte Objekte)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Insgesamt: %d/%d","Conflicted: %d":"In Konflikt %d","To delete: %d":"Zu löschen: %d","Folders":"Ordner","%s: %d notes":"%s: %d Notizen","Coming alarms":"Anstehende Alarme","On %s: %s":"Auf %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Momentan existieren noch keine Notizen. Erstelle eine, indem du auf den (+) Knopf drückst.","Delete these notes?":"Sollen diese Notizen gelöscht werden?","Log":"Protokoll","Export Debug Report":"Fehlerbericht exportieren","Encryption Config":"Verschlüsselungskonfiguration","Configuration":"Konfiguration","Move to notebook...":"In Notizbuch verschieben...","Move %d notes to notebook \"%s\"?":"%d Notizen in das Notizbuch \"%s\" verschieben?","Press to set the decryption password.":"Tippe hier, um das Entschlüsselungspasswort festzulegen.","Select date":"Datum auswählen","Confirm":"Bestätigen","Cancel synchronisation":"Synchronisation abbrechen","Joplin website":"","Master Key %s":"Hauptschlüssel %s","Created: %s":"Erstellt: %s","Password:":"Passwort:","Password cannot be empty":"Passwort darf nicht leer sein","Enable":"Aktivieren","The notebook could not be saved: %s":"Dieses Notizbuch konnte nicht gespeichert werden: %s","Edit notebook":"Notizbuch bearbeiten","Show all":"Zeige Alles","Errors only":"Nur Fehler","This note has been modified:":"Diese Notiz wurde verändert:","Save changes":"Änderungen speichern","Discard changes":"Änderungen verwerfen","Unsupported image type: %s":"Nicht unterstütztes Fotoformat: %s","Attach photo":"Foto anhängen","Attach any file":"Beliebige Datei anhängen","Convert to note":"In eine Notiz umwandeln","Convert to todo":"In ein To-Do umwandeln","Hide metadata":"Metadaten verstecken","Show metadata":"Metadaten anzeigen","View on map":"Auf der Karte anzeigen","Delete notebook":"Notizbuch löschen","Login with OneDrive":"Mit OneDrive anmelden","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Drücke auf den (+) Knopf, um eine neue Notiz oder ein neues Notizbuch zu erstellen. Tippe auf die Seitenleiste, um auf deine existierenden Notizbücher zuzugreifen.","You currently have no notebook. Create one by clicking on (+) button.":"Du hast noch kein Notizbuch. Erstelle eines, indem du auf den (+) Knopf drückst.","Welcome":"Willkommen"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"Um eine Markierung zu löschen, entferne diese bei allen damit verbundenen Notizen.","Please select the note or notebook to be deleted first.":"Wähle bitte zuerst eine Notiz oder ein Notizbuch aus, das gelöscht werden soll.","Press Ctrl+D or type \"exit\" to exit the application":"Drücke Strg+D oder tippe \"exit\" um das Programm zu verlassen","More than one item match \"%s\". Please narrow down your query.":"Mehr als eine Notiz stimmt mit \"%s\" überein. Bitte die Suche einschränken.","No notebook selected.":"Kein Notizbuch ausgewählt.","No notebook has been specified.":"Es wurde kein Notizbuch festgelegt.","Y":"J","n":"n","N":"N","y":"j","Cancelling background synchronisation... Please wait.":"Breche Hintergrund-Synchronisation ab... Bitte warten.","No such command: %s":"Ungültiger Befehl: %s","The command \"%s\" is only available in GUI mode":"Der Befehl \"%s\" ist nur im GUI Modus verfügbar","Cannot change encrypted item":"Kann verschlüsseltes Objekt nicht ändern","Missing required argument: %s":"Fehlendes erforderliches Argument: %s","%s: %s":"%s: %s","Your choice: ":"Deine Auswahl: ","Invalid answer: %s":"Ungültige Antwort: %s","Attaches the given file to the note.":"Hängt die ausgewählte Datei an die Notiz an.","Cannot find \"%s\".":"Kann \"%s\" nicht finden.","Displays the given note.":"Zeigt die jeweilige Notiz an.","Displays the complete information about note.":"Zeigt alle Informationen über die Notiz an.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Zeigt an oder stellt einen Optionswert. Wenn kein [Wert] angegeben ist, wird der Wert vom gegebenen [Namen] angezeigt. Wenn weder [Name] noch [Wert] gegeben sind, wird eine Liste der momentanen Konfiguration angezeigt.","Also displays unset and hidden config variables.":"Zeigt auch nicht gesetzte und versteckte Konfigurationsvariablen an.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Dupliziert die Notizen die mit  übereinstimmen in [Notizbuch]. Wenn kein Notizbuch angegeben ist, wird die Notiz in das aktuelle Notizbuch kopiert.","Marks a to-do as done.":"Markiert ein To-Do als erledigt.","Note is not a to-do: \"%s\"":"Notiz ist kein To-Do: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Verwaltet die E2EE-Konfiguration. Die Befehle lauten `enable`, `disable`, `decrypt`, `status` und `target-status`.","Enter master password:":"Master-Passwort eingeben:","Operation cancelled":"Vorgang abgebrochen","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Starte Entschlüsselung.... Bitte warten, da dies je nach Anzahl der betreffenden Objekte einige Minuten dauern kann.","Completed decryption.":"Entschlüsselung abgeschlossen.","Enabled":"Aktiviert","Disabled":"Deaktiviert","Encryption is: %s":"Verschlüsselung ist: %s","Edit note.":"Notiz bearbeiten.","No text editor is defined. Please set it using `config editor `":"Kein Texteditor definiert. Bitte lege einen mit `config editor ` fest","No active notebook.":"Kein aktives Notizbuch.","Note does not exist: \"%s\". Create it?":"Notiz \"%s\" existiert nicht. Soll sie erstellt werden?","Starting to edit note. Close the editor to get back to the prompt.":"Beginne die Notiz zu bearbeiten. Schließe das Textverarbeitungsprogramm, um zurück zum Terminal zu gelangen.","Error opening note in editor: %s":"Fehler beim Öffnen der Notiz im Editor: %s","Note has been saved.":"Die Notiz wurde gespeichert.","Exits the application.":"Beendet das Programm.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exportiert Joplin Dateien in den angegebenen Pfad. Standardmäßig wird die komplette Datenbank inklusive Notizbüchern, Notizen, Markierungen und Anhängen exportiert.","Destination format: %s":"Zielformat: %s","Exports only the given note.":"Exportiert nur die angegebene Notiz.","Exports only the given notebook.":"Exportiert nur das angegebene Notizbuch.","Displays a geolocation URL for the note.":"Zeigt die Standort-URL der Notiz an.","Displays usage information.":"Zeigt die Nutzungsstatistik an.","For information on how to customise the shortcuts please visit %s":"Für weitere Informationen über die Anpassung von Tastenkürzel besuche bitte %s","Shortcuts are not available in CLI mode.":"Tastenkürzel sind im CLI Modus nicht verfügbar.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Tippe `help [Befehl]` um weitere Informationen über einen Befehl zu erhalten oder tippe `help all` für die vollständigen Informationen zur Befehlsverwendung.","The possible commands are:":"Mögliche Befehle lauten:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In jedem Befehl können Notizen oder Notizbücher durch ihren Titel oder ihre ID spezifiziert werden, oder durch die Abkürzung `$n` oder `$b` um entweder das momentan ausgewählte Notizbuch oder die momentan ausgewählte Notiz auszuwählen. `$c` kann benutzt werden, um auf die momentane Auswahl zu verweisen.","To move from one pane to another, press Tab or Shift+Tab.":"Um von einem Fenster zu einem anderen zu wechseln, drücke Tab oder Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Benutze die Pfeiltasten und Bild hoch/runter um durch Listen und Texte zu scrollen (inklusive diesem Terminal).","To maximise/minimise the console, press \"TC\".":"Um das Terminal zu maximieren/minimieren, drücke \"TC\".","To enter command line mode, press \":\"":"Um den Kommandozeilen Modus aufzurufen, drücke \":\"","To exit command line mode, press ESCAPE":"Um den Kommandozeilen Modus zu beenden, drücke ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Um die komplette Liste aller verfügbaren Tastenkürzeln anzuzeigen, tippe `help keymap` ein","Imports data into Joplin.":"Importiert Daten in Joplin.","Source format: %s":"Quellformat: %s","Do not ask for confirmation.":"Nicht nach einer Bestätigung fragen.","Found: %d.":"Gefunden: %d.","Created: %d.":"Erstellt: %d.","Updated: %d.":"Aktualisiert: %d.","Skipped: %d.":"Übersprungen: %d.","Resources: %d.":"Anhänge: %d.","Tagged: %d.":"Markiert: %d.","Importing notes...":"Importiere Notizen...","The notes have been imported: %s":"Die Notizen wurden importiert: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Zeigt die Notizen im momentanen Notizbuch an. Benutze `ls /` um eine Liste aller Notizbücher anzuzeigen.","Displays only the first top  notes.":"Zeigt nur die ersten  Notizen an.","Sorts the item by  (eg. title, updated_time, created_time).":"Sortiert nach  ( z.B. Titel, Bearbeitungszeitpunkt, Erstellungszeitpunkt)","Reverses the sorting order.":"Dreht die Sortierreihenfolge um.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Zeigt nur bestimmte Item Typen an. Kann `n` für Notizen sein, `t` für To-Dos, oder `nt` für Notizen und To-Dos ( z.B. zeigt `-tt` nur To-Dos an, während `-ttd` Notizen und To-Dos anzeigt).","Either \"text\" or \"json\"":"Entweder \"text\" oder \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Verwende ausführliches Listen Format. Das Format lautet: ID, NOTIZEN_ANZAHL (für Notizbuch), DATUM, TODO_BEARBEITET (für To-Dos), TITEL","Please select a notebook first.":"Bitte wähle erst ein Notizbuch aus.","Creates a new notebook.":"Erstellt ein neues Notizbuch.","Creates a new note.":"Erstellt eine neue Notiz.","Notes can only be created within a notebook.":"Notizen können nur in einem Notizbuch erstellt werden.","Creates a new to-do.":"Erstellt ein neues To-Do.","Moves the notes matching  to [notebook].":"Verschiebt die Notizen, die mit  übereinstimmen, zu [Notizbuch]","Renames the given  (note or notebook) to .":"Benennt das angegebene  ( Notiz oder Notizbuch ) zu  um.","Deletes the given notebook.":"Löscht das ausgewählte Notizbuch.","Deletes the notebook without asking for confirmation.":"Löscht das Notizbuch, ohne nach einer Bestätigung zu fragen.","Delete notebook? All notes within this notebook will also be deleted.":"Notizbuch wirklich löschen? Alle Notizen darin werden ebenfalls gelöscht.","Deletes the notes matching .":"Löscht die Notizen, die mit  übereinstimmen.","Deletes the notes without asking for confirmation.":"Löscht die Notizen, ohne nach einer Bestätigung zu fragen.","%d notes match this pattern. Delete them?":"%d Notizen stimmen mit diesem Muster überein. Sollen sie gelöscht werden?","Delete note?":"Notiz löschen?","Searches for the given  in all the notes.":"Sucht nach dem angegebenen  in allen Notizen.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Setzt die Eigenschaft  der gegebenen  auf den gegebenen [Wert]. Mögliche Werte sind:\n\n%s","Displays summary about the notes and notebooks.":"Zeigt eine Zusammenfassung der Notizen und Notizbücher an.","Synchronises with remote storage.":"Synchronisiert mit Remotespeicher.","Sync to provided target (defaults to sync.target config value)":"Mit dem angegebenen Ziel synchronisieren (voreingestellt auf den sync.target Optionswert)","Authentication was not completed (did not receive an authentication token).":"Authentifizierung wurde nicht abgeschlossen (keinen Authentifizierung-Token erhalten).","Not authentified with %s. Please provide any missing credentials.":"Keine Authentifizierung mit %s. Gib bitte alle fehlenden Zugangsdaten an.","Synchronisation is already in progress.":"Synchronisation wird bereits ausgeführt.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Eine Sperrdatei ist vorhanden. Wenn du dir sicher bist, dass keine Synchronisation im Gange ist, kannst du die Sperrdatei \"%s\" löschen und fortfahren.","Synchronisation target: %s (%s)":"Synchronisationsziel: %s (%s)","Cannot initialize synchroniser.":"Kann Synchronisierer nicht initialisieren.","Starting synchronisation...":"Starte Synchronisation...","Cancelling... Please wait.":"Abbrechen… Bitte warten."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" kann \"add\", \"remove\" or \"list\" sein, um eine [Markierung] zu [Notiz] zuzuweisen oder zu entfernen, oder um mit [Markierung] markierte Notizen anzuzeigen. Mit dem Befehl `tag list` können alle Markierungen angezeigt werden.","Invalid command: \"%s\"":"Ungültiger Befehl: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" kann entweder \"toggle\" oder \"clear\" sein. Benutze \"toggle\", um ein To-Do abzuschließen, oder es zu beginnen (Wenn das Ziel eine normale Notiz ist, wird diese in ein To-Do umgewandelt). Benutze \"clear\", um es zurück in ein To-Do zu verwandeln.","Marks a to-do as non-completed.":"Makiert ein To-Do als nicht-abgeschlossen.","Switches to [notebook] - all further operations will happen within this notebook.":"Wechselt zu [Notizbuch] - alle weiteren Aktionen werden in diesem Notizbuch ausgeführt.","Displays version information":"Zeigt die Versionsnummer an","%s %s (%s)":"%s %s (%s)","Enum":"Aufzählung","Type: %s.":"Typ: %s.","Possible values: %s.":"Mögliche Werte: %s.","Default: %s":"Standard: %s","Possible keys/values:":"Mögliche Werte:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Schwerwiegender Fehler:","The application has been authorised - you may now close this browser tab.":"Das Programm wurde autorisiert - Du kannst diesen Browsertab nun schließen.","The application has been successfully authorised.":"Das Programm wurde erfolgreich autorisiert.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Bitte öffne die folgende URL in deinem Browser, um das Programm zu authentifizieren. Das Programm wird einen Ordner in \"Apps/Joplin\" erstellen und wird nur in diesem Ordner schreiben und lesen. Es wird weder Zugriff auf Dateien außerhalb dieses Ordners haben, noch auf andere persönliche Daten. Es werden keine Daten mit Dritten geteilt.","Search:":"Suchen:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Willkommen bei Joplin!\n\nTippe `:help shortcuts` für eine Liste der Shortcuts oder `:help` für Nutzungsinformationen ein.\n\nUm zum Beispiel ein Notizbuch zu erstellen, drücke `mb`; um eine Notiz zu erstellen drücke `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Ein oder mehrere Objekte sind derzeit verschlüsselt und es kann erforderlich sein, ein Master-Passwort zu hinterlegen. Gib dazu bitte `e2ee decrypt` ein. Wenn du das Passwort bereits eingegeben hast, werden die verschlüsselten Objekte im Hintergrund entschlüsselt und stehen in Kürze zur Verfügung.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportiere „%s“ ins „%s“ Format. Bitte warten...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importiere „%s“ ins „%s“ Format. Bitte warten…","PDF File":"PDF-Datei","File":"Datei","New note":"Neue Notiz","New to-do":"Neues To-Do","New notebook":"Neues Notizbuch","Import":"Importieren","Export":"Exportieren","Print":"Drucken","Hide %s":"%s ausblenden","Quit":"Verlassen","Edit":"Bearbeiten","Copy":"Kopieren","Cut":"Ausschneiden","Paste":"Einfügen","Search in all the notes":"Alle Notizen durchsuchen","View":"Ansicht","Toggle editor layout":"Editor Layout umschalten","Tools":"Werkzeuge","Synchronisation status":"Status der Synchronisation","Encryption options":"Verschlüsselung","General Options":"Allgemeine Einstellungen","Help":"Hilfe","Website and documentation":"Webseite und Dokumentation","Make a donation":"Spenden","Check for updates...":"Überprüfe auf Updates...","About Joplin":"Über Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Öffne %s","Exit":"Verlassen","OK":"OK","Cancel":"Abbrechen","Current version is up-to-date.":"Die aktuelle Version ist up-to-date.","An update is available, do you want to download it now?":"Es ist ein Update verfügbar! Soll dies jetzt heruntergeladen werden?","Yes":"Ja","No":"Nein","Check synchronisation configuration":"Überprüfen der Synchronisationseinstellungen","Notes and settings are stored in: %s":"Notizen und Einstellungen werden gespeichert in: %s","Save":"Speichern","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Durch die Deaktivierung der Verschlüsselung werden *alle* Notizen und Anhänge neu synchronisiert und unverschlüsselt an das Synchronisierungsziel gesendet. Möchtest du fortfahren?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Durch das Aktivieren der Verschlüsselung werden alle Notizen und Anhänge neu synchronisiert und verschlüsselt an das Synchronisationsziel gesendet. Achte darauf, dass du das Passwort nicht verlierst, da dies aus Sicherheitsgründen die einzige Möglichkeit ist, deine Daten zu entschlüsseln! Um die Verschlüsselung zu aktivieren, gib bitte unten dein Passwort ein.","Disable encryption":"Verschlüsselung deaktivieren","Enable encryption":"Verschlüsselung aktivieren","Master Keys":"Hauptschlüssel","Active":"Aktiv","ID":"ID","Source":"Quelle","Created":"Erstellt","Updated":"Aktualisiert","Password":"Passwort","Password OK":"Passwort OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Hinweis: Nur ein Hauptschlüssel wird für die Verschlüsselung verwendet (der als \"aktiv\" markierte). Jeder der Schlüssel kann für die Entschlüsselung verwendet werden, abhängig davon, wie die jeweiligen Notizen oder Notizbücher ursprünglich verschlüsselt wurden.","Missing Master Keys":"Fehlender Master-Key","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"Die Master-Keas dieser IDs werden für die Verschlüsselung einiger ...","Status":"Status","Encryption is:":"Die Verschlüsselung ist:","Back":"Zurück","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Neues Notizbuch \"%s\" wird erstellt und die Datei \"%s\" wird dort hinein importiert","Please create a notebook first.":"Bitte erstelle zuerst ein Notizbuch.","Please create a notebook first":"Bitte erstelle zuerst ein Notizbuch","Notebook title:":"Notizbuch Titel:","Add or remove tags:":"Füge hinzu oder entferne Markierungen:","Separate each tag by a comma.":"Trenne jede Markierung mit einem Komma.","Rename notebook:":"Notizbuch umbenennen:","Set alarm:":"Alarm erstellen:","Search":"Suchen","Layout":"Layout","Some items cannot be synchronised.":"Manche Objekte können nicht synchronisiert werden.","View them now":"Zeige sie jetzt an","Some items cannot be decrypted.":"Einige Objekte können nicht entschlüsselt werden.","Set the password":"Setze ein Passwort","Add or remove tags":"Markierungen hinzufügen oder entfernen","Switch between note and to-do type":"Zwischen Notiz und To-Do Typ wechseln","Delete":"Löschen","Delete notes?":"Notizen löschen?","No notes in here. Create one by clicking on \"New note\".":"Hier sind noch keine Notizen. Erstelle eine, indem du auf \"Neue Notiz\" drückst.","There is currently no notebook. Create one by clicking on \"New notebook\".":"Momentan existieren noch keine Notizbücher. Erstelle eines, indem du auf den (+) Knopf drückst.","Open...":"Öffne...","Save as...":"Sichern unter...","Unsupported link or message: %s":"Nicht unterstützter Link oder Nachricht: %s","Attach file":"Datei anhängen","Tags":"Markierungen","Set alarm":"Alarm erstellen","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Diese Notiz hat keinen Inhalt. Klicke auf „%s“ um den Editor zu aktivieren und die Notiz zu bearbeiten.","to-do":"To-Do","note":"Notiz","Creating new %s...":"Erstelle neue %s...","Refresh":"Aktualisieren","Clear":"Leeren","OneDrive Login":"OneDrive Login","Options":"Optionen","Synchronisation Status":"Synchronisations Status","Encryption Options":"Verschlüsselungsoptionen","Remove this tag from all the notes?":"Diese Markierung von allen Notizen entfernen?","Remove this search from the sidebar?":"Diese Suche von der Seitenleiste entfernen?","Rename":"Umbenennen","Synchronise":"Synchronisieren","Notebooks":"Notizbücher","Searches":"Suchen","Please select where the sync status should be exported to":"Bitte wähle aus, wohin der Synchronisations Status exportiert werden soll","Usage: %s":"Nutzung: %s","Unknown flag: %s":"Unbekanntes Argument: %s","File system":"Dateisystem","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Nur für Tests)","WebDAV":"WebDAV","Unknown log level: %s":"Unbekanntes Log Level: %s","Unknown level ID: %s":"Unbekannte Level ID: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Kann Token nicht erneuern: Authentifikationsdaten nicht vorhanden. Ein Neustart der Synchronisation könnte das Problem beheben.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Konnte nicht mit OneDrive synchronisieren.\n\nDieser Fehler kommt oft vor, wenn OneDrive Business benutzt wird, das leider nicht unterstützt wird.\n\nBitte benutze stattdessen einen normalen OneDrive Account.","Cannot access %s":"Kann nicht auf %s zugreifen","Created local items: %d.":"Lokale Objekte erstellt: %d.","Updated local items: %d.":"Lokale Objekte aktualisiert: %d.","Created remote items: %d.":"Remote Objekte erstellt: %d.","Updated remote items: %d.":"Remote Objekte aktualisiert: %d.","Deleted local items: %d.":"Lokale Objekte gelöscht: %d.","Deleted remote items: %d.":"Remote Objekte gelöscht: %d.","Fetched items: %d/%d.":"Geladene Objekte: %d/%d.","State: %s.":"State: %s.","Cancelling...":"Abbrechen...","Completed: %s":"Abgeschlossen: %s","Last error: %s":"Letzte Fehlermeldung: %s","Idle":"wartend","In progress":"In Bearbeitung","Synchronisation is already in progress. State: %s":"Synchronisation ist bereits im Gange. Status: %s","Encrypted":"Verschlüsselt","Encrypted items cannot be modified":"Verschlüsselte Objekte können nicht verändert werden","Conflicts":"Konflikte","A notebook with this title already exists: \"%s\"":"Ein Notizbuch mit diesem Titel existiert bereits : \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Notizbuch kann nicht \"%s\" genannt werden. Dies ist ein reservierter Titel.","Untitled":"Unbenannt","This note does not have geolocation information.":"Diese Notiz hat keine Standort-Informationen.","Cannot copy note to \"%s\" notebook":"Kann Notiz nicht zu Notizbuch \"%s\" kopieren","Cannot move note to \"%s\" notebook":"Kann Notiz nicht zu Notizbuch \"%s\" verschieben","Text editor":"Textverarbeitungsprogramm","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Das Textverarbeitungsprogramm, mit dem Notizen geöffnet werden. Wenn keines ausgewählt wurde, wird Joplin versuchen das standard-Textverarbeitungsprogramm zu erkennen.","Language":"Sprache","Date format":"Datumsformat","Time format":"Zeitformat","Theme":"Thema","Light":"Hell","Dark":"Dunkel","Uncompleted to-dos on top":"Zeige unvollständige To-Dos an oberster Stelle","Sort notes by":"Sortiere Notizen nach","Reverse sort order":"Sortierreihenfolge umdrehen","Save geo-location with notes":"Momentanen Standort zusammen mit Notizen speichern","When creating a new to-do:":"Wenn eine neue To-Do erstellt wird:","Focus title":"Fokussiere Titel","Focus body":"Fokussiere Inhalt","When creating a new note:":"Wenn eine neue Notiz erstellt wird:","Show tray icon":"Zeige Tray Icon","Global zoom percentage":"Zoomstufe der Benutzeroberfläche","Editor font family":"Editor Schriftenfamilie","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"Der Name der Schrift wird nicht überprüft. Ist dieser inkorrekt oder leer wird eine generische Monospace Schrift verwendet.","Automatically update the application":"Die Applikation automatisch aktualisieren","Synchronisation interval":"Synchronisationsinterval","%d minutes":"%d Minuten","%d hour":"%d Stunde","%d hours":"%d Stunden","Show advanced options":"Erweiterte Optionen anzeigen","Synchronisation target":"Synchronisationsziel","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Das Ziel, mit dem synchronisiert werden soll. Jedes Synchronisationsziel kann zusätzliche Parameter haben, die als `sync.NUM.NAME` (alle unten dokumentiert) bezeichnet werden.","Directory to synchronise with (absolute path)":"Verzeichnis zum synchronisieren (absoluter Pfad)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Der Pfad, mit dem synchronisiert werden soll, wenn die Dateisystem-Synchronisation aktiviert ist. Siehe `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Nextcloud Benutzername","Nextcloud password":"Nextcloud Passwort","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV Benutzername","WebDAV password":"WebDAV Passwort","Invalid option value: \"%s\". Possible values are: %s.":"Ungültiger Optionswert: \"%s\". Mögliche Werte sind: %s.","Joplin Export File":"Joplin Export Datei","Markdown":"Markdown","Joplin Export Directory":"Joplin Export Verzeichnis","Evernote Export File":"Evernote Export Datei","Directory":"Verzeichnis","Cannot load \"%s\" module for format \"%s\"":"Das Modul „%s“ für das Format „%s“ kann nicht geladen werden","Please specify import format for %s":"Bitte das Exportformat für %s angeben","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Dieses Objekt ist zur Zeit verschlüsselt: %s „%s“. Bitte warten bis alle Objekte entschlüsselt wurden und versuche es dann erneut.","There is no data to export.":"Keine Daten für den Export vorhanden.","Please specify the notebook where the notes should be imported to.":"Bitte wähle aus, wohin der Synchronisations-Status exportiert werden soll.","Items that cannot be synchronised":"Objekte können nicht synchronisiert werden","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Diese Objekte verbleiben auf dem Gerät, werden aber nicht zum Synchronisationsziel hochgeladen. Um diese Objekte zu finden, suchen Sie entweder nach dem Titel oder der ID (die oben in Klammern angezeigt wird).","Sync status (synced items / total items)":"Synchronisationsstatus (synchronisierte Objekte / gesamte Objekte)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Insgesamt: %d/%d","Conflicted: %d":"In Konflikt %d","To delete: %d":"Zu löschen: %d","Folders":"Ordner","%s: %d notes":"%s: %d Notizen","Coming alarms":"Anstehende Alarme","On %s: %s":"Auf %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Momentan existieren noch keine Notizen. Erstelle eine, indem du auf den (+) Knopf drückst.","Delete these notes?":"Sollen diese Notizen gelöscht werden?","Log":"Protokoll","Export Debug Report":"Fehlerbericht exportieren","Encryption Config":"Verschlüsselungskonfiguration","Configuration":"Konfiguration","Move to notebook...":"In Notizbuch verschieben...","Move %d notes to notebook \"%s\"?":"%d Notizen in das Notizbuch \"%s\" verschieben?","Press to set the decryption password.":"Tippe hier, um das Entschlüsselungspasswort festzulegen.","Select date":"Datum auswählen","Confirm":"Bestätigen","Cancel synchronisation":"Synchronisation abbrechen","Joplin website":"Website von Joplin","Master Key %s":"Hauptschlüssel %s","Created: %s":"Erstellt: %s","Password:":"Passwort:","Password cannot be empty":"Passwort darf nicht leer sein","Enable":"Aktivieren","The notebook could not be saved: %s":"Dieses Notizbuch konnte nicht gespeichert werden: %s","Edit notebook":"Notizbuch bearbeiten","Show all":"Zeige Alles","Errors only":"Nur Fehler","This note has been modified:":"Diese Notiz wurde verändert:","Save changes":"Änderungen speichern","Discard changes":"Änderungen verwerfen","Unsupported image type: %s":"Nicht unterstütztes Fotoformat: %s","Attach photo":"Foto anhängen","Attach any file":"Beliebige Datei anhängen","Convert to note":"In eine Notiz umwandeln","Convert to todo":"In ein To-Do umwandeln","Hide metadata":"Metadaten verstecken","Show metadata":"Metadaten anzeigen","View on map":"Auf der Karte anzeigen","Delete notebook":"Notizbuch löschen","Login with OneDrive":"Mit OneDrive anmelden","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Drücke auf den (+) Knopf, um eine neue Notiz oder ein neues Notizbuch zu erstellen. Tippe auf die Seitenleiste, um auf deine existierenden Notizbücher zuzugreifen.","You currently have no notebook. Create one by clicking on (+) button.":"Du hast noch kein Notizbuch. Erstelle eines, indem du auf den (+) Knopf drückst.","Welcome":"Willkommen"}
        \ No newline at end of file
        diff --git a/ElectronClient/app/locales/en_GB.json b/ElectronClient/app/locales/en_GB.json
        index 1a7b52f413..111cd59ff1 100644
        --- a/ElectronClient/app/locales/en_GB.json
        +++ b/ElectronClient/app/locales/en_GB.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"","Please select the note or notebook to be deleted first.":"","Press Ctrl+D or type \"exit\" to exit the application":"","More than one item match \"%s\". Please narrow down your query.":"","No notebook selected.":"","No notebook has been specified.":"","Y":"","n":"","N":"","y":"","Cancelling background synchronisation... Please wait.":"","No such command: %s":"","The command \"%s\" is only available in GUI mode":"","Cannot change encrypted item":"","Missing required argument: %s":"","%s: %s":"","Your choice: ":"","Invalid answer: %s":"","Attaches the given file to the note.":"","Cannot find \"%s\".":"","Displays the given note.":"","Displays the complete information about note.":"","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"","Also displays unset and hidden config variables.":"","%s = %s (%s)":"","%s = %s":"","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"","Marks a to-do as done.":"","Note is not a to-do: \"%s\"":"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"","Disabled":"","Encryption is: %s":"","Edit note.":"","No text editor is defined. Please set it using `config editor `":"","No active notebook.":"","Note does not exist: \"%s\". Create it?":"","Starting to edit note. Close the editor to get back to the prompt.":"","Error opening note in editor: %s":"","Note has been saved.":"","Exits the application.":"","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"","Destination format: %s":"","Exports only the given note.":"","Exports only the given notebook.":"","Displays a geolocation URL for the note.":"","Displays usage information.":"","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"","The possible commands are:":"","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"","To move from one pane to another, press Tab or Shift+Tab.":"","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"","To maximise/minimise the console, press \"TC\".":"","To enter command line mode, press \":\"":"","To exit command line mode, press ESCAPE":"","For the list of keyboard shortcuts and config options, type `help keymap`":"","Imports data into Joplin.":"","Source format: %s":"","Do not ask for confirmation.":"","Found: %d.":"","Created: %d.":"","Updated: %d.":"","Skipped: %d.":"","Resources: %d.":"","Tagged: %d.":"","Importing notes...":"","The notes have been imported: %s":"","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"","Displays only the first top  notes.":"","Sorts the item by  (eg. title, updated_time, created_time).":"","Reverses the sorting order.":"","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"","Either \"text\" or \"json\"":"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"","Please select a notebook first.":"","Creates a new notebook.":"","Creates a new note.":"","Notes can only be created within a notebook.":"","Creates a new to-do.":"","Moves the notes matching  to [notebook].":"","Renames the given  (note or notebook) to .":"","Deletes the given notebook.":"","Deletes the notebook without asking for confirmation.":"","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"","Deletes the notes without asking for confirmation.":"","%d notes match this pattern. Delete them?":"","Delete note?":"","Searches for the given  in all the notes.":"","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"","Displays summary about the notes and notebooks.":"","Synchronises with remote storage.":"","Sync to provided target (defaults to sync.target config value)":"","Authentication was not completed (did not receive an authentication token).":"","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"","Synchronisation target: %s (%s)":"","Cannot initialize synchroniser.":"","Starting synchronisation...":"","Cancelling... Please wait.":""," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":"","Invalid command: \"%s\"":""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"","Marks a to-do as non-completed.":"","Switches to [notebook] - all further operations will happen within this notebook.":"","Displays version information":"","%s %s (%s)":"","Enum":"","Type: %s.":"","Possible values: %s.":"","Default: %s":"","Possible keys/values:":"","Type `joplin help` for usage information.":"","Fatal error:":"","The application has been authorised - you may now close this browser tab.":"","The application has been successfully authorised.":"","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"","Search:":"","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"","File":"","New note":"","New to-do":"","New notebook":"","Import":"","Export":"","Print":"","Hide %s":"","Quit":"","Edit":"","Copy":"","Cut":"","Paste":"","Search in all the notes":"","View":"","Toggle editor layout":"","Tools":"","Synchronisation status":"","Encryption options":"","General Options":"","Help":"","Website and documentation":"","Make a donation":"","Check for updates...":"","About Joplin":"","%s %s (%s, %s)":"","Open %s":"","Exit":"","OK":"","Cancel":"","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"","Check synchronisation configuration":"","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"","Updated":"","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"","Encryption is:":"","Back":"","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"","Please create a notebook first.":"","Please create a notebook first":"","Notebook title:":"","Add or remove tags:":"","Separate each tag by a comma.":"","Rename notebook:":"","Set alarm:":"","Search":"","Layout":"","Some items cannot be synchronised.":"","View them now":"","Some items cannot be decrypted.":"","Set the password":"","Add or remove tags":"","Switch between note and to-do type":"","Delete":"","Delete notes?":"","No notes in here. Create one by clicking on \"New note\".":"","There is currently no notebook. Create one by clicking on \"New notebook\".":"","Open...":"","Save as...":"","Unsupported link or message: %s":"","Attach file":"","Tags":"","Set alarm":"","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"","note":"","Creating new %s...":"","Refresh":"","Clear":"","OneDrive Login":"","Options":"","Synchronisation Status":"","Encryption Options":"","Remove this tag from all the notes?":"","Remove this search from the sidebar?":"","Rename":"","Synchronise":"","Notebooks":"","Searches":"","Please select where the sync status should be exported to":"","Usage: %s":"","Unknown flag: %s":"","File system":"","Nextcloud":"","OneDrive":"","OneDrive Dev (For testing only)":"","WebDAV":"","Unknown log level: %s":"","Unknown level ID: %s":"","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"","Cannot access %s":"","Created local items: %d.":"","Updated local items: %d.":"","Created remote items: %d.":"","Updated remote items: %d.":"","Deleted local items: %d.":"","Deleted remote items: %d.":"","Fetched items: %d/%d.":"","State: \"%s\".":"","Cancelling...":"","Completed: %s":"","Last error: %s":"","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"","Encrypted":"","Encrypted items cannot be modified":"","Conflicts":"","A notebook with this title already exists: \"%s\"":"","Notebooks cannot be named \"%s\", which is a reserved title.":"","Untitled":"","This note does not have geolocation information.":"","Cannot copy note to \"%s\" notebook":"","Cannot move note to \"%s\" notebook":"","Text editor":"","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"","Language":"","Date format":"","Time format":"","Theme":"","Light":"","Dark":"","Uncompleted to-dos on top":"","Sort notes by":"","Reverse sort order":"","Save geo-location with notes":"","When creating a new to-do:":"","Focus title":"","Focus body":"","When creating a new note:":"","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"","Synchronisation interval":"","%d minutes":"","%d hour":"","%d hours":"","Show advanced options":"","Synchronisation target":"","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"","Joplin Export File":"","Markdown":"","Joplin Export Directory":"","Evernote Export File":"","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"","Items that cannot be synchronised":"","%s (%s): %s":"","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"","%s: %d/%d":"","Total: %d/%d":"","Conflicted: %d":"","To delete: %d":"","Folders":"","%s: %d notes":"","Coming alarms":"","On %s: %s":"","There are currently no notes. Create one by clicking on the (+) button.":"","Delete these notes?":"","Log":"","Export Debug Report":"","Encryption Config":"","Configuration":"","Move to notebook...":"","Move %d notes to notebook \"%s\"?":"","Press to set the decryption password.":"","Select date":"","Confirm":"","Cancel synchronisation":"","Joplin website":"","Master Key %s":"","Created: %s":"","Password:":"","Password cannot be empty":"","Enable":"","The notebook could not be saved: %s":"","Edit notebook":"","Show all":"","Errors only":"","This note has been modified:":"","Save changes":"","Discard changes":"","Unsupported image type: %s":"","Attach photo":"","Attach any file":"","Convert to note":"","Convert to todo":"","Hide metadata":"","Show metadata":"","View on map":"","Delete notebook":"","Login with OneDrive":"","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"","You currently have no notebook. Create one by clicking on (+) button.":"","Welcome":""}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"","Please select the note or notebook to be deleted first.":"","Press Ctrl+D or type \"exit\" to exit the application":"","More than one item match \"%s\". Please narrow down your query.":"","No notebook selected.":"","No notebook has been specified.":"","Y":"","n":"","N":"","y":"","Cancelling background synchronisation... Please wait.":"","No such command: %s":"","The command \"%s\" is only available in GUI mode":"","Cannot change encrypted item":"","Missing required argument: %s":"","%s: %s":"","Your choice: ":"","Invalid answer: %s":"","Attaches the given file to the note.":"","Cannot find \"%s\".":"","Displays the given note.":"","Displays the complete information about note.":"","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"","Also displays unset and hidden config variables.":"","%s = %s (%s)":"","%s = %s":"","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"","Marks a to-do as done.":"","Note is not a to-do: \"%s\"":"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"","Disabled":"","Encryption is: %s":"","Edit note.":"","No text editor is defined. Please set it using `config editor `":"","No active notebook.":"","Note does not exist: \"%s\". Create it?":"","Starting to edit note. Close the editor to get back to the prompt.":"","Error opening note in editor: %s":"","Note has been saved.":"","Exits the application.":"","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"","Destination format: %s":"","Exports only the given note.":"","Exports only the given notebook.":"","Displays a geolocation URL for the note.":"","Displays usage information.":"","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"","The possible commands are:":"","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"","To move from one pane to another, press Tab or Shift+Tab.":"","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"","To maximise/minimise the console, press \"TC\".":"","To enter command line mode, press \":\"":"","To exit command line mode, press ESCAPE":"","For the list of keyboard shortcuts and config options, type `help keymap`":"","Imports data into Joplin.":"","Source format: %s":"","Do not ask for confirmation.":"","Found: %d.":"","Created: %d.":"","Updated: %d.":"","Skipped: %d.":"","Resources: %d.":"","Tagged: %d.":"","Importing notes...":"","The notes have been imported: %s":"","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"","Displays only the first top  notes.":"","Sorts the item by  (eg. title, updated_time, created_time).":"","Reverses the sorting order.":"","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"","Either \"text\" or \"json\"":"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"","Please select a notebook first.":"","Creates a new notebook.":"","Creates a new note.":"","Notes can only be created within a notebook.":"","Creates a new to-do.":"","Moves the notes matching  to [notebook].":"","Renames the given  (note or notebook) to .":"","Deletes the given notebook.":"","Deletes the notebook without asking for confirmation.":"","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"","Deletes the notes without asking for confirmation.":"","%d notes match this pattern. Delete them?":"","Delete note?":"","Searches for the given  in all the notes.":"","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"","Displays summary about the notes and notebooks.":"","Synchronises with remote storage.":"","Sync to provided target (defaults to sync.target config value)":"","Authentication was not completed (did not receive an authentication token).":"","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"","Synchronisation target: %s (%s)":"","Cannot initialize synchroniser.":"","Starting synchronisation...":"","Cancelling... Please wait.":""," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":"","Invalid command: \"%s\"":""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"","Marks a to-do as non-completed.":"","Switches to [notebook] - all further operations will happen within this notebook.":"","Displays version information":"","%s %s (%s)":"","Enum":"","Type: %s.":"","Possible values: %s.":"","Default: %s":"","Possible keys/values:":"","Type `joplin help` for usage information.":"","Fatal error:":"","The application has been authorised - you may now close this browser tab.":"","The application has been successfully authorised.":"","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"","Search:":"","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"","File":"","New note":"","New to-do":"","New notebook":"","Import":"","Export":"","Print":"","Hide %s":"","Quit":"","Edit":"","Copy":"","Cut":"","Paste":"","Search in all the notes":"","View":"","Toggle editor layout":"","Tools":"","Synchronisation status":"","Encryption options":"","General Options":"","Help":"","Website and documentation":"","Make a donation":"","Check for updates...":"","About Joplin":"","%s %s (%s, %s)":"","Open %s":"","Exit":"","OK":"","Cancel":"","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"","Check synchronisation configuration":"","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"","Updated":"","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"","Encryption is:":"","Back":"","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"","Please create a notebook first.":"","Please create a notebook first":"","Notebook title:":"","Add or remove tags:":"","Separate each tag by a comma.":"","Rename notebook:":"","Set alarm:":"","Search":"","Layout":"","Some items cannot be synchronised.":"","View them now":"","Some items cannot be decrypted.":"","Set the password":"","Add or remove tags":"","Switch between note and to-do type":"","Delete":"","Delete notes?":"","No notes in here. Create one by clicking on \"New note\".":"","There is currently no notebook. Create one by clicking on \"New notebook\".":"","Open...":"","Save as...":"","Unsupported link or message: %s":"","Attach file":"","Tags":"","Set alarm":"","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"","note":"","Creating new %s...":"","Refresh":"","Clear":"","OneDrive Login":"","Options":"","Synchronisation Status":"","Encryption Options":"","Remove this tag from all the notes?":"","Remove this search from the sidebar?":"","Rename":"","Synchronise":"","Notebooks":"","Searches":"","Please select where the sync status should be exported to":"","Usage: %s":"","Unknown flag: %s":"","File system":"","Nextcloud":"","OneDrive":"","OneDrive Dev (For testing only)":"","WebDAV":"","Unknown log level: %s":"","Unknown level ID: %s":"","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"","Cannot access %s":"","Created local items: %d.":"","Updated local items: %d.":"","Created remote items: %d.":"","Updated remote items: %d.":"","Deleted local items: %d.":"","Deleted remote items: %d.":"","Fetched items: %d/%d.":"","State: %s.":"","Cancelling...":"","Completed: %s":"","Last error: %s":"","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"","Encrypted":"","Encrypted items cannot be modified":"","Conflicts":"","A notebook with this title already exists: \"%s\"":"","Notebooks cannot be named \"%s\", which is a reserved title.":"","Untitled":"","This note does not have geolocation information.":"","Cannot copy note to \"%s\" notebook":"","Cannot move note to \"%s\" notebook":"","Text editor":"","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"","Language":"","Date format":"","Time format":"","Theme":"","Light":"","Dark":"","Uncompleted to-dos on top":"","Sort notes by":"","Reverse sort order":"","Save geo-location with notes":"","When creating a new to-do:":"","Focus title":"","Focus body":"","When creating a new note:":"","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"","Synchronisation interval":"","%d minutes":"","%d hour":"","%d hours":"","Show advanced options":"","Synchronisation target":"","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"","Joplin Export File":"","Markdown":"","Joplin Export Directory":"","Evernote Export File":"","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"","Items that cannot be synchronised":"","%s (%s): %s":"","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"","%s: %d/%d":"","Total: %d/%d":"","Conflicted: %d":"","To delete: %d":"","Folders":"","%s: %d notes":"","Coming alarms":"","On %s: %s":"","There are currently no notes. Create one by clicking on the (+) button.":"","Delete these notes?":"","Log":"","Export Debug Report":"","Encryption Config":"","Configuration":"","Move to notebook...":"","Move %d notes to notebook \"%s\"?":"","Press to set the decryption password.":"","Select date":"","Confirm":"","Cancel synchronisation":"","Joplin website":"","Master Key %s":"","Created: %s":"","Password:":"","Password cannot be empty":"","Enable":"","The notebook could not be saved: %s":"","Edit notebook":"","Show all":"","Errors only":"","This note has been modified:":"","Save changes":"","Discard changes":"","Unsupported image type: %s":"","Attach photo":"","Attach any file":"","Convert to note":"","Convert to todo":"","Hide metadata":"","Show metadata":"","View on map":"","Delete notebook":"","Login with OneDrive":"","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"","You currently have no notebook. Create one by clicking on (+) button.":"","Welcome":""}
        \ No newline at end of file
        diff --git a/ElectronClient/app/locales/es_ES.json b/ElectronClient/app/locales/es_ES.json
        index 83465eb5d1..a30f9425bf 100644
        --- a/ElectronClient/app/locales/es_ES.json
        +++ b/ElectronClient/app/locales/es_ES.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"Desmarque las notas asociadas para eliminar una etiqueta.","Please select the note or notebook to be deleted first.":"Seleccione primero la nota o libreta que desea eliminar.","Press Ctrl+D or type \"exit\" to exit the application":"Pulse Ctrl+D o escriba «salir» para salir de la aplicación","More than one item match \"%s\". Please narrow down your query.":"Hay más de un elemento que coincide con «%s», intente mejorar su consulta.","No notebook selected.":"No se ha seleccionado ninguna libreta.","No notebook has been specified.":"Ninguna libreta fue especificada","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Cancelando sincronización de segundo plano... Por favor espere.","No such command: %s":"El comando no existe: %s","The command \"%s\" is only available in GUI mode":"El comando «%s» solamente está disponible en modo GUI","Cannot change encrypted item":"No se puede cambiar el elemento cifrado","Missing required argument: %s":"Falta un argumento requerido: %s","%s: %s":"%s: %s","Your choice: ":"Su elección: ","Invalid answer: %s":"Respuesta inválida: %s","Attaches the given file to the note.":"Adjuntar archivo a la nota.","Cannot find \"%s\".":"No se encuentra \"%s\".","Displays the given note.":"Mostrar la nota dada.","Displays the complete information about note.":"Mostrar la información completa acerca de la nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtener o configurar un valor. Si no se provee el [valor], se mostrará el valor de [nombre]. Si no se provee [nombre] ni [valor], se listará la configuración actual.","Also displays unset and hidden config variables.":"También muestra variables ocultas o no configuradas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica las notas que coincidan con  en la libreta. Si no se especifica una libreta la nota se duplica en la libreta actual.","Marks a to-do as done.":"Marca una tarea como hecha.","Note is not a to-do: \"%s\"":"La nota no es una tarea: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Maneja la configuración E2EE. Comandos disponibles `enable`, `disable`, `decrypt`, `status` y `target-status`.","Enter master password:":"Introduzca la contraseña maestra:","Operation cancelled":"Operación cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando descifrado... Por favor espere, puede tardar varios minutos dependiendo de cuanto haya que descifrar.","Completed decryption.":"Descifrado completado.","Enabled":"Habilitado","Disabled":"Deshabilitado","Encryption is: %s":"El cifrado es: %s","Edit note.":"Editar una nota.","No text editor is defined. Please set it using `config editor `":"No hay editor de texto definido. Por favor configure uno usando `config editor `","No active notebook.":"No hay libreta activa.","Note does not exist: \"%s\". Create it?":"La nota no existe: \"%s\". ¿Crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Iniciando la edición de una nota. Cierre el editor para regresar al prompt.","Error opening note in editor: %s":"Error abriendo la nota en el editor: %s","Note has been saved.":"La nota ha sido guardada.","Exits the application.":"Sale de la aplicación.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporta datos de Joplin al directorio indicado. Por defecto, se exportará la base de datos completa incluyendo libretas, notas, etiquetas y recursos.","Destination format: %s":"Formato de destino: %s","Exports only the given note.":"Exporta únicamente la nota indicada.","Exports only the given notebook.":"Exporta únicamente la libreta indicada.","Displays a geolocation URL for the note.":"Muestra la URL de la geolocalización de la nota.","Displays usage information.":"Muestra información de uso.","For information on how to customise the shortcuts please visit %s":"Para información de cómo personalizar los atajos por favor visite %s","Shortcuts are not available in CLI mode.":"Atajos no disponibles en modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Escriba `help [command]` para obtener más información sobre el comando, o escriba `help all` para obtener toda la información acerca del uso del programa.","The possible commands are:":"Los posibles comandos son:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Con cualquier comando, una nota o libreta puede ser referida por su título o ID, o utilizando atajos `$n` o `$b`, respectivamente, para la nota o libreta seleccionada. Se puede utilizar `$c` para hacer referencia al elemento seleccionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover desde un panel a otro, presione Tabulador o Mayúsuclas+Tabulador.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Para desplazar en las listas y areas de texto (incluyendo la consola) utilice las flechas y re pág/av pág.","To maximise/minimise the console, press \"TC\".":"Para maximizar/minimizar la consola, presione \"TC\".","To enter command line mode, press \":\"":"Para entrar a modo línea de comando, presione \":\"","To exit command line mode, press ESCAPE":"Para salir de modo línea de comando, presione ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Para una lista de los atajos de teclado disponibles, escriba `help keymap`","Imports data into Joplin.":"Importa los datos en Joplin.","Source format: %s":"Formato de origen: %s","Do not ask for confirmation.":"No requiere confirmación.","Found: %d.":"Encontrado: %d.","Created: %d.":"Creado: %d.","Updated: %d.":"Actualizado: %d.","Skipped: %d.":"Omitido: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Etiquetado: %d.","Importing notes...":"Importando notas...","The notes have been imported: %s":"Las notas han sido importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Muestra las notas en la libreta actual. Usa `ls /` para mostrar la lista de libretas.","Displays only the first top  notes.":"Muestra las primeras  notas.","Sorts the item by  (eg. title, updated_time, created_time).":"Ordena los elementos por campo ( ej. title, updated_time, created_time).","Reverses the sorting order.":"Invierte el orden.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Muestra únicamente los elementos de los tipos especificados. Pueden ser `n` para notas, `t` para tareas, o `nt` para libretas y tareas (ej. `-tt` mostrará unicamente las tareas, mientras `-ttd` mostrará notas y tareas).","Either \"text\" or \"json\"":"Puede ser \"text\" o \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usar formato largo de lista. El formato es ID, NOTE_COUNT ( para libretas), DATE,TODO_CHECKED ( para tareas), TITLE","Please select a notebook first.":"Por favor seleccione la libreta.","Creates a new notebook.":"Crea una nueva libreta.","Creates a new note.":"Crea una nueva nota.","Notes can only be created within a notebook.":"Notas solamente pueden ser creadas dentro de una libreta.","Creates a new to-do.":"Crea una nueva lista de tareas.","Moves the notes matching  to [notebook].":"Mueve las notas que coincidan con  a la [libreta].","Renames the given  (note or notebook) to .":"Renombra el elemento dado  (nota o libreta) a .","Deletes the given notebook.":"Elimina la libreta dada.","Deletes the notebook without asking for confirmation.":"Elimina una libreta sin pedir confirmación.","Delete notebook? All notes within this notebook will also be deleted.":"¿Desea eliminar la libreta? Todas las notas dentro de esta libreta también serán eliminadas.","Deletes the notes matching .":"Elimina las notas que coinciden con .","Deletes the notes without asking for confirmation.":"Elimina las notas sin pedir confirmación.","%d notes match this pattern. Delete them?":"%d notas coinciden con el patrón. ¿Eliminarlas?","Delete note?":"¿Eliminar nota?","Searches for the given  in all the notes.":"Buscar el patrón  en todas las notas.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Asigna el valor [value] a la propiedad  de la nota indicada . Propiedades disponibles:\n\n%s","Displays summary about the notes and notebooks.":"Muestra un resumen acerca de las notas y las libretas.","Synchronises with remote storage.":"Sincroniza con el almacenamiento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincroniza con el destino indicado (por defecto al valor de configuración sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticación no completada (no se recibió token de autenticación).","Not authentified with %s. Please provide any missing credentials.":"No autenticado con %s. Por favor provea las credenciales.","Synchronisation is already in progress.":"Sincronzación en progreso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ya hay un archivo de bloqueo. Si está seguro de que no hay una sincronización en curso puede eliminar el archivo de bloqueo «%s» y reanudar la operación.","Synchronisation target: %s (%s)":"Destino de la sincronización: %s (%s)","Cannot initialize synchroniser.":"No se puede inicializar sincronizador.","Starting synchronisation...":"Iniciando sincronización...","Cancelling... Please wait.":"Cancelando... Por favor espere."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" puede ser \"add\", \"remove\" o \"list\" para asignar o eliminar [tag] de [note], o para listar las notas asociadas con [tag]. El comando `tag list` puede ser usado para listar todas las etiquetas.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" puede ser \"toggle\" o \"clear\". Usa \"toggle\" para cambiar la tarea dada entre estado completado y sin completar. (Si el objetivo es una nota regular se convertirá en una tarea). Usa \"clear\" para convertir la tarea a una nota regular.","Marks a to-do as non-completed.":"Marca una tarea como no completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Cambia una [libreta] - todas las demás operaciones se realizan en ésta libreta.","Displays version information":"Muestra información de la versión","%s %s (%s)":"%s %s (%s)","Enum":"Enumeración","Type: %s.":"Tipo: %s.","Possible values: %s.":"Posibles valores: %s.","Default: %s":"Por  defecto: %s","Possible keys/values:":"Claves/valores posbiles:","Type `joplin help` for usage information.":"Escriba `joplin help` para mostrar información de uso.","Fatal error:":"Error fatal:","The application has been authorised - you may now close this browser tab.":"La aplicación ha sido autorizada - ahora puede cerrar esta pestaña de su navegador.","The application has been successfully authorised.":"La aplicacion ha sido autorizada éxitosamente.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra la siguiente URL en su navegador para autenticar la aplicación. La aplicación creará un directorio en «Apps/Joplin» y solo leerá y escribirá archivos en ese directorio. No tendrá acceso a ningún archivo fuera de ese directorio ni a ningún otro archivo personal. No se compartirá información con terceros.","Search:":"Buscar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenido a Joplin.\n\nEscriba «:help shortcuts» para obtener una lista con los atajos de teclado, o simplemente «:help» para información general.\n\nPor ejemplo, para crear una libreta escriba «mb», para crear una nota escriba «mn».","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Uno o más elementos están cifrados y debe proporcionar la contraseña maestra. Para hacerlo por favor escriba `e2ee decrypt`. Si ya ha proporcionado la contraseña, los elementos están siendo descifrados en segundo plano y estarán disponibles en breve.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportando el formato de \"%s\" a \"%s\". Por favor espere...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importando el formato de \"%s\" a \"%s\". Por favor espere...","PDF File":"Archivo PDF","File":"Archivo","New note":"Nueva nota","New to-do":"Nueva lista de tareas","New notebook":"Nueva libreta","Import":"Importar","Export":"Exportar","Print":"Imprimir","Hide %s":"Oculta %s","Quit":"Salir","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Pegar","Search in all the notes":"Buscar en todas las notas","View":"Ver","Toggle editor layout":"Cambia el diseño del editor","Tools":"Herramientas","Synchronisation status":"Estado de la sincronización","Encryption options":"Opciones de cifrado","General Options":"Opciones generales","Help":"Ayuda","Website and documentation":"Sitio web y documentación","Make a donation":"Hacer una donación","Check for updates...":"Comprobar actualizaciones...","About Joplin":"Acerca de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Abrir %s","Exit":"Salir","OK":"OK","Cancel":"Cancelar","Current version is up-to-date.":"La versión actual está actualizada.","An update is available, do you want to download it now?":"Hay disponible una actualización. ¿Quiere descargarla ahora?","Yes":"Sí","No":"No","Check synchronisation configuration":"Comprobar sincronización","Notes and settings are stored in: %s":"Las notas y los ajustes se guardan en: %s","Save":"Guardar","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Deshabilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán descifrados al destino. ¿Desea continuar?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Habilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán cifrados al destino. No pierda la contraseña, por cuestiones de seguridad, ¡es la *única* forma de descifrar los datos! Para habilitar el cifrado, por favor introduzca su contraseña más abajo.","Disable encryption":"Deshabilitar cifrado","Enable encryption":"Habilitar cifrado","Master Keys":"Clave maestra","Active":"Activo","ID":"ID","Source":"Origen","Created":"Creado","Updated":"Actualizado","Password":"Contraseña","Password OK":"Contraseña OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Nota: Solo una clave maestra va a ser utilizar para el cifrado (la marcada como \"activa\"). Cualquiera de las claves puede ser utilizada para descifrar, dependiendo de como fueron cifradas originalmente las notas o las libretas.","Missing Master Keys":"No se encuentra la clave maestra","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"La clave maestra con estos ID son utilizadas para descifrar algunos de tus elementos, pero la apliación no tiene acceso a ellas. Serán descargadas a través de la sincronización.","Status":"Estado","Encryption is:":"El cifrado está:","Back":"Atrás","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Se creará la nueva libreta «%s» y se importará en ella el archivo «%s»","Please create a notebook first.":"Por favor cree una libreta primero.","Please create a notebook first":"Por favor cree una libreta primero","Notebook title:":"Título de libreta:","Add or remove tags:":"Agregar o borrar etiquetas: ","Separate each tag by a comma.":"Separar cada etiqueta por una coma.","Rename notebook:":"Renombrar libreta:","Set alarm:":"Ajustar alarma:","Search":"Buscar","Layout":"Diseño","Some items cannot be synchronised.":"No se han podido sincronizar algunos de los elementos.","View them now":"Verlos ahora","Some items cannot be decrypted.":"No se han podido descifrar algunos elementos.","Set the password":"Establecer la contraseña","Add or remove tags":"Añadir o borrar etiquetas","Switch between note and to-do type":"Cambiar entre nota y lista de tareas","Delete":"Eliminar","Delete notes?":"¿Desea eliminar notas?","No notes in here. Create one by clicking on \"New note\".":"No hay ninguna nota. Cree una pulsando «Nota nueva».","There is currently no notebook. Create one by clicking on \"New notebook\".":"No hay ninguna libreta. Cree una pulsando en «Libreta nueva».","Open...":"Abrir...","Save as...":"Guardar como...","Unsupported link or message: %s":"Enlace o mensaje no soportado: %s","Attach file":"Adjuntar archivo","Tags":"Etiquetas","Set alarm":"Establecer alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota no tiene contenido. Pulse en \"%s\" para cambiar al editor y editar la nota.","to-do":"lista de tareas","note":"nota","Creating new %s...":"Creando nuevo %s...","Refresh":"Refrescar","Clear":"Limpiar","OneDrive Login":"Inicio de sesión de OneDrive","Options":"Opciones","Synchronisation Status":"Estado de la sincronización","Encryption Options":"Opciones de cifrado","Remove this tag from all the notes?":"¿Desea eliminar esta etiqueta de todas las notas?","Remove this search from the sidebar?":"¿Desea eliminar esta búsqueda de la barra lateral?","Rename":"Renombrar","Synchronise":"Sincronizar","Notebooks":"Libretas","Searches":"Búsquedas","Please select where the sync status should be exported to":"Seleccione a dónde se debería exportar el estado de sincronización","Usage: %s":"Uso: %s","Unknown flag: %s":"Etiqueta desconocida: %s","File system":"Sistema de archivos","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Solo para pruebas)","WebDAV":"WebDAV","Unknown log level: %s":"Nivel de log desconocido: %s","Unknown level ID: %s":"ID de nivel desconocido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"No se ha podido actualizar token: faltan datos de autenticación. Reiniciar la sincronización podría solucionar el problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"No se ha podido sincronizar con OneDrive.\n\nEste error suele ocurrir al utilizar OneDrive for Business. Este producto no está soportado.\n\nPodría considerar utilizar una cuenta Personal de OneDrive.","Cannot access %s":"No se ha podido acceder a %s","Created local items: %d.":"Elementos locales creados: %d.","Updated local items: %d.":"Elementos locales actualizados: %d.","Created remote items: %d.":"Elementos remotos creados: %d.","Updated remote items: %d.":"Elementos remotos actualizados: %d.","Deleted local items: %d.":"Elementos locales borrados: %d.","Deleted remote items: %d.":"Elementos remotos borrados: %d.","Fetched items: %d/%d.":"Elementos obtenidos: %d/%d.","State: \"%s\".":"Estado: «%s».","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Last error: %s":"Último error: %s","Idle":"Espera","In progress":"En progreso","Synchronisation is already in progress. State: %s":"La sincronización ya está en progreso. Estado: %s","Encrypted":"Cifrado","Encrypted items cannot be modified":"Los elementos cifrados no pueden ser modificados","Conflicts":"Conflictos","A notebook with this title already exists: \"%s\"":"Ya existe una libreta con este nombre: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"No se puede usar el nombre «%s» para una libreta; es un título reservado.","Untitled":"Sin título","This note does not have geolocation information.":"Esta nota no tiene informacion de geolocalización.","Cannot copy note to \"%s\" notebook":"No se ha podido copiar la nota a la libreta «%s»","Cannot move note to \"%s\" notebook":"No se ha podido mover la nota a la libreta «%s»","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"El editor que se usará para abrir una nota. Se intentará auto-detectar el editor predeterminado si no se proporciona ninguno.","Language":"Idioma","Date format":"Formato de fecha","Time format":"Formato de hora","Theme":"Tema","Light":"Claro","Dark":"Oscuro","Uncompleted to-dos on top":"Mostrar tareas incompletas al inicio de las listas","Sort notes by":"Ordenar notas por","Reverse sort order":"Invierte el orden","Save geo-location with notes":"Guardar geolocalización en las notas","When creating a new to-do:":"Al crear una nueva lista de tareas:","Focus title":"Foco en el título","Focus body":"Foco en el cuerpo","When creating a new note:":"Cuando se crear una nota nueva:","Show tray icon":"Mostrar icono en la bandeja","Global zoom percentage":"Establecer el porcentaje de aumento de la aplicación","Editor font family":"Fuente del editor","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"El nombre de la fuente no se comprobado. Si es incorrecto o está vacío, se utilizará una fuente genérica monoespaciada.","Automatically update the application":"Actualizar la aplicación automáticamente","Synchronisation interval":"Intervalo de sincronización","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opciones avanzadas","Synchronisation target":"Destino de sincronización","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"El destino de la sincronización. Cada destino de la sincronización puede tener parámetros adicionales los cuales son llamados como `sync.NUM.NAME` (todos abajo documentados).","Directory to synchronise with (absolute path)":"Directorio con el que sincronizarse (ruta completa)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"La ruta a la que sincronizar cuando se activa la sincronización con sistema de archivos. Vea «sync.target».","Nextcloud WebDAV URL":"Servidor WebDAV de Nextcloud","Nextcloud username":"Usuario de Nextcloud","Nextcloud password":"Contraseña de Nextcloud","WebDAV URL":"Servidor WebDAV","WebDAV username":"Usuario de WebDAV","WebDAV password":"Contraseña de WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Opción inválida: «%s». Los valores posibles son: %s.","Joplin Export File":"Archivo de exportación de Joplin","Markdown":"Markdown","Joplin Export Directory":"Directorio para exportar de Joplin","Evernote Export File":"Archivo exportado de Evernote","Directory":"Directorio","Cannot load \"%s\" module for format \"%s\"":"No se puede cargar el módulo \"%s\" para el formato \"%s\"","Please specify import format for %s":"Por favor especifique el formato para importar de %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"El elemento se encuentra cifrado: %s \"%s\". Por favor espere a que todos los elementos estén descifrados y pruebe de nuevo.","There is no data to export.":"No hay datos para exportar.","Please specify the notebook where the notes should be imported to.":"Por favor especifique la libreta donde las notas deben ser importadas.","Items that cannot be synchronised":"Elementos que no se pueden sincronizar","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Estos elementos se mantendrán en el dispositivo pero no serán enviados al destino de sincronización. Para encontrar dichos elementos busca en el título o en el ID (el cual se muestra arriba entre corchetes).","Sync status (synced items / total items)":"Estado de sincronización (elementos sincronizados/elementos totales)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Conflictos: %d","To delete: %d":"Borrar: %d","Folders":"Carpetas","%s: %d notes":"%s: %d notas","Coming alarms":"Alarmas próximas","On %s: %s":"En %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"No hay notas. Cree una pulsando en el botón (+).","Delete these notes?":"¿Desea borrar estas notas?","Log":"Log","Export Debug Report":"Exportar informe de depuración","Encryption Config":"Configuración de cifrado","Configuration":"Configuración","Move to notebook...":"Mover a la libreta...","Move %d notes to notebook \"%s\"?":"¿Desea mover %d notas a libreta «%s»?","Press to set the decryption password.":"Presione para establecer la contraseña de descifrado.","Select date":"Seleccione fecha","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronización","Joplin website":"Sitio web de Joplin","Master Key %s":"Clave maestra %s","Created: %s":"Creado: %s","Password:":"Contraseña:","Password cannot be empty":"La contraseña no puede estar vacía","Enable":"Habilitado","The notebook could not be saved: %s":"No se ha podido guardar esta libreta: %s","Edit notebook":"Editar libreta","Show all":"Mostrar todo","Errors only":"Solo errores","This note has been modified:":"Esta nota ha sido modificada:","Save changes":"Guardar cambios","Discard changes":"Descartar cambios","Unsupported image type: %s":"Tipo de imagen no soportado: %s","Attach photo":"Adjuntar foto","Attach any file":"Adjuntar cualquier archivo","Convert to note":"Convertir a nota","Convert to todo":"Convertir a lista de tareas","Hide metadata":"Ocultar metadatos","Show metadata":"Mostrar metadatos","View on map":"Ver en un mapa","Delete notebook":"Borrar libreta","Login with OneDrive":"Acceder con OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Pulse en el botón (+) para crear una nueva nota o libreta. Pulse en el menú lateral para acceder a las libretas existentes.","You currently have no notebook. Create one by clicking on (+) button.":"No hay ninguna libreta. Cree una nueva libreta pulsando en el botón (+).","Welcome":"Bienvenido"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"Desmarque las notas asociadas para eliminar una etiqueta.","Please select the note or notebook to be deleted first.":"Seleccione primero la nota o libreta que desea eliminar.","Press Ctrl+D or type \"exit\" to exit the application":"Pulse Ctrl+D o escriba «salir» para salir de la aplicación","More than one item match \"%s\". Please narrow down your query.":"Hay más de un elemento que coincide con «%s», intente mejorar su consulta.","No notebook selected.":"No se ha seleccionado ninguna libreta.","No notebook has been specified.":"Ninguna libreta fue especificada","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Cancelando sincronización de segundo plano... Por favor espere.","No such command: %s":"El comando no existe: %s","The command \"%s\" is only available in GUI mode":"El comando «%s» solamente está disponible en modo GUI","Cannot change encrypted item":"No se puede cambiar el elemento cifrado","Missing required argument: %s":"Falta un argumento requerido: %s","%s: %s":"%s: %s","Your choice: ":"Su elección: ","Invalid answer: %s":"Respuesta inválida: %s","Attaches the given file to the note.":"Adjuntar archivo a la nota.","Cannot find \"%s\".":"No se encuentra \"%s\".","Displays the given note.":"Mostrar la nota dada.","Displays the complete information about note.":"Mostrar la información completa acerca de la nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtener o configurar un valor. Si no se provee el [valor], se mostrará el valor de [nombre]. Si no se provee [nombre] ni [valor], se listará la configuración actual.","Also displays unset and hidden config variables.":"También muestra variables ocultas o no configuradas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica las notas que coincidan con  en la libreta. Si no se especifica una libreta la nota se duplica en la libreta actual.","Marks a to-do as done.":"Marca una tarea como hecha.","Note is not a to-do: \"%s\"":"La nota no es una tarea: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Maneja la configuración E2EE. Comandos disponibles `enable`, `disable`, `decrypt`, `status` y `target-status`.","Enter master password:":"Introduzca la contraseña maestra:","Operation cancelled":"Operación cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando descifrado... Por favor espere, puede tardar varios minutos dependiendo de cuanto haya que descifrar.","Completed decryption.":"Descifrado completado.","Enabled":"Habilitado","Disabled":"Deshabilitado","Encryption is: %s":"El cifrado es: %s","Edit note.":"Editar una nota.","No text editor is defined. Please set it using `config editor `":"No hay editor de texto definido. Por favor configure uno usando `config editor `","No active notebook.":"No hay libreta activa.","Note does not exist: \"%s\". Create it?":"La nota no existe: \"%s\". ¿Crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Iniciando la edición de una nota. Cierre el editor para regresar al prompt.","Error opening note in editor: %s":"Error abriendo la nota en el editor: %s","Note has been saved.":"La nota ha sido guardada.","Exits the application.":"Sale de la aplicación.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporta datos de Joplin al directorio indicado. Por defecto, se exportará la base de datos completa incluyendo libretas, notas, etiquetas y recursos.","Destination format: %s":"Formato de destino: %s","Exports only the given note.":"Exporta únicamente la nota indicada.","Exports only the given notebook.":"Exporta únicamente la libreta indicada.","Displays a geolocation URL for the note.":"Muestra la URL de la geolocalización de la nota.","Displays usage information.":"Muestra información de uso.","For information on how to customise the shortcuts please visit %s":"Para información de cómo personalizar los atajos por favor visite %s","Shortcuts are not available in CLI mode.":"Atajos no disponibles en modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Escriba `help [command]` para obtener más información sobre el comando, o escriba `help all` para obtener toda la información acerca del uso del programa.","The possible commands are:":"Los posibles comandos son:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Con cualquier comando, una nota o libreta puede ser referida por su título o ID, o utilizando atajos `$n` o `$b`, respectivamente, para la nota o libreta seleccionada. Se puede utilizar `$c` para hacer referencia al elemento seleccionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover desde un panel a otro, presione Tabulador o Mayúsuclas+Tabulador.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Para desplazar en las listas y areas de texto (incluyendo la consola) utilice las flechas y re pág/av pág.","To maximise/minimise the console, press \"TC\".":"Para maximizar/minimizar la consola, presione \"TC\".","To enter command line mode, press \":\"":"Para entrar a modo línea de comando, presione \":\"","To exit command line mode, press ESCAPE":"Para salir de modo línea de comando, presione ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Para una lista de los atajos de teclado disponibles, escriba `help keymap`","Imports data into Joplin.":"Importa los datos en Joplin.","Source format: %s":"Formato de origen: %s","Do not ask for confirmation.":"No requiere confirmación.","Found: %d.":"Encontrado: %d.","Created: %d.":"Creado: %d.","Updated: %d.":"Actualizado: %d.","Skipped: %d.":"Omitido: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Etiquetado: %d.","Importing notes...":"Importando notas...","The notes have been imported: %s":"Las notas han sido importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Muestra las notas en la libreta actual. Usa `ls /` para mostrar la lista de libretas.","Displays only the first top  notes.":"Muestra las primeras  notas.","Sorts the item by  (eg. title, updated_time, created_time).":"Ordena los elementos por campo ( ej. title, updated_time, created_time).","Reverses the sorting order.":"Invierte el orden.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Muestra únicamente los elementos de los tipos especificados. Pueden ser `n` para notas, `t` para tareas, o `nt` para libretas y tareas (ej. `-tt` mostrará unicamente las tareas, mientras `-ttd` mostrará notas y tareas).","Either \"text\" or \"json\"":"Puede ser \"text\" o \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usar formato largo de lista. El formato es ID, NOTE_COUNT ( para libretas), DATE,TODO_CHECKED ( para tareas), TITLE","Please select a notebook first.":"Por favor seleccione la libreta.","Creates a new notebook.":"Crea una nueva libreta.","Creates a new note.":"Crea una nueva nota.","Notes can only be created within a notebook.":"Notas solamente pueden ser creadas dentro de una libreta.","Creates a new to-do.":"Crea una nueva lista de tareas.","Moves the notes matching  to [notebook].":"Mueve las notas que coincidan con  a la [libreta].","Renames the given  (note or notebook) to .":"Renombra el elemento dado  (nota o libreta) a .","Deletes the given notebook.":"Elimina la libreta dada.","Deletes the notebook without asking for confirmation.":"Elimina una libreta sin pedir confirmación.","Delete notebook? All notes within this notebook will also be deleted.":"¿Desea eliminar la libreta? Todas las notas dentro de esta libreta también serán eliminadas.","Deletes the notes matching .":"Elimina las notas que coinciden con .","Deletes the notes without asking for confirmation.":"Elimina las notas sin pedir confirmación.","%d notes match this pattern. Delete them?":"%d notas coinciden con el patrón. ¿Eliminarlas?","Delete note?":"¿Eliminar nota?","Searches for the given  in all the notes.":"Buscar el patrón  en todas las notas.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Asigna el valor [value] a la propiedad  de la nota indicada . Propiedades disponibles:\n\n%s","Displays summary about the notes and notebooks.":"Muestra un resumen acerca de las notas y las libretas.","Synchronises with remote storage.":"Sincroniza con el almacenamiento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincroniza con el destino indicado (por defecto al valor de configuración sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticación no completada (no se recibió token de autenticación).","Not authentified with %s. Please provide any missing credentials.":"No autenticado con %s. Por favor provea las credenciales.","Synchronisation is already in progress.":"Sincronzación en progreso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ya hay un archivo de bloqueo. Si está seguro de que no hay una sincronización en curso puede eliminar el archivo de bloqueo «%s» y reanudar la operación.","Synchronisation target: %s (%s)":"Destino de la sincronización: %s (%s)","Cannot initialize synchroniser.":"No se puede inicializar sincronizador.","Starting synchronisation...":"Iniciando sincronización...","Cancelling... Please wait.":"Cancelando... Por favor espere."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" puede ser \"add\", \"remove\" o \"list\" para asignar o eliminar [tag] de [note], o para listar las notas asociadas con [tag]. El comando `tag list` puede ser usado para listar todas las etiquetas.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" puede ser \"toggle\" o \"clear\". Usa \"toggle\" para cambiar la tarea dada entre estado completado y sin completar. (Si el objetivo es una nota regular se convertirá en una tarea). Usa \"clear\" para convertir la tarea a una nota regular.","Marks a to-do as non-completed.":"Marca una tarea como no completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Cambia una [libreta] - todas las demás operaciones se realizan en ésta libreta.","Displays version information":"Muestra información de la versión","%s %s (%s)":"%s %s (%s)","Enum":"Enumeración","Type: %s.":"Tipo: %s.","Possible values: %s.":"Posibles valores: %s.","Default: %s":"Por  defecto: %s","Possible keys/values:":"Claves/valores posbiles:","Type `joplin help` for usage information.":"Escriba `joplin help` para mostrar información de uso.","Fatal error:":"Error fatal:","The application has been authorised - you may now close this browser tab.":"La aplicación ha sido autorizada - ahora puede cerrar esta pestaña de su navegador.","The application has been successfully authorised.":"La aplicacion ha sido autorizada éxitosamente.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra la siguiente URL en su navegador para autenticar la aplicación. La aplicación creará un directorio en «Apps/Joplin» y solo leerá y escribirá archivos en ese directorio. No tendrá acceso a ningún archivo fuera de ese directorio ni a ningún otro archivo personal. No se compartirá información con terceros.","Search:":"Buscar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenido a Joplin.\n\nEscriba «:help shortcuts» para obtener una lista con los atajos de teclado, o simplemente «:help» para información general.\n\nPor ejemplo, para crear una libreta escriba «mb», para crear una nota escriba «mn».","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Uno o más elementos están cifrados y debe proporcionar la contraseña maestra. Para hacerlo por favor escriba `e2ee decrypt`. Si ya ha proporcionado la contraseña, los elementos están siendo descifrados en segundo plano y estarán disponibles en breve.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportando el formato de \"%s\" a \"%s\". Por favor espere...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importando el formato de \"%s\" a \"%s\". Por favor espere...","PDF File":"Archivo PDF","File":"Archivo","New note":"Nueva nota","New to-do":"Nueva lista de tareas","New notebook":"Nueva libreta","Import":"Importar","Export":"Exportar","Print":"Imprimir","Hide %s":"Oculta %s","Quit":"Salir","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Pegar","Search in all the notes":"Buscar en todas las notas","View":"Ver","Toggle editor layout":"Cambia el diseño del editor","Tools":"Herramientas","Synchronisation status":"Estado de la sincronización","Encryption options":"Opciones de cifrado","General Options":"Opciones generales","Help":"Ayuda","Website and documentation":"Sitio web y documentación","Make a donation":"Hacer una donación","Check for updates...":"Comprobar actualizaciones...","About Joplin":"Acerca de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Abrir %s","Exit":"Salir","OK":"OK","Cancel":"Cancelar","Current version is up-to-date.":"La versión actual está actualizada.","An update is available, do you want to download it now?":"Hay disponible una actualización. ¿Quiere descargarla ahora?","Yes":"Sí","No":"No","Check synchronisation configuration":"Comprobar sincronización","Notes and settings are stored in: %s":"Las notas y los ajustes se guardan en: %s","Save":"Guardar","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Deshabilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán descifrados al destino. ¿Desea continuar?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Habilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán cifrados al destino. No pierda la contraseña, por cuestiones de seguridad, ¡es la *única* forma de descifrar los datos! Para habilitar el cifrado, por favor introduzca su contraseña más abajo.","Disable encryption":"Deshabilitar cifrado","Enable encryption":"Habilitar cifrado","Master Keys":"Clave maestra","Active":"Activo","ID":"ID","Source":"Origen","Created":"Creado","Updated":"Actualizado","Password":"Contraseña","Password OK":"Contraseña OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Nota: Solo una clave maestra va a ser utilizar para el cifrado (la marcada como \"activa\"). Cualquiera de las claves puede ser utilizada para descifrar, dependiendo de como fueron cifradas originalmente las notas o las libretas.","Missing Master Keys":"No se encuentra la clave maestra","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"La clave maestra con estos ID son utilizadas para descifrar algunos de tus elementos, pero la apliación no tiene acceso a ellas. Serán descargadas a través de la sincronización.","Status":"Estado","Encryption is:":"El cifrado está:","Back":"Atrás","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Se creará la nueva libreta «%s» y se importará en ella el archivo «%s»","Please create a notebook first.":"Por favor cree una libreta primero.","Please create a notebook first":"Por favor cree una libreta primero","Notebook title:":"Título de libreta:","Add or remove tags:":"Agregar o borrar etiquetas: ","Separate each tag by a comma.":"Separar cada etiqueta por una coma.","Rename notebook:":"Renombrar libreta:","Set alarm:":"Ajustar alarma:","Search":"Buscar","Layout":"Diseño","Some items cannot be synchronised.":"No se han podido sincronizar algunos de los elementos.","View them now":"Verlos ahora","Some items cannot be decrypted.":"No se han podido descifrar algunos elementos.","Set the password":"Establecer la contraseña","Add or remove tags":"Añadir o borrar etiquetas","Switch between note and to-do type":"Cambiar entre nota y lista de tareas","Delete":"Eliminar","Delete notes?":"¿Desea eliminar notas?","No notes in here. Create one by clicking on \"New note\".":"No hay ninguna nota. Cree una pulsando «Nota nueva».","There is currently no notebook. Create one by clicking on \"New notebook\".":"No hay ninguna libreta. Cree una pulsando en «Libreta nueva».","Open...":"Abrir...","Save as...":"Guardar como...","Unsupported link or message: %s":"Enlace o mensaje no soportado: %s","Attach file":"Adjuntar archivo","Tags":"Etiquetas","Set alarm":"Establecer alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota no tiene contenido. Pulse en \"%s\" para cambiar al editor y editar la nota.","to-do":"lista de tareas","note":"nota","Creating new %s...":"Creando nuevo %s...","Refresh":"Refrescar","Clear":"Limpiar","OneDrive Login":"Inicio de sesión de OneDrive","Options":"Opciones","Synchronisation Status":"Estado de la sincronización","Encryption Options":"Opciones de cifrado","Remove this tag from all the notes?":"¿Desea eliminar esta etiqueta de todas las notas?","Remove this search from the sidebar?":"¿Desea eliminar esta búsqueda de la barra lateral?","Rename":"Renombrar","Synchronise":"Sincronizar","Notebooks":"Libretas","Searches":"Búsquedas","Please select where the sync status should be exported to":"Seleccione a dónde se debería exportar el estado de sincronización","Usage: %s":"Uso: %s","Unknown flag: %s":"Etiqueta desconocida: %s","File system":"Sistema de archivos","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Solo para pruebas)","WebDAV":"WebDAV","Unknown log level: %s":"Nivel de log desconocido: %s","Unknown level ID: %s":"ID de nivel desconocido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"No se ha podido actualizar token: faltan datos de autenticación. Reiniciar la sincronización podría solucionar el problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"No se ha podido sincronizar con OneDrive.\n\nEste error suele ocurrir al utilizar OneDrive for Business. Este producto no está soportado.\n\nPodría considerar utilizar una cuenta Personal de OneDrive.","Cannot access %s":"No se ha podido acceder a %s","Created local items: %d.":"Elementos locales creados: %d.","Updated local items: %d.":"Elementos locales actualizados: %d.","Created remote items: %d.":"Elementos remotos creados: %d.","Updated remote items: %d.":"Elementos remotos actualizados: %d.","Deleted local items: %d.":"Elementos locales borrados: %d.","Deleted remote items: %d.":"Elementos remotos borrados: %d.","Fetched items: %d/%d.":"Elementos obtenidos: %d/%d.","State: %s.":"State: %s.","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Last error: %s":"Último error: %s","Idle":"Espera","In progress":"En progreso","Synchronisation is already in progress. State: %s":"La sincronización ya está en progreso. Estado: %s","Encrypted":"Cifrado","Encrypted items cannot be modified":"Los elementos cifrados no pueden ser modificados","Conflicts":"Conflictos","A notebook with this title already exists: \"%s\"":"Ya existe una libreta con este nombre: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"No se puede usar el nombre «%s» para una libreta; es un título reservado.","Untitled":"Sin título","This note does not have geolocation information.":"Esta nota no tiene informacion de geolocalización.","Cannot copy note to \"%s\" notebook":"No se ha podido copiar la nota a la libreta «%s»","Cannot move note to \"%s\" notebook":"No se ha podido mover la nota a la libreta «%s»","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"El editor que se usará para abrir una nota. Se intentará auto-detectar el editor predeterminado si no se proporciona ninguno.","Language":"Idioma","Date format":"Formato de fecha","Time format":"Formato de hora","Theme":"Tema","Light":"Claro","Dark":"Oscuro","Uncompleted to-dos on top":"Mostrar tareas incompletas al inicio de las listas","Sort notes by":"Ordenar notas por","Reverse sort order":"Invierte el orden","Save geo-location with notes":"Guardar geolocalización en las notas","When creating a new to-do:":"Al crear una nueva lista de tareas:","Focus title":"Foco en el título","Focus body":"Foco en el cuerpo","When creating a new note:":"Cuando se crear una nota nueva:","Show tray icon":"Mostrar icono en la bandeja","Global zoom percentage":"Establecer el porcentaje de aumento de la aplicación","Editor font family":"Fuente del editor","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"El nombre de la fuente no se comprobado. Si es incorrecto o está vacío, se utilizará una fuente genérica monoespaciada.","Automatically update the application":"Actualizar la aplicación automáticamente","Synchronisation interval":"Intervalo de sincronización","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opciones avanzadas","Synchronisation target":"Destino de sincronización","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"El destino de la sincronización. Cada destino de la sincronización puede tener parámetros adicionales los cuales son llamados como `sync.NUM.NAME` (todos abajo documentados).","Directory to synchronise with (absolute path)":"Directorio con el que sincronizarse (ruta completa)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"La ruta a la que sincronizar cuando se activa la sincronización con sistema de archivos. Vea «sync.target».","Nextcloud WebDAV URL":"Servidor WebDAV de Nextcloud","Nextcloud username":"Usuario de Nextcloud","Nextcloud password":"Contraseña de Nextcloud","WebDAV URL":"Servidor WebDAV","WebDAV username":"Usuario de WebDAV","WebDAV password":"Contraseña de WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Opción inválida: «%s». Los valores posibles son: %s.","Joplin Export File":"Archivo de exportación de Joplin","Markdown":"Markdown","Joplin Export Directory":"Directorio para exportar de Joplin","Evernote Export File":"Archivo exportado de Evernote","Directory":"Directorio","Cannot load \"%s\" module for format \"%s\"":"No se puede cargar el módulo \"%s\" para el formato \"%s\"","Please specify import format for %s":"Por favor especifique el formato para importar de %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"El elemento se encuentra cifrado: %s \"%s\". Por favor espere a que todos los elementos estén descifrados y pruebe de nuevo.","There is no data to export.":"No hay datos para exportar.","Please specify the notebook where the notes should be imported to.":"Por favor especifique la libreta donde las notas deben ser importadas.","Items that cannot be synchronised":"Elementos que no se pueden sincronizar","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Estos elementos se mantendrán en el dispositivo pero no serán enviados al destino de sincronización. Para encontrar dichos elementos busca en el título o en el ID (el cual se muestra arriba entre corchetes).","Sync status (synced items / total items)":"Estado de sincronización (elementos sincronizados/elementos totales)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Conflictos: %d","To delete: %d":"Borrar: %d","Folders":"Carpetas","%s: %d notes":"%s: %d notas","Coming alarms":"Alarmas próximas","On %s: %s":"En %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"No hay notas. Cree una pulsando en el botón (+).","Delete these notes?":"¿Desea borrar estas notas?","Log":"Log","Export Debug Report":"Exportar informe de depuración","Encryption Config":"Configuración de cifrado","Configuration":"Configuración","Move to notebook...":"Mover a la libreta...","Move %d notes to notebook \"%s\"?":"¿Desea mover %d notas a libreta «%s»?","Press to set the decryption password.":"Presione para establecer la contraseña de descifrado.","Select date":"Seleccione fecha","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronización","Joplin website":"Sitio web de Joplin","Master Key %s":"Clave maestra %s","Created: %s":"Creado: %s","Password:":"Contraseña:","Password cannot be empty":"La contraseña no puede estar vacía","Enable":"Habilitado","The notebook could not be saved: %s":"No se ha podido guardar esta libreta: %s","Edit notebook":"Editar libreta","Show all":"Mostrar todo","Errors only":"Solo errores","This note has been modified:":"Esta nota ha sido modificada:","Save changes":"Guardar cambios","Discard changes":"Descartar cambios","Unsupported image type: %s":"Tipo de imagen no soportado: %s","Attach photo":"Adjuntar foto","Attach any file":"Adjuntar cualquier archivo","Convert to note":"Convertir a nota","Convert to todo":"Convertir a lista de tareas","Hide metadata":"Ocultar metadatos","Show metadata":"Mostrar metadatos","View on map":"Ver en un mapa","Delete notebook":"Borrar libreta","Login with OneDrive":"Acceder con OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Pulse en el botón (+) para crear una nueva nota o libreta. Pulse en el menú lateral para acceder a las libretas existentes.","You currently have no notebook. Create one by clicking on (+) button.":"No hay ninguna libreta. Cree una nueva libreta pulsando en el botón (+).","Welcome":"Bienvenido"}
        \ No newline at end of file
        diff --git a/ElectronClient/app/locales/eu.json b/ElectronClient/app/locales/eu.json
        index 584a768032..10e1ced37c 100644
        --- a/ElectronClient/app/locales/eu.json
        +++ b/ElectronClient/app/locales/eu.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"Etiketa ezabatzeko, kendu etiketa duten oharrei","Please select the note or notebook to be deleted first.":"Aurretik aukeratu ezabatzeko oharra edo koadernoa, mesedez.","Press Ctrl+D or type \"exit\" to exit the application":"Sakatu Ktrl+D edo idatzi \"exit\" aplikaziotik irteteko","More than one item match \"%s\". Please narrow down your query.":"Elementu bat baino gehiago bat dator \"%s\" bilaketarekin. Mugatu zure bilaketa, mesedez.","No notebook selected.":"Ez dago koadernorik aukeratuta","No notebook has been specified.":"Ez dago koadernorik aukeratuta.","Y":"B","n":"e","N":"E","y":"b","Cancelling background synchronisation... Please wait.":"Atzeko sinkronizazioa uzten... Mesedez itxaron.","No such command: %s":"Ez dago komandorik: %s","The command \"%s\" is only available in GUI mode":"\"%s\" komandoa  soilik eskuragarri GUI moduan","Cannot change encrypted item":"Ezinezkoa zifratutako itema aldatzea","Missing required argument: %s":"Beharrezko argumentua faltan: %s","%s: %s":"%s: %s","Your choice: ":"Zure aukera:","Invalid answer: %s":"Erantzun baliogabea: %s","Attaches the given file to the note.":"Erantsi fitxategia notan","Cannot find \"%s\".":"Ezin aurkitu \"%s\"","Displays the given note.":"Oharra erakutsi","Displays the complete information about note.":"Erakutsi oharrari buruzko informazio guztia.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Konfigurazio balioa hartu edo ezartzen du. Baldin eta [balioa] ez bada ematen, [izena]ren balioa erakutsiko du. Ez bada ematen [izena] ez [balioa], oraingo konfigurazioaren zerrenda erakutsiko da.","Also displays unset and hidden config variables.":"Ezkutuko edo zehaztu gabeko konfigurazio aldagaiak ere erakusten ditu.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"rekin bat datozen oharrak [koaderno]ra kopiatzen ditu. Koadernorik ez bada zehazten, oharra oraingo koadernoan bikoiztuko da","Marks a to-do as done.":"Markatu zeregina egindakotzat.","Note is not a to-do: \"%s\"":"Oharra ez da zeregina: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"E2EEren konfigurazioa erabiltzen du. Komandoak dira `enable`, `disable`, `decrypt`, `status` eta `target-status`.","Enter master password:":"Sartu pasahitz nagusia:","Operation cancelled":" Eragiketa utzita","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Deszifratzearen hasiera... Mesedez itxaron, prozesua luzea izan daiteke, zenbat dagoen prozesatzeko.","Completed decryption.":"Deszifratuta.","Enabled":"Gaituta","Disabled":"Desgaituta","Encryption is: %s":"Zifratzea da: %s","Edit note.":"Oharra editatu.","No text editor is defined. Please set it using `config editor `":"Testu editorerik ez dago definituta. Egin hau erabilita, mesedez: `config editor `","No active notebook.":"Ez dago koadernorik aukeratuta.","Note does not exist: \"%s\". Create it?":"Ez dago oharrik: \"%s\". Sortu?","Starting to edit note. Close the editor to get back to the prompt.":"Oharra editatzearen hasiera. Itxi editorea prompt-era bueltatzeko.","Error opening note in editor: %s":"Errorea editorean oharra zabaltzean: %s","Note has been saved.":"Oharra gorde da.","Exits the application.":"Irten aplikaziotik.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Esportatu emandako oharra soilik.","Exports only the given notebook.":"Esportatu emandako koadernoa soilik.","Displays a geolocation URL for the note.":"Erakutsi URL geolokalizazioa oharrean.","Displays usage information.":"Erakutsi erabilera datuak.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"CLI moduan ez dago lasterbiderik erabilgarri.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Idatzi `help [command]` komandoari buruzko informazio gehiagorako; edo idatzi `help all` erabilerari buruzko informazio osoa lortzeko.","The possible commands are:":"Litezkeen komandoak hauek dira:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Edozein komandotan, oharra edo koadernoari erreferentzia egin ahal zaio izenburuz edo ID erabilita, edo `$n` edo `$b` lasterbideak erabilita, aukeratuta dagoen oharra edo koadernoa erabiltzeko. `$c` ere erabil daiteke aukeratutako elementua erabiltzeko.","To move from one pane to another, press Tab or Shift+Tab.":"Panel batetik bestera mugitzeko, sakatu Tab edo Shifft + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Erabili geziak edo page up/down list eta testu guneen artean aldatzeko (kontsola hau ere kontuan izanda).","To maximise/minimise the console, press \"TC\".":"Kontsola maximizatu edo minimizatzeko, saka \"TC\" .","To enter command line mode, press \":\"":"Komando lerroa sartzeko, idatzi \":\"","To exit command line mode, press ESCAPE":"Komando lerrotik irteteko, sakatu ESC, mesedez","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Ez galdetu berresteko.","Found: %d.":"Aurkitua: %d","Created: %d.":"Sortuta: %d.","Updated: %d.":"Eguneratuta: %d.","Skipped: %d.":"Saltatuta: %d.","Resources: %d.":"Baliabideak: %d.","Tagged: %d.":"Etiketatuta: %d.","Importing notes...":"Oharrak inportatzen...","The notes have been imported: %s":"Oharrak inportatu dira: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Oraingo koadernoko oharrak erakusten ditu. Erabili `ls /` koadernoen zerrenda erakusteko.","Displays only the first top  notes.":"Erakusten ditu soilik gorengo  oharrak.","Sorts the item by  (eg. title, updated_time, created_time).":"Itemak antolatzen ditu  arabera (esate baterako, izenburua, eguneratze_unea, sortze_unea).","Reverses the sorting order.":"Alderantziz antolatzen du.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Zehaztutako item motak baino ez du erakusten. Izan daiteke `n` oharretarako, `t` zereginetarako, edo `nt` ohar eta zereginetarako (esate batrako, `-tt` zereginak erakutsiko ditu soilik, `-ttd` berriz zereginak eta oharrak.","Either \"text\" or \"json\"":"Either \"text\" or \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Zerrenda luzearen formatua erabili. Formatua hau da, ID, NOTE_COUNT (libururako), DATE, TODO_CHECKED (zereginetarako), TITLE","Please select a notebook first.":"Aurretik aukeratu formatua, mesedez.","Creates a new notebook.":"Koaderno berria sortzen du.","Creates a new note.":"Ohar berria sortzen du.","Notes can only be created within a notebook.":"Oharrak soilik sor daitezke koaderno baten barruan.","Creates a new to-do.":"Zeregin berria sortu.","Moves the notes matching  to [notebook].":"Oharrak eramaten ditu  bilatuta [notebook]era.","Renames the given  (note or notebook) to .":"Ber izendatu emandako  (oharra edo koadernoa)  izen berriaz.","Deletes the given notebook.":"Ezabatu emandako koadernoak.","Deletes the notebook without asking for confirmation.":"Ezabatu koadernoak berrespenik gabe.","Delete notebook? All notes within this notebook will also be deleted.":"Koadernoa ezabatu? Dituen ohar guztiak ere ezabatuko dira.","Deletes the notes matching .":"Ezabatu bat datozen oharrak:  .","Deletes the notes without asking for confirmation.":"Ezabatu oharrak berrespenik eskatu gabe.","%d notes match this pattern. Delete them?":"%d oharrak bat datoz ereduarekin. Ezabatu nahi dituzu?","Delete note?":"Oharra ezabatu?","Searches for the given  in all the notes.":"Emandako  bilatzen du ohar guztietan.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Emandako ren  ezaugarrian emandako [value] balioa ezartzen du. Litezkeen ezaugarriak dira:\n\n%s","Displays summary about the notes and notebooks.":"Oharren eta koadernoen laburpena erakusten du.","Synchronises with remote storage.":"Urruneko biltegiarekin sinkronizatzen du.","Sync to provided target (defaults to sync.target config value)":"Sync to provided target (defaults to sync.target config value)","Authentication was not completed (did not receive an authentication token).":"Autentifikazioa ez da egin osorik (ez du token-ik hartu).","Not authentified with %s. Please provide any missing credentials.":"Ez da autentifikatu %s -rekin. Eman galdutako kredentzialak.","Synchronisation is already in progress.":"Sinkronizazio prozesua dagoeneko abian da.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Giltzatzeko fitxategia dagoeneko eutsita dagoeneko. Baldin eta badakizu ez dena sinkronizaziorik egiten ari, ken dezakezu giltzatzeko fitxategia \"%s\"-n eta berrekin eragiketari.","Synchronisation target: %s (%s)":"Sinkronizazio helburua: %s (%s)","Cannot initialize synchroniser.":"Ezin has daiteke sinkronizazio prozesua.","Starting synchronisation...":"Sinkronizazioa hasten...","Cancelling... Please wait.":"Bertan behera uzten... itxaron, mesedez."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" izan daiteke \"add\", \"remove\" edo \"list\" [oharra]tik [etiketa] esleitu edo kentzeko, edo [etiketa]rekin elkartutako oharrak zerrendatzeko. Etiketa guztiak zerrendatzeko `tag list` komandoa erabil daiteke. ","Invalid command: \"%s\"":"Komando baliogabea: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" erabil daiteke \"txandakatzeko\" edo \"garbitzeko\". Erabili \"txandakatu\", emandako zeregina txandakatzeko bete ala ez-betea txandaketzeko (helburua ohar arrunta bada, zeregin bihurtuko da. Erabili \"garbitu\" zeregina ohar arrunt bilakatzeko.","Marks a to-do as non-completed.":"Markatu zeregina betegabe moduan.","Switches to [notebook] - all further operations will happen within this notebook.":"Aldatu [koaderno]ra - hurrengo eragiketak koaderno horretan jazoko dira.","Displays version information":"Erakutsi bertsioko informazioa","%s %s (%s)":"%s %s (%s)","Enum":"Zenbakitu","Type: %s.":"Idatz: %s.","Possible values: %s.":"Litezkeen balioak: %s.","Default: %s":"Lehenetsia: %s","Possible keys/values:":"Litezkeen balioak:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Aio! Agur! :_( ","The application has been authorised - you may now close this browser tab.":"Aplikazioak baimena hartu du - Orain fitxa hau zarratu dezakezu.","The application has been successfully authorised.":"Aplikazioak baimena hartu du.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.","Search:":"Bilatu:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Ongi etorri Joplin-era!\n\nIdatz `:help shortcuts` lasterbideak ikusteko, edo soilik `:help`erabilerako informaziorako.\n\nEsate baterako, koadernoa sortzeko sakatu `mb`: oharra sortzeko sakatu `mn`","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Item bat edo gehiago orain zifratuta daude eta baliteke zuk pasahitz nagusia ordezkatu behar izatea. Horixe egiteko, mesedez, idatz `e2ee decrypt`. Dagoeneko pasahitza ordezkatua baduzu, itemak deszifratzen ari izango dira atzeko planoan eta laster izango dira eskuragarri.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"Fitxategia","New note":"Ohar berria","New to-do":"Zeregin berria","New notebook":"Koaderno berria","Import":"Inportatu","Export":"Export","Print":"","Hide %s":"","Quit":"Irten","Edit":"Editatu","Copy":"Kopiatu","Cut":"Moztu","Paste":"Itsatsi","Search in all the notes":"Bilatu ohar guztietan","View":"","Toggle editor layout":"","Tools":"Tresnak","Synchronisation status":"Sinkronizazioaren egoera","Encryption options":"Zifratzeko aukerak","General Options":"Ezarpenak","Help":"Laguntza","Website and documentation":"Web orria eta dokumentazioa (en)","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Joplin-i buruz","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Utzi","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Oharrak eta ezarpenak hemen daude gordeta: %s","Save":"Gorde","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Zifratua desgaitzeak esan nahi du zure ohar eta eranskin *guztiak* berriro deszifratuta sinkronizatuko eta bidaliko direla sinkronizazio helburura. Segitu nahi duzu?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Zifratua gaitzeak esan nahi du zure ohar eta eranskin *guztiak* zifratuta sinkronizatuko eta bidaliko direla sinkronizazio helburura. Ez galdu pasahitza, bera izango baita datuak deszifratzeko bide *bakarra*! Zifratua baimentzeko, mesedez, aurretik sartu zure pasahitza.","Disable encryption":"Zifratzea desgaitu","Enable encryption":"Zifratua gaitu","Master Keys":"Pasahitz nagusia","Active":"Aktibo","ID":"ID","Source":"Iturburua","Created":"Sortua","Updated":"Eguneratua","Password":"Pasahitza","Password OK":"Pasahitza ondo","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Egoera","Encryption is:":"Zifratua  da:","Back":"Atzera","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"\"%s\" koaderno berria sortuko da eta \"%s\" Fitxategia inportatuko da bertara","Please create a notebook first.":"Aurretik sortu koadernoa, mesedez.","Please create a notebook first":"Aurretik sortu koadernoa, mesedez","Notebook title:":"Koadernoaren izenburua: ","Add or remove tags:":"Gehitu edo ezabatu etiketak:","Separate each tag by a comma.":"Banatu etiketak koma erabiliaz.","Rename notebook:":"Berrizendatu koadernoa:","Set alarm:":"Ezarri alarma:","Search":"Bilatu","Layout":"Diseinua","Some items cannot be synchronised.":"Zenbait item ezin dira sinkronizatu.","View them now":"Ikusi hori orain","Some items cannot be decrypted.":"Zenbait item ezin dira deszifratu.","Set the password":"Ezarri pasahitza","Add or remove tags":"Gehitu edo ezabatu etiketak","Switch between note and to-do type":"Aldatu oharra eta zeregin eren artean.","Delete":"Ezabatu","Delete notes?":"Oharrak ezabatu?","No notes in here. Create one by clicking on \"New note\".":"Hemen ez dago oharrik. Sortu bat \"Ohar berria\" sakatuta.","There is currently no notebook. Create one by clicking on \"New notebook\".":"Momentuz ez dago koadernorik. Sortu bat \"Koaderno berria\" sakatuta.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Esteka edo mezu ez dago onartua: %s","Attach file":"Erantsi fitxategia","Tags":"Etiketak","Set alarm":"Ezarri alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Refresh","Clear":"Garbitu","OneDrive Login":"Logeatu OneDriven","Options":"Aukerak","Synchronisation Status":"Sinkronizazioaren egoera","Encryption Options":"Zifratzeko aukerak","Remove this tag from all the notes?":"Kendu etiketa hori ohar guztietatik?","Remove this search from the sidebar?":"Kendu bilaketa hori ohar guztietatik?","Rename":"Berrizendatu","Synchronise":"Sinkronizatu","Notebooks":"Koadernoak","Searches":"Bilaketak","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Erabili: %s","Unknown flag: %s":"Marka ezezaguna: %s","File system":"Fitxategi sistema","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (aprobetarako soilik)","WebDAV":"WebDAV","Unknown log level: %s":"Egunkari maila ezezaguna: %s","Unknown level ID: %s":"IDa maila ezezaguna: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Tokena ezin eguneratu daiteke: egiaztatze-datuak desagertuta daude. Agian, berriro sinkronizatzeak arazoa konpon lezake.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.","Cannot access %s":"Ezin atzituta %s","Created local items: %d.":"Item lokalak sortuta: %d.","Updated local items: %d.":"Item lokalak eguneratuta: %d.","Created remote items: %d.":"Urruneko itemak sortuta: %d.","Updated remote items: %d.":"Urruneko itemak eguneratuta: %d.","Deleted local items: %d.":"Item lokala ezabatuta: %d.","Deleted remote items: %d.":"Urruneko itemak ezabatuta: %d.","Fetched items: %d/%d.":"Itemak eskuratuta: %d%d.","State: \"%s\".":"Egoera: \"%s\".","Cancelling...":"Bertan behera uzten...","Completed: %s":"Osatuta: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Sinkronizazioa hasita dago. Egoera: %s","Encrypted":"Zifratuta","Encrypted items cannot be modified":"Zifratutako itemak ezin aldatu daitezke","Conflicts":"Gatazkak","A notebook with this title already exists: \"%s\"":"Dagoeneko bada koaderno bat izen horrekin: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Koadernoak ezin izendatu daitezke \"%s\", izen hori Joplinek gordeta dauka","Untitled":"Titulu gabekoa","This note does not have geolocation information.":"Ohar honek ez du geokokapen informaziorik.","Cannot copy note to \"%s\" notebook":"Ezin kopia daiteke oharra \"%s\" koadernora","Cannot move note to \"%s\" notebook":"Ezin eraman daiteke oharra \"%s\" koadernora","Text editor":"Testu editorea","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Editorea erabiliko da oharra zabaltzeko. Ez badago zehaztutakorik lehenetsia igartzen ahaleginduko da.","Language":"Hizkuntza","Date format":"Data-formatua","Time format":"Ordu formatua","Theme":"Gaia","Light":"Argia","Dark":"Iluna","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Gore geokokapena oharrekin","When creating a new to-do:":"When creating a new to-do:","Focus title":"","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Automatikoki eguneratu aplikazioa","Synchronisation interval":"Sinkronizazio tartea","%d minutes":"%d minutuak","%d hour":"% ordua","%d hours":"% orduak","Show advanced options":"Erakutsi aukera aurreratuak","Synchronisation target":"Sinkronizazio helbudua","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Sinkronizazio helburua. Sinkronizazio aukera bakoitzak izan ditzake parametro gehigarriak, horrela izendatuta `sync.NUM.NAME` (dena beherago dokumentatuta).","Directory to synchronise with (absolute path)":"Sinkronizatzeko direktorioa (bide-izena osorik)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Sinkronizazio sistema gaituta dagoenerako bide-izena. Ikus `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Nextcloud erabiltzaile-izena","Nextcloud password":"Nextcloud pasahitza","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV username","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Balio aukera baliogabea: \"%s\". Litezkeen balioak: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Itemok ezin sinkronizatu","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Itemok gailuan geratuko dira baina ez dira sinkronizatuko. Horiek aurkitzeko bilaketak egin titulu edo goiko parentesien arteko IDaren arabera.","Sync status (synced items / total items)":"Sinkronizazio egoera (sinkronizatutako itemak/itemak guztira)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Denera: %d/%d","Conflicted: %d":"Gatazkatsua: %d","To delete: %d":"Ezabatzeko: %d","Folders":"Karpetak","%s: %d notes":"%s: %d oharrak","Coming alarms":"Hurrengo alarmak","On %s: %s":"On %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Ez dago oharrik. Sortu bat (+) botoian klik eginaz.","Delete these notes?":"Oharrok ezabatu?","Log":"Egunkaria","Export Debug Report":"Esportatu arazketa txostena","Encryption Config":"Zifratze Ezarpenak","Configuration":"Konfigurazioa","Move to notebook...":"Mugitu ... koadernora","Move %d notes to notebook \"%s\"?":"Mugitu %d oharrak \"%s\" koadernora?","Press to set the decryption password.":"Sakatu deszifratze pasahitza ezartzeko.","Select date":"Data aukeratu","Confirm":"Baieztatu","Cancel synchronisation":"Sinkronizazioa utzi","Joplin website":"","Master Key %s":"Pasahitz Nagusia %s","Created: %s":"Sortuta: %s","Password:":"Pasahitza:","Password cannot be empty":"Pasahitza ezin utz daiteke hutsik","Enable":"Gaituta","The notebook could not be saved: %s":"Koadernoa ezin gorde daiteke: %s","Edit notebook":"Editatu koadernoa","Show all":"","Errors only":"","This note has been modified:":"Ohar hau mugitua izan da:","Save changes":"Gorde aldaketak","Discard changes":"Bertan behera utzi aldaketak","Unsupported image type: %s":"Irudi formatua ez onartua: %s","Attach photo":"Argazkia erantsi","Attach any file":"Erantsi fitxategiren bat","Convert to note":"Oharra bihurtu","Convert to todo":"Zeregina bihurtu","Hide metadata":"Ezkutatu metadatuak","Show metadata":"Erakutsi metadatuak","View on map":"Ikusi mapan","Delete notebook":"Ezabatu koadernoa","Login with OneDrive":"Login with OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Sakatu (+) botoian ohar edo koaderno berria sortzeko. Klik alboko menuan dagoeneko badiren koadernoak.","You currently have no notebook. Create one by clicking on (+) button.":"Oraindik ez duzu koadernorik. Sortu bat (+) botoian sakatuta.","Welcome":"Ongi etorri!"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"Etiketa ezabatzeko, kendu etiketa duten oharrei","Please select the note or notebook to be deleted first.":"Aurretik aukeratu ezabatzeko oharra edo koadernoa, mesedez.","Press Ctrl+D or type \"exit\" to exit the application":"Sakatu Ktrl+D edo idatzi \"exit\" aplikaziotik irteteko","More than one item match \"%s\". Please narrow down your query.":"Elementu bat baino gehiago bat dator \"%s\" bilaketarekin. Mugatu zure bilaketa, mesedez.","No notebook selected.":"Ez dago koadernorik aukeratuta","No notebook has been specified.":"Ez dago koadernorik aukeratuta.","Y":"B","n":"e","N":"E","y":"b","Cancelling background synchronisation... Please wait.":"Atzeko sinkronizazioa uzten... Mesedez itxaron.","No such command: %s":"Ez dago komandorik: %s","The command \"%s\" is only available in GUI mode":"\"%s\" komandoa  soilik eskuragarri GUI moduan","Cannot change encrypted item":"Ezinezkoa zifratutako itema aldatzea","Missing required argument: %s":"Beharrezko argumentua faltan: %s","%s: %s":"%s: %s","Your choice: ":"Zure aukera:","Invalid answer: %s":"Erantzun baliogabea: %s","Attaches the given file to the note.":"Erantsi fitxategia notan","Cannot find \"%s\".":"Ezin aurkitu \"%s\"","Displays the given note.":"Oharra erakutsi","Displays the complete information about note.":"Erakutsi oharrari buruzko informazio guztia.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Konfigurazio balioa hartu edo ezartzen du. Baldin eta [balioa] ez bada ematen, [izena]ren balioa erakutsiko du. Ez bada ematen [izena] ez [balioa], oraingo konfigurazioaren zerrenda erakutsiko da.","Also displays unset and hidden config variables.":"Ezkutuko edo zehaztu gabeko konfigurazio aldagaiak ere erakusten ditu.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"rekin bat datozen oharrak [koaderno]ra kopiatzen ditu. Koadernorik ez bada zehazten, oharra oraingo koadernoan bikoiztuko da","Marks a to-do as done.":"Markatu zeregina egindakotzat.","Note is not a to-do: \"%s\"":"Oharra ez da zeregina: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"E2EEren konfigurazioa erabiltzen du. Komandoak dira `enable`, `disable`, `decrypt`, `status` eta `target-status`.","Enter master password:":"Sartu pasahitz nagusia:","Operation cancelled":" Eragiketa utzita","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Deszifratzearen hasiera... Mesedez itxaron, prozesua luzea izan daiteke, zenbat dagoen prozesatzeko.","Completed decryption.":"Deszifratuta.","Enabled":"Gaituta","Disabled":"Desgaituta","Encryption is: %s":"Zifratzea da: %s","Edit note.":"Oharra editatu.","No text editor is defined. Please set it using `config editor `":"Testu editorerik ez dago definituta. Egin hau erabilita, mesedez: `config editor `","No active notebook.":"Ez dago koadernorik aukeratuta.","Note does not exist: \"%s\". Create it?":"Ez dago oharrik: \"%s\". Sortu?","Starting to edit note. Close the editor to get back to the prompt.":"Oharra editatzearen hasiera. Itxi editorea prompt-era bueltatzeko.","Error opening note in editor: %s":"Errorea editorean oharra zabaltzean: %s","Note has been saved.":"Oharra gorde da.","Exits the application.":"Irten aplikaziotik.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Esportatu emandako oharra soilik.","Exports only the given notebook.":"Esportatu emandako koadernoa soilik.","Displays a geolocation URL for the note.":"Erakutsi URL geolokalizazioa oharrean.","Displays usage information.":"Erakutsi erabilera datuak.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"CLI moduan ez dago lasterbiderik erabilgarri.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Idatzi `help [command]` komandoari buruzko informazio gehiagorako; edo idatzi `help all` erabilerari buruzko informazio osoa lortzeko.","The possible commands are:":"Litezkeen komandoak hauek dira:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Edozein komandotan, oharra edo koadernoari erreferentzia egin ahal zaio izenburuz edo ID erabilita, edo `$n` edo `$b` lasterbideak erabilita, aukeratuta dagoen oharra edo koadernoa erabiltzeko. `$c` ere erabil daiteke aukeratutako elementua erabiltzeko.","To move from one pane to another, press Tab or Shift+Tab.":"Panel batetik bestera mugitzeko, sakatu Tab edo Shifft + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Erabili geziak edo page up/down list eta testu guneen artean aldatzeko (kontsola hau ere kontuan izanda).","To maximise/minimise the console, press \"TC\".":"Kontsola maximizatu edo minimizatzeko, saka \"TC\" .","To enter command line mode, press \":\"":"Komando lerroa sartzeko, idatzi \":\"","To exit command line mode, press ESCAPE":"Komando lerrotik irteteko, sakatu ESC, mesedez","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Ez galdetu berresteko.","Found: %d.":"Aurkitua: %d","Created: %d.":"Sortuta: %d.","Updated: %d.":"Eguneratuta: %d.","Skipped: %d.":"Saltatuta: %d.","Resources: %d.":"Baliabideak: %d.","Tagged: %d.":"Etiketatuta: %d.","Importing notes...":"Oharrak inportatzen...","The notes have been imported: %s":"Oharrak inportatu dira: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Oraingo koadernoko oharrak erakusten ditu. Erabili `ls /` koadernoen zerrenda erakusteko.","Displays only the first top  notes.":"Erakusten ditu soilik gorengo  oharrak.","Sorts the item by  (eg. title, updated_time, created_time).":"Itemak antolatzen ditu  arabera (esate baterako, izenburua, eguneratze_unea, sortze_unea).","Reverses the sorting order.":"Alderantziz antolatzen du.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Zehaztutako item motak baino ez du erakusten. Izan daiteke `n` oharretarako, `t` zereginetarako, edo `nt` ohar eta zereginetarako (esate batrako, `-tt` zereginak erakutsiko ditu soilik, `-ttd` berriz zereginak eta oharrak.","Either \"text\" or \"json\"":"Either \"text\" or \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Zerrenda luzearen formatua erabili. Formatua hau da, ID, NOTE_COUNT (libururako), DATE, TODO_CHECKED (zereginetarako), TITLE","Please select a notebook first.":"Aurretik aukeratu formatua, mesedez.","Creates a new notebook.":"Koaderno berria sortzen du.","Creates a new note.":"Ohar berria sortzen du.","Notes can only be created within a notebook.":"Oharrak soilik sor daitezke koaderno baten barruan.","Creates a new to-do.":"Zeregin berria sortu.","Moves the notes matching  to [notebook].":"Oharrak eramaten ditu  bilatuta [notebook]era.","Renames the given  (note or notebook) to .":"Ber izendatu emandako  (oharra edo koadernoa)  izen berriaz.","Deletes the given notebook.":"Ezabatu emandako koadernoak.","Deletes the notebook without asking for confirmation.":"Ezabatu koadernoak berrespenik gabe.","Delete notebook? All notes within this notebook will also be deleted.":"Koadernoa ezabatu? Dituen ohar guztiak ere ezabatuko dira.","Deletes the notes matching .":"Ezabatu bat datozen oharrak:  .","Deletes the notes without asking for confirmation.":"Ezabatu oharrak berrespenik eskatu gabe.","%d notes match this pattern. Delete them?":"%d oharrak bat datoz ereduarekin. Ezabatu nahi dituzu?","Delete note?":"Oharra ezabatu?","Searches for the given  in all the notes.":"Emandako  bilatzen du ohar guztietan.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Emandako ren  ezaugarrian emandako [value] balioa ezartzen du. Litezkeen ezaugarriak dira:\n\n%s","Displays summary about the notes and notebooks.":"Oharren eta koadernoen laburpena erakusten du.","Synchronises with remote storage.":"Urruneko biltegiarekin sinkronizatzen du.","Sync to provided target (defaults to sync.target config value)":"Sync to provided target (defaults to sync.target config value)","Authentication was not completed (did not receive an authentication token).":"Autentifikazioa ez da egin osorik (ez du token-ik hartu).","Not authentified with %s. Please provide any missing credentials.":"Ez da autentifikatu %s -rekin. Eman galdutako kredentzialak.","Synchronisation is already in progress.":"Sinkronizazio prozesua dagoeneko abian da.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Giltzatzeko fitxategia dagoeneko eutsita dagoeneko. Baldin eta badakizu ez dena sinkronizaziorik egiten ari, ken dezakezu giltzatzeko fitxategia \"%s\"-n eta berrekin eragiketari.","Synchronisation target: %s (%s)":"Sinkronizazio helburua: %s (%s)","Cannot initialize synchroniser.":"Ezin has daiteke sinkronizazio prozesua.","Starting synchronisation...":"Sinkronizazioa hasten...","Cancelling... Please wait.":"Bertan behera uzten... itxaron, mesedez."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" izan daiteke \"add\", \"remove\" edo \"list\" [oharra]tik [etiketa] esleitu edo kentzeko, edo [etiketa]rekin elkartutako oharrak zerrendatzeko. Etiketa guztiak zerrendatzeko `tag list` komandoa erabil daiteke. ","Invalid command: \"%s\"":"Komando baliogabea: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" erabil daiteke \"txandakatzeko\" edo \"garbitzeko\". Erabili \"txandakatu\", emandako zeregina txandakatzeko bete ala ez-betea txandaketzeko (helburua ohar arrunta bada, zeregin bihurtuko da. Erabili \"garbitu\" zeregina ohar arrunt bilakatzeko.","Marks a to-do as non-completed.":"Markatu zeregina betegabe moduan.","Switches to [notebook] - all further operations will happen within this notebook.":"Aldatu [koaderno]ra - hurrengo eragiketak koaderno horretan jazoko dira.","Displays version information":"Erakutsi bertsioko informazioa","%s %s (%s)":"%s %s (%s)","Enum":"Zenbakitu","Type: %s.":"Idatz: %s.","Possible values: %s.":"Litezkeen balioak: %s.","Default: %s":"Lehenetsia: %s","Possible keys/values:":"Litezkeen balioak:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Aio! Agur! :_( ","The application has been authorised - you may now close this browser tab.":"Aplikazioak baimena hartu du - Orain fitxa hau zarratu dezakezu.","The application has been successfully authorised.":"Aplikazioak baimena hartu du.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.","Search:":"Bilatu:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Ongi etorri Joplin-era!\n\nIdatz `:help shortcuts` lasterbideak ikusteko, edo soilik `:help`erabilerako informaziorako.\n\nEsate baterako, koadernoa sortzeko sakatu `mb`: oharra sortzeko sakatu `mn`","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Item bat edo gehiago orain zifratuta daude eta baliteke zuk pasahitz nagusia ordezkatu behar izatea. Horixe egiteko, mesedez, idatz `e2ee decrypt`. Dagoeneko pasahitza ordezkatua baduzu, itemak deszifratzen ari izango dira atzeko planoan eta laster izango dira eskuragarri.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"Fitxategia","New note":"Ohar berria","New to-do":"Zeregin berria","New notebook":"Koaderno berria","Import":"Inportatu","Export":"Export","Print":"","Hide %s":"","Quit":"Irten","Edit":"Editatu","Copy":"Kopiatu","Cut":"Moztu","Paste":"Itsatsi","Search in all the notes":"Bilatu ohar guztietan","View":"","Toggle editor layout":"","Tools":"Tresnak","Synchronisation status":"Sinkronizazioaren egoera","Encryption options":"Zifratzeko aukerak","General Options":"Ezarpenak","Help":"Laguntza","Website and documentation":"Web orria eta dokumentazioa (en)","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Joplin-i buruz","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Utzi","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Oharrak eta ezarpenak hemen daude gordeta: %s","Save":"Gorde","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Zifratua desgaitzeak esan nahi du zure ohar eta eranskin *guztiak* berriro deszifratuta sinkronizatuko eta bidaliko direla sinkronizazio helburura. Segitu nahi duzu?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Zifratua gaitzeak esan nahi du zure ohar eta eranskin *guztiak* zifratuta sinkronizatuko eta bidaliko direla sinkronizazio helburura. Ez galdu pasahitza, bera izango baita datuak deszifratzeko bide *bakarra*! Zifratua baimentzeko, mesedez, aurretik sartu zure pasahitza.","Disable encryption":"Zifratzea desgaitu","Enable encryption":"Zifratua gaitu","Master Keys":"Pasahitz nagusia","Active":"Aktibo","ID":"ID","Source":"Iturburua","Created":"Sortua","Updated":"Eguneratua","Password":"Pasahitza","Password OK":"Pasahitza ondo","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Egoera","Encryption is:":"Zifratua  da:","Back":"Atzera","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"\"%s\" koaderno berria sortuko da eta \"%s\" Fitxategia inportatuko da bertara","Please create a notebook first.":"Aurretik sortu koadernoa, mesedez.","Please create a notebook first":"Aurretik sortu koadernoa, mesedez","Notebook title:":"Koadernoaren izenburua: ","Add or remove tags:":"Gehitu edo ezabatu etiketak:","Separate each tag by a comma.":"Banatu etiketak koma erabiliaz.","Rename notebook:":"Berrizendatu koadernoa:","Set alarm:":"Ezarri alarma:","Search":"Bilatu","Layout":"Diseinua","Some items cannot be synchronised.":"Zenbait item ezin dira sinkronizatu.","View them now":"Ikusi hori orain","Some items cannot be decrypted.":"Zenbait item ezin dira deszifratu.","Set the password":"Ezarri pasahitza","Add or remove tags":"Gehitu edo ezabatu etiketak","Switch between note and to-do type":"Aldatu oharra eta zeregin eren artean.","Delete":"Ezabatu","Delete notes?":"Oharrak ezabatu?","No notes in here. Create one by clicking on \"New note\".":"Hemen ez dago oharrik. Sortu bat \"Ohar berria\" sakatuta.","There is currently no notebook. Create one by clicking on \"New notebook\".":"Momentuz ez dago koadernorik. Sortu bat \"Koaderno berria\" sakatuta.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Esteka edo mezu ez dago onartua: %s","Attach file":"Erantsi fitxategia","Tags":"Etiketak","Set alarm":"Ezarri alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Refresh","Clear":"Garbitu","OneDrive Login":"Logeatu OneDriven","Options":"Aukerak","Synchronisation Status":"Sinkronizazioaren egoera","Encryption Options":"Zifratzeko aukerak","Remove this tag from all the notes?":"Kendu etiketa hori ohar guztietatik?","Remove this search from the sidebar?":"Kendu bilaketa hori ohar guztietatik?","Rename":"Berrizendatu","Synchronise":"Sinkronizatu","Notebooks":"Koadernoak","Searches":"Bilaketak","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Erabili: %s","Unknown flag: %s":"Marka ezezaguna: %s","File system":"Fitxategi sistema","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (aprobetarako soilik)","WebDAV":"WebDAV","Unknown log level: %s":"Egunkari maila ezezaguna: %s","Unknown level ID: %s":"IDa maila ezezaguna: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Tokena ezin eguneratu daiteke: egiaztatze-datuak desagertuta daude. Agian, berriro sinkronizatzeak arazoa konpon lezake.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.","Cannot access %s":"Ezin atzituta %s","Created local items: %d.":"Item lokalak sortuta: %d.","Updated local items: %d.":"Item lokalak eguneratuta: %d.","Created remote items: %d.":"Urruneko itemak sortuta: %d.","Updated remote items: %d.":"Urruneko itemak eguneratuta: %d.","Deleted local items: %d.":"Item lokala ezabatuta: %d.","Deleted remote items: %d.":"Urruneko itemak ezabatuta: %d.","Fetched items: %d/%d.":"Itemak eskuratuta: %d%d.","State: %s.":"State: %s.","Cancelling...":"Bertan behera uzten...","Completed: %s":"Osatuta: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Sinkronizazioa hasita dago. Egoera: %s","Encrypted":"Zifratuta","Encrypted items cannot be modified":"Zifratutako itemak ezin aldatu daitezke","Conflicts":"Gatazkak","A notebook with this title already exists: \"%s\"":"Dagoeneko bada koaderno bat izen horrekin: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Koadernoak ezin izendatu daitezke \"%s\", izen hori Joplinek gordeta dauka","Untitled":"Titulu gabekoa","This note does not have geolocation information.":"Ohar honek ez du geokokapen informaziorik.","Cannot copy note to \"%s\" notebook":"Ezin kopia daiteke oharra \"%s\" koadernora","Cannot move note to \"%s\" notebook":"Ezin eraman daiteke oharra \"%s\" koadernora","Text editor":"Testu editorea","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Editorea erabiliko da oharra zabaltzeko. Ez badago zehaztutakorik lehenetsia igartzen ahaleginduko da.","Language":"Hizkuntza","Date format":"Data-formatua","Time format":"Ordu formatua","Theme":"Gaia","Light":"Argia","Dark":"Iluna","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Gore geokokapena oharrekin","When creating a new to-do:":"When creating a new to-do:","Focus title":"","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Automatikoki eguneratu aplikazioa","Synchronisation interval":"Sinkronizazio tartea","%d minutes":"%d minutuak","%d hour":"% ordua","%d hours":"% orduak","Show advanced options":"Erakutsi aukera aurreratuak","Synchronisation target":"Sinkronizazio helbudua","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Sinkronizazio helburua. Sinkronizazio aukera bakoitzak izan ditzake parametro gehigarriak, horrela izendatuta `sync.NUM.NAME` (dena beherago dokumentatuta).","Directory to synchronise with (absolute path)":"Sinkronizatzeko direktorioa (bide-izena osorik)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Sinkronizazio sistema gaituta dagoenerako bide-izena. Ikus `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Nextcloud erabiltzaile-izena","Nextcloud password":"Nextcloud pasahitza","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV username","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Balio aukera baliogabea: \"%s\". Litezkeen balioak: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Itemok ezin sinkronizatu","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Itemok gailuan geratuko dira baina ez dira sinkronizatuko. Horiek aurkitzeko bilaketak egin titulu edo goiko parentesien arteko IDaren arabera.","Sync status (synced items / total items)":"Sinkronizazio egoera (sinkronizatutako itemak/itemak guztira)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Denera: %d/%d","Conflicted: %d":"Gatazkatsua: %d","To delete: %d":"Ezabatzeko: %d","Folders":"Karpetak","%s: %d notes":"%s: %d oharrak","Coming alarms":"Hurrengo alarmak","On %s: %s":"On %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Ez dago oharrik. Sortu bat (+) botoian klik eginaz.","Delete these notes?":"Oharrok ezabatu?","Log":"Egunkaria","Export Debug Report":"Esportatu arazketa txostena","Encryption Config":"Zifratze Ezarpenak","Configuration":"Konfigurazioa","Move to notebook...":"Mugitu ... koadernora","Move %d notes to notebook \"%s\"?":"Mugitu %d oharrak \"%s\" koadernora?","Press to set the decryption password.":"Sakatu deszifratze pasahitza ezartzeko.","Select date":"Data aukeratu","Confirm":"Baieztatu","Cancel synchronisation":"Sinkronizazioa utzi","Joplin website":"","Master Key %s":"Pasahitz Nagusia %s","Created: %s":"Sortuta: %s","Password:":"Pasahitza:","Password cannot be empty":"Pasahitza ezin utz daiteke hutsik","Enable":"Gaituta","The notebook could not be saved: %s":"Koadernoa ezin gorde daiteke: %s","Edit notebook":"Editatu koadernoa","Show all":"","Errors only":"","This note has been modified:":"Ohar hau mugitua izan da:","Save changes":"Gorde aldaketak","Discard changes":"Bertan behera utzi aldaketak","Unsupported image type: %s":"Irudi formatua ez onartua: %s","Attach photo":"Argazkia erantsi","Attach any file":"Erantsi fitxategiren bat","Convert to note":"Oharra bihurtu","Convert to todo":"Zeregina bihurtu","Hide metadata":"Ezkutatu metadatuak","Show metadata":"Erakutsi metadatuak","View on map":"Ikusi mapan","Delete notebook":"Ezabatu koadernoa","Login with OneDrive":"Login with OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Sakatu (+) botoian ohar edo koaderno berria sortzeko. Klik alboko menuan dagoeneko badiren koadernoak.","You currently have no notebook. Create one by clicking on (+) button.":"Oraindik ez duzu koadernorik. Sortu bat (+) botoian sakatuta.","Welcome":"Ongi etorri!"}
        \ No newline at end of file
        diff --git a/ElectronClient/app/locales/fr_FR.json b/ElectronClient/app/locales/fr_FR.json
        index 5b44f5f8a9..15b8d0198f 100644
        --- a/ElectronClient/app/locales/fr_FR.json
        +++ b/ElectronClient/app/locales/fr_FR.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"Pour supprimer une vignette, enlever là des notes associées.","Please select the note or notebook to be deleted first.":"Veuillez d'abord sélectionner un carnet.","Press Ctrl+D or type \"exit\" to exit the application":"Appuyez sur Ctrl+D ou tapez \"exit\" pour sortir du logiciel","More than one item match \"%s\". Please narrow down your query.":"Plus d'un objet correspond à \"%s\". Veuillez préciser votre requête.","No notebook selected.":"Aucun carnet n'est sélectionné.","No notebook has been specified.":"Aucun carnet n'est spécifié.","Y":"O","n":"n","N":"N","y":"o","Cancelling background synchronisation... Please wait.":"Annulation de la synchronisation... Veuillez patienter.","No such command: %s":"Commande invalide : %s","The command \"%s\" is only available in GUI mode":"La commande \"%s\" est disponible uniquement en mode d'interface graphique","Cannot change encrypted item":"Un objet crypté ne peut pas être modifié","Missing required argument: %s":"Paramètre requis manquant : %s","%s: %s":"%s : %s","Your choice: ":"Votre choix : ","Invalid answer: %s":"Réponse invalide : %s","Attaches the given file to the note.":"Joindre le fichier fourni à la note.","Cannot find \"%s\".":"Impossible de trouver \"%s\".","Displays the given note.":"Affiche la note.","Displays the complete information about note.":"Affiche tous les détails de la note.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtient ou modifie une valeur de configuration. Si la [valeur] n'est pas fournie, la valeur de [nom] sera affichée. Si ni le [nom] ni la [valeur] ne sont fournis, la configuration complète sera affichée.","Also displays unset and hidden config variables.":"Afficher également les variables cachées.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Copier les notes correspondant à  vers [carnet]. Si aucun carnet n'est spécifié, la note est dupliquée sur place.","Marks a to-do as done.":"Marquer la tâche comme complétée.","Note is not a to-do: \"%s\"":"La note n'est pas une tâche : \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Gérer la configuration E2EE (Cryptage de bout à bout). Les commandes sont `enable`, `disable`, `decrypt` et `status` et `target-status`.","Enter master password:":"Entrer le mot de passe maître :","Operation cancelled":"Opération annulée","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Démarrage du décryptage... Veuillez patienter car cela pourrait prendre plusieurs minutes selon le nombre d'objets à décrypter.","Completed decryption.":"Décryptage complété.","Enabled":"Activé","Disabled":"Désactivé","Encryption is: %s":"Le cryptage est : %s","Edit note.":"Éditer la note.","No text editor is defined. Please set it using `config editor `":"Aucun éditeur de texte n'est défini. Veuillez le définir en utilisant la commande `config editor `","No active notebook.":"Aucun carnet actif.","Note does not exist: \"%s\". Create it?":"Cette note n'existe pas : \"%s\". La créer ?","Starting to edit note. Close the editor to get back to the prompt.":"Édition de la note en cours. Fermez l'éditeur de texte pour retourner à l'invite de commande.","Error opening note in editor: %s":"Erreur lors de l'ouverture de la note dans l'éditeur de texte : %s","Note has been saved.":"La note a été enregistrée.","Exits the application.":"Quitter le logiciel.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporter les données de Joplin. Par défaut, la base de donnée complète sera exportée, y compris les carnets, notes, tags et ressources.","Destination format: %s":"Format de la destination : %s","Exports only the given note.":"Exporter uniquement la note spécifiée.","Exports only the given notebook.":"Exporter uniquement le carnet spécifié.","Displays a geolocation URL for the note.":"Afficher l'URL de l'emplacement de la note.","Displays usage information.":"Affiche les informations d'utilisation.","For information on how to customise the shortcuts please visit %s":"Pour personnaliser les raccourcis veuillez consulter la documentation à %s","Shortcuts are not available in CLI mode.":"Les raccourcis ne sont pas disponible en mode de ligne de commande.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Tapez `help [command]` pour plus d'information sur une commande ; ou tapez `help all` pour l'aide complète.","The possible commands are:":"Les commandes possibles sont :","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Dans une commande, une note ou carnet peut être référé par titre ou identifiant, ou en utilisant les raccourcis `$n` et `$b` pour, respectivement, la note sélectionnée et le carnet sélectionné. `$c` peut être utilisé pour faire référence à l'objet sélectionné en cours.","To move from one pane to another, press Tab or Shift+Tab.":"Pour aller d'un volet à l'autre, pressez Tab ou Maj+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Utilisez les touches fléchées et page précédente/suivante pour faire défiler les listes et zones de texte (y compris cette console).","To maximise/minimise the console, press \"TC\".":"Pour maximiser ou minimiser la console, pressez \"TC\".","To enter command line mode, press \":\"":"Pour démarrer le mode ligne de commande, pressez \":\"","To exit command line mode, press ESCAPE":"Pour sortir du mode ligne de commande, pressez ECHAP","For the list of keyboard shortcuts and config options, type `help keymap`":"Pour la liste complète des raccourcis disponibles, tapez `help keymap`","Imports data into Joplin.":"Importer des données dans Joplin.","Source format: %s":"Format de la source : %s","Do not ask for confirmation.":"Ne pas demander de confirmation.","Found: %d.":"Trouvés : %d.","Created: %d.":"Créés : %d.","Updated: %d.":"Mis à jour : %d.","Skipped: %d.":"Ignorés : %d.","Resources: %d.":"Ressources : %d.","Tagged: %d.":"Étiquettes : %d.","Importing notes...":"Importation des notes...","The notes have been imported: %s":"Les notes ont été importées : %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Affiche les notes dans le carnet. Utilisez `ls /` pour afficher la liste des carnets.","Displays only the first top  notes.":"Affiche uniquement les  premières notes.","Sorts the item by  (eg. title, updated_time, created_time).":"Trier les notes par  (par exemple, title, updated_time, created_time).","Reverses the sorting order.":"Inverser l'ordre.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Affiche uniquement les notes du ou des types spécifiés. Le type peut-être `n` pour les notes, `t` pour les tâches (par exemple, `-tt` affiche uniquement les tâches, tandis que `-ttd` affiche les notes et les tâches).","Either \"text\" or \"json\"":"Soit \"text\" soit \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Utilise le format de liste longue. Le format est ID, NOMBRE_DE_NOTES (pour les carnets), DATE, TACHE_TERMINE (pour les tâches), TITRE","Please select a notebook first.":"Veuillez d'abord sélectionner un carnet.","Creates a new notebook.":"Créer un carnet.","Creates a new note.":"Créer une note.","Notes can only be created within a notebook.":"Les notes ne peuvent être créées que dans un carnet.","Creates a new to-do.":"Créer une nouvelle tâche.","Moves the notes matching  to [notebook].":"Déplacer les notes correspondant à  vers [notebook].","Renames the given  (note or notebook) to .":"Renommer l'objet  (note ou carnet) en .","Deletes the given notebook.":"Supprimer le carnet.","Deletes the notebook without asking for confirmation.":"Supprimer le carnet sans demander la confirmation.","Delete notebook? All notes within this notebook will also be deleted.":"Effacer le carnet ? Toutes les notes dans ce carnet seront également effacées.","Deletes the notes matching .":"Supprimer les notes correspondants à .","Deletes the notes without asking for confirmation.":"Supprimer les notes sans demander la confirmation.","%d notes match this pattern. Delete them?":"%d notes correspondent à ce motif. Les supprimer ?","Delete note?":"Supprimer la note ?","Searches for the given  in all the notes.":"Chercher le motif  dans toutes les notes.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Assigner la valeur [value] à la propriété  de la  donnée. Les valeurs possibles sont :\n\n%s","Displays summary about the notes and notebooks.":"Afficher un résumé des notes et carnets.","Synchronises with remote storage.":"Synchroniser les notes et carnets.","Sync to provided target (defaults to sync.target config value)":"Synchroniser avec la cible donnée (par défaut, la valeur de configuration `sync.target`).","Authentication was not completed (did not receive an authentication token).":"Impossible d'autoriser le logiciel (jeton d'identification non-reçu).","Not authentified with %s. Please provide any missing credentials.":"Non-connecté à %s. Veuillez fournir les identifiants et mots de passe manquants.","Synchronisation is already in progress.":"La synchronisation est déjà en cours.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"La synchronisation est déjà en cours ou ne s'est pas interrompue correctement. Si vous savez qu'aucune autre synchronisation est en cours, vous pouvez supprimer le fichier \"%s\" pour reprendre l'opération.","Synchronisation target: %s (%s)":"Cible de la synchronisation : %s (%s)","Cannot initialize synchroniser.":"Impossible d'initialiser la synchronisation.","Starting synchronisation...":"Commencement de la synchronisation...","Cancelling... Please wait.":"Annulation... Veuillez attendre."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" peut être \"add\", \"remove\" ou \"list\" pour assigner ou enlever l'étiquette [tag] de la [note], our pour lister les notes associées avec l'étiquette [tag]. La commande `tag list` peut être utilisée pour lister les étiquettes.","Invalid command: \"%s\"":"Commande invalide : \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"Gère le status des tâches.  peut être \"toggle\" ou \"clear\". Utilisez \"toggle\" pour basculer la tâche entre le status terminé et non-terminé (Si la cible est une note, elle sera convertie en tâche). Utilisez \"clear\" pour convertir la tâche en note.","Marks a to-do as non-completed.":"Marquer une tâche comme non-complétée.","Switches to [notebook] - all further operations will happen within this notebook.":"Changer de carnet - toutes les opérations à venir se feront dans ce carnet.","Displays version information":"Affiche les informations de version","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Type : %s.","Possible values: %s.":"Valeurs possibles : %s.","Default: %s":"Défaut : %s","Possible keys/values:":"Clefs/Valeurs possibles :","Type `joplin help` for usage information.":"Tapez `Joplin help` pour afficher l'aide.","Fatal error:":"Erreur fatale :","The application has been authorised - you may now close this browser tab.":"Le logiciel a été autorisé. Vous pouvez maintenant fermer cet onglet.","The application has been successfully authorised.":"Le logiciel a été autorisé.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Veuillez ouvrir le lien ci-dessous dans votre navigateur pour authentifier le logiciel. Joplin va créer un répertoire \"Apps/Joplin\" et lire/écrira des fichiers uniquement dans ce répertoire. Le logiciel n'aura pas d'accès à aucun fichier en dehors de ce répertoire, ni à d'autres données personnelles. Aucune donnée ne sera partagé avec aucun tier.","Search:":"Recherche :","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenue dans Joplin!\n\nTapez `:help shortcuts` pour la liste des raccourcis claviers, ou simplement `:help` pour une vue d'ensemble.\n\nPar exemple, pour créer un carnet, pressez `mb` ; pour créer une note pressed `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Au moins un objet est actuellement crypté et il se peut que vous deviez fournir votre mot de passe maître. Pour se faire, veuillez taper `e2ee decrypt`. Si vous avez déjà fourni ce mot de passe, les objets cryptés vont être décrypté en tâche de fond et seront disponible prochainement.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exporter vers \"%s\" au format \"%s\". Veuillez patienter...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importer depuis \"%s\" au format \"%s\". Veuillez patienter...","PDF File":"Fichier PDF","File":"Fichier","New note":"Nouvelle note","New to-do":"Nouvelle tâche","New notebook":"Nouveau carnet","Import":"Importer","Export":"Exporter","Print":"Imprimer","Hide %s":"Cacher %s","Quit":"Quitter","Edit":"Édition","Copy":"Copier","Cut":"Couper","Paste":"Coller","Search in all the notes":"Chercher dans toutes les notes","View":"Affichage","Toggle editor layout":"Basculer l'agencement de l'éditeur","Tools":"Outils","Synchronisation status":"État de la synchronisation","Encryption options":"Options de cryptage","General Options":"Options générales","Help":"Aide","Website and documentation":"Documentation en ligne","Make a donation":"Faire un don","Check for updates...":"Vérifier les mises à jour...","About Joplin":"A propos de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Ouvrir %s","Exit":"Quitter","OK":"OK","Cancel":"Annuler","Current version is up-to-date.":"La version actuelle est à jour.","An update is available, do you want to download it now?":"Une mise à jour est disponible, souhaitez vous la télécharger maintenant ?","Yes":"Oui","No":"Non","Check synchronisation configuration":"Vérifier config synchronisation","Notes and settings are stored in: %s":"Les notes et paramètres se trouve dans : %s","Save":"Enregistrer","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Désactiver le cryptage signifie que *toutes* les notes et fichiers vont être re-synchronisés et envoyés décryptés sur la cible de la synchronisation. Souhaitez vous continuer ?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Activer le cryptage signifie que *toutes* les notes et fichiers vont être re-synchronisés et envoyés cryptés vers la cible de la synchronisation. Ne perdez pas votre mot de passe car, pour des raisons de sécurité, ce sera la *seule* façon de décrypter les données ! Pour activer le cryptage, veuillez entrer votre mot de passe ci-dessous.","Disable encryption":"Désactiver le cryptage","Enable encryption":"Activer le cryptage","Master Keys":"Clefs maître","Active":"Actif","ID":"ID","Source":"Source","Created":"Créé","Updated":"Mis à jour","Password":"Mot de passe","Password OK":"Mot de passe OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Note : seule une clef maître va être utilisée pour le cryptage (celle marquée comme \"actif\" ci-dessus). N'importe quel clef peut-être utilisée pour le décryptage, selon la façon dont les notes ou carnets étaient cryptés à l'origine.","Missing Master Keys":"Clefs maître manquantes","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"Les clefs maître avec ces identifiants sont utilisées pour crypter certains de vos objets, cependant le logiciel n'y a pour l'instant pas accès. Il est probable qu'elle vont être prochainement disponible via la synchronisation.","Status":"État","Encryption is:":"Le cryptage est :","Back":"Retour","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Un nouveau carnet \"%s\" va être créé et le fichier \"%s\" va être importé dedans","Please create a notebook first.":"Veuillez d'abord sélectionner un carnet.","Please create a notebook first":"Veuillez d'abord créer un carnet d'abord","Notebook title:":"Titre du carnet :","Add or remove tags:":"Modifier les étiquettes :","Separate each tag by a comma.":"Séparez chaque étiquette par une virgule.","Rename notebook:":"Renommer le carnet :","Set alarm:":"Régler alarme :","Search":"Chercher","Layout":"Disposition","Some items cannot be synchronised.":"Certains objets ne peuvent être synchronisés.","View them now":"Les voir maintenant","Some items cannot be decrypted.":"Certains objets ne peuvent être décryptés.","Set the password":"Définir le mot de passe","Add or remove tags":"Gérer les étiquettes","Switch between note and to-do type":"Alterner entre note et tâche","Delete":"Supprimer","Delete notes?":"Supprimer les notes ?","No notes in here. Create one by clicking on \"New note\".":"Pas de notes ici. Créez-en une en pressant le bouton \"Nouvelle note\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Il n'y a pour l'instant aucun carnet. Créez-en un en cliquant sur \"Nouveau carnet\".","Open...":"Ouvrir...","Save as...":"Enregistrer sous...","Unsupported link or message: %s":"Lien ou message non géré : %s","Attach file":"Attacher un fichier","Tags":"Étiquettes","Set alarm":"Régler alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Cette note n'a pas de contenu. Cliquer sur \"%s\" pour basculer vers l'éditeur et éditer cette note.","to-do":"tâche","note":"note","Creating new %s...":"Création de %s...","Refresh":"Rafraîchir","Clear":"Supprimer","OneDrive Login":"Connexion OneDrive","Options":"Options","Synchronisation Status":"État de la synchronisation","Encryption Options":"Options de cryptage","Remove this tag from all the notes?":"Enlever cette étiquette de toutes les notes ?","Remove this search from the sidebar?":"Enlever cette recherche de la barre latérale ?","Rename":"Renommer","Synchronise":"Synchroniser","Notebooks":"Carnets","Searches":"Recherches","Please select where the sync status should be exported to":"Veuillez sélectionner un répertoire ou exporter l'état de la synchronisation","Usage: %s":"Utilisation : %s","Unknown flag: %s":"Paramètre inconnu : %s","File system":"Système de fichier","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dév (Pour tester uniquement)","WebDAV":"WebDAV","Unknown log level: %s":"Paramètre inconnu : %s","Unknown level ID: %s":"Paramètre inconnu : %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Impossible de rafraîchir la connexion à OneDrive. Démarrez la synchronisation à nouveau pour corriger le problème.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Impossible de synchroniser avec OneDrive.\n\nCette erreur se produit lors de l'utilisation de OneDrive for Business, qui malheureusement n'est pas compatible.\n\nVeuillez utiliser à la place un compte OneDrive normal.","Cannot access %s":"Impossible d'accéder à %s","Created local items: %d.":"Objets créés localement : %d.","Updated local items: %d.":"Objets mis à jour localement : %d.","Created remote items: %d.":"Objets distants créés : %d.","Updated remote items: %d.":"Objets distants mis à jour : %d.","Deleted local items: %d.":"Objets supprimés localement : %d.","Deleted remote items: %d.":"Objets distants supprimés : %d.","Fetched items: %d/%d.":"Téléchargés : %d/%d.","State: \"%s\".":"État : \"%s\".","Cancelling...":"Annulation...","Completed: %s":"Terminé : %s","Last error: %s":"Dernière erreur : %s","Idle":"Arrêté","In progress":"En cours","Synchronisation is already in progress. State: %s":"La synchronisation est déjà en cours. État : %s","Encrypted":"Crypté","Encrypted items cannot be modified":"Les objets cryptés ne peuvent être modifiés","Conflicts":"Conflits","A notebook with this title already exists: \"%s\"":"Un carnet avec ce titre existe déjà : \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Les carnets ne peuvent être nommés \"%s\" car c'est un nom réservé.","Untitled":"Sans titre","This note does not have geolocation information.":"Cette note n'a pas d'information d'emplacement.","Cannot copy note to \"%s\" notebook":"Impossible de copier la note vers le carnet \"%s\"","Cannot move note to \"%s\" notebook":"Impossible de déplacer la note vers le carnet \"%s\"","Text editor":"Éditeur de texte","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"L'éditeur de texte pour ouvrir et modifier les notes. Si aucun n'est spécifié, il sera détecté automatiquement.","Language":"Langue","Date format":"Format de la date","Time format":"Format de l'heure","Theme":"Apparence","Light":"Clair","Dark":"Sombre","Uncompleted to-dos on top":"Tâches non-terminées en haut","Sort notes by":"Trier les notes par","Reverse sort order":"Inverser l'ordre","Save geo-location with notes":"Enregistrer l'emplacement avec les notes","When creating a new to-do:":"Lors de la création d'une tâche :","Focus title":"Curseur sur le titre","Focus body":"Curseur sur corps du message","When creating a new note:":"Lors de la création d'une note :","Show tray icon":"Afficher icône dans la zone de notifications","Global zoom percentage":"Niveau de zoom","Editor font family":"Police de l'éditeur","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"Le nom de la police ne sera pas vérifié. Si incorrect ou vide une police monospace sera utilisée par défaut.","Automatically update the application":"Mettre à jour le logiciel automatiquement","Synchronisation interval":"Intervalle de synchronisation","%d minutes":"%d minutes","%d hour":"%d heure","%d hours":"%d heures","Show advanced options":"Montrer les options avancées","Synchronisation target":"Cible de la synchronisation","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"La cible avec laquelle synchroniser. Chaque cible de synchronisation peut avoir des paramètres supplémentaires sous le nom `sync.NUM.NOM` (documentés ci-dessous).","Directory to synchronise with (absolute path)":"Répertoire avec lequel synchroniser (chemin absolu)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Le chemin du répertoire avec lequel synchroniser lorsque la synchronisation par système de fichier est activée. Voir `sync.target`.","Nextcloud WebDAV URL":"Nextcloud : URL WebDAV","Nextcloud username":"Nextcloud : Nom utilisateur","Nextcloud password":"Nextcloud : Mot de passe","WebDAV URL":"WebDAV : URL","WebDAV username":"WebDAV : Nom utilisateur","WebDAV password":"WebDAV : Mot de passe","Invalid option value: \"%s\". Possible values are: %s.":"Option invalide: \"%s\". Les valeurs possibles sont : %s.","Joplin Export File":"Fichier d'export Joplin","Markdown":"Markdown","Joplin Export Directory":"Dossier d'export Joplin","Evernote Export File":"Fichiers d'export Evernote","Directory":"Dossier","Cannot load \"%s\" module for format \"%s\"":"Impossible de charger module \"%s\" pour le format \"%s\"","Please specify import format for %s":"Veuillez spécifier le format d'import pour %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Cet objet est crypté : %s \"%s\". Veuillez attendre que tout soit décrypté et réessayez.","There is no data to export.":"Il n'y a pas de données à exporter.","Please specify the notebook where the notes should be imported to.":"Veuillez sélectionner le carnet où les notes doivent être importées.","Items that cannot be synchronised":"Objets qui ne peuvent pas être synchronisés","%s (%s): %s":"%s (%s) : %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Ces objets resteront sur l'appareil mais ne seront pas envoyé sur la cible de la synchronisation. Pour trouver ces objets, faite une recherche sur le titre ou l'identifiant de l'objet (affiché ci-dessus entre parenthèses).","Sync status (synced items / total items)":"Status de la synchronisation (objets synchro. / total)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total : %d/%d","Conflicted: %d":"Conflits : %d","To delete: %d":"A supprimer : %d","Folders":"Carnets","%s: %d notes":"%s : %d notes","Coming alarms":"Alarmes à venir","On %s: %s":"Le %s  : %s","There are currently no notes. Create one by clicking on the (+) button.":"Ce carnet ne contient aucune note. Créez-en une en appuyant sur le bouton (+).","Delete these notes?":"Supprimer ces notes ?","Log":"Journal","Export Debug Report":"Exporter rapport de débogage","Encryption Config":"Config cryptage","Configuration":"Configuration","Move to notebook...":"Déplacer vers...","Move %d notes to notebook \"%s\"?":"Déplacer %d notes vers carnet \"%s\" ?","Press to set the decryption password.":"Définir mot de passe de synchronisation.","Select date":"Sélectionner date","Confirm":"Confirmer","Cancel synchronisation":"Annuler synchronisation","Joplin website":"Site web de Joplin","Master Key %s":"Clef maître %s","Created: %s":"Créé : %s","Password:":"Mot de passe :","Password cannot be empty":"Mot de passe ne peut être vide","Enable":"Activer","The notebook could not be saved: %s":"Ce carnet n'a pas pu être sauvegardé : %s","Edit notebook":"Éditer le carnet","Show all":"Afficher tous","Errors only":"Erreurs seulement","This note has been modified:":"Cette note a été modifiée :","Save changes":"Enregistrer les changements","Discard changes":"Ignorer les changements","Unsupported image type: %s":"Type d'image non géré : %s","Attach photo":"Attacher une photo","Attach any file":"Attacher un fichier","Convert to note":"Convertir en note","Convert to todo":"Convertir en tâche","Hide metadata":"Cacher les métadonnées","Show metadata":"Voir métadonnées","View on map":"Voir sur carte","Delete notebook":"Supprimer le carnet","Login with OneDrive":"Se connecter à OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Appuyez sur le bouton (+) pour créer une nouvelle note ou carnet. Ouvrez le menu latéral pour accéder à vos carnets.","You currently have no notebook. Create one by clicking on (+) button.":"Vous n'avez pour l'instant pas de carnets. Créez-en un en pressant le bouton (+).","Welcome":"Bienvenue"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"Pour supprimer une vignette, enlever là des notes associées.","Please select the note or notebook to be deleted first.":"Veuillez d'abord sélectionner un carnet.","Press Ctrl+D or type \"exit\" to exit the application":"Appuyez sur Ctrl+D ou tapez \"exit\" pour sortir du logiciel","More than one item match \"%s\". Please narrow down your query.":"Plus d'un objet correspond à \"%s\". Veuillez préciser votre requête.","No notebook selected.":"Aucun carnet n'est sélectionné.","No notebook has been specified.":"Aucun carnet n'est spécifié.","Y":"O","n":"n","N":"N","y":"o","Cancelling background synchronisation... Please wait.":"Annulation de la synchronisation... Veuillez patienter.","No such command: %s":"Commande invalide : %s","The command \"%s\" is only available in GUI mode":"La commande \"%s\" est disponible uniquement en mode d'interface graphique","Cannot change encrypted item":"Un objet crypté ne peut pas être modifié","Missing required argument: %s":"Paramètre requis manquant : %s","%s: %s":"%s : %s","Your choice: ":"Votre choix : ","Invalid answer: %s":"Réponse invalide : %s","Attaches the given file to the note.":"Joindre le fichier fourni à la note.","Cannot find \"%s\".":"Impossible de trouver \"%s\".","Displays the given note.":"Affiche la note.","Displays the complete information about note.":"Affiche tous les détails de la note.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtient ou modifie une valeur de configuration. Si la [valeur] n'est pas fournie, la valeur de [nom] sera affichée. Si ni le [nom] ni la [valeur] ne sont fournis, la configuration complète sera affichée.","Also displays unset and hidden config variables.":"Afficher également les variables cachées.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Copier les notes correspondant à  vers [carnet]. Si aucun carnet n'est spécifié, la note est dupliquée sur place.","Marks a to-do as done.":"Marquer la tâche comme complétée.","Note is not a to-do: \"%s\"":"La note n'est pas une tâche : \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Gérer la configuration E2EE (Cryptage de bout à bout). Les commandes sont `enable`, `disable`, `decrypt` et `status` et `target-status`.","Enter master password:":"Entrer le mot de passe maître :","Operation cancelled":"Opération annulée","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Démarrage du décryptage... Veuillez patienter car cela pourrait prendre plusieurs minutes selon le nombre d'objets à décrypter.","Completed decryption.":"Décryptage complété.","Enabled":"Activé","Disabled":"Désactivé","Encryption is: %s":"Le cryptage est : %s","Edit note.":"Éditer la note.","No text editor is defined. Please set it using `config editor `":"Aucun éditeur de texte n'est défini. Veuillez le définir en utilisant la commande `config editor `","No active notebook.":"Aucun carnet actif.","Note does not exist: \"%s\". Create it?":"Cette note n'existe pas : \"%s\". La créer ?","Starting to edit note. Close the editor to get back to the prompt.":"Édition de la note en cours. Fermez l'éditeur de texte pour retourner à l'invite de commande.","Error opening note in editor: %s":"Erreur lors de l'ouverture de la note dans l'éditeur de texte : %s","Note has been saved.":"La note a été enregistrée.","Exits the application.":"Quitter le logiciel.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporter les données de Joplin. Par défaut, la base de donnée complète sera exportée, y compris les carnets, notes, tags et ressources.","Destination format: %s":"Format de la destination : %s","Exports only the given note.":"Exporter uniquement la note spécifiée.","Exports only the given notebook.":"Exporter uniquement le carnet spécifié.","Displays a geolocation URL for the note.":"Afficher l'URL de l'emplacement de la note.","Displays usage information.":"Affiche les informations d'utilisation.","For information on how to customise the shortcuts please visit %s":"Pour personnaliser les raccourcis veuillez consulter la documentation à %s","Shortcuts are not available in CLI mode.":"Les raccourcis ne sont pas disponible en mode de ligne de commande.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Tapez `help [command]` pour plus d'information sur une commande ; ou tapez `help all` pour l'aide complète.","The possible commands are:":"Les commandes possibles sont :","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Dans une commande, une note ou carnet peut être référé par titre ou identifiant, ou en utilisant les raccourcis `$n` et `$b` pour, respectivement, la note sélectionnée et le carnet sélectionné. `$c` peut être utilisé pour faire référence à l'objet sélectionné en cours.","To move from one pane to another, press Tab or Shift+Tab.":"Pour aller d'un volet à l'autre, pressez Tab ou Maj+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Utilisez les touches fléchées et page précédente/suivante pour faire défiler les listes et zones de texte (y compris cette console).","To maximise/minimise the console, press \"TC\".":"Pour maximiser ou minimiser la console, pressez \"TC\".","To enter command line mode, press \":\"":"Pour démarrer le mode ligne de commande, pressez \":\"","To exit command line mode, press ESCAPE":"Pour sortir du mode ligne de commande, pressez ECHAP","For the list of keyboard shortcuts and config options, type `help keymap`":"Pour la liste complète des raccourcis disponibles, tapez `help keymap`","Imports data into Joplin.":"Importer des données dans Joplin.","Source format: %s":"Format de la source : %s","Do not ask for confirmation.":"Ne pas demander de confirmation.","Found: %d.":"Trouvés : %d.","Created: %d.":"Créés : %d.","Updated: %d.":"Mis à jour : %d.","Skipped: %d.":"Ignorés : %d.","Resources: %d.":"Ressources : %d.","Tagged: %d.":"Étiquettes : %d.","Importing notes...":"Importation des notes...","The notes have been imported: %s":"Les notes ont été importées : %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Affiche les notes dans le carnet. Utilisez `ls /` pour afficher la liste des carnets.","Displays only the first top  notes.":"Affiche uniquement les  premières notes.","Sorts the item by  (eg. title, updated_time, created_time).":"Trier les notes par  (par exemple, title, updated_time, created_time).","Reverses the sorting order.":"Inverser l'ordre.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Affiche uniquement les notes du ou des types spécifiés. Le type peut-être `n` pour les notes, `t` pour les tâches (par exemple, `-tt` affiche uniquement les tâches, tandis que `-ttd` affiche les notes et les tâches).","Either \"text\" or \"json\"":"Soit \"text\" soit \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Utilise le format de liste longue. Le format est ID, NOMBRE_DE_NOTES (pour les carnets), DATE, TACHE_TERMINE (pour les tâches), TITRE","Please select a notebook first.":"Veuillez d'abord sélectionner un carnet.","Creates a new notebook.":"Créer un carnet.","Creates a new note.":"Créer une note.","Notes can only be created within a notebook.":"Les notes ne peuvent être créées que dans un carnet.","Creates a new to-do.":"Créer une nouvelle tâche.","Moves the notes matching  to [notebook].":"Déplacer les notes correspondant à  vers [notebook].","Renames the given  (note or notebook) to .":"Renommer l'objet  (note ou carnet) en .","Deletes the given notebook.":"Supprimer le carnet.","Deletes the notebook without asking for confirmation.":"Supprimer le carnet sans demander la confirmation.","Delete notebook? All notes within this notebook will also be deleted.":"Effacer le carnet ? Toutes les notes dans ce carnet seront également effacées.","Deletes the notes matching .":"Supprimer les notes correspondants à .","Deletes the notes without asking for confirmation.":"Supprimer les notes sans demander la confirmation.","%d notes match this pattern. Delete them?":"%d notes correspondent à ce motif. Les supprimer ?","Delete note?":"Supprimer la note ?","Searches for the given  in all the notes.":"Chercher le motif  dans toutes les notes.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Assigner la valeur [value] à la propriété  de la  donnée. Les valeurs possibles sont :\n\n%s","Displays summary about the notes and notebooks.":"Afficher un résumé des notes et carnets.","Synchronises with remote storage.":"Synchroniser les notes et carnets.","Sync to provided target (defaults to sync.target config value)":"Synchroniser avec la cible donnée (par défaut, la valeur de configuration `sync.target`).","Authentication was not completed (did not receive an authentication token).":"Impossible d'autoriser le logiciel (jeton d'identification non-reçu).","Not authentified with %s. Please provide any missing credentials.":"Non-connecté à %s. Veuillez fournir les identifiants et mots de passe manquants.","Synchronisation is already in progress.":"La synchronisation est déjà en cours.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"La synchronisation est déjà en cours ou ne s'est pas interrompue correctement. Si vous savez qu'aucune autre synchronisation est en cours, vous pouvez supprimer le fichier \"%s\" pour reprendre l'opération.","Synchronisation target: %s (%s)":"Cible de la synchronisation : %s (%s)","Cannot initialize synchroniser.":"Impossible d'initialiser la synchronisation.","Starting synchronisation...":"Commencement de la synchronisation...","Cancelling... Please wait.":"Annulation... Veuillez attendre."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" peut être \"add\", \"remove\" ou \"list\" pour assigner ou enlever l'étiquette [tag] de la [note], our pour lister les notes associées avec l'étiquette [tag]. La commande `tag list` peut être utilisée pour lister les étiquettes.","Invalid command: \"%s\"":"Commande invalide : \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"Gère le status des tâches.  peut être \"toggle\" ou \"clear\". Utilisez \"toggle\" pour basculer la tâche entre le status terminé et non-terminé (Si la cible est une note, elle sera convertie en tâche). Utilisez \"clear\" pour convertir la tâche en note.","Marks a to-do as non-completed.":"Marquer une tâche comme non-complétée.","Switches to [notebook] - all further operations will happen within this notebook.":"Changer de carnet - toutes les opérations à venir se feront dans ce carnet.","Displays version information":"Affiche les informations de version","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Type : %s.","Possible values: %s.":"Valeurs possibles : %s.","Default: %s":"Défaut : %s","Possible keys/values:":"Clefs/Valeurs possibles :","Type `joplin help` for usage information.":"Tapez `Joplin help` pour afficher l'aide.","Fatal error:":"Erreur fatale :","The application has been authorised - you may now close this browser tab.":"Le logiciel a été autorisé. Vous pouvez maintenant fermer cet onglet.","The application has been successfully authorised.":"Le logiciel a été autorisé.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Veuillez ouvrir le lien ci-dessous dans votre navigateur pour authentifier le logiciel. Joplin va créer un répertoire \"Apps/Joplin\" et lire/écrira des fichiers uniquement dans ce répertoire. Le logiciel n'aura pas d'accès à aucun fichier en dehors de ce répertoire, ni à d'autres données personnelles. Aucune donnée ne sera partagé avec aucun tier.","Search:":"Recherche :","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenue dans Joplin!\n\nTapez `:help shortcuts` pour la liste des raccourcis claviers, ou simplement `:help` pour une vue d'ensemble.\n\nPar exemple, pour créer un carnet, pressez `mb` ; pour créer une note pressed `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Au moins un objet est actuellement crypté et il se peut que vous deviez fournir votre mot de passe maître. Pour se faire, veuillez taper `e2ee decrypt`. Si vous avez déjà fourni ce mot de passe, les objets cryptés vont être décrypté en tâche de fond et seront disponible prochainement.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exporter vers \"%s\" au format \"%s\". Veuillez patienter...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importer depuis \"%s\" au format \"%s\". Veuillez patienter...","PDF File":"Fichier PDF","File":"Fichier","New note":"Nouvelle note","New to-do":"Nouvelle tâche","New notebook":"Nouveau carnet","Import":"Importer","Export":"Exporter","Print":"Imprimer","Hide %s":"Cacher %s","Quit":"Quitter","Edit":"Édition","Copy":"Copier","Cut":"Couper","Paste":"Coller","Search in all the notes":"Chercher dans toutes les notes","View":"Affichage","Toggle editor layout":"Basculer l'agencement de l'éditeur","Tools":"Outils","Synchronisation status":"État de la synchronisation","Encryption options":"Options de cryptage","General Options":"Options générales","Help":"Aide","Website and documentation":"Documentation en ligne","Make a donation":"Faire un don","Check for updates...":"Vérifier les mises à jour...","About Joplin":"A propos de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Ouvrir %s","Exit":"Quitter","OK":"OK","Cancel":"Annuler","Current version is up-to-date.":"La version actuelle est à jour.","An update is available, do you want to download it now?":"Une mise à jour est disponible, souhaitez vous la télécharger maintenant ?","Yes":"Oui","No":"Non","Check synchronisation configuration":"Vérifier config synchronisation","Notes and settings are stored in: %s":"Les notes et paramètres se trouve dans : %s","Save":"Enregistrer","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Désactiver le cryptage signifie que *toutes* les notes et fichiers vont être re-synchronisés et envoyés décryptés sur la cible de la synchronisation. Souhaitez vous continuer ?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Activer le cryptage signifie que *toutes* les notes et fichiers vont être re-synchronisés et envoyés cryptés vers la cible de la synchronisation. Ne perdez pas votre mot de passe car, pour des raisons de sécurité, ce sera la *seule* façon de décrypter les données ! Pour activer le cryptage, veuillez entrer votre mot de passe ci-dessous.","Disable encryption":"Désactiver le cryptage","Enable encryption":"Activer le cryptage","Master Keys":"Clefs maître","Active":"Actif","ID":"ID","Source":"Source","Created":"Créé","Updated":"Mis à jour","Password":"Mot de passe","Password OK":"Mot de passe OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Note : seule une clef maître va être utilisée pour le cryptage (celle marquée comme \"actif\" ci-dessus). N'importe quel clef peut-être utilisée pour le décryptage, selon la façon dont les notes ou carnets étaient cryptés à l'origine.","Missing Master Keys":"Clefs maître manquantes","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"Les clefs maître avec ces identifiants sont utilisées pour crypter certains de vos objets, cependant le logiciel n'y a pour l'instant pas accès. Il est probable qu'elle vont être prochainement disponible via la synchronisation.","Status":"État","Encryption is:":"Le cryptage est :","Back":"Retour","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Un nouveau carnet \"%s\" va être créé et le fichier \"%s\" va être importé dedans","Please create a notebook first.":"Veuillez d'abord sélectionner un carnet.","Please create a notebook first":"Veuillez d'abord créer un carnet d'abord","Notebook title:":"Titre du carnet :","Add or remove tags:":"Modifier les étiquettes :","Separate each tag by a comma.":"Séparez chaque étiquette par une virgule.","Rename notebook:":"Renommer le carnet :","Set alarm:":"Régler alarme :","Search":"Chercher","Layout":"Disposition","Some items cannot be synchronised.":"Certains objets ne peuvent être synchronisés.","View them now":"Les voir maintenant","Some items cannot be decrypted.":"Certains objets ne peuvent être décryptés.","Set the password":"Définir le mot de passe","Add or remove tags":"Gérer les étiquettes","Switch between note and to-do type":"Alterner entre note et tâche","Delete":"Supprimer","Delete notes?":"Supprimer les notes ?","No notes in here. Create one by clicking on \"New note\".":"Pas de notes ici. Créez-en une en pressant le bouton \"Nouvelle note\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Il n'y a pour l'instant aucun carnet. Créez-en un en cliquant sur \"Nouveau carnet\".","Open...":"Ouvrir...","Save as...":"Enregistrer sous...","Unsupported link or message: %s":"Lien ou message non géré : %s","Attach file":"Attacher un fichier","Tags":"Étiquettes","Set alarm":"Régler alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Cette note n'a pas de contenu. Cliquer sur \"%s\" pour basculer vers l'éditeur et éditer cette note.","to-do":"tâche","note":"note","Creating new %s...":"Création de %s...","Refresh":"Rafraîchir","Clear":"Supprimer","OneDrive Login":"Connexion OneDrive","Options":"Options","Synchronisation Status":"État de la synchronisation","Encryption Options":"Options de cryptage","Remove this tag from all the notes?":"Enlever cette étiquette de toutes les notes ?","Remove this search from the sidebar?":"Enlever cette recherche de la barre latérale ?","Rename":"Renommer","Synchronise":"Synchroniser","Notebooks":"Carnets","Searches":"Recherches","Please select where the sync status should be exported to":"Veuillez sélectionner un répertoire ou exporter l'état de la synchronisation","Usage: %s":"Utilisation : %s","Unknown flag: %s":"Paramètre inconnu : %s","File system":"Système de fichier","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dév (Pour tester uniquement)","WebDAV":"WebDAV","Unknown log level: %s":"Paramètre inconnu : %s","Unknown level ID: %s":"Paramètre inconnu : %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Impossible de rafraîchir la connexion à OneDrive. Démarrez la synchronisation à nouveau pour corriger le problème.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Impossible de synchroniser avec OneDrive.\n\nCette erreur se produit lors de l'utilisation de OneDrive for Business, qui malheureusement n'est pas compatible.\n\nVeuillez utiliser à la place un compte OneDrive normal.","Cannot access %s":"Impossible d'accéder à %s","Created local items: %d.":"Objets créés localement : %d.","Updated local items: %d.":"Objets mis à jour localement : %d.","Created remote items: %d.":"Objets distants créés : %d.","Updated remote items: %d.":"Objets distants mis à jour : %d.","Deleted local items: %d.":"Objets supprimés localement : %d.","Deleted remote items: %d.":"Objets distants supprimés : %d.","Fetched items: %d/%d.":"Téléchargés : %d/%d.","State: %s.":"State: %s.","Cancelling...":"Annulation...","Completed: %s":"Terminé : %s","Last error: %s":"Dernière erreur : %s","Idle":"Arrêté","In progress":"En cours","Synchronisation is already in progress. State: %s":"La synchronisation est déjà en cours. État : %s","Encrypted":"Crypté","Encrypted items cannot be modified":"Les objets cryptés ne peuvent être modifiés","Conflicts":"Conflits","A notebook with this title already exists: \"%s\"":"Un carnet avec ce titre existe déjà : \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Les carnets ne peuvent être nommés \"%s\" car c'est un nom réservé.","Untitled":"Sans titre","This note does not have geolocation information.":"Cette note n'a pas d'information d'emplacement.","Cannot copy note to \"%s\" notebook":"Impossible de copier la note vers le carnet \"%s\"","Cannot move note to \"%s\" notebook":"Impossible de déplacer la note vers le carnet \"%s\"","Text editor":"Éditeur de texte","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"L'éditeur de texte pour ouvrir et modifier les notes. Si aucun n'est spécifié, il sera détecté automatiquement.","Language":"Langue","Date format":"Format de la date","Time format":"Format de l'heure","Theme":"Apparence","Light":"Clair","Dark":"Sombre","Uncompleted to-dos on top":"Tâches non-terminées en haut","Sort notes by":"Trier les notes par","Reverse sort order":"Inverser l'ordre","Save geo-location with notes":"Enregistrer l'emplacement avec les notes","When creating a new to-do:":"Lors de la création d'une tâche :","Focus title":"Curseur sur le titre","Focus body":"Curseur sur corps du message","When creating a new note:":"Lors de la création d'une note :","Show tray icon":"Afficher icône dans la zone de notifications","Global zoom percentage":"Niveau de zoom","Editor font family":"Police de l'éditeur","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"Le nom de la police ne sera pas vérifié. Si incorrect ou vide une police monospace sera utilisée par défaut.","Automatically update the application":"Mettre à jour le logiciel automatiquement","Synchronisation interval":"Intervalle de synchronisation","%d minutes":"%d minutes","%d hour":"%d heure","%d hours":"%d heures","Show advanced options":"Montrer les options avancées","Synchronisation target":"Cible de la synchronisation","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"La cible avec laquelle synchroniser. Chaque cible de synchronisation peut avoir des paramètres supplémentaires sous le nom `sync.NUM.NOM` (documentés ci-dessous).","Directory to synchronise with (absolute path)":"Répertoire avec lequel synchroniser (chemin absolu)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Le chemin du répertoire avec lequel synchroniser lorsque la synchronisation par système de fichier est activée. Voir `sync.target`.","Nextcloud WebDAV URL":"Nextcloud : URL WebDAV","Nextcloud username":"Nextcloud : Nom utilisateur","Nextcloud password":"Nextcloud : Mot de passe","WebDAV URL":"WebDAV : URL","WebDAV username":"WebDAV : Nom utilisateur","WebDAV password":"WebDAV : Mot de passe","Invalid option value: \"%s\". Possible values are: %s.":"Option invalide: \"%s\". Les valeurs possibles sont : %s.","Joplin Export File":"Fichier d'export Joplin","Markdown":"Markdown","Joplin Export Directory":"Dossier d'export Joplin","Evernote Export File":"Fichiers d'export Evernote","Directory":"Dossier","Cannot load \"%s\" module for format \"%s\"":"Impossible de charger module \"%s\" pour le format \"%s\"","Please specify import format for %s":"Veuillez spécifier le format d'import pour %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Cet objet est crypté : %s \"%s\". Veuillez attendre que tout soit décrypté et réessayez.","There is no data to export.":"Il n'y a pas de données à exporter.","Please specify the notebook where the notes should be imported to.":"Veuillez sélectionner le carnet où les notes doivent être importées.","Items that cannot be synchronised":"Objets qui ne peuvent pas être synchronisés","%s (%s): %s":"%s (%s) : %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Ces objets resteront sur l'appareil mais ne seront pas envoyé sur la cible de la synchronisation. Pour trouver ces objets, faite une recherche sur le titre ou l'identifiant de l'objet (affiché ci-dessus entre parenthèses).","Sync status (synced items / total items)":"Status de la synchronisation (objets synchro. / total)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total : %d/%d","Conflicted: %d":"Conflits : %d","To delete: %d":"A supprimer : %d","Folders":"Carnets","%s: %d notes":"%s : %d notes","Coming alarms":"Alarmes à venir","On %s: %s":"Le %s  : %s","There are currently no notes. Create one by clicking on the (+) button.":"Ce carnet ne contient aucune note. Créez-en une en appuyant sur le bouton (+).","Delete these notes?":"Supprimer ces notes ?","Log":"Journal","Export Debug Report":"Exporter rapport de débogage","Encryption Config":"Config cryptage","Configuration":"Configuration","Move to notebook...":"Déplacer vers...","Move %d notes to notebook \"%s\"?":"Déplacer %d notes vers carnet \"%s\" ?","Press to set the decryption password.":"Définir mot de passe de synchronisation.","Select date":"Sélectionner date","Confirm":"Confirmer","Cancel synchronisation":"Annuler synchronisation","Joplin website":"Site web de Joplin","Master Key %s":"Clef maître %s","Created: %s":"Créé : %s","Password:":"Mot de passe :","Password cannot be empty":"Mot de passe ne peut être vide","Enable":"Activer","The notebook could not be saved: %s":"Ce carnet n'a pas pu être sauvegardé : %s","Edit notebook":"Éditer le carnet","Show all":"Afficher tous","Errors only":"Erreurs seulement","This note has been modified:":"Cette note a été modifiée :","Save changes":"Enregistrer les changements","Discard changes":"Ignorer les changements","Unsupported image type: %s":"Type d'image non géré : %s","Attach photo":"Attacher une photo","Attach any file":"Attacher un fichier","Convert to note":"Convertir en note","Convert to todo":"Convertir en tâche","Hide metadata":"Cacher les métadonnées","Show metadata":"Voir métadonnées","View on map":"Voir sur carte","Delete notebook":"Supprimer le carnet","Login with OneDrive":"Se connecter à OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Appuyez sur le bouton (+) pour créer une nouvelle note ou carnet. Ouvrez le menu latéral pour accéder à vos carnets.","You currently have no notebook. Create one by clicking on (+) button.":"Vous n'avez pour l'instant pas de carnets. Créez-en un en pressant le bouton (+).","Welcome":"Bienvenue"}
        \ No newline at end of file
        diff --git a/ElectronClient/app/locales/hr_HR.json b/ElectronClient/app/locales/hr_HR.json
        index 08521bc843..5897557f45 100644
        --- a/ElectronClient/app/locales/hr_HR.json
        +++ b/ElectronClient/app/locales/hr_HR.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"Da bi mogao obrisati oznaku, skini oznaku s povezanih bilješki.","Please select the note or notebook to be deleted first.":"Odaberi bilješku ili bilježnicu za brisanje.","Press Ctrl+D or type \"exit\" to exit the application":"Pritisni Ctrl+D ili napiši \"exit\" za izlazak iz aplikacije","More than one item match \"%s\". Please narrow down your query.":"Više od jednog rezultata odgovara \"%s\". Promijeni upit.","No notebook selected.":"Nije odabrana bilježnica.","No notebook has been specified.":"Nije specificirana bilježnica.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Prekid sinkronizacije u pozadini... Pričekaj.","No such command: %s":"Ne postoji naredba: %s","The command \"%s\" is only available in GUI mode":"Naredba \"%s\" postoji samo u inačici s grafičkim sučeljem","Cannot change encrypted item":"","Missing required argument: %s":"Nedostaje obavezni argument: %s","%s: %s":"%s: %s","Your choice: ":"Tvoj izbor: ","Invalid answer: %s":"Nevažeći odgovor: %s","Attaches the given file to the note.":"Prilaže datu datoteku bilješci.","Cannot find \"%s\".":"Ne mogu naći \"%s\".","Displays the given note.":"Prikazuje datu bilješku.","Displays the complete information about note.":"Prikazuje potpunu informaciju o bilješci.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.","Also displays unset and hidden config variables.":"Također prikazuje nepostavljene i skrivene konfiguracijske varijable.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.","Marks a to-do as done.":"Označava zadatak završenim.","Note is not a to-do: \"%s\"":"Bilješka nije zadatak: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Onemogućeno","Encryption is: %s":"","Edit note.":"Uredi bilješku.","No text editor is defined. Please set it using `config editor `":"No text editor is defined. Please set it using `config editor `","No active notebook.":"Nema aktivne bilježnice.","Note does not exist: \"%s\". Create it?":"Bilješka ne postoji: \"%s\". Napravi je?","Starting to edit note. Close the editor to get back to the prompt.":"Starting to edit note. Close the editor to get back to the prompt.","Error opening note in editor: %s":"","Note has been saved.":"Bilješka je spremljena.","Exits the application.":"Izlaz iz aplikacije.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Izvozi samo datu bilješku.","Exports only the given notebook.":"Izvozi samo datu bilježnicu.","Displays a geolocation URL for the note.":"Prikazuje geolokacijski URL bilješke.","Displays usage information.":"Prikazuje informacije o korištenju.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Prečaci nisu podržani u naredbenom retku.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Upiši `help [naredba]` za više informacija o naredbi ili `help all` za sve informacije o korištenju.","The possible commands are:":"Moguće naredbe su:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.","To move from one pane to another, press Tab or Shift+Tab.":"Za prijelaz iz jednog okna u drugo, pritisni Tab ili Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use the arrows and page up/down to scroll the lists and text areas (including this console).","To maximise/minimise the console, press \"TC\".":"Za maksimiziranje/minimiziranje konzole, pritisni \"TC\".","To enter command line mode, press \":\"":"Za ulaz u naredbeni redak, pritisni \":\"","To exit command line mode, press ESCAPE":"Za izlaz iz naredbenog retka, pritisni Esc","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Ne pitaj za potvrdu.","Found: %d.":"Nađeno: %d.","Created: %d.":"Stvoreno: %d.","Updated: %d.":"Ažurirano: %d.","Skipped: %d.":"Preskočeno: %d.","Resources: %d.":"Resursi: %d.","Tagged: %d.":"Označeno: %d.","Importing notes...":"Uvozim bilješke...","The notes have been imported: %s":"Bilješke su uvezene: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Prikazuje bilješke u trenutnoj bilježnici. Upiši `ls /` za prikaz liste bilježnica.","Displays only the first top  notes.":"Prikaži samo prvih  bilješki.","Sorts the item by  (eg. title, updated_time, created_time).":"Sorts the item by  (eg. title, updated_time, created_time).","Reverses the sorting order.":"Mijenja redoslijed.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.","Either \"text\" or \"json\"":"Ili \"text\" ili \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE","Please select a notebook first.":"Odaberi bilježnicu.","Creates a new notebook.":"Stvara novu bilježnicu.","Creates a new note.":"Stvara novu bilješku.","Notes can only be created within a notebook.":"Bilješke je moguće stvoriti samo u sklopu bilježnice.","Creates a new to-do.":"Stvara novi zadatak.","Moves the notes matching  to [notebook].":"Premješta podudarajuće bilješke  u [bilježnicu].","Renames the given  (note or notebook) to .":"Renames the given  (note or notebook) to .","Deletes the given notebook.":"Briše datu bilježnicu.","Deletes the notebook without asking for confirmation.":"Briše bilježnicu bez traženja potvrde.","Delete notebook? All notes within this notebook will also be deleted.":"Obrisati bilježnicu? Sve bilješke u toj bilježnici će također biti obrisane.","Deletes the notes matching .":"Deletes the notes matching .","Deletes the notes without asking for confirmation.":"Briše bilješke bez traženja potvrde.","%d notes match this pattern. Delete them?":"%d bilješki se podudara s pojmom pretraživanja. Obriši ih?","Delete note?":"Obrisati bilješku?","Searches for the given  in all the notes.":"Searches for the given  in all the notes.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Prikazuje sažetak o bilješkama i bilježnicama.","Synchronises with remote storage.":"Sinkronizira sa udaljenom pohranom podataka.","Sync to provided target (defaults to sync.target config value)":"Sinkroniziraj sa metom (default je polje sync.target u konfiguraciji)","Authentication was not completed (did not receive an authentication token).":"Authentication was not completed (did not receive an authentication token).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"Sinkronizacija je već u toku.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ako sinkronizacija nije u toku, obriši lock datoteku u \"%s\" i nastavi...","Synchronisation target: %s (%s)":"Meta sinkronizacije: %s (%s)","Cannot initialize synchroniser.":"Ne mogu započeti sinkronizaciju.","Starting synchronisation...":"Započinjem sinkronizaciju...","Cancelling... Please wait.":"Prekidam... Pričekaj."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.","Invalid command: \"%s\"":"Nevažeća naredba: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.","Marks a to-do as non-completed.":"Označava zadatak kao nezavršen.","Switches to [notebook] - all further operations will happen within this notebook.":"Switches to [notebook] - all further operations will happen within this notebook.","Displays version information":"Prikazuje verziju","%s %s (%s)":"%s %s (%s)","Enum":"Enumeracija","Type: %s.":"Vrsta: %s.","Possible values: %s.":"Moguće vrijednosti: %s.","Default: %s":"Default: %s","Possible keys/values:":"Mogući ključevi/vrijednosti:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Fatalna greška:","The application has been authorised - you may now close this browser tab.":"Aplikacija je autorizirana - smiješ zatvoriti karticu preglednika.","The application has been successfully authorised.":"Aplikacija je uspješno autorizirana.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Otvori sljedeći URL u pregledniku da bi ovjerio aplikaciju. Aplikacija će stvoriti direktorij u \"Apps/Joplin\" i koristiti će samo taj direktorij za čitanje i pisanje. Aplikacija neće imati pristup osobnim podacima niti ičemu izvan tog direktorija. Nijedan se podatak neće dijeliti s trećom stranom.","Search:":"Traži:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"Datoteka","New note":"Nova bilješka","New to-do":"Novi zadatak","New notebook":"Nova bilježnica","Import":"Uvoz","Export":"Export","Print":"","Hide %s":"","Quit":"Izađi","Edit":"Uredi","Copy":"Kopiraj","Cut":"Izreži","Paste":"Zalijepi","Search in all the notes":"Pretraži u svim bilješkama","View":"","Toggle editor layout":"","Tools":"Alati","Synchronisation status":"Status sinkronizacije","Encryption options":"","General Options":"General Options","Help":"Pomoć","Website and documentation":"Website i dokumentacija","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"O Joplinu","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"U redu","Cancel":"Odustani","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Bilješke i postavke su pohranjene u: %s","Save":"Spremi","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"ID","Source":"Izvor","Created":"Stvoreno","Updated":"Ažurirano","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"","Back":"Natrag","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nova bilježnica \"%s\" će biti stvorena i datoteka \"%s\" će biti uvezena u nju","Please create a notebook first.":"Prvo stvori bilježnicu.","Please create a notebook first":"Prvo stvori bilježnicu","Notebook title:":"Naslov bilježnice:","Add or remove tags:":"Dodaj ili makni oznake:","Separate each tag by a comma.":"Odvoji oznake zarezom.","Rename notebook:":"Preimenuj bilježnicu:","Set alarm:":"Postavi upozorenje:","Search":"Traži","Layout":"Izgled","Some items cannot be synchronised.":"Neke stavke se ne mogu sinkronizirati.","View them now":"Pogledaj ih sada","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Dodaj ili makni oznake","Switch between note and to-do type":"Zamijeni bilješku i zadatak","Delete":"Obriši","Delete notes?":"Obriši bilješke?","No notes in here. Create one by clicking on \"New note\".":"Ovdje nema bilješki. Stvori novu pritiskom na \"Nova bilješka\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Ovdje nema bilježnica. Stvori novu pritiskom na \"Nova bilježnica\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Nepodržana poveznica ili poruka: %s","Attach file":"Priloži datoteku","Tags":"Oznake","Set alarm":"Postavi upozorenje","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Osvježi","Clear":"Očisti","OneDrive Login":"OneDrive Login","Options":"Opcije","Synchronisation Status":"Status Sinkronizacije","Encryption Options":"","Remove this tag from all the notes?":"Makni ovu oznaku iz svih bilješki?","Remove this search from the sidebar?":"Makni ovu pretragu iz izbornika?","Rename":"Preimenuj","Synchronise":"Sinkroniziraj","Notebooks":"Bilježnice","Searches":"Pretraživanja","Please select where the sync status should be exported to":"Odaberi lokaciju za izvoz statusa sinkronizacije","Usage: %s":"Korištenje: %s","Unknown flag: %s":"Nepoznata zastavica: %s","File system":"Datotečni sustav","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Samo za testiranje)","WebDAV":"","Unknown log level: %s":"Nepoznata razina logiranja: %s","Unknown level ID: %s":"Nepoznat ID razine: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Nedostaju podaci za ovjeru. Pokušaj ponovo započeti sinkronizaciju.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Ne mogu sinkronizirati OneDrive.\n\nOva greška se često javlja pri korištenju usluge OneDrive for Business koja nije podržana.\n\nMolimo da koristite obični OneDrive korisnički račun.","Cannot access %s":"Ne mogu pristupiti %s","Created local items: %d.":"Stvorene lokalne stavke: %d.","Updated local items: %d.":"Ažurirane lokalne stavke: %d.","Created remote items: %d.":"Stvorene udaljene stavke: %d.","Updated remote items: %d.":"Ažurirane udaljene stavke: %d.","Deleted local items: %d.":"Obrisane lokalne stavke: %d.","Deleted remote items: %d.":"Obrisane udaljene stavke: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"Stanje: \"%s\".","Cancelling...":"Prekidam...","Completed: %s":"Dovršeno: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Sinkronizacija je već u toku. Stanje: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Sukobi","A notebook with this title already exists: \"%s\"":"Bilježnica s ovim naslovom već postoji: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Naslov \"%s\" je rezerviran i ne može se koristiti.","Untitled":"Nenaslovljen","This note does not have geolocation information.":"Ova bilješka nema geolokacijske informacije.","Cannot copy note to \"%s\" notebook":"Ne mogu kopirati bilješku u bilježnicu %s","Cannot move note to \"%s\" notebook":"Ne mogu premjestiti bilješku u bilježnicu %s","Text editor":"Uređivač teksta","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Program za uređivanje koji će biti korišten za uređivanje bilješki. Ako ni jedan nije odabran, pokušati će se sa default programom.","Language":"Jezik","Date format":"Format datuma","Time format":"Format vremena","Theme":"Tema","Light":"Svijetla","Dark":"Tamna","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Spremi geolokacijske podatke sa bilješkama","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Automatsko instaliranje nove verzije","Synchronisation interval":"Interval sinkronizacije","%d minutes":"%d minuta","%d hour":"%d sat","%d hours":"%d sati","Show advanced options":"Prikaži napredne opcije","Synchronisation target":"Sinkroniziraj sa","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"Direktorij za sinkroniziranje (apsolutna putanja)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Putanja do direktorija za sinkronizaciju u slučaju kad je sinkronizacija sa datotečnim sustavom omogućena. Vidi `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Nevažeća vrijednost: \"%s\". Moguće vrijednosti su: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Stavke koje se ne mogu sinkronizirati","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Status (sinkronizirane stavke / ukupni broj stavki)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Ukupno: %d/%d","Conflicted: %d":"U sukobu: %d","To delete: %d":"Za brisanje: %d","Folders":"Mape","%s: %d notes":"%s: %d notes","Coming alarms":"Nadolazeća upozorenja","On %s: %s":"On %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Trenutno nema bilješki. Stvori novu klikom na (+) gumb.","Delete these notes?":"Obriši ove bilješke?","Log":"Log","Export Debug Report":"Izvezi Debug izvještaj","Encryption Config":"","Configuration":"Konfiguracija","Move to notebook...":"Premjesti u bilježnicu...","Move %d notes to notebook \"%s\"?":"Premjesti %d bilješke u bilježnicu \"%s\"?","Press to set the decryption password.":"","Select date":"Odaberi datum","Confirm":"Potvrdi","Cancel synchronisation":"Prekini sinkronizaciju","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"Bilježnicu nije moguće snimiti: %s","Edit notebook":"Uredi bilježnicu","Show all":"","Errors only":"","This note has been modified:":"Bilješka je promijenjena:","Save changes":"Spremi promjene","Discard changes":"Odbaci promjene","Unsupported image type: %s":"Nepodržana vrsta slike: %s","Attach photo":"Priloži sliku","Attach any file":"Priloži datoteku","Convert to note":"Pretvori u bilješku","Convert to todo":"Pretvori u zadatak","Hide metadata":"Sakrij metapodatke","Show metadata":"Prikaži metapodatke","View on map":"Vidi na karti","Delete notebook":"Obriši bilježnicu","Login with OneDrive":"Prijavi se u OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Klikni (+) gumb za dodavanje nove bilješke ili bilježnice ili odaberi postojeću bilježnicu iz izbornika.","You currently have no notebook. Create one by clicking on (+) button.":"Trenutno nemaš nijednu bilježnicu. Stvori novu klikom na (+) gumb.","Welcome":"Dobro došli"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"Da bi mogao obrisati oznaku, skini oznaku s povezanih bilješki.","Please select the note or notebook to be deleted first.":"Odaberi bilješku ili bilježnicu za brisanje.","Press Ctrl+D or type \"exit\" to exit the application":"Pritisni Ctrl+D ili napiši \"exit\" za izlazak iz aplikacije","More than one item match \"%s\". Please narrow down your query.":"Više od jednog rezultata odgovara \"%s\". Promijeni upit.","No notebook selected.":"Nije odabrana bilježnica.","No notebook has been specified.":"Nije specificirana bilježnica.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Prekid sinkronizacije u pozadini... Pričekaj.","No such command: %s":"Ne postoji naredba: %s","The command \"%s\" is only available in GUI mode":"Naredba \"%s\" postoji samo u inačici s grafičkim sučeljem","Cannot change encrypted item":"","Missing required argument: %s":"Nedostaje obavezni argument: %s","%s: %s":"%s: %s","Your choice: ":"Tvoj izbor: ","Invalid answer: %s":"Nevažeći odgovor: %s","Attaches the given file to the note.":"Prilaže datu datoteku bilješci.","Cannot find \"%s\".":"Ne mogu naći \"%s\".","Displays the given note.":"Prikazuje datu bilješku.","Displays the complete information about note.":"Prikazuje potpunu informaciju o bilješci.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.","Also displays unset and hidden config variables.":"Također prikazuje nepostavljene i skrivene konfiguracijske varijable.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.","Marks a to-do as done.":"Označava zadatak završenim.","Note is not a to-do: \"%s\"":"Bilješka nije zadatak: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Onemogućeno","Encryption is: %s":"","Edit note.":"Uredi bilješku.","No text editor is defined. Please set it using `config editor `":"No text editor is defined. Please set it using `config editor `","No active notebook.":"Nema aktivne bilježnice.","Note does not exist: \"%s\". Create it?":"Bilješka ne postoji: \"%s\". Napravi je?","Starting to edit note. Close the editor to get back to the prompt.":"Starting to edit note. Close the editor to get back to the prompt.","Error opening note in editor: %s":"","Note has been saved.":"Bilješka je spremljena.","Exits the application.":"Izlaz iz aplikacije.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Izvozi samo datu bilješku.","Exports only the given notebook.":"Izvozi samo datu bilježnicu.","Displays a geolocation URL for the note.":"Prikazuje geolokacijski URL bilješke.","Displays usage information.":"Prikazuje informacije o korištenju.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Prečaci nisu podržani u naredbenom retku.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Upiši `help [naredba]` za više informacija o naredbi ili `help all` za sve informacije o korištenju.","The possible commands are:":"Moguće naredbe su:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.","To move from one pane to another, press Tab or Shift+Tab.":"Za prijelaz iz jednog okna u drugo, pritisni Tab ili Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use the arrows and page up/down to scroll the lists and text areas (including this console).","To maximise/minimise the console, press \"TC\".":"Za maksimiziranje/minimiziranje konzole, pritisni \"TC\".","To enter command line mode, press \":\"":"Za ulaz u naredbeni redak, pritisni \":\"","To exit command line mode, press ESCAPE":"Za izlaz iz naredbenog retka, pritisni Esc","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Ne pitaj za potvrdu.","Found: %d.":"Nađeno: %d.","Created: %d.":"Stvoreno: %d.","Updated: %d.":"Ažurirano: %d.","Skipped: %d.":"Preskočeno: %d.","Resources: %d.":"Resursi: %d.","Tagged: %d.":"Označeno: %d.","Importing notes...":"Uvozim bilješke...","The notes have been imported: %s":"Bilješke su uvezene: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Prikazuje bilješke u trenutnoj bilježnici. Upiši `ls /` za prikaz liste bilježnica.","Displays only the first top  notes.":"Prikaži samo prvih  bilješki.","Sorts the item by  (eg. title, updated_time, created_time).":"Sorts the item by  (eg. title, updated_time, created_time).","Reverses the sorting order.":"Mijenja redoslijed.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.","Either \"text\" or \"json\"":"Ili \"text\" ili \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE","Please select a notebook first.":"Odaberi bilježnicu.","Creates a new notebook.":"Stvara novu bilježnicu.","Creates a new note.":"Stvara novu bilješku.","Notes can only be created within a notebook.":"Bilješke je moguće stvoriti samo u sklopu bilježnice.","Creates a new to-do.":"Stvara novi zadatak.","Moves the notes matching  to [notebook].":"Premješta podudarajuće bilješke  u [bilježnicu].","Renames the given  (note or notebook) to .":"Renames the given  (note or notebook) to .","Deletes the given notebook.":"Briše datu bilježnicu.","Deletes the notebook without asking for confirmation.":"Briše bilježnicu bez traženja potvrde.","Delete notebook? All notes within this notebook will also be deleted.":"Obrisati bilježnicu? Sve bilješke u toj bilježnici će također biti obrisane.","Deletes the notes matching .":"Deletes the notes matching .","Deletes the notes without asking for confirmation.":"Briše bilješke bez traženja potvrde.","%d notes match this pattern. Delete them?":"%d bilješki se podudara s pojmom pretraživanja. Obriši ih?","Delete note?":"Obrisati bilješku?","Searches for the given  in all the notes.":"Searches for the given  in all the notes.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Prikazuje sažetak o bilješkama i bilježnicama.","Synchronises with remote storage.":"Sinkronizira sa udaljenom pohranom podataka.","Sync to provided target (defaults to sync.target config value)":"Sinkroniziraj sa metom (default je polje sync.target u konfiguraciji)","Authentication was not completed (did not receive an authentication token).":"Authentication was not completed (did not receive an authentication token).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"Sinkronizacija je već u toku.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ako sinkronizacija nije u toku, obriši lock datoteku u \"%s\" i nastavi...","Synchronisation target: %s (%s)":"Meta sinkronizacije: %s (%s)","Cannot initialize synchroniser.":"Ne mogu započeti sinkronizaciju.","Starting synchronisation...":"Započinjem sinkronizaciju...","Cancelling... Please wait.":"Prekidam... Pričekaj."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.","Invalid command: \"%s\"":"Nevažeća naredba: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.","Marks a to-do as non-completed.":"Označava zadatak kao nezavršen.","Switches to [notebook] - all further operations will happen within this notebook.":"Switches to [notebook] - all further operations will happen within this notebook.","Displays version information":"Prikazuje verziju","%s %s (%s)":"%s %s (%s)","Enum":"Enumeracija","Type: %s.":"Vrsta: %s.","Possible values: %s.":"Moguće vrijednosti: %s.","Default: %s":"Default: %s","Possible keys/values:":"Mogući ključevi/vrijednosti:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Fatalna greška:","The application has been authorised - you may now close this browser tab.":"Aplikacija je autorizirana - smiješ zatvoriti karticu preglednika.","The application has been successfully authorised.":"Aplikacija je uspješno autorizirana.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Otvori sljedeći URL u pregledniku da bi ovjerio aplikaciju. Aplikacija će stvoriti direktorij u \"Apps/Joplin\" i koristiti će samo taj direktorij za čitanje i pisanje. Aplikacija neće imati pristup osobnim podacima niti ičemu izvan tog direktorija. Nijedan se podatak neće dijeliti s trećom stranom.","Search:":"Traži:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"Datoteka","New note":"Nova bilješka","New to-do":"Novi zadatak","New notebook":"Nova bilježnica","Import":"Uvoz","Export":"Export","Print":"","Hide %s":"","Quit":"Izađi","Edit":"Uredi","Copy":"Kopiraj","Cut":"Izreži","Paste":"Zalijepi","Search in all the notes":"Pretraži u svim bilješkama","View":"","Toggle editor layout":"","Tools":"Alati","Synchronisation status":"Status sinkronizacije","Encryption options":"","General Options":"General Options","Help":"Pomoć","Website and documentation":"Website i dokumentacija","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"O Joplinu","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"U redu","Cancel":"Odustani","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Bilješke i postavke su pohranjene u: %s","Save":"Spremi","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"ID","Source":"Izvor","Created":"Stvoreno","Updated":"Ažurirano","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"","Back":"Natrag","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nova bilježnica \"%s\" će biti stvorena i datoteka \"%s\" će biti uvezena u nju","Please create a notebook first.":"Prvo stvori bilježnicu.","Please create a notebook first":"Prvo stvori bilježnicu","Notebook title:":"Naslov bilježnice:","Add or remove tags:":"Dodaj ili makni oznake:","Separate each tag by a comma.":"Odvoji oznake zarezom.","Rename notebook:":"Preimenuj bilježnicu:","Set alarm:":"Postavi upozorenje:","Search":"Traži","Layout":"Izgled","Some items cannot be synchronised.":"Neke stavke se ne mogu sinkronizirati.","View them now":"Pogledaj ih sada","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Dodaj ili makni oznake","Switch between note and to-do type":"Zamijeni bilješku i zadatak","Delete":"Obriši","Delete notes?":"Obriši bilješke?","No notes in here. Create one by clicking on \"New note\".":"Ovdje nema bilješki. Stvori novu pritiskom na \"Nova bilješka\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Ovdje nema bilježnica. Stvori novu pritiskom na \"Nova bilježnica\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Nepodržana poveznica ili poruka: %s","Attach file":"Priloži datoteku","Tags":"Oznake","Set alarm":"Postavi upozorenje","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Osvježi","Clear":"Očisti","OneDrive Login":"OneDrive Login","Options":"Opcije","Synchronisation Status":"Status Sinkronizacije","Encryption Options":"","Remove this tag from all the notes?":"Makni ovu oznaku iz svih bilješki?","Remove this search from the sidebar?":"Makni ovu pretragu iz izbornika?","Rename":"Preimenuj","Synchronise":"Sinkroniziraj","Notebooks":"Bilježnice","Searches":"Pretraživanja","Please select where the sync status should be exported to":"Odaberi lokaciju za izvoz statusa sinkronizacije","Usage: %s":"Korištenje: %s","Unknown flag: %s":"Nepoznata zastavica: %s","File system":"Datotečni sustav","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Samo za testiranje)","WebDAV":"","Unknown log level: %s":"Nepoznata razina logiranja: %s","Unknown level ID: %s":"Nepoznat ID razine: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Nedostaju podaci za ovjeru. Pokušaj ponovo započeti sinkronizaciju.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Ne mogu sinkronizirati OneDrive.\n\nOva greška se često javlja pri korištenju usluge OneDrive for Business koja nije podržana.\n\nMolimo da koristite obični OneDrive korisnički račun.","Cannot access %s":"Ne mogu pristupiti %s","Created local items: %d.":"Stvorene lokalne stavke: %d.","Updated local items: %d.":"Ažurirane lokalne stavke: %d.","Created remote items: %d.":"Stvorene udaljene stavke: %d.","Updated remote items: %d.":"Ažurirane udaljene stavke: %d.","Deleted local items: %d.":"Obrisane lokalne stavke: %d.","Deleted remote items: %d.":"Obrisane udaljene stavke: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: %s.":"State: %s.","Cancelling...":"Prekidam...","Completed: %s":"Dovršeno: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Sinkronizacija je već u toku. Stanje: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Sukobi","A notebook with this title already exists: \"%s\"":"Bilježnica s ovim naslovom već postoji: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Naslov \"%s\" je rezerviran i ne može se koristiti.","Untitled":"Nenaslovljen","This note does not have geolocation information.":"Ova bilješka nema geolokacijske informacije.","Cannot copy note to \"%s\" notebook":"Ne mogu kopirati bilješku u bilježnicu %s","Cannot move note to \"%s\" notebook":"Ne mogu premjestiti bilješku u bilježnicu %s","Text editor":"Uređivač teksta","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Program za uređivanje koji će biti korišten za uređivanje bilješki. Ako ni jedan nije odabran, pokušati će se sa default programom.","Language":"Jezik","Date format":"Format datuma","Time format":"Format vremena","Theme":"Tema","Light":"Svijetla","Dark":"Tamna","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Spremi geolokacijske podatke sa bilješkama","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Automatsko instaliranje nove verzije","Synchronisation interval":"Interval sinkronizacije","%d minutes":"%d minuta","%d hour":"%d sat","%d hours":"%d sati","Show advanced options":"Prikaži napredne opcije","Synchronisation target":"Sinkroniziraj sa","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"Direktorij za sinkroniziranje (apsolutna putanja)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Putanja do direktorija za sinkronizaciju u slučaju kad je sinkronizacija sa datotečnim sustavom omogućena. Vidi `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Nevažeća vrijednost: \"%s\". Moguće vrijednosti su: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Stavke koje se ne mogu sinkronizirati","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Status (sinkronizirane stavke / ukupni broj stavki)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Ukupno: %d/%d","Conflicted: %d":"U sukobu: %d","To delete: %d":"Za brisanje: %d","Folders":"Mape","%s: %d notes":"%s: %d notes","Coming alarms":"Nadolazeća upozorenja","On %s: %s":"On %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Trenutno nema bilješki. Stvori novu klikom na (+) gumb.","Delete these notes?":"Obriši ove bilješke?","Log":"Log","Export Debug Report":"Izvezi Debug izvještaj","Encryption Config":"","Configuration":"Konfiguracija","Move to notebook...":"Premjesti u bilježnicu...","Move %d notes to notebook \"%s\"?":"Premjesti %d bilješke u bilježnicu \"%s\"?","Press to set the decryption password.":"","Select date":"Odaberi datum","Confirm":"Potvrdi","Cancel synchronisation":"Prekini sinkronizaciju","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"Bilježnicu nije moguće snimiti: %s","Edit notebook":"Uredi bilježnicu","Show all":"","Errors only":"","This note has been modified:":"Bilješka je promijenjena:","Save changes":"Spremi promjene","Discard changes":"Odbaci promjene","Unsupported image type: %s":"Nepodržana vrsta slike: %s","Attach photo":"Priloži sliku","Attach any file":"Priloži datoteku","Convert to note":"Pretvori u bilješku","Convert to todo":"Pretvori u zadatak","Hide metadata":"Sakrij metapodatke","Show metadata":"Prikaži metapodatke","View on map":"Vidi na karti","Delete notebook":"Obriši bilježnicu","Login with OneDrive":"Prijavi se u OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Klikni (+) gumb za dodavanje nove bilješke ili bilježnice ili odaberi postojeću bilježnicu iz izbornika.","You currently have no notebook. Create one by clicking on (+) button.":"Trenutno nemaš nijednu bilježnicu. Stvori novu klikom na (+) gumb.","Welcome":"Dobro došli"}
        \ No newline at end of file
        diff --git a/ElectronClient/app/locales/it_IT.json b/ElectronClient/app/locales/it_IT.json
        index 3f78530843..27e1adc058 100644
        --- a/ElectronClient/app/locales/it_IT.json
        +++ b/ElectronClient/app/locales/it_IT.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"Elimina un'etichetta, togli l'etichetta associata alle note.","Please select the note or notebook to be deleted first.":"Per favore seleziona la nota o il blocco note da eliminare.","Press Ctrl+D or type \"exit\" to exit the application":"Premi Ctrl+D o digita \"exit\" per uscire dall'applicazione","More than one item match \"%s\". Please narrow down your query.":"Più di un elemento corrisponde a \"%s\". Per favore restringi la ricerca.","No notebook selected.":"Nessun blocco note selezionato.","No notebook has been specified.":"Nessun blocco note è statoi specificato.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancellazione della sincronizzazione in background... Attendere prego.","No such command: %s":"Nessun comando: %s","The command \"%s\" is only available in GUI mode":"Il comando \"%s\" è disponibile solo nella modalità grafica","Cannot change encrypted item":"","Missing required argument: %s":"Argomento richiesto mancante: %s","%s: %s":"%s: %s","Your choice: ":"La tua scelta: ","Invalid answer: %s":"Risposta non valida: %s","Attaches the given file to the note.":"Allega il seguente file alla nota.","Cannot find \"%s\".":"Non posso trovare \"%s\".","Displays the given note.":"Mostra la seguente nota.","Displays the complete information about note.":"Mostra le informazioni complete sulla nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Ricevi o imposta un valore di configurazione. se [value] non è impostato, verrà mostrato il valore del [name]. Se sia [name] che [valore] sono impostati, verrà mostrata la configurazione corrente.","Also displays unset and hidden config variables.":"Mostra anche le variabili di configurazione non impostate o nascoste.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica le note che corrispondono a  nel [notebook]. Se nessun blocco note è specificato, la nota viene duplicata nel blocco note corrente.","Marks a to-do as done.":"Segna un'attività come completata.","Note is not a to-do: \"%s\"":"La nota non è un'attività: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Disabilitato","Encryption is: %s":"","Edit note.":"Modifica nota.","No text editor is defined. Please set it using `config editor `":"Non è definito nessun editor di testo. Per favore impostalo usando `config editor `","No active notebook.":"Nessun blocco note attivo.","Note does not exist: \"%s\". Create it?":"Non esiste la nota: \"%s\". Desideri crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Comincia a modificare la nota. Chiudi l'editor per tornare al prompt.","Error opening note in editor: %s":"","Note has been saved.":"La nota è stata salvata.","Exits the application.":"Esci dall'applicazione.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Esporta solo la seguente nota.","Exports only the given notebook.":"Esporta solo il seguente blocco note.","Displays a geolocation URL for the note.":"Mostra l'URL di geolocalizzazione per la nota.","Displays usage information.":"Mostra le informazioni di utilizzo.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Le scorciatoie non sono disponibili nella modalità CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"I possibili comandi sono:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In ciascun comando, si deve necessariamente definire una nota o un blocco note usando un titolo, un ID o usando le scorciatoie `$n` or `$b` per , rispettivamente, la nota o il blocco note selezionato `$c` può essere usato per fare riferimento all'elemento selezionato.","To move from one pane to another, press Tab or Shift+Tab.":"Per passare da un pannello all'altro, premi Tab o Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Usa le frecce e pagina su/giù per scorrere le liste e le aree di testo (compresa questa console).","To maximise/minimise the console, press \"TC\".":"Per massimizzare/minimizzare la console, premi \"TC\".","To enter command line mode, press \":\"":"Per entrare nella modalità command line, premi \":\"","To exit command line mode, press ESCAPE":"Per uscire dalla modalità command line, premi ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Non chiedere conferma.","Found: %d.":"Trovato: %d.","Created: %d.":"Creato: %d.","Updated: %d.":"Aggiornato: %d.","Skipped: %d.":"Saltato: %d.","Resources: %d.":"Risorse: %d.","Tagged: %d.":"Etichettato: %d.","Importing notes...":"Importazione delle note...","The notes have been imported: %s":"Le note sono state importate: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Mostra le note nel seguente blocco note. Usa `ls /` per mostrare la lista dei blocchi note.","Displays only the first top  notes.":"Mostra solo le prima  note.","Sorts the item by  (eg. title, updated_time, created_time).":"Ordina per  (es. titolo, ultimo aggiornamento, creazione).","Reverses the sorting order.":"Inverti l'ordine.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Mostra solo gli elementi del tipo specificato. Possono essere `n` per le note, `t` per le attività o `nt` per note e attività. (es. `-tt` mostrerà solo le attività, mentre `-ttd` mostrerà sia note che attività.","Either \"text\" or \"json\"":"Sia \"testo\" che \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usa un formato lungo di lista. Il formato è ID, NOTE_COUNT (per i blocchi note), DATE, TODO_CHECKED (per le attività), TITLE","Please select a notebook first.":"Per favore prima seleziona un blocco note.","Creates a new notebook.":"Crea un nuovo blocco note.","Creates a new note.":"Crea una nuova nota.","Notes can only be created within a notebook.":"Le note possono essere create all'interno de blocco note.","Creates a new to-do.":"Crea una nuova attività.","Moves the notes matching  to [notebook].":"Sposta le note che corrispondono a  in [notebook].","Renames the given  (note or notebook) to .":"Rinomina  (nota o blocco note) in .","Deletes the given notebook.":"Elimina il seguente blocco note.","Deletes the notebook without asking for confirmation.":"Elimina il blocco note senza richiedere una conferma.","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"Elimina le note che corrispondono a .","Deletes the notes without asking for confirmation.":"Elimina le note senza chiedere conferma.","%d notes match this pattern. Delete them?":"%d note corrispondono. Eliminarle?","Delete note?":"Eliminare la nota?","Searches for the given  in all the notes.":"Cerca  in tutte le note.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Mostra un sommario delle note e dei blocchi note.","Synchronises with remote storage.":"Sincronizza con l'archivio remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizza con l'obiettivo fornito (come predefinito il valore di configurazione sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticazione non completata (non è stato ricevuto alcun token di autenticazione).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"La sincronizzazione è in corso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Trovato un file di blocco. Se si è certi che non è in corso alcuna sincronizzazione, è possibile eliminare il file di blocco in \"% s\" e riprendere l'operazione.","Synchronisation target: %s (%s)":"Posizione di sincronizzazione: %s (%s)","Cannot initialize synchroniser.":"Non è possibile inizializzare il sincronizzatore.","Starting synchronisation...":"Inizio sincronizzazione...","Cancelling... Please wait.":"Cancellazione... Attendere per favore."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" può essere \"add\", \"remove\" or \"list\" per assegnare o rimuovere [tag] da [note], o per mostrare le note associate a [tag]. Il comando `tag list` può essere usato per mostrare tutte le etichette.","Invalid command: \"%s\"":"Comando non valido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" può essere \"toggle\" or \"clear\". Usa \"toggle\" per cambiare lo stato dell'attività tra completata/non completata (se l'oggetto è una normale nota, questa verrà convertita in un'attività). Usa \"clear\" convertire le attività in normali note.","Marks a to-do as non-completed.":"Marca un'attività come non completata.","Switches to [notebook] - all further operations will happen within this notebook.":"Passa tra [notebook] - tutte le ulteriori operazioni interesseranno il seguente blocco note.","Displays version information":"Mostra le informazioni sulla versione","%s %s (%s)":"%s %s (%s)","Enum":"Enumerare","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valori possibili: %s.","Default: %s":"Predefinito: %s","Possible keys/values:":"Chiave/valore possibili:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Errore fatale:","The application has been authorised - you may now close this browser tab.":"L'applicazione è stata autorizzata - puoi chiudere questo tab del tuo browser.","The application has been successfully authorised.":"L'applicazione è stata autorizzata con successo.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Per favore apri il seguente URL nel tuo browser per autenticare l'applicazione. L'applicazione creerà una directory in \"Apps/Joplin\" e leggerà/scriverà file solo in questa directory. Non avrà accesso a nessun file all'esterno di questa directory o ad alcun dato personale. Nessun dato verrà condiviso con terze parti.","Search:":"Cerca:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"File","New note":"Nuova nota","New to-do":"Nuova attività","New notebook":"Nuovo blocco note","Import":"Importa","Export":"Export","Print":"","Hide %s":"","Quit":"Esci","Edit":"Modifica","Copy":"Copia","Cut":"Taglia","Paste":"Incolla","Search in all the notes":"Cerca in tutte le note","View":"","Toggle editor layout":"","Tools":"Strumenti","Synchronisation status":"Stato di sincronizzazione","Encryption options":"","General Options":"General Options","Help":"Aiuto","Website and documentation":"Sito web e documentazione","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Informazione si Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Cancella","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Stato","Encryption is:":"","Back":"Indietro","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Il nuovo blocco note \"%s\" verrà creato e \"%s\" vi verrà importato","Please create a notebook first.":"Per favore prima crea un blocco note.","Please create a notebook first":"Per favore prima crea un blocco note","Notebook title:":"Titolo del blocco note:","Add or remove tags:":"Aggiungi or rimuovi etichetta:","Separate each tag by a comma.":"Separa ogni etichetta da una virgola.","Rename notebook:":"Rinomina il blocco note:","Set alarm:":"Imposta allarme:","Search":"Cerca","Layout":"Disposizione","Some items cannot be synchronised.":"Alcuni elementi non possono essere sincronizzati.","View them now":"Mostrali ora","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Aggiungi o rimuovi etichetta","Switch between note and to-do type":"Passa da un tipo di nota a un elenco di attività","Delete":"Elimina","Delete notes?":"Eliminare le note?","No notes in here. Create one by clicking on \"New note\".":"Non è presente nessuna nota. Creane una cliccando \"Nuova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Collegamento o messaggio non supportato: %s","Attach file":"Allega file","Tags":"Etichette","Set alarm":"Imposta allarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Aggiorna","Clear":"Pulisci","OneDrive Login":"Login OneDrive","Options":"Opzioni","Synchronisation Status":"Stato della Sincronizzazione","Encryption Options":"","Remove this tag from all the notes?":"Rimuovere questa etichetta da tutte le note?","Remove this search from the sidebar?":"Rimuovere questa ricerca dalla barra laterale?","Rename":"Rinomina","Synchronise":"Sincronizza","Notebooks":"Blocchi note","Searches":"Ricerche","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Uso: %s","Unknown flag: %s":"Etichetta sconosciuta: %s","File system":"File system","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (solo per test)","WebDAV":"","Unknown log level: %s":"Livello di log sconosciuto: %s","Unknown level ID: %s":"Livello ID sconosciuto: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Non è possibile aggiornare il token. mancano i dati di autenticazione. Ricominciare la sincronizzazione da capo potrebbe risolvere il problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Impossibile sincronizzare con OneDrive.\n\nQuesto errore spesso accade quando si utilizza OneDrive for Business, che purtroppo non può essere supportato.\n\nSi prega di considerare l'idea di utilizzare un account OneDrive normale.","Cannot access %s":"Non è possibile accedere a %s","Created local items: %d.":"Elementi locali creati: %d.","Updated local items: %d.":"Elementi locali aggiornati: %d.","Created remote items: %d.":"Elementi remoti creati: %d.","Updated remote items: %d.":"Elementi remoti aggiornati: %d.","Deleted local items: %d.":"Elementi locali eliminati: %d.","Deleted remote items: %d.":"Elementi remoti eliminati: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"Stato: \"%s\".","Cancelling...":"Cancellazione...","Completed: %s":"Completata: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"La sincronizzazione è già in corso. Stato: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Conflitti","A notebook with this title already exists: \"%s\"":"Esiste già un blocco note col titolo \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"I blocchi non possono essere chiamati \"%s\". È un titolo riservato.","Untitled":"Senza titolo","This note does not have geolocation information.":"Questa nota non ha informazione sulla geolocalizzazione.","Cannot copy note to \"%s\" notebook":"Non posso copiare la nota nel blocco note \"%s\"","Cannot move note to \"%s\" notebook":"Non posso spostare la nota nel blocco note \"%s\"","Text editor":"Editor di testo","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"L'editor che sarà usato per aprire la nota. Se nessun editor è specificato si cercherà di individuare automaticamente l'editor predefinito.","Language":"Linguaggio","Date format":"Formato della data","Time format":"Formato dell'orario","Theme":"Tema","Light":"Chiaro","Dark":"Scuro","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Salva geo-localizzazione con le note","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Aggiorna automaticamente l'applicazione","Synchronisation interval":"Intervallo di sincronizzazione","%d minutes":"%d minuti","%d hour":"%d ora","%d hours":"%d ore","Show advanced options":"Mostra opzioni avanzate","Synchronisation target":"Destinazione di sincronizzazione","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Il percorso di sincronizzazione quando la sincronizzazione è abilitata. Vedi `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Oprione non valida: \"%s\". I valori possibili sono: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Elementi che non possono essere sincronizzati","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Stato di sincronizzazione (Elementi sincronizzati / Elementi totali)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Totale: %d %d","Conflicted: %d":"In conflitto: %d","To delete: %d":"Da cancellare: %d","Folders":"Cartelle","%s: %d notes":"%s: %d note","Coming alarms":"Avviso imminente","On %s: %s":"Su %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Al momento non ci sono note. Creane una cliccando sul bottone (+).","Delete these notes?":"Cancellare queste note?","Log":"Log","Export Debug Report":"Esporta il Report di Debug","Encryption Config":"","Configuration":"Configurazione","Move to notebook...":"Sposta sul blocco note...","Move %d notes to notebook \"%s\"?":"Spostare le note %d sul blocco note \"%s\"?","Press to set the decryption password.":"","Select date":"Seleziona la data","Confirm":"Conferma","Cancel synchronisation":"Cancella la sincronizzazione","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"Il blocco note non può essere salvato: %s","Edit notebook":"Modifica blocco note","Show all":"","Errors only":"","This note has been modified:":"Questa note è stata modificata:","Save changes":"Salva i cambiamenti","Discard changes":"Ignora modifiche","Unsupported image type: %s":"Tipo di immagine non supportata: %s","Attach photo":"Allega foto","Attach any file":"Allega qualsiasi file","Convert to note":"Converti in nota","Convert to todo":"Converti in Todo","Hide metadata":"Nascondi i Metadati","Show metadata":"Mostra i metadati","View on map":"Guarda sulla mappa","Delete notebook":"Cancella blocco note","Login with OneDrive":"Accedi a OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Fare clic sul pulsante (+) per creare una nuova nota o un nuovo blocco note. Fare clic sul menu laterale per accedere ai tuoi blocchi note esistenti.","You currently have no notebook. Create one by clicking on (+) button.":"Attualmente non hai nessun blocco note. Crearne uno cliccando sul pulsante (+).","Welcome":"Benvenuto"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"Elimina un'etichetta, togli l'etichetta associata alle note.","Please select the note or notebook to be deleted first.":"Per favore seleziona la nota o il blocco note da eliminare.","Press Ctrl+D or type \"exit\" to exit the application":"Premi Ctrl+D o digita \"exit\" per uscire dall'applicazione","More than one item match \"%s\". Please narrow down your query.":"Più di un elemento corrisponde a \"%s\". Per favore restringi la ricerca.","No notebook selected.":"Nessun blocco note selezionato.","No notebook has been specified.":"Nessun blocco note è statoi specificato.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancellazione della sincronizzazione in background... Attendere prego.","No such command: %s":"Nessun comando: %s","The command \"%s\" is only available in GUI mode":"Il comando \"%s\" è disponibile solo nella modalità grafica","Cannot change encrypted item":"","Missing required argument: %s":"Argomento richiesto mancante: %s","%s: %s":"%s: %s","Your choice: ":"La tua scelta: ","Invalid answer: %s":"Risposta non valida: %s","Attaches the given file to the note.":"Allega il seguente file alla nota.","Cannot find \"%s\".":"Non posso trovare \"%s\".","Displays the given note.":"Mostra la seguente nota.","Displays the complete information about note.":"Mostra le informazioni complete sulla nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Ricevi o imposta un valore di configurazione. se [value] non è impostato, verrà mostrato il valore del [name]. Se sia [name] che [valore] sono impostati, verrà mostrata la configurazione corrente.","Also displays unset and hidden config variables.":"Mostra anche le variabili di configurazione non impostate o nascoste.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica le note che corrispondono a  nel [notebook]. Se nessun blocco note è specificato, la nota viene duplicata nel blocco note corrente.","Marks a to-do as done.":"Segna un'attività come completata.","Note is not a to-do: \"%s\"":"La nota non è un'attività: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Disabilitato","Encryption is: %s":"","Edit note.":"Modifica nota.","No text editor is defined. Please set it using `config editor `":"Non è definito nessun editor di testo. Per favore impostalo usando `config editor `","No active notebook.":"Nessun blocco note attivo.","Note does not exist: \"%s\". Create it?":"Non esiste la nota: \"%s\". Desideri crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Comincia a modificare la nota. Chiudi l'editor per tornare al prompt.","Error opening note in editor: %s":"","Note has been saved.":"La nota è stata salvata.","Exits the application.":"Esci dall'applicazione.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Esporta solo la seguente nota.","Exports only the given notebook.":"Esporta solo il seguente blocco note.","Displays a geolocation URL for the note.":"Mostra l'URL di geolocalizzazione per la nota.","Displays usage information.":"Mostra le informazioni di utilizzo.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Le scorciatoie non sono disponibili nella modalità CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"I possibili comandi sono:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In ciascun comando, si deve necessariamente definire una nota o un blocco note usando un titolo, un ID o usando le scorciatoie `$n` or `$b` per , rispettivamente, la nota o il blocco note selezionato `$c` può essere usato per fare riferimento all'elemento selezionato.","To move from one pane to another, press Tab or Shift+Tab.":"Per passare da un pannello all'altro, premi Tab o Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Usa le frecce e pagina su/giù per scorrere le liste e le aree di testo (compresa questa console).","To maximise/minimise the console, press \"TC\".":"Per massimizzare/minimizzare la console, premi \"TC\".","To enter command line mode, press \":\"":"Per entrare nella modalità command line, premi \":\"","To exit command line mode, press ESCAPE":"Per uscire dalla modalità command line, premi ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Non chiedere conferma.","Found: %d.":"Trovato: %d.","Created: %d.":"Creato: %d.","Updated: %d.":"Aggiornato: %d.","Skipped: %d.":"Saltato: %d.","Resources: %d.":"Risorse: %d.","Tagged: %d.":"Etichettato: %d.","Importing notes...":"Importazione delle note...","The notes have been imported: %s":"Le note sono state importate: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Mostra le note nel seguente blocco note. Usa `ls /` per mostrare la lista dei blocchi note.","Displays only the first top  notes.":"Mostra solo le prima  note.","Sorts the item by  (eg. title, updated_time, created_time).":"Ordina per  (es. titolo, ultimo aggiornamento, creazione).","Reverses the sorting order.":"Inverti l'ordine.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Mostra solo gli elementi del tipo specificato. Possono essere `n` per le note, `t` per le attività o `nt` per note e attività. (es. `-tt` mostrerà solo le attività, mentre `-ttd` mostrerà sia note che attività.","Either \"text\" or \"json\"":"Sia \"testo\" che \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usa un formato lungo di lista. Il formato è ID, NOTE_COUNT (per i blocchi note), DATE, TODO_CHECKED (per le attività), TITLE","Please select a notebook first.":"Per favore prima seleziona un blocco note.","Creates a new notebook.":"Crea un nuovo blocco note.","Creates a new note.":"Crea una nuova nota.","Notes can only be created within a notebook.":"Le note possono essere create all'interno de blocco note.","Creates a new to-do.":"Crea una nuova attività.","Moves the notes matching  to [notebook].":"Sposta le note che corrispondono a  in [notebook].","Renames the given  (note or notebook) to .":"Rinomina  (nota o blocco note) in .","Deletes the given notebook.":"Elimina il seguente blocco note.","Deletes the notebook without asking for confirmation.":"Elimina il blocco note senza richiedere una conferma.","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"Elimina le note che corrispondono a .","Deletes the notes without asking for confirmation.":"Elimina le note senza chiedere conferma.","%d notes match this pattern. Delete them?":"%d note corrispondono. Eliminarle?","Delete note?":"Eliminare la nota?","Searches for the given  in all the notes.":"Cerca  in tutte le note.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Mostra un sommario delle note e dei blocchi note.","Synchronises with remote storage.":"Sincronizza con l'archivio remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizza con l'obiettivo fornito (come predefinito il valore di configurazione sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticazione non completata (non è stato ricevuto alcun token di autenticazione).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"La sincronizzazione è in corso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Trovato un file di blocco. Se si è certi che non è in corso alcuna sincronizzazione, è possibile eliminare il file di blocco in \"% s\" e riprendere l'operazione.","Synchronisation target: %s (%s)":"Posizione di sincronizzazione: %s (%s)","Cannot initialize synchroniser.":"Non è possibile inizializzare il sincronizzatore.","Starting synchronisation...":"Inizio sincronizzazione...","Cancelling... Please wait.":"Cancellazione... Attendere per favore."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" può essere \"add\", \"remove\" or \"list\" per assegnare o rimuovere [tag] da [note], o per mostrare le note associate a [tag]. Il comando `tag list` può essere usato per mostrare tutte le etichette.","Invalid command: \"%s\"":"Comando non valido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" può essere \"toggle\" or \"clear\". Usa \"toggle\" per cambiare lo stato dell'attività tra completata/non completata (se l'oggetto è una normale nota, questa verrà convertita in un'attività). Usa \"clear\" convertire le attività in normali note.","Marks a to-do as non-completed.":"Marca un'attività come non completata.","Switches to [notebook] - all further operations will happen within this notebook.":"Passa tra [notebook] - tutte le ulteriori operazioni interesseranno il seguente blocco note.","Displays version information":"Mostra le informazioni sulla versione","%s %s (%s)":"%s %s (%s)","Enum":"Enumerare","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valori possibili: %s.","Default: %s":"Predefinito: %s","Possible keys/values:":"Chiave/valore possibili:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Errore fatale:","The application has been authorised - you may now close this browser tab.":"L'applicazione è stata autorizzata - puoi chiudere questo tab del tuo browser.","The application has been successfully authorised.":"L'applicazione è stata autorizzata con successo.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Per favore apri il seguente URL nel tuo browser per autenticare l'applicazione. L'applicazione creerà una directory in \"Apps/Joplin\" e leggerà/scriverà file solo in questa directory. Non avrà accesso a nessun file all'esterno di questa directory o ad alcun dato personale. Nessun dato verrà condiviso con terze parti.","Search:":"Cerca:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"File","New note":"Nuova nota","New to-do":"Nuova attività","New notebook":"Nuovo blocco note","Import":"Importa","Export":"Export","Print":"","Hide %s":"","Quit":"Esci","Edit":"Modifica","Copy":"Copia","Cut":"Taglia","Paste":"Incolla","Search in all the notes":"Cerca in tutte le note","View":"","Toggle editor layout":"","Tools":"Strumenti","Synchronisation status":"Stato di sincronizzazione","Encryption options":"","General Options":"General Options","Help":"Aiuto","Website and documentation":"Sito web e documentazione","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Informazione si Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Cancella","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Stato","Encryption is:":"","Back":"Indietro","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Il nuovo blocco note \"%s\" verrà creato e \"%s\" vi verrà importato","Please create a notebook first.":"Per favore prima crea un blocco note.","Please create a notebook first":"Per favore prima crea un blocco note","Notebook title:":"Titolo del blocco note:","Add or remove tags:":"Aggiungi or rimuovi etichetta:","Separate each tag by a comma.":"Separa ogni etichetta da una virgola.","Rename notebook:":"Rinomina il blocco note:","Set alarm:":"Imposta allarme:","Search":"Cerca","Layout":"Disposizione","Some items cannot be synchronised.":"Alcuni elementi non possono essere sincronizzati.","View them now":"Mostrali ora","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Aggiungi o rimuovi etichetta","Switch between note and to-do type":"Passa da un tipo di nota a un elenco di attività","Delete":"Elimina","Delete notes?":"Eliminare le note?","No notes in here. Create one by clicking on \"New note\".":"Non è presente nessuna nota. Creane una cliccando \"Nuova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Collegamento o messaggio non supportato: %s","Attach file":"Allega file","Tags":"Etichette","Set alarm":"Imposta allarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Aggiorna","Clear":"Pulisci","OneDrive Login":"Login OneDrive","Options":"Opzioni","Synchronisation Status":"Stato della Sincronizzazione","Encryption Options":"","Remove this tag from all the notes?":"Rimuovere questa etichetta da tutte le note?","Remove this search from the sidebar?":"Rimuovere questa ricerca dalla barra laterale?","Rename":"Rinomina","Synchronise":"Sincronizza","Notebooks":"Blocchi note","Searches":"Ricerche","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Uso: %s","Unknown flag: %s":"Etichetta sconosciuta: %s","File system":"File system","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (solo per test)","WebDAV":"","Unknown log level: %s":"Livello di log sconosciuto: %s","Unknown level ID: %s":"Livello ID sconosciuto: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Non è possibile aggiornare il token. mancano i dati di autenticazione. Ricominciare la sincronizzazione da capo potrebbe risolvere il problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Impossibile sincronizzare con OneDrive.\n\nQuesto errore spesso accade quando si utilizza OneDrive for Business, che purtroppo non può essere supportato.\n\nSi prega di considerare l'idea di utilizzare un account OneDrive normale.","Cannot access %s":"Non è possibile accedere a %s","Created local items: %d.":"Elementi locali creati: %d.","Updated local items: %d.":"Elementi locali aggiornati: %d.","Created remote items: %d.":"Elementi remoti creati: %d.","Updated remote items: %d.":"Elementi remoti aggiornati: %d.","Deleted local items: %d.":"Elementi locali eliminati: %d.","Deleted remote items: %d.":"Elementi remoti eliminati: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: %s.":"State: %s.","Cancelling...":"Cancellazione...","Completed: %s":"Completata: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"La sincronizzazione è già in corso. Stato: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Conflitti","A notebook with this title already exists: \"%s\"":"Esiste già un blocco note col titolo \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"I blocchi non possono essere chiamati \"%s\". È un titolo riservato.","Untitled":"Senza titolo","This note does not have geolocation information.":"Questa nota non ha informazione sulla geolocalizzazione.","Cannot copy note to \"%s\" notebook":"Non posso copiare la nota nel blocco note \"%s\"","Cannot move note to \"%s\" notebook":"Non posso spostare la nota nel blocco note \"%s\"","Text editor":"Editor di testo","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"L'editor che sarà usato per aprire la nota. Se nessun editor è specificato si cercherà di individuare automaticamente l'editor predefinito.","Language":"Linguaggio","Date format":"Formato della data","Time format":"Formato dell'orario","Theme":"Tema","Light":"Chiaro","Dark":"Scuro","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Salva geo-localizzazione con le note","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Aggiorna automaticamente l'applicazione","Synchronisation interval":"Intervallo di sincronizzazione","%d minutes":"%d minuti","%d hour":"%d ora","%d hours":"%d ore","Show advanced options":"Mostra opzioni avanzate","Synchronisation target":"Destinazione di sincronizzazione","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Il percorso di sincronizzazione quando la sincronizzazione è abilitata. Vedi `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Oprione non valida: \"%s\". I valori possibili sono: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Elementi che non possono essere sincronizzati","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Stato di sincronizzazione (Elementi sincronizzati / Elementi totali)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Totale: %d %d","Conflicted: %d":"In conflitto: %d","To delete: %d":"Da cancellare: %d","Folders":"Cartelle","%s: %d notes":"%s: %d note","Coming alarms":"Avviso imminente","On %s: %s":"Su %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Al momento non ci sono note. Creane una cliccando sul bottone (+).","Delete these notes?":"Cancellare queste note?","Log":"Log","Export Debug Report":"Esporta il Report di Debug","Encryption Config":"","Configuration":"Configurazione","Move to notebook...":"Sposta sul blocco note...","Move %d notes to notebook \"%s\"?":"Spostare le note %d sul blocco note \"%s\"?","Press to set the decryption password.":"","Select date":"Seleziona la data","Confirm":"Conferma","Cancel synchronisation":"Cancella la sincronizzazione","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"Il blocco note non può essere salvato: %s","Edit notebook":"Modifica blocco note","Show all":"","Errors only":"","This note has been modified:":"Questa note è stata modificata:","Save changes":"Salva i cambiamenti","Discard changes":"Ignora modifiche","Unsupported image type: %s":"Tipo di immagine non supportata: %s","Attach photo":"Allega foto","Attach any file":"Allega qualsiasi file","Convert to note":"Converti in nota","Convert to todo":"Converti in Todo","Hide metadata":"Nascondi i Metadati","Show metadata":"Mostra i metadati","View on map":"Guarda sulla mappa","Delete notebook":"Cancella blocco note","Login with OneDrive":"Accedi a OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Fare clic sul pulsante (+) per creare una nuova nota o un nuovo blocco note. Fare clic sul menu laterale per accedere ai tuoi blocchi note esistenti.","You currently have no notebook. Create one by clicking on (+) button.":"Attualmente non hai nessun blocco note. Crearne uno cliccando sul pulsante (+).","Welcome":"Benvenuto"}
        \ No newline at end of file
        diff --git a/ElectronClient/app/locales/ja_JP.json b/ElectronClient/app/locales/ja_JP.json
        index 04822614e4..412bc0ae17 100644
        --- a/ElectronClient/app/locales/ja_JP.json
        +++ b/ElectronClient/app/locales/ja_JP.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"タグを削除するには、関連するノートからタグを外してください。","Please select the note or notebook to be deleted first.":"ます削除するノートかノートブックを選択してください。","Press Ctrl+D or type \"exit\" to exit the application":"アプリケーションを終了するには、Ctrl+Dまたは\"exit\"と入力してください","More than one item match \"%s\". Please narrow down your query.":"一つ以上のアイテムが\"%s\"に一致しました。クエリを絞るようにしてください。","No notebook selected.":"ノートブックが選択されていません。","No notebook has been specified.":"ノートブックが選択されていません。","Y":"","n":"","N":"","y":"","Cancelling background synchronisation... Please wait.":"バックグラウンド同期を中止中… しばらくお待ちください。","No such command: %s":"コマンドが違います:%s","The command \"%s\" is only available in GUI mode":"コマンド \"%s\"は、GUIのみで有効です。","Cannot change encrypted item":"","Missing required argument: %s":"引数が足りません:%s","%s: %s":"","Your choice: ":"選択:","Invalid answer: %s":"無効な入力:%s","Attaches the given file to the note.":"選択されたファイルをノートに添付","Cannot find \"%s\".":"\"%s\"は見つかりませんでした。","Displays the given note.":"選択されたノートを表示","Displays the complete information about note.":"ノートに関するすべての情報を表示","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"設定を行います。[value]がない場合は、[name]で示された設定項目の値を表示します。両方とも指定されていない場合は、現在の設定のリストを表示します。","Also displays unset and hidden config variables.":"未設定または非表示の設定項目も表示します。","%s = %s (%s)":"","%s = %s":"","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"に一致するノートを[notebook]に複製します。[notebook]が指定されていない場合は、現在のノートブックに複製を行います。","Marks a to-do as done.":"ToDoを完了として","Note is not a to-do: \"%s\"":"ノートはToDoリストではありません:\"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"無効","Encryption is: %s":"","Edit note.":"ノートを編集する。","No text editor is defined. Please set it using `config editor `":"テキストエディタが設定されていません。`config editor `で設定を行ってください。","No active notebook.":"有効なbノートブックがありません。","Note does not exist: \"%s\". Create it?":"\"%s\"というノートはありません。お作りいたしますか?","Starting to edit note. Close the editor to get back to the prompt.":"ノートの編集の開始。エディタを閉じると元の画面に戻ることが出来ます。","Error opening note in editor: %s":"","Note has been saved.":"ノートは保存されました。","Exits the application.":"アプリケーションの終了。","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"選択されたノートのみを出力する。","Exports only the given notebook.":"選択されたノートブックのみを出力する。","Displays a geolocation URL for the note.":"ノートの位置情報URLを表示する。","Displays usage information.":"使い方を表示する。","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"CLIモードではショートカットは使用できません。","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"コマンドのさらなる情報は、`help [command]`で見ることが出来ます;または、`help all`ですべての使用方法の情報を表示できます。","The possible commands are:":"有効なコマンドは:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"すべてのコマンドで、ノートまたはノートブックは、題名またはID、または選択中の物はそれぞれショートカット`$n`または`$b`で指定できます。`$c`で選択中のアイテムを参照できます。","To move from one pane to another, press Tab or Shift+Tab.":"ペイン間を移動するには、TabかShift+Tabをおしてください。","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"リストや入力エリアの移動には矢印キーまたはPage Up/Downを使用します。","To maximise/minimise the console, press \"TC\".":"コンソールの最大化・最小化には\"TC\"と入力してください。","To enter command line mode, press \":\"":"コマンドラインモードに入るには、\":\"を入力してください。","To exit command line mode, press ESCAPE":"コマンドラインモードを終了するには、ESCキーを押してください。","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"確認を行わない。","Found: %d.":"見つかりました:%d","Created: %d.":"作成しました:%d","Updated: %d.":"アップデートしました:%d","Skipped: %d.":"スキップしました:%d","Resources: %d.":"リソース:%d","Tagged: %d.":"タグ付き:%d","Importing notes...":"ノートのインポート…","The notes have been imported: %s":"ノートはインポートされました:%s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"現在のノートブック中のノートを表示します。ノートブックのリストを表示するには、`ls /`と入力してください。","Displays only the first top  notes.":"上位 件のノートを表示する。","Sorts the item by  (eg. title, updated_time, created_time).":"アイテムをで並び替え (例: title, updated_time, created_time).","Reverses the sorting order.":"逆順に並び替える。","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.","Either \"text\" or \"json\"":"\"text\"または\"json\"のどちらか","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"長い形式のリストフォーマットを使用します。フォーマットは:ID, NOTE_COUNT (ノートブックのみ), DATE, TODO_CHECKED (ToDoのみ), TITLE","Please select a notebook first.":"ますはノートブックを選択して下さい。","Creates a new notebook.":"あたらしいノートブックを作成します。","Creates a new note.":"あたらしいノートを作成します。","Notes can only be created within a notebook.":"ノートは、ノートブック内のみで作ることが出来ます。","Creates a new to-do.":"新しいToDoを作成します。","Moves the notes matching  to [notebook].":"に一致するアイテムを、[notebook]に移動します。","Renames the given  (note or notebook) to .":" (ノートまたはノートブック)の名前を、に変更します。","Deletes the given notebook.":"指定されたノートブックを削除します。","Deletes the notebook without asking for confirmation.":"ノートブックを確認なしで削除します。","Delete notebook? All notes within this notebook will also be deleted.":"ノートブックを削除しますか?中にあるノートはすべて消えてしまいます。","Deletes the notes matching .":"に一致するノートを削除する。","Deletes the notes without asking for confirmation.":"ノートを確認なしで削除します。","%d notes match this pattern. Delete them?":"%d個のノートが一致しました。削除しますか?","Delete note?":"ノートを削除しますか?","Searches for the given  in all the notes.":"指定されたをすべてのノートから検索する。","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"のプロパティ を、指示された[value]に設定します。有効なプロパティは:\n\n%s","Displays summary about the notes and notebooks.":"ノートとノートブックのサマリを表示します。","Synchronises with remote storage.":"リモート保存領域と同期します。","Sync to provided target (defaults to sync.target config value)":"指定のターゲットと同期します。(標準: sync.targetの設定値)","Authentication was not completed (did not receive an authentication token).":"認証は完了していません(認証トークンが得られませんでした)","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"同期はすでに実行中です。","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"ロックファイルがすでに保持されています。同期作業が行われていない場合は、\"%s\"にあるロックファイルを削除して、作業を再度行ってください。","Synchronisation target: %s (%s)":"同期先: %s (%s)","Cannot initialize synchroniser.":"同期プロセスを初期化できませんでした。","Starting synchronisation...":"同期を開始中...","Cancelling... Please wait.":"中止中...お待ちください。"," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" は\"add\", \"remove\", \"list\"のいずれかで、指定したノートからタグをつけたり外したり出来ます。`tag list`で、すべてのタグを見ることが出来ます。","Invalid command: \"%s\"":"無効な命令: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"は、\"toggle\"または\"clear\"を指定できます。\"toggle\"を指定すると、指定したToDoの完了済み/未完を反転できます。指定したノートが通常のノートであれば、ToDoに変換されます。\"clear\"を指定すると、ToDoを通常のノートに変換できます。","Marks a to-do as non-completed.":"ToDoを未完としてマーク","Switches to [notebook] - all further operations will happen within this notebook.":"ノートブック [notebook]に切り替え - これ以降の作業は、指定のノートブック内で行われます。","Displays version information":"バージョン情報の表示","%s %s (%s)":"","Enum":"列挙","Type: %s.":"種類: %s.","Possible values: %s.":"取り得る値: %s.","Default: %s":"規定値: %s","Possible keys/values:":"取り得るキーバリュー: ","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"致命的なエラー: ","The application has been authorised - you may now close this browser tab.":"アプリケーションは認証されました - ブラウザを閉じて頂いてかまいません。","The application has been successfully authorised.":"アプリケーションは問題なく認証されました。","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"このアプリケーションを認証するためには下記のURLをブラウザで開いてください。アプリケーションは\"Apps/Joplin\"フォルダを作成し、その中のファイルのみを読み書きします。あなたの個人的なファイルや、ディレクトリ外のファイルにはアクセスしません。第三者にデータが共有されることもありません。","Search:":"検索: ","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Joplinへようこそ!\n\n`:help shortcuts`と入力することで、キーボードショートカットのリストを見ることが出来ます。また、`:help`で使い方を確認できます。\n\n例えば、ノートブックの作成には`mb`で出来、ノートの作成は`mn`で行うことが出来ます。","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"ファイル","New note":"新しいノート","New to-do":"新しいToDo","New notebook":"新しいノートブック","Import":"インポート","Export":"Export","Print":"","Hide %s":"","Quit":"終了","Edit":"編集","Copy":"コピー","Cut":"切り取り","Paste":"貼り付け","Search in all the notes":"すべてのノートを検索","View":"","Toggle editor layout":"","Tools":"ツール","Synchronisation status":"同期状況","Encryption options":"","General Options":"General Options","Help":"ヘルプ","Website and documentation":"Webサイトとドキュメント","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Joplinについて","%s %s (%s, %s)":"","Open %s":"","Exit":"","OK":"","Cancel":"キャンセル","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"ノートと設定は、%sに保存されます。","Save":"保存","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"アクティブ","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"注意:\"active\"に指定されたマスターキーのみが暗号化に使用されます。暗号化に使用されたキーの応じて、すべてのキーが暗号解除のために使用されます。","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"状態","Encryption is:":"","Back":"戻る","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"\"%s\"という名前の新しいノートブックが作成され、ファイル\"%s\"がインポートされます。","Please create a notebook first.":"ますはノートブックを作成して下さい。","Please create a notebook first":"ますはノートブックを作成して下さい。","Notebook title:":"ノートブックの題名:","Add or remove tags:":"タグの追加・削除:","Separate each tag by a comma.":"それぞれのタグをカンマ(,)で区切ってください。","Rename notebook:":"ノートブックの名前を変更:","Set alarm:":"アラームをセット:","Search":"検索","Layout":"レイアウト","Some items cannot be synchronised.":"いくつかの項目は同期されませんでした。","View them now":"今すぐ表示","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"タグの追加・削除","Switch between note and to-do type":"ノートとToDoを切り替え","Delete":"削除","Delete notes?":"ノートを削除しますか?","No notes in here. Create one by clicking on \"New note\".":"ノートがありません。新しいノートを作成して下さい。","There is currently no notebook. Create one by clicking on \"New notebook\".":"ノートブックがありません。新しいノートブックを作成してください。","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"","Attach file":"ファイルを添付","Tags":"タグ","Set alarm":"アラームをセット","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"更新","Clear":"クリア","OneDrive Login":"OneDriveログイン","Options":"オプション","Synchronisation Status":"同期状況","Encryption Options":"","Remove this tag from all the notes?":"すべてのノートからこのタグを削除しますか?","Remove this search from the sidebar?":"サイドバーからこの検索を削除しますか?","Rename":"名前の変更","Synchronise":"同期","Notebooks":"ノートブック","Searches":"検索","Please select where the sync status should be exported to":"同期状況の出力先を選択してください","Usage: %s":"使用方法: %s","Unknown flag: %s":"不明なフラグ: %s","File system":"ファイルシステム","Nextcloud":"","OneDrive":"","OneDrive Dev (For testing only)":"","WebDAV":"","Unknown log level: %s":"","Unknown level ID: %s":"","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"トークンの更新が出来ませんでした。認証データがありません。同期を再度行うことで解決することがあります。","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"OneDriveと同期できませんでした。\n\nOneDrive for Business(未サポート)を使用中はこのエラーが起こることがあります。\n\n通常のOneDriveアカウントの使用をご検討ください。","Cannot access %s":"%sにアクセスできません","Created local items: %d.":"ローカルアイテムの作成: %d.","Updated local items: %d.":"ローカルアイテムの更新: %d.","Created remote items: %d.":"リモートアイテムの作成: %d.","Updated remote items: %d.":"リモートアイテムの更新: %d.","Deleted local items: %d.":"ローカルアイテムの削除: %d.","Deleted remote items: %d.":"リモートアイテムの削除: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"状態: \"%s\"。","Cancelling...":"中止中...","Completed: %s":"完了: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"同期作業はすでに実行中です。状態: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"衝突","A notebook with this title already exists: \"%s\"":"\"%s\"という名前のノートブックはすでに存在しています。","Notebooks cannot be named \"%s\", which is a reserved title.":"\"%s\"と言う名前はシステムで使用するために予約済みです。名前の変更が出来ません。","Untitled":"名称未設定","This note does not have geolocation information.":"このノートには位置情報がありません。","Cannot copy note to \"%s\" notebook":"ノートをノートブック \"%s\"にコピーできませんでした。","Cannot move note to \"%s\" notebook":"ノートをノートブック \"%s\"に移動できませんでした。","Text editor":"テキストエディタ","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"ノートを開くために使用されるエディタです。特に指定がなければ、デフォルトのエディタの検出を試みます。","Language":"言語","Date format":"日付の形式","Time format":"時刻の形式","Theme":"テーマ","Light":"明るい","Dark":"暗い","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"ノートに位置情報を保存","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"アプリケーションの自動更新","Synchronisation interval":"同期間隔","%d minutes":"%d 分","%d hour":"%d 時間","%d hours":"%d 時間","Show advanced options":"詳細な設定の表示","Synchronisation target":"同期先","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"同期先のディレクトリ(絶対パス)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"ファイルシステム同期の有効時に同期を行うパスです。`sync.target`も参考にしてください。","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"無効な設定値: \"%s\"。有効な値は: %sです。","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"同期が出来なかったアイテム","%s (%s): %s":"","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"同期状況 (同期済/総数)","%s: %d/%d":"","Total: %d/%d":"総数: %d/%d","Conflicted: %d":"衝突: %d","To delete: %d":"削除予定: %d","Folders":"フォルダ","%s: %d notes":"%s: %d ノート","Coming alarms":"時間のきたアラーム","On %s: %s":"","There are currently no notes. Create one by clicking on the (+) button.":"ノートがありません。(+)ボタンを押して新しいノートを作成してください。","Delete these notes?":"ノートを削除しますか?","Log":"ログ","Export Debug Report":"デバッグレポートの出力","Encryption Config":"","Configuration":"設定","Move to notebook...":"ノートブックへ移動...","Move %d notes to notebook \"%s\"?":"%d個のノートを\"%s\"に移動しますか?","Press to set the decryption password.":"","Select date":"日付の選択","Confirm":"確認","Cancel synchronisation":"同期の中止","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"ノートブックは保存できませんでした:%s","Edit notebook":"ノートブックの編集","Show all":"","Errors only":"","This note has been modified:":"ノートは変更されています:","Save changes":"変更を保存","Discard changes":"変更を破棄","Unsupported image type: %s":"サポートされていないイメージ形式: %s.","Attach photo":"写真を添付","Attach any file":"ファイルを添付","Convert to note":"ノートに変換","Convert to todo":"ToDoに変換","Hide metadata":"メタデータを隠す","Show metadata":"メタデータを表示","View on map":"地図上に表示","Delete notebook":"ノートブックを削除","Login with OneDrive":"OneDriveログイン","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"(+)ボタンを押してノートやノートブックを作成してください。サイドメニューからあなたのノートブックにアクセスが出来ます。","You currently have no notebook. Create one by clicking on (+) button.":"ノートブックがありません。(+)をクリックして新しいノートブックを作成してください。","Welcome":"ようこそ"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"タグを削除するには、関連するノートからタグを外してください。","Please select the note or notebook to be deleted first.":"ます削除するノートかノートブックを選択してください。","Press Ctrl+D or type \"exit\" to exit the application":"アプリケーションを終了するには、Ctrl+Dまたは\"exit\"と入力してください","More than one item match \"%s\". Please narrow down your query.":"一つ以上のアイテムが\"%s\"に一致しました。クエリを絞るようにしてください。","No notebook selected.":"ノートブックが選択されていません。","No notebook has been specified.":"ノートブックが選択されていません。","Y":"","n":"","N":"","y":"","Cancelling background synchronisation... Please wait.":"バックグラウンド同期を中止中… しばらくお待ちください。","No such command: %s":"コマンドが違います:%s","The command \"%s\" is only available in GUI mode":"コマンド \"%s\"は、GUIのみで有効です。","Cannot change encrypted item":"","Missing required argument: %s":"引数が足りません:%s","%s: %s":"","Your choice: ":"選択:","Invalid answer: %s":"無効な入力:%s","Attaches the given file to the note.":"選択されたファイルをノートに添付","Cannot find \"%s\".":"\"%s\"は見つかりませんでした。","Displays the given note.":"選択されたノートを表示","Displays the complete information about note.":"ノートに関するすべての情報を表示","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"設定を行います。[value]がない場合は、[name]で示された設定項目の値を表示します。両方とも指定されていない場合は、現在の設定のリストを表示します。","Also displays unset and hidden config variables.":"未設定または非表示の設定項目も表示します。","%s = %s (%s)":"","%s = %s":"","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"に一致するノートを[notebook]に複製します。[notebook]が指定されていない場合は、現在のノートブックに複製を行います。","Marks a to-do as done.":"ToDoを完了として","Note is not a to-do: \"%s\"":"ノートはToDoリストではありません:\"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"無効","Encryption is: %s":"","Edit note.":"ノートを編集する。","No text editor is defined. Please set it using `config editor `":"テキストエディタが設定されていません。`config editor `で設定を行ってください。","No active notebook.":"有効なbノートブックがありません。","Note does not exist: \"%s\". Create it?":"\"%s\"というノートはありません。お作りいたしますか?","Starting to edit note. Close the editor to get back to the prompt.":"ノートの編集の開始。エディタを閉じると元の画面に戻ることが出来ます。","Error opening note in editor: %s":"","Note has been saved.":"ノートは保存されました。","Exits the application.":"アプリケーションの終了。","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"選択されたノートのみを出力する。","Exports only the given notebook.":"選択されたノートブックのみを出力する。","Displays a geolocation URL for the note.":"ノートの位置情報URLを表示する。","Displays usage information.":"使い方を表示する。","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"CLIモードではショートカットは使用できません。","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"コマンドのさらなる情報は、`help [command]`で見ることが出来ます;または、`help all`ですべての使用方法の情報を表示できます。","The possible commands are:":"有効なコマンドは:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"すべてのコマンドで、ノートまたはノートブックは、題名またはID、または選択中の物はそれぞれショートカット`$n`または`$b`で指定できます。`$c`で選択中のアイテムを参照できます。","To move from one pane to another, press Tab or Shift+Tab.":"ペイン間を移動するには、TabかShift+Tabをおしてください。","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"リストや入力エリアの移動には矢印キーまたはPage Up/Downを使用します。","To maximise/minimise the console, press \"TC\".":"コンソールの最大化・最小化には\"TC\"と入力してください。","To enter command line mode, press \":\"":"コマンドラインモードに入るには、\":\"を入力してください。","To exit command line mode, press ESCAPE":"コマンドラインモードを終了するには、ESCキーを押してください。","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"確認を行わない。","Found: %d.":"見つかりました:%d","Created: %d.":"作成しました:%d","Updated: %d.":"アップデートしました:%d","Skipped: %d.":"スキップしました:%d","Resources: %d.":"リソース:%d","Tagged: %d.":"タグ付き:%d","Importing notes...":"ノートのインポート…","The notes have been imported: %s":"ノートはインポートされました:%s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"現在のノートブック中のノートを表示します。ノートブックのリストを表示するには、`ls /`と入力してください。","Displays only the first top  notes.":"上位 件のノートを表示する。","Sorts the item by  (eg. title, updated_time, created_time).":"アイテムをで並び替え (例: title, updated_time, created_time).","Reverses the sorting order.":"逆順に並び替える。","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.","Either \"text\" or \"json\"":"\"text\"または\"json\"のどちらか","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"長い形式のリストフォーマットを使用します。フォーマットは:ID, NOTE_COUNT (ノートブックのみ), DATE, TODO_CHECKED (ToDoのみ), TITLE","Please select a notebook first.":"ますはノートブックを選択して下さい。","Creates a new notebook.":"あたらしいノートブックを作成します。","Creates a new note.":"あたらしいノートを作成します。","Notes can only be created within a notebook.":"ノートは、ノートブック内のみで作ることが出来ます。","Creates a new to-do.":"新しいToDoを作成します。","Moves the notes matching  to [notebook].":"に一致するアイテムを、[notebook]に移動します。","Renames the given  (note or notebook) to .":" (ノートまたはノートブック)の名前を、に変更します。","Deletes the given notebook.":"指定されたノートブックを削除します。","Deletes the notebook without asking for confirmation.":"ノートブックを確認なしで削除します。","Delete notebook? All notes within this notebook will also be deleted.":"ノートブックを削除しますか?中にあるノートはすべて消えてしまいます。","Deletes the notes matching .":"に一致するノートを削除する。","Deletes the notes without asking for confirmation.":"ノートを確認なしで削除します。","%d notes match this pattern. Delete them?":"%d個のノートが一致しました。削除しますか?","Delete note?":"ノートを削除しますか?","Searches for the given  in all the notes.":"指定されたをすべてのノートから検索する。","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"のプロパティ を、指示された[value]に設定します。有効なプロパティは:\n\n%s","Displays summary about the notes and notebooks.":"ノートとノートブックのサマリを表示します。","Synchronises with remote storage.":"リモート保存領域と同期します。","Sync to provided target (defaults to sync.target config value)":"指定のターゲットと同期します。(標準: sync.targetの設定値)","Authentication was not completed (did not receive an authentication token).":"認証は完了していません(認証トークンが得られませんでした)","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"同期はすでに実行中です。","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"ロックファイルがすでに保持されています。同期作業が行われていない場合は、\"%s\"にあるロックファイルを削除して、作業を再度行ってください。","Synchronisation target: %s (%s)":"同期先: %s (%s)","Cannot initialize synchroniser.":"同期プロセスを初期化できませんでした。","Starting synchronisation...":"同期を開始中...","Cancelling... Please wait.":"中止中...お待ちください。"," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" は\"add\", \"remove\", \"list\"のいずれかで、指定したノートからタグをつけたり外したり出来ます。`tag list`で、すべてのタグを見ることが出来ます。","Invalid command: \"%s\"":"無効な命令: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"は、\"toggle\"または\"clear\"を指定できます。\"toggle\"を指定すると、指定したToDoの完了済み/未完を反転できます。指定したノートが通常のノートであれば、ToDoに変換されます。\"clear\"を指定すると、ToDoを通常のノートに変換できます。","Marks a to-do as non-completed.":"ToDoを未完としてマーク","Switches to [notebook] - all further operations will happen within this notebook.":"ノートブック [notebook]に切り替え - これ以降の作業は、指定のノートブック内で行われます。","Displays version information":"バージョン情報の表示","%s %s (%s)":"","Enum":"列挙","Type: %s.":"種類: %s.","Possible values: %s.":"取り得る値: %s.","Default: %s":"規定値: %s","Possible keys/values:":"取り得るキーバリュー: ","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"致命的なエラー: ","The application has been authorised - you may now close this browser tab.":"アプリケーションは認証されました - ブラウザを閉じて頂いてかまいません。","The application has been successfully authorised.":"アプリケーションは問題なく認証されました。","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"このアプリケーションを認証するためには下記のURLをブラウザで開いてください。アプリケーションは\"Apps/Joplin\"フォルダを作成し、その中のファイルのみを読み書きします。あなたの個人的なファイルや、ディレクトリ外のファイルにはアクセスしません。第三者にデータが共有されることもありません。","Search:":"検索: ","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Joplinへようこそ!\n\n`:help shortcuts`と入力することで、キーボードショートカットのリストを見ることが出来ます。また、`:help`で使い方を確認できます。\n\n例えば、ノートブックの作成には`mb`で出来、ノートの作成は`mn`で行うことが出来ます。","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"ファイル","New note":"新しいノート","New to-do":"新しいToDo","New notebook":"新しいノートブック","Import":"インポート","Export":"Export","Print":"","Hide %s":"","Quit":"終了","Edit":"編集","Copy":"コピー","Cut":"切り取り","Paste":"貼り付け","Search in all the notes":"すべてのノートを検索","View":"","Toggle editor layout":"","Tools":"ツール","Synchronisation status":"同期状況","Encryption options":"","General Options":"General Options","Help":"ヘルプ","Website and documentation":"Webサイトとドキュメント","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Joplinについて","%s %s (%s, %s)":"","Open %s":"","Exit":"","OK":"","Cancel":"キャンセル","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"ノートと設定は、%sに保存されます。","Save":"保存","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"アクティブ","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"注意:\"active\"に指定されたマスターキーのみが暗号化に使用されます。暗号化に使用されたキーの応じて、すべてのキーが暗号解除のために使用されます。","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"状態","Encryption is:":"","Back":"戻る","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"\"%s\"という名前の新しいノートブックが作成され、ファイル\"%s\"がインポートされます。","Please create a notebook first.":"ますはノートブックを作成して下さい。","Please create a notebook first":"ますはノートブックを作成して下さい。","Notebook title:":"ノートブックの題名:","Add or remove tags:":"タグの追加・削除:","Separate each tag by a comma.":"それぞれのタグをカンマ(,)で区切ってください。","Rename notebook:":"ノートブックの名前を変更:","Set alarm:":"アラームをセット:","Search":"検索","Layout":"レイアウト","Some items cannot be synchronised.":"いくつかの項目は同期されませんでした。","View them now":"今すぐ表示","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"タグの追加・削除","Switch between note and to-do type":"ノートとToDoを切り替え","Delete":"削除","Delete notes?":"ノートを削除しますか?","No notes in here. Create one by clicking on \"New note\".":"ノートがありません。新しいノートを作成して下さい。","There is currently no notebook. Create one by clicking on \"New notebook\".":"ノートブックがありません。新しいノートブックを作成してください。","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"","Attach file":"ファイルを添付","Tags":"タグ","Set alarm":"アラームをセット","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"更新","Clear":"クリア","OneDrive Login":"OneDriveログイン","Options":"オプション","Synchronisation Status":"同期状況","Encryption Options":"","Remove this tag from all the notes?":"すべてのノートからこのタグを削除しますか?","Remove this search from the sidebar?":"サイドバーからこの検索を削除しますか?","Rename":"名前の変更","Synchronise":"同期","Notebooks":"ノートブック","Searches":"検索","Please select where the sync status should be exported to":"同期状況の出力先を選択してください","Usage: %s":"使用方法: %s","Unknown flag: %s":"不明なフラグ: %s","File system":"ファイルシステム","Nextcloud":"","OneDrive":"","OneDrive Dev (For testing only)":"","WebDAV":"","Unknown log level: %s":"","Unknown level ID: %s":"","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"トークンの更新が出来ませんでした。認証データがありません。同期を再度行うことで解決することがあります。","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"OneDriveと同期できませんでした。\n\nOneDrive for Business(未サポート)を使用中はこのエラーが起こることがあります。\n\n通常のOneDriveアカウントの使用をご検討ください。","Cannot access %s":"%sにアクセスできません","Created local items: %d.":"ローカルアイテムの作成: %d.","Updated local items: %d.":"ローカルアイテムの更新: %d.","Created remote items: %d.":"リモートアイテムの作成: %d.","Updated remote items: %d.":"リモートアイテムの更新: %d.","Deleted local items: %d.":"ローカルアイテムの削除: %d.","Deleted remote items: %d.":"リモートアイテムの削除: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: %s.":"State: %s.","Cancelling...":"中止中...","Completed: %s":"完了: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"同期作業はすでに実行中です。状態: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"衝突","A notebook with this title already exists: \"%s\"":"\"%s\"という名前のノートブックはすでに存在しています。","Notebooks cannot be named \"%s\", which is a reserved title.":"\"%s\"と言う名前はシステムで使用するために予約済みです。名前の変更が出来ません。","Untitled":"名称未設定","This note does not have geolocation information.":"このノートには位置情報がありません。","Cannot copy note to \"%s\" notebook":"ノートをノートブック \"%s\"にコピーできませんでした。","Cannot move note to \"%s\" notebook":"ノートをノートブック \"%s\"に移動できませんでした。","Text editor":"テキストエディタ","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"ノートを開くために使用されるエディタです。特に指定がなければ、デフォルトのエディタの検出を試みます。","Language":"言語","Date format":"日付の形式","Time format":"時刻の形式","Theme":"テーマ","Light":"明るい","Dark":"暗い","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"ノートに位置情報を保存","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"アプリケーションの自動更新","Synchronisation interval":"同期間隔","%d minutes":"%d 分","%d hour":"%d 時間","%d hours":"%d 時間","Show advanced options":"詳細な設定の表示","Synchronisation target":"同期先","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"同期先のディレクトリ(絶対パス)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"ファイルシステム同期の有効時に同期を行うパスです。`sync.target`も参考にしてください。","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"無効な設定値: \"%s\"。有効な値は: %sです。","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"同期が出来なかったアイテム","%s (%s): %s":"","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"同期状況 (同期済/総数)","%s: %d/%d":"","Total: %d/%d":"総数: %d/%d","Conflicted: %d":"衝突: %d","To delete: %d":"削除予定: %d","Folders":"フォルダ","%s: %d notes":"%s: %d ノート","Coming alarms":"時間のきたアラーム","On %s: %s":"","There are currently no notes. Create one by clicking on the (+) button.":"ノートがありません。(+)ボタンを押して新しいノートを作成してください。","Delete these notes?":"ノートを削除しますか?","Log":"ログ","Export Debug Report":"デバッグレポートの出力","Encryption Config":"","Configuration":"設定","Move to notebook...":"ノートブックへ移動...","Move %d notes to notebook \"%s\"?":"%d個のノートを\"%s\"に移動しますか?","Press to set the decryption password.":"","Select date":"日付の選択","Confirm":"確認","Cancel synchronisation":"同期の中止","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"ノートブックは保存できませんでした:%s","Edit notebook":"ノートブックの編集","Show all":"","Errors only":"","This note has been modified:":"ノートは変更されています:","Save changes":"変更を保存","Discard changes":"変更を破棄","Unsupported image type: %s":"サポートされていないイメージ形式: %s.","Attach photo":"写真を添付","Attach any file":"ファイルを添付","Convert to note":"ノートに変換","Convert to todo":"ToDoに変換","Hide metadata":"メタデータを隠す","Show metadata":"メタデータを表示","View on map":"地図上に表示","Delete notebook":"ノートブックを削除","Login with OneDrive":"OneDriveログイン","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"(+)ボタンを押してノートやノートブックを作成してください。サイドメニューからあなたのノートブックにアクセスが出来ます。","You currently have no notebook. Create one by clicking on (+) button.":"ノートブックがありません。(+)をクリックして新しいノートブックを作成してください。","Welcome":"ようこそ"}
        \ No newline at end of file
        diff --git a/ElectronClient/app/locales/nl_BE.json b/ElectronClient/app/locales/nl_BE.json
        index c75a3739ff..eeb672f3d5 100644
        --- a/ElectronClient/app/locales/nl_BE.json
        +++ b/ElectronClient/app/locales/nl_BE.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"Untag de geassocieerde notities om een tag te verwijderen.","Please select the note or notebook to be deleted first.":"Selecteer eerst het notitieboek of de notitie om te verwijderen.","Press Ctrl+D or type \"exit\" to exit the application":"Typ Ctrl+D of \"exit\" om de applicatie te sluiten","More than one item match \"%s\". Please narrow down your query.":"Meer dan een item voldoet aan de zoekterm \"%s\". Verfijn uw zoekterm a.u.b.","No notebook selected.":"Geen notitieboek geselecteerd.","No notebook has been specified.":"Geen notitieboek is gespecifieerd","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Achtergrond synchronisatie wordt geannuleerd... Even geduld.","No such command: %s":"Geen commando gevonden: \"%s\"","The command \"%s\" is only available in GUI mode":"Het opgegeven command \"%s\" is alleen beschikbaar in de GUI versie","Cannot change encrypted item":"Kan het versleutelde item niet wijzigen","Missing required argument: %s":"Benodigde argumenten niet voorzien: %s","%s: %s":"%s: %s","Your choice: ":"Uw keuze:","Invalid answer: %s":"Ongeldig antwoord: %s","Attaches the given file to the note.":"Voegt het bestand toe aan de notitie.","Cannot find \"%s\".":"Kan \"%s\" niet vinden.","Displays the given note.":"Toont de opgegeven notitie.","Displays the complete information about note.":"Toont de volledige informatie van een notitie.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Haal een configuratie waarde op of stel een waarde in. Als [value] niet opgegeven is, zal de waarde van [name] getoond worden. Als nog de [name] of [waarde] opgegeven zijn, zal de huidige configuratie opgelijst worden.","Also displays unset and hidden config variables.":"Toont ook niet-geconfigureerde en verborgen configuratie opties. ","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Verveelvoudig de notities die voldoen aan  in [notitieboek]. Als er geen notitieboek is meegegeven, de notitie is gedupliceerd in het huidige notitieboek.","Marks a to-do as done.":"Markeer een to-do als voltooid. ","Note is not a to-do: \"%s\"":"Notitie is geen to-do: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Beheert E2EE configuratie. Commando's zijn `enable`, `disable`, `decrypt`, `status` and `target-status`.","Enter master password:":"Voeg hoofdsleutel in:","Operation cancelled":"Operatie geannuleerd","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Ontsleuteling starten... Dit kan enkele minuten duren, afhankelijk van hoeveel er te ontsleutelen is. ","Completed decryption.":"Ontsleuteling voltooid","Enabled":"Ingeschakeld","Disabled":"UItgeschakeld","Encryption is: %s":"Encryptie is: %s","Edit note.":"Bewerk notitie.","No text editor is defined. Please set it using `config editor `":"Geen tekst editor is ingesteld. Stel in met `config editor `","No active notebook.":"Geen actief notitieboek.","Note does not exist: \"%s\". Create it?":"Notitie bestaat niet: \"%s\". Aanmaken?","Starting to edit note. Close the editor to get back to the prompt.":"Bewerken notitie gestart. Sluit de editor om terug naar de prompt te gaan.","Error opening note in editor: %s":"","Note has been saved.":"Notitie is opgeslaan.","Exits the application.":"Sluit de applicatie.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exporteert alleen de opgegeven notitie.","Exports only the given notebook.":"Exporteert alleen het opgegeven notitieboek.","Displays a geolocation URL for the note.":"Toont een geolocatie link voor de notitie.","Displays usage information.":"Toont gebruiksinformatie.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Shortcuts zijn niet beschikbaar in command line modus.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Typ `help [commando]` voor meer informatie over een commando; of typ `help all` voor de volledige gebruiksaanwijzing.","The possible commands are:":"Mogelijke commando's zijn:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In iedere commando kan een notitie of een notitieboek opgegeven worden door de title of het ID of de shortcuts `$n` of `$b` voor, respectievelijk, het huidig geslecteerde notitieboek of huidig geselecteerde notitie. `$c` kan gebruikt worden om te refereren naar het huidige geselecteerde item.","To move from one pane to another, press Tab or Shift+Tab.":"Om van het ene paneel naar het andere te gaan, duw Tab of Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Gebruik de pijltjes en page up/down om door de lijsten en de tekstvelden te scrollen (ook deze console).","To maximise/minimise the console, press \"TC\".":"Om de console te maximaliseren/minimaliseren, typ \"TC\".","To enter command line mode, press \":\"":"Om command line modus te gebruiken, duw \":\"","To exit command line mode, press ESCAPE":"Om command line modus te verlaten, duw ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Vraag niet om bevestiging. ","Found: %d.":"Gevonden: %d.","Created: %d.":"Aangemaakt: %d.","Updated: %d.":"Bijgewerkt: %d.","Skipped: %d.":"Geskipt: %d.","Resources: %d.":"Middelen: %d.","Tagged: %d.":"Getagd: %d.","Importing notes...":"Notities importeren...","The notes have been imported: %s":"Notities zijn geïmporteerd: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Toont de notities in het huidige notitieboek. Gebruik `ls /` om een lijst van notitieboeken te tonen.","Displays only the first top  notes.":"Toont enkel de top  notities.","Sorts the item by  (eg. title, updated_time, created_time).":"Sorteert de items volgens  (vb. title, updated_time, created_time).","Reverses the sorting order.":"Draait de sorteervolgorde om.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Toont enkel de items van de specifieke type(s). Kan `n` zijn voor notities, `t` voor to-do's, of `nt` voor notities en to-do's (vb. `-tt` zou alleen to-do's tonen, terwijl `-ttd` notities en to-do's zou tonen).","Either \"text\" or \"json\"":"Of \"text\" of \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Gebruik volgend lijst formaat. Formaat is ID, NOTE_COUNT (voor notitieboek), DATE, TODO_CHECKED (voor to-do's), TITLE","Please select a notebook first.":"Selecteer eerst een notitieboek. ","Creates a new notebook.":"Maakt een nieuw notitieboek aan.","Creates a new note.":"Maakt een nieuwe notitie aan.","Notes can only be created within a notebook.":"Notities kunnen enkel in een notitieboek aangemaakt worden.","Creates a new to-do.":"Maakt nieuwe to-do aan.","Moves the notes matching  to [notebook].":"Verplaatst de notities die voldoen aan  naar [notitieboek].","Renames the given  (note or notebook) to .":"Hernoemt het gegeven  (notitie of notitieboek) naar .","Deletes the given notebook.":"Verwijdert het opgegeven notitieboek.","Deletes the notebook without asking for confirmation.":"Verwijdert het notitieboek zonder te vragen om bevestiging.","Delete notebook? All notes within this notebook will also be deleted.":"Notitieboek verwijderen? Alle notities in dit notitieboek zullen ook verwijderd worden.","Deletes the notes matching .":"Verwijder alle notities die voldoen aan .","Deletes the notes without asking for confirmation.":"Verwijder de notities zonder te vragen om bevestiging. ","%d notes match this pattern. Delete them?":"%d notities voldoen aan het patroon. Items verwijderen?","Delete note?":"Notitie verwijderen?","Searches for the given  in all the notes.":"Zoektermen voor het opgegeven  in alle notities.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Zet de eigenschap  van de opgegeven  naar de opgegeven [value]. Mogelijke eigenschappen zijn:\n\n%s","Displays summary about the notes and notebooks.":"Toon samenvatting van alle notities en notitieboeken","Synchronises with remote storage.":"Synchroniseert met remote opslag. ","Sync to provided target (defaults to sync.target config value)":"Synchroniseer naar opgegeven doel (standaard sync.target configuratie optie)","Authentication was not completed (did not receive an authentication token).":"Authenticatie was niet voltooid (geen authenticatietoken ontvangen).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"Synchronisatie reeds bezig.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Er is reeds een lockfile. Als u zeker bent dat er geen synchronisatie bezig is, kan de lock file verwijderd worden op \"%s\" en verder gegaan worden met de synchronisatie. ","Synchronisation target: %s (%s)":"Synchronisatiedoel: %s (%s)","Cannot initialize synchroniser.":"Kan de synchronisatie niet starten.","Starting synchronisation...":"Synchronisatie starten...","Cancelling... Please wait.":"Annuleren.. Even geduld."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" kan \"add\", \"remove\" of \"list\" zijn om een [tag] toe te voegen aan een [note] of te verwijderen, of om alle notities geassocieerd met de [tag] op te lijsten. Het commando `tag list` kan gebruikt worden om alle tags op te lijsten.","Invalid command: \"%s\"":"Ongeldig commando: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" kan of \"toggle\" of \"clear\" zijn. Gebruik \"toggle\" om de to-do als voltooid of onvoltooid weer te geven (als het doel een standaard notitie is, zal ze geconverteerd worden naar een to-do). Gebruik \"clear\" om terug te wisselen naar een standaard notitie. ","Marks a to-do as non-completed.":"Markeert een to-do als onvoltooid.","Switches to [notebook] - all further operations will happen within this notebook.":"Wisselt naar [notitieboek] - Alle verdere acties zullen op dit notitieboek toegepast worden.","Displays version information":"Toont versie informatie","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Type: %s.","Possible values: %s.":"Mogelijke waarden: %s.","Default: %s":"Standaard: %s","Possible keys/values:":"Mogelijke sleutels/waarden:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Fatale fout:","The application has been authorised - you may now close this browser tab.":"De applicatie is geauthenticeerd - U kan deze tab sluiten.","The application has been successfully authorised.":"De applicatie is succesvol geauthenticeerd.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Open de volgende link in uw browser om de applicatie te authenticeren. De applicatie zal een folder in \"Apps/Joplin\" aanmaken en zal enkel bestanden aanmaken en lezen in deze folder. De applicatie zal geen toegang hebben tot bestanden buiten deze folder of enige andere persoonlijke gegevens. Geen gegevens zullen gedeeld worden met een externe partij. ","Search:":"Zoek:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Welkom bij Joplin!\n\nTyp `:help shortcuts` voor een lijst van shortcuts, of `:help` voor gebruiksinformatie.\n\nOm bijvoorbeeld een notitieboek aan te maken, typ `mb`; om een notitie te maken, typ `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Eén of meerdere items zijn momenteel versleuteld en de hoofdsleutel kan gevraagd worden. Om te ontsleutelen, typ `e2ee decrypt`. Als je de hoofdsleutel al ingegeven hebt, worden de versleutelde items ontsleuteld in de achtergrond. Ze zijn binnenkort beschikbaar.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"Bestand","New note":"Nieuwe notitie","New to-do":"Nieuwe to-do","New notebook":"Nieuw notitieboek","Import":"Importeer","Export":"Export","Print":"","Hide %s":"","Quit":"Stop","Edit":"Bewerk","Copy":"Kopieer","Cut":"Knip","Paste":"Plak","Search in all the notes":"Zoek in alle notities","View":"","Toggle editor layout":"","Tools":"Tools","Synchronisation status":"Synchronisatie status","Encryption options":"Versleutelopties","General Options":"Algemene opties","Help":"Help","Website and documentation":"Website en documentatie","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Over Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Annuleer","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Notities en instellingen zijn opgeslaan in %s","Save":"Sla op","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Encryptie uitschakelen betekent dat *al* uw notities en toevoegingen opnieuw gesynchroniseerd zullen worden en ontsleuteld naar het synchronisatiedoel zullen gestuurd worden. Wil u verder gaan?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Encryptie inschakelen betekent dat *al* uw notities en toevoegingen opnieuw gesynchroniseerd zullen worden en versleuteld verzonden worden naar het synchronisatiedoel. Verlies het wachtwoord niet, aangezien dit de enige manier is om de date de ontsleutelen. Om encryptie in te schakelen, vul uw wachtwoord hieronder in. ","Disable encryption":"Schakel encryptie uit","Enable encryption":"Schakel encryptie in","Master Keys":"Hoofdsleutels","Active":"Actief","ID":"ID","Source":"Bron","Created":"Aangemaakt","Updated":"Bijgewerkt","Password":"Wachtwoord","Password OK":"Wachtwoord OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Opmerking: Slechts één hoofdsleutel zal gebruikt worden voor versleuteling (aangeduid met \"active\"). Alle sleutels kunnen gebruikt worden voor decodering, afhankelijk van hoe de notitieboeken initieel versleuteld zijn.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"Versleuteling is:","Back":"Terug","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nieuw notitieboek \"%s\" zal aangemaakt worden en bestand \"%s\" wordt eraan toegevoegd","Please create a notebook first.":"Maak eerst een notitieboek aan.","Please create a notebook first":"Maak eerst een notitieboek aan","Notebook title:":"Notitieboek titel:","Add or remove tags:":"Voeg tag toe of verwijder tag","Separate each tag by a comma.":"Scheid iedere tag met een komma.","Rename notebook:":"Hernoem notitieboek:","Set alarm:":"Stel melding in:","Search":"Zoeken","Layout":"Layout","Some items cannot be synchronised.":"Sommige items kunnen niet gesynchroniseerd worden.","View them now":"Bekijk ze nu","Some items cannot be decrypted.":"Sommige items kunnen niet gedecodeerd worden.","Set the password":"Stel wachtwoord in","Add or remove tags":"Voeg tag toe of verwijder tag","Switch between note and to-do type":"Wissel tussen notitie en to-do type","Delete":"Verwijderen","Delete notes?":"Notities verwijderen?","No notes in here. Create one by clicking on \"New note\".":"Geen notities. Maak een notitie door op \"Nieuwe notitie\" te klikken.","There is currently no notebook. Create one by clicking on \"New notebook\".":"U heeft momenteel geen notitieboek. Maak een notitieboek door op \"Nieuw notitieboek\" te klikken.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Link of bericht \"%s\" wordt niet ondersteund","Attach file":"Voeg bestand toe","Tags":"Tags","Set alarm":"Zet melding","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Vernieuwen","Clear":"Vrijmaken","OneDrive Login":"OneDrive Login","Options":"Opties","Synchronisation Status":"Synchronisatie status","Encryption Options":"Versleutelopties","Remove this tag from all the notes?":"Deze tag verwijderen van alle notities?","Remove this search from the sidebar?":"Dit item verwijderen van de zijbalk?","Rename":"Hernoem","Synchronise":"Synchroniseer","Notebooks":"Notitieboeken","Searches":"Zoekopdrachten","Please select where the sync status should be exported to":"Selecteer waar de synchronisatie status naar geëxporteerd moet worden","Usage: %s":"Gebruik: %s","Unknown flag: %s":"Onbekende optie: %s","File system":"Bestandssysteem","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Alleen voor testen)","WebDAV":"","Unknown log level: %s":"Onbekend log level: %s","Unknown level ID: %s":"Onbekend level ID: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Kan token niet vernieuwen: authenticatiedata ontbreekt. Herstarten van de synchronisatie kan het probleem eventueel oplossen. ","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Kan niet synchroniseren met OneDrive.\n\nDeze fout gebeurt wanneer OneDrive for Business wordt gebruikt. Dit kan helaas niet ondersteund worden.\n\nOverweeg om een standaard OnDrive account te gebruiken.","Cannot access %s":"Geen toegang tot %s","Created local items: %d.":"Aangemaakte lokale items: %d.","Updated local items: %d.":"Bijgewerkte lokale items: %d.","Created remote items: %d.":"Aangemaakte remote items: %d.","Updated remote items: %d.":"Bijgewerkte remote items: %d.","Deleted local items: %d.":"Verwijderde lokale items: %d.","Deleted remote items: %d.":"Verwijderde remote items: %d.","Fetched items: %d/%d.":"Opgehaalde items: %d/%d.","State: \"%s\".":"Status: \"%s\"","Cancelling...":"Annuleren...","Completed: %s":"Voltooid: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Synchronisatie is reeds bezig. Status: %s","Encrypted":"Versleuteld","Encrypted items cannot be modified":"Versleutelde items kunnen niet aangepast worden","Conflicts":"Conflicten","A notebook with this title already exists: \"%s\"":"Er bestaat al een notitieboek met \"%s\" als titel","Notebooks cannot be named \"%s\", which is a reserved title.":"Notitieboeken kunnen niet \"%s\" genoemd worden, dit is een gereserveerd woord.","Untitled":"Untitled","This note does not have geolocation information.":"Deze notitie bevat geen geo-locatie informatie.","Cannot copy note to \"%s\" notebook":"Kan notitie niet naar notitieboek \"%s\" kopiëren.","Cannot move note to \"%s\" notebook":"Kan notitie niet naar notitieboek \"%s\" verplaatsen.","Text editor":"Tekst editor","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"De editor die zal gebruikt worden bij het openen van een notitie. Als er geen meegegeven wordt, zal het programma de standaard editor proberen te detecteren. ","Language":"Taal","Date format":"Datumnotatie","Time format":"Tijdsnotatie","Theme":"Thema","Light":"Licht","Dark":"Donker","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Sla geo-locatie op bij notities","When creating a new to-do:":"When creating a new to-do:","Focus title":"","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Update de applicatie automatisch","Synchronisation interval":"Synchronisatie interval","%d minutes":"%d minuten","%d hour":"%d uur","%d hours":"%d uren","Show advanced options":"Toon geavanceerde opties","Synchronisation target":"Synchronisatiedoel","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"Folder om mee te synchroniseren (absolute pad)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Het pad om mee te synchroniseren als bestandssysteem synchronisatie is ingeschakeld. Zie `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"Nextcloud password","WebDAV URL":"","WebDAV username":"","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Ongeldige optie: \"%s\". Geldige waarden zijn: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Items die niet gesynchroniseerd kunnen worden","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Deze items zullen op het apparaat beschikbaar blijven, maar zullen niet geüpload worden naar het synchronistatiedoel. Om deze items te vinden, zoek naar de titel of het ID (afgebeeld bovenaan tussen haakjes).","Sync status (synced items / total items)":"Sync status (gesynchroniseerde items / totaal aantal items)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Totaal: %d/%d","Conflicted: %d":"Conflict: %d","To delete: %d":"Verwijderen: %d","Folders":"Folders","%s: %d notes":"%s: %d notities","Coming alarms":"Meldingen","On %s: %s":"Op %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Er zijn momenteel geen notities. Maak een notitie door op (+) te klikken.","Delete these notes?":"Deze notities verwijderen?","Log":"Log","Export Debug Report":"Exporteer debug rapport","Encryption Config":"Encryptie configuratie","Configuration":"Configuratie","Move to notebook...":"Verplaats naar notitieboek...","Move %d notes to notebook \"%s\"?":"Verplaats %d notities naar notitieboek \"%s\"?","Press to set the decryption password.":"Klik om het decryptie wachtwoord in te stellen","Select date":"Selecteer datum","Confirm":"Bevestig","Cancel synchronisation":"Annuleer synchronisatie","Joplin website":"","Master Key %s":"Hoofdsleutel: %s","Created: %s":"Aangemaakt: %s","Password:":"Wachtwoord:","Password cannot be empty":"Wachtwoord kan niet leeg zijn","Enable":"Activeer","The notebook could not be saved: %s":"Het notitieboek kon niet opgeslaan worden: %s","Edit notebook":"Bewerk notitieboek","Show all":"","Errors only":"","This note has been modified:":"Deze notitie werd aangepast:","Save changes":"Sla wijzigingen op","Discard changes":"Verwijder wijzigingen","Unsupported image type: %s":"Afbeeldingstype %s wordt niet ondersteund","Attach photo":"Voeg foto toe","Attach any file":"Voeg bestand toe","Convert to note":"Converteer naar notitie","Convert to todo":"Converteer naar to-do","Hide metadata":"Verberg metadata","Show metadata":"Toon metadata","View on map":"Toon op de kaart","Delete notebook":"Verwijder notitieboek","Login with OneDrive":"Log in met OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Klik op de (+) om een nieuwe notitie of een nieuw notitieboek aan te maken. Klik in het menu om uw bestaande notitieboeken te raadplegen.","You currently have no notebook. Create one by clicking on (+) button.":"U heeft momenteel geen notitieboek. Maak een notitieboek door op (+) te klikken.","Welcome":"Welkom"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"Untag de geassocieerde notities om een tag te verwijderen.","Please select the note or notebook to be deleted first.":"Selecteer eerst het notitieboek of de notitie om te verwijderen.","Press Ctrl+D or type \"exit\" to exit the application":"Typ Ctrl+D of \"exit\" om de applicatie te sluiten","More than one item match \"%s\". Please narrow down your query.":"Meer dan een item voldoet aan de zoekterm \"%s\". Verfijn uw zoekterm a.u.b.","No notebook selected.":"Geen notitieboek geselecteerd.","No notebook has been specified.":"Geen notitieboek is gespecifieerd","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Achtergrond synchronisatie wordt geannuleerd... Even geduld.","No such command: %s":"Geen commando gevonden: \"%s\"","The command \"%s\" is only available in GUI mode":"Het opgegeven command \"%s\" is alleen beschikbaar in de GUI versie","Cannot change encrypted item":"Kan het versleutelde item niet wijzigen","Missing required argument: %s":"Benodigde argumenten niet voorzien: %s","%s: %s":"%s: %s","Your choice: ":"Uw keuze:","Invalid answer: %s":"Ongeldig antwoord: %s","Attaches the given file to the note.":"Voegt het bestand toe aan de notitie.","Cannot find \"%s\".":"Kan \"%s\" niet vinden.","Displays the given note.":"Toont de opgegeven notitie.","Displays the complete information about note.":"Toont de volledige informatie van een notitie.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Haal een configuratie waarde op of stel een waarde in. Als [value] niet opgegeven is, zal de waarde van [name] getoond worden. Als nog de [name] of [waarde] opgegeven zijn, zal de huidige configuratie opgelijst worden.","Also displays unset and hidden config variables.":"Toont ook niet-geconfigureerde en verborgen configuratie opties. ","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Verveelvoudig de notities die voldoen aan  in [notitieboek]. Als er geen notitieboek is meegegeven, de notitie is gedupliceerd in het huidige notitieboek.","Marks a to-do as done.":"Markeer een to-do als voltooid. ","Note is not a to-do: \"%s\"":"Notitie is geen to-do: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Beheert E2EE configuratie. Commando's zijn `enable`, `disable`, `decrypt`, `status` and `target-status`.","Enter master password:":"Voeg hoofdsleutel in:","Operation cancelled":"Operatie geannuleerd","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Ontsleuteling starten... Dit kan enkele minuten duren, afhankelijk van hoeveel er te ontsleutelen is. ","Completed decryption.":"Ontsleuteling voltooid","Enabled":"Ingeschakeld","Disabled":"UItgeschakeld","Encryption is: %s":"Encryptie is: %s","Edit note.":"Bewerk notitie.","No text editor is defined. Please set it using `config editor `":"Geen tekst editor is ingesteld. Stel in met `config editor `","No active notebook.":"Geen actief notitieboek.","Note does not exist: \"%s\". Create it?":"Notitie bestaat niet: \"%s\". Aanmaken?","Starting to edit note. Close the editor to get back to the prompt.":"Bewerken notitie gestart. Sluit de editor om terug naar de prompt te gaan.","Error opening note in editor: %s":"","Note has been saved.":"Notitie is opgeslaan.","Exits the application.":"Sluit de applicatie.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exporteert alleen de opgegeven notitie.","Exports only the given notebook.":"Exporteert alleen het opgegeven notitieboek.","Displays a geolocation URL for the note.":"Toont een geolocatie link voor de notitie.","Displays usage information.":"Toont gebruiksinformatie.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Shortcuts zijn niet beschikbaar in command line modus.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Typ `help [commando]` voor meer informatie over een commando; of typ `help all` voor de volledige gebruiksaanwijzing.","The possible commands are:":"Mogelijke commando's zijn:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In iedere commando kan een notitie of een notitieboek opgegeven worden door de title of het ID of de shortcuts `$n` of `$b` voor, respectievelijk, het huidig geslecteerde notitieboek of huidig geselecteerde notitie. `$c` kan gebruikt worden om te refereren naar het huidige geselecteerde item.","To move from one pane to another, press Tab or Shift+Tab.":"Om van het ene paneel naar het andere te gaan, duw Tab of Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Gebruik de pijltjes en page up/down om door de lijsten en de tekstvelden te scrollen (ook deze console).","To maximise/minimise the console, press \"TC\".":"Om de console te maximaliseren/minimaliseren, typ \"TC\".","To enter command line mode, press \":\"":"Om command line modus te gebruiken, duw \":\"","To exit command line mode, press ESCAPE":"Om command line modus te verlaten, duw ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Vraag niet om bevestiging. ","Found: %d.":"Gevonden: %d.","Created: %d.":"Aangemaakt: %d.","Updated: %d.":"Bijgewerkt: %d.","Skipped: %d.":"Geskipt: %d.","Resources: %d.":"Middelen: %d.","Tagged: %d.":"Getagd: %d.","Importing notes...":"Notities importeren...","The notes have been imported: %s":"Notities zijn geïmporteerd: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Toont de notities in het huidige notitieboek. Gebruik `ls /` om een lijst van notitieboeken te tonen.","Displays only the first top  notes.":"Toont enkel de top  notities.","Sorts the item by  (eg. title, updated_time, created_time).":"Sorteert de items volgens  (vb. title, updated_time, created_time).","Reverses the sorting order.":"Draait de sorteervolgorde om.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Toont enkel de items van de specifieke type(s). Kan `n` zijn voor notities, `t` voor to-do's, of `nt` voor notities en to-do's (vb. `-tt` zou alleen to-do's tonen, terwijl `-ttd` notities en to-do's zou tonen).","Either \"text\" or \"json\"":"Of \"text\" of \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Gebruik volgend lijst formaat. Formaat is ID, NOTE_COUNT (voor notitieboek), DATE, TODO_CHECKED (voor to-do's), TITLE","Please select a notebook first.":"Selecteer eerst een notitieboek. ","Creates a new notebook.":"Maakt een nieuw notitieboek aan.","Creates a new note.":"Maakt een nieuwe notitie aan.","Notes can only be created within a notebook.":"Notities kunnen enkel in een notitieboek aangemaakt worden.","Creates a new to-do.":"Maakt nieuwe to-do aan.","Moves the notes matching  to [notebook].":"Verplaatst de notities die voldoen aan  naar [notitieboek].","Renames the given  (note or notebook) to .":"Hernoemt het gegeven  (notitie of notitieboek) naar .","Deletes the given notebook.":"Verwijdert het opgegeven notitieboek.","Deletes the notebook without asking for confirmation.":"Verwijdert het notitieboek zonder te vragen om bevestiging.","Delete notebook? All notes within this notebook will also be deleted.":"Notitieboek verwijderen? Alle notities in dit notitieboek zullen ook verwijderd worden.","Deletes the notes matching .":"Verwijder alle notities die voldoen aan .","Deletes the notes without asking for confirmation.":"Verwijder de notities zonder te vragen om bevestiging. ","%d notes match this pattern. Delete them?":"%d notities voldoen aan het patroon. Items verwijderen?","Delete note?":"Notitie verwijderen?","Searches for the given  in all the notes.":"Zoektermen voor het opgegeven  in alle notities.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Zet de eigenschap  van de opgegeven  naar de opgegeven [value]. Mogelijke eigenschappen zijn:\n\n%s","Displays summary about the notes and notebooks.":"Toon samenvatting van alle notities en notitieboeken","Synchronises with remote storage.":"Synchroniseert met remote opslag. ","Sync to provided target (defaults to sync.target config value)":"Synchroniseer naar opgegeven doel (standaard sync.target configuratie optie)","Authentication was not completed (did not receive an authentication token).":"Authenticatie was niet voltooid (geen authenticatietoken ontvangen).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"Synchronisatie reeds bezig.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Er is reeds een lockfile. Als u zeker bent dat er geen synchronisatie bezig is, kan de lock file verwijderd worden op \"%s\" en verder gegaan worden met de synchronisatie. ","Synchronisation target: %s (%s)":"Synchronisatiedoel: %s (%s)","Cannot initialize synchroniser.":"Kan de synchronisatie niet starten.","Starting synchronisation...":"Synchronisatie starten...","Cancelling... Please wait.":"Annuleren.. Even geduld."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" kan \"add\", \"remove\" of \"list\" zijn om een [tag] toe te voegen aan een [note] of te verwijderen, of om alle notities geassocieerd met de [tag] op te lijsten. Het commando `tag list` kan gebruikt worden om alle tags op te lijsten.","Invalid command: \"%s\"":"Ongeldig commando: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" kan of \"toggle\" of \"clear\" zijn. Gebruik \"toggle\" om de to-do als voltooid of onvoltooid weer te geven (als het doel een standaard notitie is, zal ze geconverteerd worden naar een to-do). Gebruik \"clear\" om terug te wisselen naar een standaard notitie. ","Marks a to-do as non-completed.":"Markeert een to-do als onvoltooid.","Switches to [notebook] - all further operations will happen within this notebook.":"Wisselt naar [notitieboek] - Alle verdere acties zullen op dit notitieboek toegepast worden.","Displays version information":"Toont versie informatie","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Type: %s.","Possible values: %s.":"Mogelijke waarden: %s.","Default: %s":"Standaard: %s","Possible keys/values:":"Mogelijke sleutels/waarden:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Fatale fout:","The application has been authorised - you may now close this browser tab.":"De applicatie is geauthenticeerd - U kan deze tab sluiten.","The application has been successfully authorised.":"De applicatie is succesvol geauthenticeerd.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Open de volgende link in uw browser om de applicatie te authenticeren. De applicatie zal een folder in \"Apps/Joplin\" aanmaken en zal enkel bestanden aanmaken en lezen in deze folder. De applicatie zal geen toegang hebben tot bestanden buiten deze folder of enige andere persoonlijke gegevens. Geen gegevens zullen gedeeld worden met een externe partij. ","Search:":"Zoek:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Welkom bij Joplin!\n\nTyp `:help shortcuts` voor een lijst van shortcuts, of `:help` voor gebruiksinformatie.\n\nOm bijvoorbeeld een notitieboek aan te maken, typ `mb`; om een notitie te maken, typ `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Eén of meerdere items zijn momenteel versleuteld en de hoofdsleutel kan gevraagd worden. Om te ontsleutelen, typ `e2ee decrypt`. Als je de hoofdsleutel al ingegeven hebt, worden de versleutelde items ontsleuteld in de achtergrond. Ze zijn binnenkort beschikbaar.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"Bestand","New note":"Nieuwe notitie","New to-do":"Nieuwe to-do","New notebook":"Nieuw notitieboek","Import":"Importeer","Export":"Export","Print":"","Hide %s":"","Quit":"Stop","Edit":"Bewerk","Copy":"Kopieer","Cut":"Knip","Paste":"Plak","Search in all the notes":"Zoek in alle notities","View":"","Toggle editor layout":"","Tools":"Tools","Synchronisation status":"Synchronisatie status","Encryption options":"Versleutelopties","General Options":"Algemene opties","Help":"Help","Website and documentation":"Website en documentatie","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Over Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Annuleer","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Notities en instellingen zijn opgeslaan in %s","Save":"Sla op","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Encryptie uitschakelen betekent dat *al* uw notities en toevoegingen opnieuw gesynchroniseerd zullen worden en ontsleuteld naar het synchronisatiedoel zullen gestuurd worden. Wil u verder gaan?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Encryptie inschakelen betekent dat *al* uw notities en toevoegingen opnieuw gesynchroniseerd zullen worden en versleuteld verzonden worden naar het synchronisatiedoel. Verlies het wachtwoord niet, aangezien dit de enige manier is om de date de ontsleutelen. Om encryptie in te schakelen, vul uw wachtwoord hieronder in. ","Disable encryption":"Schakel encryptie uit","Enable encryption":"Schakel encryptie in","Master Keys":"Hoofdsleutels","Active":"Actief","ID":"ID","Source":"Bron","Created":"Aangemaakt","Updated":"Bijgewerkt","Password":"Wachtwoord","Password OK":"Wachtwoord OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Opmerking: Slechts één hoofdsleutel zal gebruikt worden voor versleuteling (aangeduid met \"active\"). Alle sleutels kunnen gebruikt worden voor decodering, afhankelijk van hoe de notitieboeken initieel versleuteld zijn.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"Versleuteling is:","Back":"Terug","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nieuw notitieboek \"%s\" zal aangemaakt worden en bestand \"%s\" wordt eraan toegevoegd","Please create a notebook first.":"Maak eerst een notitieboek aan.","Please create a notebook first":"Maak eerst een notitieboek aan","Notebook title:":"Notitieboek titel:","Add or remove tags:":"Voeg tag toe of verwijder tag","Separate each tag by a comma.":"Scheid iedere tag met een komma.","Rename notebook:":"Hernoem notitieboek:","Set alarm:":"Stel melding in:","Search":"Zoeken","Layout":"Layout","Some items cannot be synchronised.":"Sommige items kunnen niet gesynchroniseerd worden.","View them now":"Bekijk ze nu","Some items cannot be decrypted.":"Sommige items kunnen niet gedecodeerd worden.","Set the password":"Stel wachtwoord in","Add or remove tags":"Voeg tag toe of verwijder tag","Switch between note and to-do type":"Wissel tussen notitie en to-do type","Delete":"Verwijderen","Delete notes?":"Notities verwijderen?","No notes in here. Create one by clicking on \"New note\".":"Geen notities. Maak een notitie door op \"Nieuwe notitie\" te klikken.","There is currently no notebook. Create one by clicking on \"New notebook\".":"U heeft momenteel geen notitieboek. Maak een notitieboek door op \"Nieuw notitieboek\" te klikken.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Link of bericht \"%s\" wordt niet ondersteund","Attach file":"Voeg bestand toe","Tags":"Tags","Set alarm":"Zet melding","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Vernieuwen","Clear":"Vrijmaken","OneDrive Login":"OneDrive Login","Options":"Opties","Synchronisation Status":"Synchronisatie status","Encryption Options":"Versleutelopties","Remove this tag from all the notes?":"Deze tag verwijderen van alle notities?","Remove this search from the sidebar?":"Dit item verwijderen van de zijbalk?","Rename":"Hernoem","Synchronise":"Synchroniseer","Notebooks":"Notitieboeken","Searches":"Zoekopdrachten","Please select where the sync status should be exported to":"Selecteer waar de synchronisatie status naar geëxporteerd moet worden","Usage: %s":"Gebruik: %s","Unknown flag: %s":"Onbekende optie: %s","File system":"Bestandssysteem","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Alleen voor testen)","WebDAV":"","Unknown log level: %s":"Onbekend log level: %s","Unknown level ID: %s":"Onbekend level ID: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Kan token niet vernieuwen: authenticatiedata ontbreekt. Herstarten van de synchronisatie kan het probleem eventueel oplossen. ","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Kan niet synchroniseren met OneDrive.\n\nDeze fout gebeurt wanneer OneDrive for Business wordt gebruikt. Dit kan helaas niet ondersteund worden.\n\nOverweeg om een standaard OnDrive account te gebruiken.","Cannot access %s":"Geen toegang tot %s","Created local items: %d.":"Aangemaakte lokale items: %d.","Updated local items: %d.":"Bijgewerkte lokale items: %d.","Created remote items: %d.":"Aangemaakte remote items: %d.","Updated remote items: %d.":"Bijgewerkte remote items: %d.","Deleted local items: %d.":"Verwijderde lokale items: %d.","Deleted remote items: %d.":"Verwijderde remote items: %d.","Fetched items: %d/%d.":"Opgehaalde items: %d/%d.","State: %s.":"State: %s.","Cancelling...":"Annuleren...","Completed: %s":"Voltooid: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Synchronisatie is reeds bezig. Status: %s","Encrypted":"Versleuteld","Encrypted items cannot be modified":"Versleutelde items kunnen niet aangepast worden","Conflicts":"Conflicten","A notebook with this title already exists: \"%s\"":"Er bestaat al een notitieboek met \"%s\" als titel","Notebooks cannot be named \"%s\", which is a reserved title.":"Notitieboeken kunnen niet \"%s\" genoemd worden, dit is een gereserveerd woord.","Untitled":"Untitled","This note does not have geolocation information.":"Deze notitie bevat geen geo-locatie informatie.","Cannot copy note to \"%s\" notebook":"Kan notitie niet naar notitieboek \"%s\" kopiëren.","Cannot move note to \"%s\" notebook":"Kan notitie niet naar notitieboek \"%s\" verplaatsen.","Text editor":"Tekst editor","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"De editor die zal gebruikt worden bij het openen van een notitie. Als er geen meegegeven wordt, zal het programma de standaard editor proberen te detecteren. ","Language":"Taal","Date format":"Datumnotatie","Time format":"Tijdsnotatie","Theme":"Thema","Light":"Licht","Dark":"Donker","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Sla geo-locatie op bij notities","When creating a new to-do:":"When creating a new to-do:","Focus title":"","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Update de applicatie automatisch","Synchronisation interval":"Synchronisatie interval","%d minutes":"%d minuten","%d hour":"%d uur","%d hours":"%d uren","Show advanced options":"Toon geavanceerde opties","Synchronisation target":"Synchronisatiedoel","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"Folder om mee te synchroniseren (absolute pad)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Het pad om mee te synchroniseren als bestandssysteem synchronisatie is ingeschakeld. Zie `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"Nextcloud password","WebDAV URL":"","WebDAV username":"","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Ongeldige optie: \"%s\". Geldige waarden zijn: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Items die niet gesynchroniseerd kunnen worden","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Deze items zullen op het apparaat beschikbaar blijven, maar zullen niet geüpload worden naar het synchronistatiedoel. Om deze items te vinden, zoek naar de titel of het ID (afgebeeld bovenaan tussen haakjes).","Sync status (synced items / total items)":"Sync status (gesynchroniseerde items / totaal aantal items)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Totaal: %d/%d","Conflicted: %d":"Conflict: %d","To delete: %d":"Verwijderen: %d","Folders":"Folders","%s: %d notes":"%s: %d notities","Coming alarms":"Meldingen","On %s: %s":"Op %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Er zijn momenteel geen notities. Maak een notitie door op (+) te klikken.","Delete these notes?":"Deze notities verwijderen?","Log":"Log","Export Debug Report":"Exporteer debug rapport","Encryption Config":"Encryptie configuratie","Configuration":"Configuratie","Move to notebook...":"Verplaats naar notitieboek...","Move %d notes to notebook \"%s\"?":"Verplaats %d notities naar notitieboek \"%s\"?","Press to set the decryption password.":"Klik om het decryptie wachtwoord in te stellen","Select date":"Selecteer datum","Confirm":"Bevestig","Cancel synchronisation":"Annuleer synchronisatie","Joplin website":"","Master Key %s":"Hoofdsleutel: %s","Created: %s":"Aangemaakt: %s","Password:":"Wachtwoord:","Password cannot be empty":"Wachtwoord kan niet leeg zijn","Enable":"Activeer","The notebook could not be saved: %s":"Het notitieboek kon niet opgeslaan worden: %s","Edit notebook":"Bewerk notitieboek","Show all":"","Errors only":"","This note has been modified:":"Deze notitie werd aangepast:","Save changes":"Sla wijzigingen op","Discard changes":"Verwijder wijzigingen","Unsupported image type: %s":"Afbeeldingstype %s wordt niet ondersteund","Attach photo":"Voeg foto toe","Attach any file":"Voeg bestand toe","Convert to note":"Converteer naar notitie","Convert to todo":"Converteer naar to-do","Hide metadata":"Verberg metadata","Show metadata":"Toon metadata","View on map":"Toon op de kaart","Delete notebook":"Verwijder notitieboek","Login with OneDrive":"Log in met OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Klik op de (+) om een nieuwe notitie of een nieuw notitieboek aan te maken. Klik in het menu om uw bestaande notitieboeken te raadplegen.","You currently have no notebook. Create one by clicking on (+) button.":"U heeft momenteel geen notitieboek. Maak een notitieboek door op (+) te klikken.","Welcome":"Welkom"}
        \ No newline at end of file
        diff --git a/ElectronClient/app/locales/pt_BR.json b/ElectronClient/app/locales/pt_BR.json
        index 40152a6098..c7dde3aa50 100644
        --- a/ElectronClient/app/locales/pt_BR.json
        +++ b/ElectronClient/app/locales/pt_BR.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"Para eliminar uma tag, remova a tag das notas associadas a ela.","Please select the note or notebook to be deleted first.":"Por favor, primeiro, selecione a nota ou caderno a excluir.","Press Ctrl+D or type \"exit\" to exit the application":"Digite Ctrl+D ou \"exit\" para sair da aplicação","More than one item match \"%s\". Please narrow down your query.":"Mais que um item combinam com \"%s\". Por favor, refine sua pesquisa.","No notebook selected.":"Nenhum caderno selecionado.","No notebook has been specified.":"Nenhum caderno foi especificado.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancelando sincronização em segundo plano... Por favor, aguarde.","No such command: %s":"Não existe o comando: \"%s\"","The command \"%s\" is only available in GUI mode":"O comando \"%s\" está disponível somente em modo gráfico","Cannot change encrypted item":"Não pode mudar um item encriptado","Missing required argument: %s":"Argumento requerido faltando: %s","%s: %s":"%s: %s","Your choice: ":"Sua escolha: ","Invalid answer: %s":"Resposta inválida: %s","Attaches the given file to the note.":"Anexa o arquivo dado à nota.","Cannot find \"%s\".":"Não posso encontrar \"%s\".","Displays the given note.":"Exibe a nota informada.","Displays the complete information about note.":"Exibe a informação completa sobre a nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtém ou define um valor de configuração. Se [valor] não for fornecido, ele mostrará o valor de [nome]. Se nem [nome] nem [valor] forem fornecidos, ele listará a configuração atual.","Also displays unset and hidden config variables.":"Também exibe variáveis de configuração não definidas e ocultas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica as notas que correspondem a  para o [caderno]. Se nenhum caderno for especificado, a nota será duplicada no caderno atual.","Marks a to-do as done.":"Marca uma tarefa como feita.","Note is not a to-do: \"%s\"":"Nota não é uma tarefa: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Gerencia a configuração E2EE. Os comandos são `enable`, `disable`, `decrypt`, `status` e `target-status`.","Enter master password:":"Entre a senha master:","Operation cancelled":"Operação cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando decriptação... Por favor aguarde, pois isso pode demorar vários minutos, dependendo de quanto há para decriptar.","Completed decryption.":"Decriptação completada.","Enabled":"Desabilitado","Disabled":"Desabilitado","Encryption is: %s":"Encriptação está: %s","Edit note.":"Editar nota.","No text editor is defined. Please set it using `config editor `":"Nenhum editor de texto está definido. Defina-o usando o comando `config edit `","No active notebook.":"Nenhum caderno ativo.","Note does not exist: \"%s\". Create it?":"A nota não existe: \"%s\". Criar?","Starting to edit note. Close the editor to get back to the prompt.":"Começando a editar a nota. Feche o editor para voltar ao prompt.","Error opening note in editor: %s":"Erro ao abir a nota no editor: %s","Note has been saved.":"Nota gravada.","Exits the application.":"Sai da aplicação.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporta os dados do Joplin para o diretório informado. Por padrão, ele exportará o banco de dados completo, incluindo cadernos, notas, tags e recursos.","Destination format: %s":"Formato do destino: %s","Exports only the given note.":"Exporta apenas a nota fornecida.","Exports only the given notebook.":"Exporta apenas o caderno fornecido.","Displays a geolocation URL for the note.":"Exibe uma URL de geolocalização para a nota.","Displays usage information.":"Exibe informações de uso.","For information on how to customise the shortcuts please visit %s":"Para informações sobre como customizar os atalhos, por favor visite %s","Shortcuts are not available in CLI mode.":"Os atalhos não estão disponíveis no modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Digite `help [comando]` para obter mais informações sobre um comando; ou digite `help all` para informações completas de uso.","The possible commands are:":"Os comandos possíveis são:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Em qualquer comando, uma nota ou caderno pode ser referenciado por título ou ID, ou usando os atalhos `$n` ou` $b` para, respectivamente, a nota ou caderno selecionado. `$c` pode ser usado para se referenciar ao item atualmente selecionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover de um painel para outro, pressione Tab ou Shift + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use as setas e a Page Up/Page Down para rolar as listas e áreas de texto (incluindo este console).","To maximise/minimise the console, press \"TC\".":"Para maximizar / minimizar o console, pressione \"TC\".","To enter command line mode, press \":\"":"Para entrar no modo de linha de comando, pressione \":\"","To exit command line mode, press ESCAPE":"Para sair do modo de linha de comando, pressione o ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"Para a lista completa de atalhos de teclado disponíveis, digite `help keymap`","Imports data into Joplin.":"Importa dados para o Joplin.","Source format: %s":"Formato da origem: \"%s\"","Do not ask for confirmation.":"Não pedir confirmação.","Found: %d.":"Encontrado: %d.","Created: %d.":"Criado: %d.","Updated: %d.":"Atualizado: %d.","Skipped: %d.":"Ignorado: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Tag adicionada: %d.","Importing notes...":"Importando notas ...","The notes have been imported: %s":"As notas foram importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Exibe as notas no caderno atual. Use `ls /` para exibir a lista de cadernos.","Displays only the first top  notes.":"Exibe apenas as primeiras notas.","Sorts the item by  (eg. title, updated_time, created_time).":"Classifica o item por  (ex.: title, update_time, created_time).","Reverses the sorting order.":"Inverte a ordem de classificação.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Exibe apenas os itens do(s) tipo(s) específico(s). Pode ser `n` para notas,` t` para tarefas, ou `nt` para notas e tarefas (por exemplo.` -tt` exibiria apenas os itens pendentes, enquanto `-ttd` exibiria notas e tarefas .","Either \"text\" or \"json\"":"Ou \"text\" ou \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use o formato da lista longa. O formato é ID, NOTE_COUNT (para caderno), DATE, TODO_CHECKED (para tarefas), TITLE","Please select a notebook first.":"Por favor, selecione um caderno primeiro.","Creates a new notebook.":"Cria um novo caderno.","Creates a new note.":"Cria uma nova nota.","Notes can only be created within a notebook.":"As notas só podem ser criadas dentro de um caderno.","Creates a new to-do.":"Cria uma nova tarefa.","Moves the notes matching  to [notebook].":"Move as notas correspondentes  para [caderno].","Renames the given  (note or notebook) to .":"Renomeia o  dado (nota ou caderno) para .","Deletes the given notebook.":"Exclui o caderno informado.","Deletes the notebook without asking for confirmation.":"Exclui o caderno sem pedir confirmação.","Delete notebook? All notes within this notebook will also be deleted.":"Excluir o caderno? Todas as notas deste caderno notebook também serão excluídas.","Deletes the notes matching .":"Exclui as notas correspondentes ao padrão .","Deletes the notes without asking for confirmation.":"Exclui as notas sem pedir confirmação.","%d notes match this pattern. Delete them?":"%d notas correspondem a este padrão. Apagar todos?","Delete note?":"Apagar nota?","Searches for the given  in all the notes.":"Procura o padrão em todas as notas.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Define a propriedade  da  para o valor [value]. As propriedades possíveis são:\n\n%s","Displays summary about the notes and notebooks.":"Exibe sumário sobre as notas e cadernos.","Synchronises with remote storage.":"Sincroniza com o armazenamento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizar para destino fornecido (p padrão é o valor de configuração sync.target)","Authentication was not completed (did not receive an authentication token).":"A autenticação não foi concluída (não recebeu um token de autenticação).","Not authentified with %s. Please provide any missing credentials.":"Não autenticado com %s. Por favor, complete as credenciais que estiverem faltando.","Synchronisation is already in progress.":"A sincronização já está em andamento.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"O arquivo de bloqueio já está ativo. Se você sabe que nenhuma sincronização está ocorrendo, você pode excluir o arquivo de bloqueio em \"%s\" e retomar a operação.","Synchronisation target: %s (%s)":"Alvo de sincronização: %s (%s)","Cannot initialize synchroniser.":"Não é possível inicializar o sincronizador.","Starting synchronisation...":"Iniciando sincronização...","Cancelling... Please wait.":"Cancelando... Aguarde."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" pode ser \"add\", \"remove\" ou \"list\" para atribuir ou remover [tag] de [nota], ou para listar as notas associadas a [tag]. O comando `taglist` pode ser usado para listar todas as tags.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" pode ser \"toggle\" ou \"clear\". Use \"toggle\" para alternar entre as tarefas entre o estado completo e incompleto (se o alvo for uma nota comum, ele será convertido em uma tarefa a fazer). Use \"clear\" para converter a tarefa em uma nota normal.","Marks a to-do as non-completed.":"Marca uma tarefa como não completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Alterna para [caderno] - todas as operações adicionais acontecerão dentro deste caderno.","Displays version information":"Exibe informações da versão","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valores possíveis: %s.","Default: %s":"Padrão: %s","Possible keys/values:":"Possíveis chaves/valores:","Type `joplin help` for usage information.":"Digite 'joplin help' para informações de uso.","Fatal error:":"Erro fatal:","The application has been authorised - you may now close this browser tab.":"O aplicativo foi autorizado - agora você pode fechar esta guia do navegador.","The application has been successfully authorised.":"O aplicativo foi autorizado com sucesso.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra a seguinte URL no seu navegador para autenticar o aplicativo. O aplicativo criará um diretório em \"Apps/Joplin\" e somente lerá e gravará arquivos neste diretório. Não terá acesso a nenhum arquivo fora deste diretório nem a nenhum outro dado pessoal. Nenhum dado será compartilhado com terceiros.","Search:":"Procurar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bem-vindo ao Joplin!\n\nDigite `:help shortcuts` para obter a lista de atalhos de teclado, ou apenas `:help` para informações de utilização.\n\nPor exemplo, para criar um caderno digite `mb`; para criar uma nota, digite `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Um ou mais itens estão criptografados, e você pode precisar de informar uma senha master. Para fazer isso, por favor digite `e2ee decrypt`. Se você já forneceu a senha, os itens criptografados estão sendo decriptados em background e logo estarão disponíveis.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportando para \"%s\" com o formato \"%s\". Por favor, aguarde...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importando de \"%s\" com o formato \"%s\". Por favor, aguarde...","PDF File":"PDF File","File":"Arquivo","New note":"Nova nota","New to-do":"Nova tarefa","New notebook":"Novo caderno","Import":"Importar","Export":"Exportar","Print":"","Hide %s":"Ocultar %s","Quit":"Sair","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Colar","Search in all the notes":"Pesquisar em todas as notas","View":"Visualizar","Toggle editor layout":"Alternar layout do editor","Tools":"Ferramentas","Synchronisation status":"Status de sincronização","Encryption options":"Opções de Encriptação","General Options":"Opções Gerais","Help":"Ajuda","Website and documentation":"Website e documentação","Make a donation":"Fazer uma doação","Check for updates...":"Verificar atualizações...","About Joplin":"Sobre o Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Abrir %s","Exit":"Sair","OK":"OK","Cancel":"Cancelar","Current version is up-to-date.":"A versão atual está atualizada.","An update is available, do you want to download it now?":"Uma atualização está disponível, você quer baixar agora?","Yes":"Sim","No":"Não","Check synchronisation configuration":"Verificar a configuração da sincronização","Notes and settings are stored in: %s":"Notas e configurações estão armazenadas em: %s","Save":"Salvar","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Desabilitar a encriptação significa que *todas* as suas notas e anexos serão re-sincronizados e enviados sem encriptação. Você quer continuar?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Habilitar a encriptação significa que *todas* as suas notas e anexos serão re-sincronizados e re-enviados com encriptação. Não perca sua senha, pois, por medidas de segurança, esse será o *único* modo de decriptar seus dados! Para habilitar a encriptação, por favor entre sua senha abaixo.","Disable encryption":"Desabilitar encriptação","Enable encryption":"Habilitar encriptação","Master Keys":"Chaves mestras","Active":"Ativar","ID":"ID","Source":"Origem","Created":"Criado","Updated":"Atualizado","Password":"Senha","Password OK":"Senha OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Noto: Apenas uma chave máster será usada para encriptação (a que estiver marcada como \"ativa\"). Qualquer uma das chaves pode ser usada para decriptação, dependendo de como as notas ou os cadernos foram encriptados originalmente.","Missing Master Keys":"Chaves Master faltando","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"As chaves master com essas IDs são usadas para encriptar alguns de seus itens, contudo a aplicação atualmente não tem acesso a elas. Provavelmente, elas serão baixadas via sincronização.","Status":"Status","Encryption is:":"Encriptação está:","Back":"Voltar","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"O novo caderno \"%s\" será criado e o arquivo \"%s\" será importado para ele","Please create a notebook first.":"Primeiro, crie um caderno.","Please create a notebook first":"Primeiro, crie um caderno","Notebook title:":"Título do caderno:","Add or remove tags:":"Adicionar ou remover tags:","Separate each tag by a comma.":"Separe cada tag por vírgula.","Rename notebook:":"Renomear caderno:","Set alarm:":"Definir alarme:","Search":"Procurar","Layout":"Layout","Some items cannot be synchronised.":"Alguns itens não podem ser sincronizados.","View them now":"Visualizar agora","Some items cannot be decrypted.":"Alguns itens não podem ser decriptados.","Set the password":"Configurar a senha","Add or remove tags":"Adicionar ou remover tags","Switch between note and to-do type":"Alternar entre os tipos Nota e Tarefa","Delete":"Excluir","Delete notes?":"Excluir notas?","No notes in here. Create one by clicking on \"New note\".":"Não há notas aqui. Crie uma, clicando em \"Nova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Atualmente, não há cadernos. Crie um, clicando em \"Novo caderno\".","Open...":"Abrir...","Save as...":"Salvar como...","Unsupported link or message: %s":"Link ou mensagem não suportada: %s","Attach file":"Anexar arquivo","Tags":"Tags","Set alarm":"Definir alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota não possui conteúdo. Clique em \"%s\" para alternar para o editor, e edite a nota.","to-do":"tarefa","note":"nota","Creating new %s...":"Criando novo %s...","Refresh":"Atualizar","Clear":"Limpar (clear)","OneDrive Login":"Login no OneDrive","Options":"Opções","Synchronisation Status":"Status de sincronização","Encryption Options":"Opções de Encriptação","Remove this tag from all the notes?":"Remover esta tag de todas as notas?","Remove this search from the sidebar?":"Remover essa pesquisa da barra lateral?","Rename":"Renomear","Synchronise":"Sincronizar","Notebooks":"Cadernos","Searches":"Pesquisas","Please select where the sync status should be exported to":"Favor selecionar o local para onde o status de sincronia deveria ser exportado","Usage: %s":"Uso: %s","Unknown flag: %s":"Flag desconhecido: %s","File system":"Sistema de arquivos","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (apenas para testes)","WebDAV":"WebDAV","Unknown log level: %s":"Nível de log desconhecido: %s","Unknown level ID: %s":"Nível ID desconhecido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Não é possível atualizar token: faltam dados de autenticação. Iniciar a sincronização novamente pode corrigir o problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Não foi possível sincronizar com o OneDrive.\n\nEste erro geralmente acontece ao usar o OneDrive for Business, que infelizmente não pode ser suportado.\n\nConsidere usar uma conta regular do OneDrive.","Cannot access %s":"Não é possível acessar %s","Created local items: %d.":"Itens locais criados: %d.","Updated local items: %d.":"Itens locais atualizados: %d.","Created remote items: %d.":"Itens remotos criados: %d.","Updated remote items: %d.":"Itens remotos atualizados: %d.","Deleted local items: %d.":"Itens locais excluídos: %d.","Deleted remote items: %d.":"Itens remotos excluídos: %d.","Fetched items: %d/%d.":"Itens pesquisados: %d/%d.","State: \"%s\".":"Estado: \"%s\".","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Sincronização já em andamento. Estado: %s","Encrypted":"Encriptado","Encrypted items cannot be modified":"Itens encriptados não podem ser modificados","Conflicts":"Conflitos","A notebook with this title already exists: \"%s\"":"Já existe caderno com este título: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Os cadernos não podem ser nomeados como\"%s\", que é um título reservado.","Untitled":"Sem título","This note does not have geolocation information.":"Esta nota não possui informações de geolocalização.","Cannot copy note to \"%s\" notebook":"Não é possível copiar a nota para o caderno \"%s\"","Cannot move note to \"%s\" notebook":"Não é possível mover a nota para o caderno \"%s\"","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"O editor que será usado para abrir uma nota. Se nenhum for indicado, ele tentará detectar automaticamente o editor padrão.","Language":"Idioma","Date format":"Formato de data","Time format":"Formato de hora","Theme":"Tema","Light":"Light","Dark":"Dark","Uncompleted to-dos on top":"Mostrar tarefas incompletas no topo","Sort notes by":"Ordenar notas por","Reverse sort order":"Inverter ordem de classificação.","Save geo-location with notes":"Salvar  geolocalização com notas","When creating a new to-do:":"Quando criar uma nova tarefa:","Focus title":"Foco no título","Focus body":"Focar no corpo","When creating a new note:":"Quando criar uma nota nova:","Show tray icon":"Exibir tray icon","Global zoom percentage":"Porcentagem global do zoom","Editor font family":"Família de fontes do editor","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"O nomes da fonte não será verificado. Se estiver incorreto ou vazio, será usado por default uma fonte genérica monospace.","Automatically update the application":"Atualizar automaticamente o aplicativo","Synchronisation interval":"Intervalo de sincronização","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opções avançadas","Synchronisation target":"Alvo de sincronização","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"O alvo para onde sincronizar. Cada alvo pode ter parâmetros adicionais que são nomeados como `sync.NUM.NAME` (todos documentados abaixo).","Directory to synchronise with (absolute path)":"Diretório para sincronizar (caminho absoluto)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"O caminho para sincronizar, quando a sincronização do sistema de arquivos está habilitada. Veja `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Usuário da Nextcloud","Nextcloud password":"Senha da Nextcloud","WebDAV URL":"WebDAV URL","WebDAV username":"Usuário do WebDAV","WebDAV password":"Senha do WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Valor da opção inválida: \"%s\". Os valores possíveis são: %s.","Joplin Export File":"Arquivo de Exportação do Joplin","Markdown":"Markdown","Joplin Export Directory":"Diretório de Exportação do Joplin","Evernote Export File":"Arquivo de Exportação do Evernote","Directory":"DIretório","Cannot load \"%s\" module for format \"%s\"":"Não é possível carregar o módulo \"%s\" para o formato \"%s\"","Please specify import format for %s":"Favor especificar o formato de importação para %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Este item atualmente está encriptado: %s \"%s\". Favor aguardar que todos os itens sejam decriptados e tente novamente.","There is no data to export.":"Não há dados a exportar.","Please specify the notebook where the notes should be imported to.":"Por favor, especifique o caderno para onde as notas deveriam ser importadas.","Items that cannot be synchronised":"Os itens não podem ser sincronizados","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Estes itens continuarão no dispositivo mas não serão enviados ao alvo de sincronização. Para encontrar esses itens, ou pesquise pelo título ou pelo ID (que é exibido nos colchetes acima)","Sync status (synced items / total items)":"Status de sincronização (sincronizados / totais)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Em conflito: %d","To delete: %d":"Para excluir: %d","Folders":"Pastas","%s: %d notes":"%s: %d notas","Coming alarms":"Próximos alarmes","On %s: %s":"Em %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Atualmente, não há notas. Crie uma, clicando no botão (+).","Delete these notes?":"Excluir estas notas?","Log":"Log","Export Debug Report":"Exportar Relatório de Debug","Encryption Config":"Configuração de Encriptação","Configuration":"Configuração","Move to notebook...":"Mover para o caderno...","Move %d notes to notebook \"%s\"?":"Mover %d notas para o caderno \"%s\"?","Press to set the decryption password.":"Pressione para configurar a senha de decriptação.","Select date":"Selecionar data","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronização","Joplin website":"Site do Joplin","Master Key %s":"Chave Master %s","Created: %s":"Criado: %s","Password:":"Senha:","Password cannot be empty":"Senha não pode ser vazia","Enable":"Habilitar","The notebook could not be saved: %s":"O caderno não pôde ser salvo: %s","Edit notebook":"Editar caderno","Show all":"Exibir tudo","Errors only":"Somente erros","This note has been modified:":"Esta nota foi modificada:","Save changes":"Gravar alterações","Discard changes":"Descartar alterações","Unsupported image type: %s":"Tipo de imagem não suportada: %s","Attach photo":"Anexar foto","Attach any file":"Anexar qualquer arquivo","Convert to note":"Converter para nota","Convert to todo":"Converter para tarefa","Hide metadata":"Ocultar metadados","Show metadata":"Exibir metadados","View on map":"Ver no mapa","Delete notebook":"Excluir caderno","Login with OneDrive":"Login com OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Clique no botão (+) para criar uma nova nota ou caderno. Clique no menu lateral para acessar seus cadernos existentes.","You currently have no notebook. Create one by clicking on (+) button.":"Você não possui cadernos. Crie um clicando no botão (+).","Welcome":"Bem-vindo"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"Para eliminar uma tag, remova a tag das notas associadas a ela.","Please select the note or notebook to be deleted first.":"Por favor, primeiro, selecione a nota ou caderno a excluir.","Press Ctrl+D or type \"exit\" to exit the application":"Digite Ctrl+D ou \"exit\" para sair da aplicação","More than one item match \"%s\". Please narrow down your query.":"Mais que um item combinam com \"%s\". Por favor, refine sua pesquisa.","No notebook selected.":"Nenhum caderno selecionado.","No notebook has been specified.":"Nenhum caderno foi especificado.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancelando sincronização em segundo plano... Por favor, aguarde.","No such command: %s":"Não existe o comando: \"%s\"","The command \"%s\" is only available in GUI mode":"O comando \"%s\" está disponível somente em modo gráfico","Cannot change encrypted item":"Não pode mudar um item encriptado","Missing required argument: %s":"Argumento requerido faltando: %s","%s: %s":"%s: %s","Your choice: ":"Sua escolha: ","Invalid answer: %s":"Resposta inválida: %s","Attaches the given file to the note.":"Anexa o arquivo dado à nota.","Cannot find \"%s\".":"Não posso encontrar \"%s\".","Displays the given note.":"Exibe a nota informada.","Displays the complete information about note.":"Exibe a informação completa sobre a nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtém ou define um valor de configuração. Se [valor] não for fornecido, ele mostrará o valor de [nome]. Se nem [nome] nem [valor] forem fornecidos, ele listará a configuração atual.","Also displays unset and hidden config variables.":"Também exibe variáveis de configuração não definidas e ocultas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica as notas que correspondem a  para o [caderno]. Se nenhum caderno for especificado, a nota será duplicada no caderno atual.","Marks a to-do as done.":"Marca uma tarefa como feita.","Note is not a to-do: \"%s\"":"Nota não é uma tarefa: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Gerencia a configuração E2EE. Os comandos são `enable`, `disable`, `decrypt`, `status` e `target-status`.","Enter master password:":"Entre a senha master:","Operation cancelled":"Operação cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando decriptação... Por favor aguarde, pois isso pode demorar vários minutos, dependendo de quanto há para decriptar.","Completed decryption.":"Decriptação completada.","Enabled":"Desabilitado","Disabled":"Desabilitado","Encryption is: %s":"Encriptação está: %s","Edit note.":"Editar nota.","No text editor is defined. Please set it using `config editor `":"Nenhum editor de texto está definido. Defina-o usando o comando `config edit `","No active notebook.":"Nenhum caderno ativo.","Note does not exist: \"%s\". Create it?":"A nota não existe: \"%s\". Criar?","Starting to edit note. Close the editor to get back to the prompt.":"Começando a editar a nota. Feche o editor para voltar ao prompt.","Error opening note in editor: %s":"Erro ao abir a nota no editor: %s","Note has been saved.":"Nota gravada.","Exits the application.":"Sai da aplicação.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporta os dados do Joplin para o diretório informado. Por padrão, ele exportará o banco de dados completo, incluindo cadernos, notas, tags e recursos.","Destination format: %s":"Formato do destino: %s","Exports only the given note.":"Exporta apenas a nota fornecida.","Exports only the given notebook.":"Exporta apenas o caderno fornecido.","Displays a geolocation URL for the note.":"Exibe uma URL de geolocalização para a nota.","Displays usage information.":"Exibe informações de uso.","For information on how to customise the shortcuts please visit %s":"Para informações sobre como customizar os atalhos, por favor visite %s","Shortcuts are not available in CLI mode.":"Os atalhos não estão disponíveis no modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Digite `help [comando]` para obter mais informações sobre um comando; ou digite `help all` para informações completas de uso.","The possible commands are:":"Os comandos possíveis são:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Em qualquer comando, uma nota ou caderno pode ser referenciado por título ou ID, ou usando os atalhos `$n` ou` $b` para, respectivamente, a nota ou caderno selecionado. `$c` pode ser usado para se referenciar ao item atualmente selecionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover de um painel para outro, pressione Tab ou Shift + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use as setas e a Page Up/Page Down para rolar as listas e áreas de texto (incluindo este console).","To maximise/minimise the console, press \"TC\".":"Para maximizar / minimizar o console, pressione \"TC\".","To enter command line mode, press \":\"":"Para entrar no modo de linha de comando, pressione \":\"","To exit command line mode, press ESCAPE":"Para sair do modo de linha de comando, pressione o ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"Para a lista completa de atalhos de teclado disponíveis, digite `help keymap`","Imports data into Joplin.":"Importa dados para o Joplin.","Source format: %s":"Formato da origem: \"%s\"","Do not ask for confirmation.":"Não pedir confirmação.","Found: %d.":"Encontrado: %d.","Created: %d.":"Criado: %d.","Updated: %d.":"Atualizado: %d.","Skipped: %d.":"Ignorado: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Tag adicionada: %d.","Importing notes...":"Importando notas ...","The notes have been imported: %s":"As notas foram importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Exibe as notas no caderno atual. Use `ls /` para exibir a lista de cadernos.","Displays only the first top  notes.":"Exibe apenas as primeiras notas.","Sorts the item by  (eg. title, updated_time, created_time).":"Classifica o item por  (ex.: title, update_time, created_time).","Reverses the sorting order.":"Inverte a ordem de classificação.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Exibe apenas os itens do(s) tipo(s) específico(s). Pode ser `n` para notas,` t` para tarefas, ou `nt` para notas e tarefas (por exemplo.` -tt` exibiria apenas os itens pendentes, enquanto `-ttd` exibiria notas e tarefas .","Either \"text\" or \"json\"":"Ou \"text\" ou \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use o formato da lista longa. O formato é ID, NOTE_COUNT (para caderno), DATE, TODO_CHECKED (para tarefas), TITLE","Please select a notebook first.":"Por favor, selecione um caderno primeiro.","Creates a new notebook.":"Cria um novo caderno.","Creates a new note.":"Cria uma nova nota.","Notes can only be created within a notebook.":"As notas só podem ser criadas dentro de um caderno.","Creates a new to-do.":"Cria uma nova tarefa.","Moves the notes matching  to [notebook].":"Move as notas correspondentes  para [caderno].","Renames the given  (note or notebook) to .":"Renomeia o  dado (nota ou caderno) para .","Deletes the given notebook.":"Exclui o caderno informado.","Deletes the notebook without asking for confirmation.":"Exclui o caderno sem pedir confirmação.","Delete notebook? All notes within this notebook will also be deleted.":"Excluir o caderno? Todas as notas deste caderno notebook também serão excluídas.","Deletes the notes matching .":"Exclui as notas correspondentes ao padrão .","Deletes the notes without asking for confirmation.":"Exclui as notas sem pedir confirmação.","%d notes match this pattern. Delete them?":"%d notas correspondem a este padrão. Apagar todos?","Delete note?":"Apagar nota?","Searches for the given  in all the notes.":"Procura o padrão em todas as notas.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Define a propriedade  da  para o valor [value]. As propriedades possíveis são:\n\n%s","Displays summary about the notes and notebooks.":"Exibe sumário sobre as notas e cadernos.","Synchronises with remote storage.":"Sincroniza com o armazenamento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizar para destino fornecido (p padrão é o valor de configuração sync.target)","Authentication was not completed (did not receive an authentication token).":"A autenticação não foi concluída (não recebeu um token de autenticação).","Not authentified with %s. Please provide any missing credentials.":"Não autenticado com %s. Por favor, complete as credenciais que estiverem faltando.","Synchronisation is already in progress.":"A sincronização já está em andamento.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"O arquivo de bloqueio já está ativo. Se você sabe que nenhuma sincronização está ocorrendo, você pode excluir o arquivo de bloqueio em \"%s\" e retomar a operação.","Synchronisation target: %s (%s)":"Alvo de sincronização: %s (%s)","Cannot initialize synchroniser.":"Não é possível inicializar o sincronizador.","Starting synchronisation...":"Iniciando sincronização...","Cancelling... Please wait.":"Cancelando... Aguarde."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" pode ser \"add\", \"remove\" ou \"list\" para atribuir ou remover [tag] de [nota], ou para listar as notas associadas a [tag]. O comando `taglist` pode ser usado para listar todas as tags.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" pode ser \"toggle\" ou \"clear\". Use \"toggle\" para alternar entre as tarefas entre o estado completo e incompleto (se o alvo for uma nota comum, ele será convertido em uma tarefa a fazer). Use \"clear\" para converter a tarefa em uma nota normal.","Marks a to-do as non-completed.":"Marca uma tarefa como não completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Alterna para [caderno] - todas as operações adicionais acontecerão dentro deste caderno.","Displays version information":"Exibe informações da versão","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valores possíveis: %s.","Default: %s":"Padrão: %s","Possible keys/values:":"Possíveis chaves/valores:","Type `joplin help` for usage information.":"Digite 'joplin help' para informações de uso.","Fatal error:":"Erro fatal:","The application has been authorised - you may now close this browser tab.":"O aplicativo foi autorizado - agora você pode fechar esta guia do navegador.","The application has been successfully authorised.":"O aplicativo foi autorizado com sucesso.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra a seguinte URL no seu navegador para autenticar o aplicativo. O aplicativo criará um diretório em \"Apps/Joplin\" e somente lerá e gravará arquivos neste diretório. Não terá acesso a nenhum arquivo fora deste diretório nem a nenhum outro dado pessoal. Nenhum dado será compartilhado com terceiros.","Search:":"Procurar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bem-vindo ao Joplin!\n\nDigite `:help shortcuts` para obter a lista de atalhos de teclado, ou apenas `:help` para informações de utilização.\n\nPor exemplo, para criar um caderno digite `mb`; para criar uma nota, digite `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Um ou mais itens estão criptografados, e você pode precisar de informar uma senha master. Para fazer isso, por favor digite `e2ee decrypt`. Se você já forneceu a senha, os itens criptografados estão sendo decriptados em background e logo estarão disponíveis.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportando para \"%s\" com o formato \"%s\". Por favor, aguarde...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importando de \"%s\" com o formato \"%s\". Por favor, aguarde...","PDF File":"PDF File","File":"Arquivo","New note":"Nova nota","New to-do":"Nova tarefa","New notebook":"Novo caderno","Import":"Importar","Export":"Exportar","Print":"","Hide %s":"Ocultar %s","Quit":"Sair","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Colar","Search in all the notes":"Pesquisar em todas as notas","View":"Visualizar","Toggle editor layout":"Alternar layout do editor","Tools":"Ferramentas","Synchronisation status":"Status de sincronização","Encryption options":"Opções de Encriptação","General Options":"Opções Gerais","Help":"Ajuda","Website and documentation":"Website e documentação","Make a donation":"Fazer uma doação","Check for updates...":"Verificar atualizações...","About Joplin":"Sobre o Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Abrir %s","Exit":"Sair","OK":"OK","Cancel":"Cancelar","Current version is up-to-date.":"A versão atual está atualizada.","An update is available, do you want to download it now?":"Uma atualização está disponível, você quer baixar agora?","Yes":"Sim","No":"Não","Check synchronisation configuration":"Verificar a configuração da sincronização","Notes and settings are stored in: %s":"Notas e configurações estão armazenadas em: %s","Save":"Salvar","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Desabilitar a encriptação significa que *todas* as suas notas e anexos serão re-sincronizados e enviados sem encriptação. Você quer continuar?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Habilitar a encriptação significa que *todas* as suas notas e anexos serão re-sincronizados e re-enviados com encriptação. Não perca sua senha, pois, por medidas de segurança, esse será o *único* modo de decriptar seus dados! Para habilitar a encriptação, por favor entre sua senha abaixo.","Disable encryption":"Desabilitar encriptação","Enable encryption":"Habilitar encriptação","Master Keys":"Chaves mestras","Active":"Ativar","ID":"ID","Source":"Origem","Created":"Criado","Updated":"Atualizado","Password":"Senha","Password OK":"Senha OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Noto: Apenas uma chave máster será usada para encriptação (a que estiver marcada como \"ativa\"). Qualquer uma das chaves pode ser usada para decriptação, dependendo de como as notas ou os cadernos foram encriptados originalmente.","Missing Master Keys":"Chaves Master faltando","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"As chaves master com essas IDs são usadas para encriptar alguns de seus itens, contudo a aplicação atualmente não tem acesso a elas. Provavelmente, elas serão baixadas via sincronização.","Status":"Status","Encryption is:":"Encriptação está:","Back":"Voltar","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"O novo caderno \"%s\" será criado e o arquivo \"%s\" será importado para ele","Please create a notebook first.":"Primeiro, crie um caderno.","Please create a notebook first":"Primeiro, crie um caderno","Notebook title:":"Título do caderno:","Add or remove tags:":"Adicionar ou remover tags:","Separate each tag by a comma.":"Separe cada tag por vírgula.","Rename notebook:":"Renomear caderno:","Set alarm:":"Definir alarme:","Search":"Procurar","Layout":"Layout","Some items cannot be synchronised.":"Alguns itens não podem ser sincronizados.","View them now":"Visualizar agora","Some items cannot be decrypted.":"Alguns itens não podem ser decriptados.","Set the password":"Configurar a senha","Add or remove tags":"Adicionar ou remover tags","Switch between note and to-do type":"Alternar entre os tipos Nota e Tarefa","Delete":"Excluir","Delete notes?":"Excluir notas?","No notes in here. Create one by clicking on \"New note\".":"Não há notas aqui. Crie uma, clicando em \"Nova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Atualmente, não há cadernos. Crie um, clicando em \"Novo caderno\".","Open...":"Abrir...","Save as...":"Salvar como...","Unsupported link or message: %s":"Link ou mensagem não suportada: %s","Attach file":"Anexar arquivo","Tags":"Tags","Set alarm":"Definir alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota não possui conteúdo. Clique em \"%s\" para alternar para o editor, e edite a nota.","to-do":"tarefa","note":"nota","Creating new %s...":"Criando novo %s...","Refresh":"Atualizar","Clear":"Limpar (clear)","OneDrive Login":"Login no OneDrive","Options":"Opções","Synchronisation Status":"Status de sincronização","Encryption Options":"Opções de Encriptação","Remove this tag from all the notes?":"Remover esta tag de todas as notas?","Remove this search from the sidebar?":"Remover essa pesquisa da barra lateral?","Rename":"Renomear","Synchronise":"Sincronizar","Notebooks":"Cadernos","Searches":"Pesquisas","Please select where the sync status should be exported to":"Favor selecionar o local para onde o status de sincronia deveria ser exportado","Usage: %s":"Uso: %s","Unknown flag: %s":"Flag desconhecido: %s","File system":"Sistema de arquivos","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (apenas para testes)","WebDAV":"WebDAV","Unknown log level: %s":"Nível de log desconhecido: %s","Unknown level ID: %s":"Nível ID desconhecido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Não é possível atualizar token: faltam dados de autenticação. Iniciar a sincronização novamente pode corrigir o problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Não foi possível sincronizar com o OneDrive.\n\nEste erro geralmente acontece ao usar o OneDrive for Business, que infelizmente não pode ser suportado.\n\nConsidere usar uma conta regular do OneDrive.","Cannot access %s":"Não é possível acessar %s","Created local items: %d.":"Itens locais criados: %d.","Updated local items: %d.":"Itens locais atualizados: %d.","Created remote items: %d.":"Itens remotos criados: %d.","Updated remote items: %d.":"Itens remotos atualizados: %d.","Deleted local items: %d.":"Itens locais excluídos: %d.","Deleted remote items: %d.":"Itens remotos excluídos: %d.","Fetched items: %d/%d.":"Itens pesquisados: %d/%d.","State: %s.":"State: %s.","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Sincronização já em andamento. Estado: %s","Encrypted":"Encriptado","Encrypted items cannot be modified":"Itens encriptados não podem ser modificados","Conflicts":"Conflitos","A notebook with this title already exists: \"%s\"":"Já existe caderno com este título: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Os cadernos não podem ser nomeados como\"%s\", que é um título reservado.","Untitled":"Sem título","This note does not have geolocation information.":"Esta nota não possui informações de geolocalização.","Cannot copy note to \"%s\" notebook":"Não é possível copiar a nota para o caderno \"%s\"","Cannot move note to \"%s\" notebook":"Não é possível mover a nota para o caderno \"%s\"","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"O editor que será usado para abrir uma nota. Se nenhum for indicado, ele tentará detectar automaticamente o editor padrão.","Language":"Idioma","Date format":"Formato de data","Time format":"Formato de hora","Theme":"Tema","Light":"Light","Dark":"Dark","Uncompleted to-dos on top":"Mostrar tarefas incompletas no topo","Sort notes by":"Ordenar notas por","Reverse sort order":"Inverter ordem de classificação.","Save geo-location with notes":"Salvar  geolocalização com notas","When creating a new to-do:":"Quando criar uma nova tarefa:","Focus title":"Foco no título","Focus body":"Focar no corpo","When creating a new note:":"Quando criar uma nota nova:","Show tray icon":"Exibir tray icon","Global zoom percentage":"Porcentagem global do zoom","Editor font family":"Família de fontes do editor","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"O nomes da fonte não será verificado. Se estiver incorreto ou vazio, será usado por default uma fonte genérica monospace.","Automatically update the application":"Atualizar automaticamente o aplicativo","Synchronisation interval":"Intervalo de sincronização","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opções avançadas","Synchronisation target":"Alvo de sincronização","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"O alvo para onde sincronizar. Cada alvo pode ter parâmetros adicionais que são nomeados como `sync.NUM.NAME` (todos documentados abaixo).","Directory to synchronise with (absolute path)":"Diretório para sincronizar (caminho absoluto)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"O caminho para sincronizar, quando a sincronização do sistema de arquivos está habilitada. Veja `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Usuário da Nextcloud","Nextcloud password":"Senha da Nextcloud","WebDAV URL":"WebDAV URL","WebDAV username":"Usuário do WebDAV","WebDAV password":"Senha do WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Valor da opção inválida: \"%s\". Os valores possíveis são: %s.","Joplin Export File":"Arquivo de Exportação do Joplin","Markdown":"Markdown","Joplin Export Directory":"Diretório de Exportação do Joplin","Evernote Export File":"Arquivo de Exportação do Evernote","Directory":"DIretório","Cannot load \"%s\" module for format \"%s\"":"Não é possível carregar o módulo \"%s\" para o formato \"%s\"","Please specify import format for %s":"Favor especificar o formato de importação para %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Este item atualmente está encriptado: %s \"%s\". Favor aguardar que todos os itens sejam decriptados e tente novamente.","There is no data to export.":"Não há dados a exportar.","Please specify the notebook where the notes should be imported to.":"Por favor, especifique o caderno para onde as notas deveriam ser importadas.","Items that cannot be synchronised":"Os itens não podem ser sincronizados","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Estes itens continuarão no dispositivo mas não serão enviados ao alvo de sincronização. Para encontrar esses itens, ou pesquise pelo título ou pelo ID (que é exibido nos colchetes acima)","Sync status (synced items / total items)":"Status de sincronização (sincronizados / totais)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Em conflito: %d","To delete: %d":"Para excluir: %d","Folders":"Pastas","%s: %d notes":"%s: %d notas","Coming alarms":"Próximos alarmes","On %s: %s":"Em %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Atualmente, não há notas. Crie uma, clicando no botão (+).","Delete these notes?":"Excluir estas notas?","Log":"Log","Export Debug Report":"Exportar Relatório de Debug","Encryption Config":"Configuração de Encriptação","Configuration":"Configuração","Move to notebook...":"Mover para o caderno...","Move %d notes to notebook \"%s\"?":"Mover %d notas para o caderno \"%s\"?","Press to set the decryption password.":"Pressione para configurar a senha de decriptação.","Select date":"Selecionar data","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronização","Joplin website":"Site do Joplin","Master Key %s":"Chave Master %s","Created: %s":"Criado: %s","Password:":"Senha:","Password cannot be empty":"Senha não pode ser vazia","Enable":"Habilitar","The notebook could not be saved: %s":"O caderno não pôde ser salvo: %s","Edit notebook":"Editar caderno","Show all":"Exibir tudo","Errors only":"Somente erros","This note has been modified:":"Esta nota foi modificada:","Save changes":"Gravar alterações","Discard changes":"Descartar alterações","Unsupported image type: %s":"Tipo de imagem não suportada: %s","Attach photo":"Anexar foto","Attach any file":"Anexar qualquer arquivo","Convert to note":"Converter para nota","Convert to todo":"Converter para tarefa","Hide metadata":"Ocultar metadados","Show metadata":"Exibir metadados","View on map":"Ver no mapa","Delete notebook":"Excluir caderno","Login with OneDrive":"Login com OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Clique no botão (+) para criar uma nova nota ou caderno. Clique no menu lateral para acessar seus cadernos existentes.","You currently have no notebook. Create one by clicking on (+) button.":"Você não possui cadernos. Crie um clicando no botão (+).","Welcome":"Bem-vindo"}
        \ No newline at end of file
        diff --git a/ElectronClient/app/locales/ru_RU.json b/ElectronClient/app/locales/ru_RU.json
        index 29f9ce14bd..98571ae50e 100644
        --- a/ElectronClient/app/locales/ru_RU.json
        +++ b/ElectronClient/app/locales/ru_RU.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"Чтобы удалить тег, уберите его с ассоциированных с ним заметок.","Please select the note or notebook to be deleted first.":"Сначала выберите заметку или блокнот, которые должны быть удалены.","Press Ctrl+D or type \"exit\" to exit the application":"Для выхода из приложения нажмите Ctrl+D или введите «exit»","More than one item match \"%s\". Please narrow down your query.":"Более одного элемента соответствуют «%s». Уточните ваш запрос, пожалуйста.","No notebook selected.":"Не выбран блокнот.","No notebook has been specified.":"Не был указан блокнот.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Отмена фоновой синхронизации... Пожалуйста, ожидайте.","No such command: %s":"Нет такой команды: %s","The command \"%s\" is only available in GUI mode":"Команда «%s» доступна только в режиме GUI","Cannot change encrypted item":"Не удалось изменить зашифрованный элемент","Missing required argument: %s":"Отсутствует требуемый аргумент: %s","%s: %s":"%s: %s","Your choice: ":"Ваш выбор: ","Invalid answer: %s":"Неверный ответ: %s","Attaches the given file to the note.":"Прикрепляет заданный файл к заметке.","Cannot find \"%s\".":"Не удалось найти «%s».","Displays the given note.":"Отображает заданную заметку.","Displays the complete information about note.":"Отображает полную информацию о заметке.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Выводит или задаёт параметр конфигурации. Если [value] не указано, выведет значение [name]. Если не указаны ни [name], ни [value], выведет текущую конфигурацию.","Also displays unset and hidden config variables.":"Также выводит неустановленные или скрытые переменные конфигурации.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Дублирует заметки, содержащие , в [notebook]. Если блокнот не указан, заметки продублируются в текущем.","Marks a to-do as done.":"Отмечает задачу как завершённую.","Note is not a to-do: \"%s\"":"Заметка не является задачей: «%s»","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Управляет конфигурацией E2EE. Команды: `enable`, `disable`, `decrypt`, `status` и `target-status`.","Enter master password:":"Введите мастер-пароль:","Operation cancelled":"Операция отменена","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Запуск расшифровки... Пожалуйста, ожидайте. Время расшифровки зависит от объёма расшифровываемых данных.","Completed decryption.":"Расшифровка завершена.","Enabled":"Включено","Disabled":"Отключено","Encryption is: %s":"Шифрование: %s","Edit note.":"Редактировать заметку.","No text editor is defined. Please set it using `config editor `":"Текстовый редактор не определён. Задайте его, используя `config editor `","No active notebook.":"Нет активного блокнота.","Note does not exist: \"%s\". Create it?":"Заметки не существует: «%s». Создать?","Starting to edit note. Close the editor to get back to the prompt.":"Запуск редактирования заметки. Закройте редактор, чтобы вернуться к командной строке.","Error opening note in editor: %s":"Ошибка при открытии заметки в редакторе: %s","Note has been saved.":"Заметка сохранена.","Exits the application.":"Выход из приложения.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Экспортирует данные Joplin по заданному пути. По умолчанию экспортируется полная база данных, включая блокноты, заметки, теги и ресурсы.","Destination format: %s":"Целевой формат: %s","Exports only the given note.":"Экспортирует только заданную заметку.","Exports only the given notebook.":"Экспортирует только заданный блокнот.","Displays a geolocation URL for the note.":"Выводит URL геолокации для заметки.","Displays usage information.":"Выводит информацию об использовании.","For information on how to customise the shortcuts please visit %s":"Информацию по настройке сочетаний можно получить, посетив %s","Shortcuts are not available in CLI mode.":"Ярлыки недоступны в режиме командной строки.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Введите `help [команда]` для получения информации о команде или `help all` для получения полной информации по использованию.","The possible commands are:":"Доступные команды:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"В любой команде можно ссылаться на заметку или блокнот по названию или ID, либо используя ярлыки `$n` или `$b`, указывающие на текущую заметку или блокнот соответственно. С помощью `$c` можно ссылаться на текущий выбранный элемент.","To move from one pane to another, press Tab or Shift+Tab.":"Чтобы переключаться между панелями, нажимайте Tab или Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Используйте стрелки и клавиши перелистывания страницы вверх/вниз для прокрутки списков и текстовых областей (включая эту консоль).","To maximise/minimise the console, press \"TC\".":"Чтобы развернуть/свернуть консоль, нажимайте «TC».","To enter command line mode, press \":\"":"Чтобы войти в режим командной строки, нажмите «:»","To exit command line mode, press ESCAPE":"Чтобы выйти из режима командной строки, нажмите ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Для просмотра списка клавиатурных сочетаний и настроек конфигурации введите `help keymap`","Imports data into Joplin.":"Импортирует данные в Joplin.","Source format: %s":"Исходный формат: %s","Do not ask for confirmation.":"Не запрашивать подтверждение.","Found: %d.":"Найдено: %d.","Created: %d.":"Создано: %d.","Updated: %d.":"Обновлено: %d.","Skipped: %d.":"Пропущено: %d.","Resources: %d.":"Ресурсов: %d.","Tagged: %d.":"С тегами: %d.","Importing notes...":"Импорт заметок...","The notes have been imported: %s":"Импортировано заметок: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Выводит заметки текущего блокнота. Используйте `ls /` для вывода списка блокнотов.","Displays only the first top  notes.":"Выводит только первые  заметок.","Sorts the item by  (eg. title, updated_time, created_time).":"Сортирует элементы по  (например, title, updated_time, created_time).","Reverses the sorting order.":"Обращает порядок сортировки.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Выводит только элементы указанного типа. Может быть `n` для заметок, `t` для задач или `nt` для заметок и задач (например, `-tt` выведет только задачи, в то время как `-ttd` выведет заметки и задачи).","Either \"text\" or \"json\"":"«text» или «json»","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Использовать формат длинного списка. Форматом является ID, NOTE_COUNT (для блокнотов), DATE, TODO_CHECKED (для задач), TITLE","Please select a notebook first.":"Сначала выберите блокнот.","Creates a new notebook.":"Создаёт новый блокнот.","Creates a new note.":"Создаёт новую заметку.","Notes can only be created within a notebook.":"Заметки могут быть созданы только в блокноте.","Creates a new to-do.":"Создаёт новую задачу.","Moves the notes matching  to [notebook].":"Перемещает заметки, содержащие  в [notebook].","Renames the given  (note or notebook) to .":"Переименовывает заданный  (заметку или блокнот) в .","Deletes the given notebook.":"Удаляет заданный блокнот.","Deletes the notebook without asking for confirmation.":"Удаляет блокнот без запроса подтверждения.","Delete notebook? All notes within this notebook will also be deleted.":"Удалить блокнот? Все заметки в этом блокноте также будут удалены.","Deletes the notes matching .":"Удаляет заметки, соответствующие .","Deletes the notes without asking for confirmation.":"Удаляет заметки без запроса подтверждения.","%d notes match this pattern. Delete them?":"%d заметок соответствуют этому шаблону. Удалить их?","Delete note?":"Удалить заметку?","Searches for the given  in all the notes.":"Запросы для заданного  во всех заметках.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Устанавливает для свойства  заданной  заданное [value]. Возможные свойства:\n\n%s","Displays summary about the notes and notebooks.":"Выводит общую информацию о заметках и блокнотах.","Synchronises with remote storage.":"Синхронизирует с удалённым хранилищем.","Sync to provided target (defaults to sync.target config value)":"Синхронизация с заданной целью (по умолчанию — значение конфигурации sync.target)","Authentication was not completed (did not receive an authentication token).":"Аутентификация не была завершена (не получен токен аутентификации).","Not authentified with %s. Please provide any missing credentials.":"Не аутентифицировано с %s. Пожалуйста, предоставьте все недостающие данные.","Synchronisation is already in progress.":"Синхронизация уже выполняется.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Файл блокировки уже установлен. Если вам известно, что синхронизация не производится, вы можете удалить файл блокировки в «%s» и возобновить операцию.","Synchronisation target: %s (%s)":"Цель синхронизации: %s (%s)","Cannot initialize synchroniser.":"Не удалось инициировать синхронизацию.","Starting synchronisation...":"Начало синхронизации...","Cancelling... Please wait.":"Отмена... Пожалуйста, ожидайте."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" может быть «add», «remove» или «list», чтобы назначить или убрать [tag] с [note], или чтобы вывести список заметок, ассоциированых с [tag]. Команда `tag list` может быть использована для вывода списка всех тегов.","Invalid command: \"%s\"":"Неверная команда: «%s»"," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" может быть «toggle» или «clear». «toggle» используется для переключения статуса заданной задачи на завершённую или незавершённую (если применить к обычной заметке, она будет преобразована в задачу). «clear» используется для преобразования задачи обратно в обычную заметку.","Marks a to-do as non-completed.":"Отмечает задачу как незавершённую.","Switches to [notebook] - all further operations will happen within this notebook.":"Переключает на [блокнот] — все дальнейшие операции будут происходить в этом блокноте.","Displays version information":"Выводит информацию о версии","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Тип: %s.","Possible values: %s.":"Возможные значения: %s.","Default: %s":"По умолчанию: %s","Possible keys/values:":"Возможные ключи/значения:","Type `joplin help` for usage information.":"Введите `joplin help` для получения информации об использовании.","Fatal error:":"Фатальная ошибка:","The application has been authorised - you may now close this browser tab.":"Приложение авторизовано — можно закрыть вкладку браузера.","The application has been successfully authorised.":"Приложение успешно авторизовано.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Откройте следующую ссылку в вашем браузере для аутентификации приложения. Приложением будет создан каталог «Apps/Joplin». Чтение и запись файлов будет осуществляться только в его пределах. У приложения не будет доступа к каким-либо файлам за пределами этого каталога и другим личным данным. Никакая информация не будет передана третьим лицам.","Search:":"Поиск:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Добро пожаловать в Joplin!\n\nВведите `:help shortcuts` для просмотра списка клавиатурных сочетаний или просто `:help` для просмотра информации об использовании.\n\nНапример, для создания блокнота нужно ввести `mb`, для создания заметки — `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Один или несколько элементов сейчас зашифрованы и может потребоваться, чтобы вы предоставили мастер-пароль. Для этого введите, пожалуйста, «e2ee decrypt». Если пароль уже был вами предоставлен, зашифрованные элементы расшифруются в фоновом режиме и вскоре станут доступны.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Экспорт в «%s» в формате «%s». Пожалуйста, ожидайте...","Importing from \"%s\" as \"%s\" format. Please wait...":"Импорт из «%s» в формате «%s». Пожалуйста, ожидайте...","PDF File":"PDF-файл","File":"Файл","New note":"Новая заметка","New to-do":"Новая задача","New notebook":"Новый блокнот","Import":"Импорт","Export":"Экспорт","Print":"Печать","Hide %s":"Скрыть %s","Quit":"Выход","Edit":"Правка","Copy":"Копировать","Cut":"Вырезать","Paste":"Вставить","Search in all the notes":"Поиск во всех заметках","View":"Вид","Toggle editor layout":"Переключить вид редактора","Tools":"Инструменты","Synchronisation status":"Статус синхронизации","Encryption options":"Настройки шифрования","General Options":"Основные настройки","Help":"Помощь","Website and documentation":"Сайт и документация","Make a donation":"Сделать пожертвование","Check for updates...":"Проверить обновления...","About Joplin":"О Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Открыть %s","Exit":"Выход","OK":"OK","Cancel":"Отмена","Current version is up-to-date.":"Вы используете самую свежую версию.","An update is available, do you want to download it now?":"Доступно обновление. Желаете скачать его сейчас?","Yes":"Да","No":"Нет","Check synchronisation configuration":"Проверить настройки синхронизации","Notes and settings are stored in: %s":"Заметки и настройки сохранены в: %s","Save":"Сохранить","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Отключение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в расшифрованном виде к цели синхронизации. Желаете продолжить?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Включение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в зашифрованном виде к цели синхронизации. Не теряйте пароль, так как в целях безопасности *только* с его помощью можно будет расшифровать данные! Чтобы включить шифрование, введите ваш пароль ниже.","Disable encryption":"Отключить шифрование","Enable encryption":"Включить шифрование","Master Keys":"Мастер-ключи","Active":"Активен","ID":"ID","Source":"Источник","Created":"Создан","Updated":"Обновлён","Password":"Пароль","Password OK":"Пароль OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Внимание: Для шифрования может быть использован только один мастер-ключ (отмеченный как «активный»). Для расшифровки может использоваться любой из ключей, в зависимости от того, как изначально были зашифрованы заметки или блокноты.","Missing Master Keys":"Недостающие мастер-ключи","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"Мастер-ключи с такими ID используются для шифрования некоторых из ваших элементов, однако у приложения сейчас нет к ним доступа. Скорее всего, они загрузятся при синхронизации.","Status":"Статус","Encryption is:":"Шифрование:","Back":"Назад","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Будет создан новый блокнот «%s» и в него будет импортирован файл «%s»","Please create a notebook first.":"Сначала создайте блокнот.","Please create a notebook first":"Сначала создайте блокнот","Notebook title:":"Название блокнота:","Add or remove tags:":"Добавить или удалить теги:","Separate each tag by a comma.":"Каждый тег отделяется запятой.","Rename notebook:":"Переименовать блокнот:","Set alarm:":"Установить напоминание:","Search":"Поиск","Layout":"Вид","Some items cannot be synchronised.":"Некоторые элементы не могут быть синхронизированы.","View them now":"Просмотреть их сейчас","Some items cannot be decrypted.":"Некоторые элементы не могут быть расшифрованы.","Set the password":"Установить пароль","Add or remove tags":"Добавить или удалить теги","Switch between note and to-do type":"Переключить тип между заметкой и задачей","Delete":"Удалить","Delete notes?":"Удалить заметки?","No notes in here. Create one by clicking on \"New note\".":"Здесь нет заметок. Создайте новую нажатием на «Новая заметка».","There is currently no notebook. Create one by clicking on \"New notebook\".":"Сейчас здесь нет блокнотов. Создайте новый нажав «Новый блокнот».","Open...":"Открыть...","Save as...":"Сохранить как...","Unsupported link or message: %s":"Неподдерживаемая ссыка или сообщение: %s","Attach file":"Прикрепить файл","Tags":"Теги","Set alarm":"Установить напоминание","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Заметка пуста. Нажмите на «%s», чтобы переключиться в редактор и отредактировать её.","to-do":"задача","note":"заметка","Creating new %s...":"Создание новой %s...","Refresh":"Обновить","Clear":"Очистить","OneDrive Login":"Вход в OneDrive","Options":"Настройки","Synchronisation Status":"Статус синхронизации","Encryption Options":"Настройки шифрования","Remove this tag from all the notes?":"Убрать этот тег со всех заметок?","Remove this search from the sidebar?":"Убрать этот запрос с боковой панели?","Rename":"Переименовать","Synchronise":"Синхронизировать","Notebooks":"Блокноты","Searches":"Запросы","Please select where the sync status should be exported to":"Выберите, куда должен быть экспортирован статус синхронизации","Usage: %s":"Использование: %s","Unknown flag: %s":"Неизвестный флаг: %s","File system":"Файловая система","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (только для тестирования)","WebDAV":"WebDAV","Unknown log level: %s":"Неизвестный уровень лога: %s","Unknown level ID: %s":"Неизвестный ID уровня: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Не удалось обновить токен: отсутствуют данные аутентификации. Повторный запуск синхронизации может решить проблему.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Не удалось синхронизироваться с OneDrive.\n\nТакая ошибка часто возникает при использовании OneDrive для бизнеса, который, к сожалению, не поддерживается.\n\nПожалуйста, рассмотрите возможность использования обычного аккаунта OneDrive.","Cannot access %s":"Не удалось получить доступ %s","Created local items: %d.":"Создано локальных элементов: %d.","Updated local items: %d.":"Обновлено локальных элементов: %d.","Created remote items: %d.":"Создано удалённых элементов: %d.","Updated remote items: %d.":"Обновлено удалённых элементов: %d.","Deleted local items: %d.":"Удалено локальных элементов: %d.","Deleted remote items: %d.":"Удалено удалённых элементов: %d.","Fetched items: %d/%d.":"Получено элементов: %d/%d.","State: \"%s\".":"Статус: «%s».","Cancelling...":"Отмена...","Completed: %s":"Завершено: %s","Last error: %s":"Последняя ошибка: %s","Idle":"Простой","In progress":"Выполнение","Synchronisation is already in progress. State: %s":"Синхронизация уже выполняется. Статус: %s","Encrypted":"Зашифровано","Encrypted items cannot be modified":"Зашифрованные элементы не могут быть изменены","Conflicts":"Конфликты","A notebook with this title already exists: \"%s\"":"Блокнот с таким названием уже существует: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"Блокнот не может быть назван «%s», это зарезервированное название.","Untitled":"Без имени","This note does not have geolocation information.":"Эта заметка не содержит информации о геолокации.","Cannot copy note to \"%s\" notebook":"Не удалось скопировать заметку в блокнот «%s»","Cannot move note to \"%s\" notebook":"Не удалось переместить заметку в блокнот «%s»","Text editor":"Текстовый редактор","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Редактор, в котором будут открываться заметки. Если не задан, будет произведена попытка автоматического определения редактора по умолчанию.","Language":"Язык","Date format":"Формат даты","Time format":"Формат времени","Theme":"Тема","Light":"Светлая","Dark":"Тёмная","Uncompleted to-dos on top":"Незавершённые задачи сверху","Sort notes by":"Сортировать заметки по","Reverse sort order":"Обратный порядок сортировки","Save geo-location with notes":"Сохранять информацию о геолокации в заметках","When creating a new to-do:":"При создании новой задачи:","Focus title":"Фокус на названии","Focus body":"Фокус на содержимом","When creating a new note:":"При создании новой заметки:","Show tray icon":"Показывать иконку в панели задач","Global zoom percentage":"Глобальный масштаб в процентах","Editor font family":"Семейство шрифтов редактора","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"Название шрифта не проверяется. Если оно указано некорректно или не задано, будет использоваться стандартный моноширинный шрифт.","Automatically update the application":"Автоматически обновлять приложение","Synchronisation interval":"Интервал синхронизации","%d minutes":"%d минут","%d hour":"%d час","%d hours":"%d часов","Show advanced options":"Показывать расширенные настройки","Synchronisation target":"Цель синхронизации","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Цель синхронизации. Каждая цель синхронизации может иметь дополнительные параметры, именованные как «sync.NUM.NAME» (все описаны ниже).","Directory to synchronise with (absolute path)":"Каталог синхронизации (абсолютный путь)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Путь для синхронизации при включённой синхронизации с файловой системой. См. `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Имя пользователя Nextcloud","Nextcloud password":"Пароль Nextcloud","WebDAV URL":"URL WebDAV","WebDAV username":"Имя пользователя WebDAV","WebDAV password":"Пароль WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Неверное значение параметра: «%s». Доступные значения: %s.","Joplin Export File":"Файл экспорта Joplin","Markdown":"Markdown","Joplin Export Directory":"Папка экспорта Joplin","Evernote Export File":"Файл экспорта Evernote","Directory":"Директория","Cannot load \"%s\" module for format \"%s\"":"Не удалось загрузить модуль «%s» для формата «%s»","Please specify import format for %s":"Пожалуйста, укажите формат импорта для %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Этот элемент сейчас зашифрован: %s «%s». Пожалуйста, дождитесь расшифровки всех элементов и попробуйте снова.","There is no data to export.":"Нет данных для экспорта.","Please specify the notebook where the notes should be imported to.":"Пожалуйста, укажите блокнот, в который должны быть импортированы заметки.","Items that cannot be synchronised":"Элементы, которые не могут быть синхронизированы","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Эти элементы будут оставаться на устройстве, но не будут загружены в целевой объект синхронизации. Чтобы найти эти элементы, воспользуйтесь поиском по названию или ID (который указывается в скобках выше).","Sync status (synced items / total items)":"Статус синхронизации (элементов синхронизировано/всего)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Всего: %d/%d","Conflicted: %d":"Конфликтующих: %d","To delete: %d":"К удалению: %d","Folders":"Папки","%s: %d notes":"%s: %d заметок","Coming alarms":"Грядущие напоминания","On %s: %s":"В %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Сейчас здесь нет заметок. Создаёте новую, нажав кнопку (+).","Delete these notes?":"Удалить эти заметки?","Log":"Лог","Export Debug Report":"Экспортировать отладочный отчёт","Encryption Config":"Конфигурация шифрования","Configuration":"Конфигурация","Move to notebook...":"Переместить в блокнот...","Move %d notes to notebook \"%s\"?":"Переместить %d заметок в блокнот «%s»?","Press to set the decryption password.":"Нажмите, чтобы установить пароль для расшифровки.","Select date":"Выбрать дату","Confirm":"Подтвердить","Cancel synchronisation":"Отменить синхронизацию","Joplin website":"Сайт Joplin","Master Key %s":"Мастер-ключ %s","Created: %s":"Создано: %s","Password:":"Пароль:","Password cannot be empty":"Пароль не может быть пустым","Enable":"Включено","The notebook could not be saved: %s":"Не удалось сохранить блокнот: %s","Edit notebook":"Редактировать блокнот","Show all":"Показать всё","Errors only":"Только ошибки","This note has been modified:":"Эта заметка была изменена:","Save changes":"Сохранить изменения","Discard changes":"Отменить изменения","Unsupported image type: %s":"Неподдерживаемый формат изображения: %s","Attach photo":"Прикрепить фото","Attach any file":"Прикрепить любой файл","Convert to note":"Преобразовать в заметку","Convert to todo":"Преобразовать в задачу","Hide metadata":"Скрыть метаданные","Show metadata":"Показать метаданные","View on map":"Посмотреть на карте","Delete notebook":"Удалить блокнот","Login with OneDrive":"Войти в OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Нажмите на кнопку (+) для создания новой заметки или нового блокнота. Нажмите на боковое меню для доступа к вашим существующим блокнотам.","You currently have no notebook. Create one by clicking on (+) button.":"У вас сейчас нет блокнота. Создайте его нажатием на кнопку (+).","Welcome":"Добро пожаловать"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"Чтобы удалить тег, уберите его с ассоциированных с ним заметок.","Please select the note or notebook to be deleted first.":"Сначала выберите заметку или блокнот, которые должны быть удалены.","Press Ctrl+D or type \"exit\" to exit the application":"Для выхода из приложения нажмите Ctrl+D или введите «exit»","More than one item match \"%s\". Please narrow down your query.":"Более одного элемента соответствуют «%s». Уточните ваш запрос, пожалуйста.","No notebook selected.":"Не выбран блокнот.","No notebook has been specified.":"Не был указан блокнот.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Отмена фоновой синхронизации... Пожалуйста, ожидайте.","No such command: %s":"Нет такой команды: %s","The command \"%s\" is only available in GUI mode":"Команда «%s» доступна только в режиме GUI","Cannot change encrypted item":"Не удалось изменить зашифрованный элемент","Missing required argument: %s":"Отсутствует требуемый аргумент: %s","%s: %s":"%s: %s","Your choice: ":"Ваш выбор: ","Invalid answer: %s":"Неверный ответ: %s","Attaches the given file to the note.":"Прикрепляет заданный файл к заметке.","Cannot find \"%s\".":"Не удалось найти «%s».","Displays the given note.":"Отображает заданную заметку.","Displays the complete information about note.":"Отображает полную информацию о заметке.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Выводит или задаёт параметр конфигурации. Если [value] не указано, выведет значение [name]. Если не указаны ни [name], ни [value], выведет текущую конфигурацию.","Also displays unset and hidden config variables.":"Также выводит неустановленные или скрытые переменные конфигурации.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Дублирует заметки, содержащие , в [notebook]. Если блокнот не указан, заметки продублируются в текущем.","Marks a to-do as done.":"Отмечает задачу как завершённую.","Note is not a to-do: \"%s\"":"Заметка не является задачей: «%s»","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Управляет конфигурацией E2EE. Команды: `enable`, `disable`, `decrypt`, `status` и `target-status`.","Enter master password:":"Введите мастер-пароль:","Operation cancelled":"Операция отменена","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Запуск расшифровки... Пожалуйста, ожидайте. Время расшифровки зависит от объёма расшифровываемых данных.","Completed decryption.":"Расшифровка завершена.","Enabled":"Включено","Disabled":"Отключено","Encryption is: %s":"Шифрование: %s","Edit note.":"Редактировать заметку.","No text editor is defined. Please set it using `config editor `":"Текстовый редактор не определён. Задайте его, используя `config editor `","No active notebook.":"Нет активного блокнота.","Note does not exist: \"%s\". Create it?":"Заметки не существует: «%s». Создать?","Starting to edit note. Close the editor to get back to the prompt.":"Запуск редактирования заметки. Закройте редактор, чтобы вернуться к командной строке.","Error opening note in editor: %s":"Ошибка при открытии заметки в редакторе: %s","Note has been saved.":"Заметка сохранена.","Exits the application.":"Выход из приложения.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Экспортирует данные Joplin по заданному пути. По умолчанию экспортируется полная база данных, включая блокноты, заметки, теги и ресурсы.","Destination format: %s":"Целевой формат: %s","Exports only the given note.":"Экспортирует только заданную заметку.","Exports only the given notebook.":"Экспортирует только заданный блокнот.","Displays a geolocation URL for the note.":"Выводит URL геолокации для заметки.","Displays usage information.":"Выводит информацию об использовании.","For information on how to customise the shortcuts please visit %s":"Информацию по настройке сочетаний можно получить, посетив %s","Shortcuts are not available in CLI mode.":"Ярлыки недоступны в режиме командной строки.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Введите `help [команда]` для получения информации о команде или `help all` для получения полной информации по использованию.","The possible commands are:":"Доступные команды:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"В любой команде можно ссылаться на заметку или блокнот по названию или ID, либо используя ярлыки `$n` или `$b`, указывающие на текущую заметку или блокнот соответственно. С помощью `$c` можно ссылаться на текущий выбранный элемент.","To move from one pane to another, press Tab or Shift+Tab.":"Чтобы переключаться между панелями, нажимайте Tab или Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Используйте стрелки и клавиши перелистывания страницы вверх/вниз для прокрутки списков и текстовых областей (включая эту консоль).","To maximise/minimise the console, press \"TC\".":"Чтобы развернуть/свернуть консоль, нажимайте «TC».","To enter command line mode, press \":\"":"Чтобы войти в режим командной строки, нажмите «:»","To exit command line mode, press ESCAPE":"Чтобы выйти из режима командной строки, нажмите ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Для просмотра списка клавиатурных сочетаний и настроек конфигурации введите `help keymap`","Imports data into Joplin.":"Импортирует данные в Joplin.","Source format: %s":"Исходный формат: %s","Do not ask for confirmation.":"Не запрашивать подтверждение.","Found: %d.":"Найдено: %d.","Created: %d.":"Создано: %d.","Updated: %d.":"Обновлено: %d.","Skipped: %d.":"Пропущено: %d.","Resources: %d.":"Ресурсов: %d.","Tagged: %d.":"С тегами: %d.","Importing notes...":"Импорт заметок...","The notes have been imported: %s":"Импортировано заметок: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Выводит заметки текущего блокнота. Используйте `ls /` для вывода списка блокнотов.","Displays only the first top  notes.":"Выводит только первые  заметок.","Sorts the item by  (eg. title, updated_time, created_time).":"Сортирует элементы по  (например, title, updated_time, created_time).","Reverses the sorting order.":"Обращает порядок сортировки.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Выводит только элементы указанного типа. Может быть `n` для заметок, `t` для задач или `nt` для заметок и задач (например, `-tt` выведет только задачи, в то время как `-ttd` выведет заметки и задачи).","Either \"text\" or \"json\"":"«text» или «json»","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Использовать формат длинного списка. Форматом является ID, NOTE_COUNT (для блокнотов), DATE, TODO_CHECKED (для задач), TITLE","Please select a notebook first.":"Сначала выберите блокнот.","Creates a new notebook.":"Создаёт новый блокнот.","Creates a new note.":"Создаёт новую заметку.","Notes can only be created within a notebook.":"Заметки могут быть созданы только в блокноте.","Creates a new to-do.":"Создаёт новую задачу.","Moves the notes matching  to [notebook].":"Перемещает заметки, содержащие  в [notebook].","Renames the given  (note or notebook) to .":"Переименовывает заданный  (заметку или блокнот) в .","Deletes the given notebook.":"Удаляет заданный блокнот.","Deletes the notebook without asking for confirmation.":"Удаляет блокнот без запроса подтверждения.","Delete notebook? All notes within this notebook will also be deleted.":"Удалить блокнот? Все заметки в этом блокноте также будут удалены.","Deletes the notes matching .":"Удаляет заметки, соответствующие .","Deletes the notes without asking for confirmation.":"Удаляет заметки без запроса подтверждения.","%d notes match this pattern. Delete them?":"%d заметок соответствуют этому шаблону. Удалить их?","Delete note?":"Удалить заметку?","Searches for the given  in all the notes.":"Запросы для заданного  во всех заметках.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Устанавливает для свойства  заданной  заданное [value]. Возможные свойства:\n\n%s","Displays summary about the notes and notebooks.":"Выводит общую информацию о заметках и блокнотах.","Synchronises with remote storage.":"Синхронизирует с удалённым хранилищем.","Sync to provided target (defaults to sync.target config value)":"Синхронизация с заданной целью (по умолчанию — значение конфигурации sync.target)","Authentication was not completed (did not receive an authentication token).":"Аутентификация не была завершена (не получен токен аутентификации).","Not authentified with %s. Please provide any missing credentials.":"Не аутентифицировано с %s. Пожалуйста, предоставьте все недостающие данные.","Synchronisation is already in progress.":"Синхронизация уже выполняется.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Файл блокировки уже установлен. Если вам известно, что синхронизация не производится, вы можете удалить файл блокировки в «%s» и возобновить операцию.","Synchronisation target: %s (%s)":"Цель синхронизации: %s (%s)","Cannot initialize synchroniser.":"Не удалось инициировать синхронизацию.","Starting synchronisation...":"Начало синхронизации...","Cancelling... Please wait.":"Отмена... Пожалуйста, ожидайте."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" может быть «add», «remove» или «list», чтобы назначить или убрать [tag] с [note], или чтобы вывести список заметок, ассоциированых с [tag]. Команда `tag list` может быть использована для вывода списка всех тегов.","Invalid command: \"%s\"":"Неверная команда: «%s»"," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" может быть «toggle» или «clear». «toggle» используется для переключения статуса заданной задачи на завершённую или незавершённую (если применить к обычной заметке, она будет преобразована в задачу). «clear» используется для преобразования задачи обратно в обычную заметку.","Marks a to-do as non-completed.":"Отмечает задачу как незавершённую.","Switches to [notebook] - all further operations will happen within this notebook.":"Переключает на [блокнот] — все дальнейшие операции будут происходить в этом блокноте.","Displays version information":"Выводит информацию о версии","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Тип: %s.","Possible values: %s.":"Возможные значения: %s.","Default: %s":"По умолчанию: %s","Possible keys/values:":"Возможные ключи/значения:","Type `joplin help` for usage information.":"Введите `joplin help` для получения информации об использовании.","Fatal error:":"Фатальная ошибка:","The application has been authorised - you may now close this browser tab.":"Приложение авторизовано — можно закрыть вкладку браузера.","The application has been successfully authorised.":"Приложение успешно авторизовано.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Откройте следующую ссылку в вашем браузере для аутентификации приложения. Приложением будет создан каталог «Apps/Joplin». Чтение и запись файлов будет осуществляться только в его пределах. У приложения не будет доступа к каким-либо файлам за пределами этого каталога и другим личным данным. Никакая информация не будет передана третьим лицам.","Search:":"Поиск:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Добро пожаловать в Joplin!\n\nВведите `:help shortcuts` для просмотра списка клавиатурных сочетаний или просто `:help` для просмотра информации об использовании.\n\nНапример, для создания блокнота нужно ввести `mb`, для создания заметки — `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Один или несколько элементов сейчас зашифрованы и может потребоваться, чтобы вы предоставили мастер-пароль. Для этого введите, пожалуйста, «e2ee decrypt». Если пароль уже был вами предоставлен, зашифрованные элементы расшифруются в фоновом режиме и вскоре станут доступны.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Экспорт в «%s» в формате «%s». Пожалуйста, ожидайте...","Importing from \"%s\" as \"%s\" format. Please wait...":"Импорт из «%s» в формате «%s». Пожалуйста, ожидайте...","PDF File":"PDF-файл","File":"Файл","New note":"Новая заметка","New to-do":"Новая задача","New notebook":"Новый блокнот","Import":"Импорт","Export":"Экспорт","Print":"Печать","Hide %s":"Скрыть %s","Quit":"Выход","Edit":"Правка","Copy":"Копировать","Cut":"Вырезать","Paste":"Вставить","Search in all the notes":"Поиск во всех заметках","View":"Вид","Toggle editor layout":"Переключить вид редактора","Tools":"Инструменты","Synchronisation status":"Статус синхронизации","Encryption options":"Настройки шифрования","General Options":"Основные настройки","Help":"Помощь","Website and documentation":"Сайт и документация","Make a donation":"Сделать пожертвование","Check for updates...":"Проверить обновления...","About Joplin":"О Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Открыть %s","Exit":"Выход","OK":"OK","Cancel":"Отмена","Current version is up-to-date.":"Вы используете самую свежую версию.","An update is available, do you want to download it now?":"Доступно обновление. Желаете скачать его сейчас?","Yes":"Да","No":"Нет","Check synchronisation configuration":"Проверить настройки синхронизации","Notes and settings are stored in: %s":"Заметки и настройки сохранены в: %s","Save":"Сохранить","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Отключение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в расшифрованном виде к цели синхронизации. Желаете продолжить?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Включение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в зашифрованном виде к цели синхронизации. Не теряйте пароль, так как в целях безопасности *только* с его помощью можно будет расшифровать данные! Чтобы включить шифрование, введите ваш пароль ниже.","Disable encryption":"Отключить шифрование","Enable encryption":"Включить шифрование","Master Keys":"Мастер-ключи","Active":"Активен","ID":"ID","Source":"Источник","Created":"Создан","Updated":"Обновлён","Password":"Пароль","Password OK":"Пароль OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Внимание: Для шифрования может быть использован только один мастер-ключ (отмеченный как «активный»). Для расшифровки может использоваться любой из ключей, в зависимости от того, как изначально были зашифрованы заметки или блокноты.","Missing Master Keys":"Недостающие мастер-ключи","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"Мастер-ключи с такими ID используются для шифрования некоторых из ваших элементов, однако у приложения сейчас нет к ним доступа. Скорее всего, они загрузятся при синхронизации.","Status":"Статус","Encryption is:":"Шифрование:","Back":"Назад","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Будет создан новый блокнот «%s» и в него будет импортирован файл «%s»","Please create a notebook first.":"Сначала создайте блокнот.","Please create a notebook first":"Сначала создайте блокнот","Notebook title:":"Название блокнота:","Add or remove tags:":"Добавить или удалить теги:","Separate each tag by a comma.":"Каждый тег отделяется запятой.","Rename notebook:":"Переименовать блокнот:","Set alarm:":"Установить напоминание:","Search":"Поиск","Layout":"Вид","Some items cannot be synchronised.":"Некоторые элементы не могут быть синхронизированы.","View them now":"Просмотреть их сейчас","Some items cannot be decrypted.":"Некоторые элементы не могут быть расшифрованы.","Set the password":"Установить пароль","Add or remove tags":"Добавить или удалить теги","Switch between note and to-do type":"Переключить тип между заметкой и задачей","Delete":"Удалить","Delete notes?":"Удалить заметки?","No notes in here. Create one by clicking on \"New note\".":"Здесь нет заметок. Создайте новую нажатием на «Новая заметка».","There is currently no notebook. Create one by clicking on \"New notebook\".":"Сейчас здесь нет блокнотов. Создайте новый нажав «Новый блокнот».","Open...":"Открыть...","Save as...":"Сохранить как...","Unsupported link or message: %s":"Неподдерживаемая ссыка или сообщение: %s","Attach file":"Прикрепить файл","Tags":"Теги","Set alarm":"Установить напоминание","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Заметка пуста. Нажмите на «%s», чтобы переключиться в редактор и отредактировать её.","to-do":"задача","note":"заметка","Creating new %s...":"Создание новой %s...","Refresh":"Обновить","Clear":"Очистить","OneDrive Login":"Вход в OneDrive","Options":"Настройки","Synchronisation Status":"Статус синхронизации","Encryption Options":"Настройки шифрования","Remove this tag from all the notes?":"Убрать этот тег со всех заметок?","Remove this search from the sidebar?":"Убрать этот запрос с боковой панели?","Rename":"Переименовать","Synchronise":"Синхронизировать","Notebooks":"Блокноты","Searches":"Запросы","Please select where the sync status should be exported to":"Выберите, куда должен быть экспортирован статус синхронизации","Usage: %s":"Использование: %s","Unknown flag: %s":"Неизвестный флаг: %s","File system":"Файловая система","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (только для тестирования)","WebDAV":"WebDAV","Unknown log level: %s":"Неизвестный уровень лога: %s","Unknown level ID: %s":"Неизвестный ID уровня: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Не удалось обновить токен: отсутствуют данные аутентификации. Повторный запуск синхронизации может решить проблему.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Не удалось синхронизироваться с OneDrive.\n\nТакая ошибка часто возникает при использовании OneDrive для бизнеса, который, к сожалению, не поддерживается.\n\nПожалуйста, рассмотрите возможность использования обычного аккаунта OneDrive.","Cannot access %s":"Не удалось получить доступ %s","Created local items: %d.":"Создано локальных элементов: %d.","Updated local items: %d.":"Обновлено локальных элементов: %d.","Created remote items: %d.":"Создано удалённых элементов: %d.","Updated remote items: %d.":"Обновлено удалённых элементов: %d.","Deleted local items: %d.":"Удалено локальных элементов: %d.","Deleted remote items: %d.":"Удалено удалённых элементов: %d.","Fetched items: %d/%d.":"Получено элементов: %d/%d.","State: %s.":"State: %s.","Cancelling...":"Отмена...","Completed: %s":"Завершено: %s","Last error: %s":"Последняя ошибка: %s","Idle":"Простой","In progress":"Выполнение","Synchronisation is already in progress. State: %s":"Синхронизация уже выполняется. Статус: %s","Encrypted":"Зашифровано","Encrypted items cannot be modified":"Зашифрованные элементы не могут быть изменены","Conflicts":"Конфликты","A notebook with this title already exists: \"%s\"":"Блокнот с таким названием уже существует: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"Блокнот не может быть назван «%s», это зарезервированное название.","Untitled":"Без имени","This note does not have geolocation information.":"Эта заметка не содержит информации о геолокации.","Cannot copy note to \"%s\" notebook":"Не удалось скопировать заметку в блокнот «%s»","Cannot move note to \"%s\" notebook":"Не удалось переместить заметку в блокнот «%s»","Text editor":"Текстовый редактор","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Редактор, в котором будут открываться заметки. Если не задан, будет произведена попытка автоматического определения редактора по умолчанию.","Language":"Язык","Date format":"Формат даты","Time format":"Формат времени","Theme":"Тема","Light":"Светлая","Dark":"Тёмная","Uncompleted to-dos on top":"Незавершённые задачи сверху","Sort notes by":"Сортировать заметки по","Reverse sort order":"Обратный порядок сортировки","Save geo-location with notes":"Сохранять информацию о геолокации в заметках","When creating a new to-do:":"При создании новой задачи:","Focus title":"Фокус на названии","Focus body":"Фокус на содержимом","When creating a new note:":"При создании новой заметки:","Show tray icon":"Показывать иконку в панели задач","Global zoom percentage":"Глобальный масштаб в процентах","Editor font family":"Семейство шрифтов редактора","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"Название шрифта не проверяется. Если оно указано некорректно или не задано, будет использоваться стандартный моноширинный шрифт.","Automatically update the application":"Автоматически обновлять приложение","Synchronisation interval":"Интервал синхронизации","%d minutes":"%d минут","%d hour":"%d час","%d hours":"%d часов","Show advanced options":"Показывать расширенные настройки","Synchronisation target":"Цель синхронизации","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Цель синхронизации. Каждая цель синхронизации может иметь дополнительные параметры, именованные как «sync.NUM.NAME» (все описаны ниже).","Directory to synchronise with (absolute path)":"Каталог синхронизации (абсолютный путь)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Путь для синхронизации при включённой синхронизации с файловой системой. См. `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Имя пользователя Nextcloud","Nextcloud password":"Пароль Nextcloud","WebDAV URL":"URL WebDAV","WebDAV username":"Имя пользователя WebDAV","WebDAV password":"Пароль WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Неверное значение параметра: «%s». Доступные значения: %s.","Joplin Export File":"Файл экспорта Joplin","Markdown":"Markdown","Joplin Export Directory":"Папка экспорта Joplin","Evernote Export File":"Файл экспорта Evernote","Directory":"Директория","Cannot load \"%s\" module for format \"%s\"":"Не удалось загрузить модуль «%s» для формата «%s»","Please specify import format for %s":"Пожалуйста, укажите формат импорта для %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Этот элемент сейчас зашифрован: %s «%s». Пожалуйста, дождитесь расшифровки всех элементов и попробуйте снова.","There is no data to export.":"Нет данных для экспорта.","Please specify the notebook where the notes should be imported to.":"Пожалуйста, укажите блокнот, в который должны быть импортированы заметки.","Items that cannot be synchronised":"Элементы, которые не могут быть синхронизированы","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Эти элементы будут оставаться на устройстве, но не будут загружены в целевой объект синхронизации. Чтобы найти эти элементы, воспользуйтесь поиском по названию или ID (который указывается в скобках выше).","Sync status (synced items / total items)":"Статус синхронизации (элементов синхронизировано/всего)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Всего: %d/%d","Conflicted: %d":"Конфликтующих: %d","To delete: %d":"К удалению: %d","Folders":"Папки","%s: %d notes":"%s: %d заметок","Coming alarms":"Грядущие напоминания","On %s: %s":"В %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Сейчас здесь нет заметок. Создаёте новую, нажав кнопку (+).","Delete these notes?":"Удалить эти заметки?","Log":"Лог","Export Debug Report":"Экспортировать отладочный отчёт","Encryption Config":"Конфигурация шифрования","Configuration":"Конфигурация","Move to notebook...":"Переместить в блокнот...","Move %d notes to notebook \"%s\"?":"Переместить %d заметок в блокнот «%s»?","Press to set the decryption password.":"Нажмите, чтобы установить пароль для расшифровки.","Select date":"Выбрать дату","Confirm":"Подтвердить","Cancel synchronisation":"Отменить синхронизацию","Joplin website":"Сайт Joplin","Master Key %s":"Мастер-ключ %s","Created: %s":"Создано: %s","Password:":"Пароль:","Password cannot be empty":"Пароль не может быть пустым","Enable":"Включено","The notebook could not be saved: %s":"Не удалось сохранить блокнот: %s","Edit notebook":"Редактировать блокнот","Show all":"Показать всё","Errors only":"Только ошибки","This note has been modified:":"Эта заметка была изменена:","Save changes":"Сохранить изменения","Discard changes":"Отменить изменения","Unsupported image type: %s":"Неподдерживаемый формат изображения: %s","Attach photo":"Прикрепить фото","Attach any file":"Прикрепить любой файл","Convert to note":"Преобразовать в заметку","Convert to todo":"Преобразовать в задачу","Hide metadata":"Скрыть метаданные","Show metadata":"Показать метаданные","View on map":"Посмотреть на карте","Delete notebook":"Удалить блокнот","Login with OneDrive":"Войти в OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Нажмите на кнопку (+) для создания новой заметки или нового блокнота. Нажмите на боковое меню для доступа к вашим существующим блокнотам.","You currently have no notebook. Create one by clicking on (+) button.":"У вас сейчас нет блокнота. Создайте его нажатием на кнопку (+).","Welcome":"Добро пожаловать"}
        \ No newline at end of file
        diff --git a/ElectronClient/app/locales/zh_CN.json b/ElectronClient/app/locales/zh_CN.json
        index 9e28df4c59..7ff9c6c407 100644
        --- a/ElectronClient/app/locales/zh_CN.json
        +++ b/ElectronClient/app/locales/zh_CN.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"移除相关笔记的标签后才可删除此标签。","Please select the note or notebook to be deleted first.":"请选择最先删除的笔记或笔记本。","Press Ctrl+D or type \"exit\" to exit the application":"按Ctrl+D或输入\"exit\"退出程序","More than one item match \"%s\". Please narrow down your query.":"有多个项目与\"%s\"匹配,请缩小您的查询范围。","No notebook selected.":"未选择笔记本。","No notebook has been specified.":"无指定笔记本。","Y":"是","n":"否","N":"否","y":"是","Cancelling background synchronisation... Please wait.":"正在取消背景同步...请稍后。","No such command: %s":"无以下命令:%s","The command \"%s\" is only available in GUI mode":"命令\"%s\"仅在GUI模式下可用","Cannot change encrypted item":"","Missing required argument: %s":"缺失所需参数:%s","%s: %s":"%s: %s","Your choice: ":"您的选择: ","Invalid answer: %s":"此答案无效:%s","Attaches the given file to the note.":"给笔记附加给定文件。","Cannot find \"%s\".":"无法找到 \"%s\"。","Displays the given note.":"显示给定笔记。","Displays the complete information about note.":"显示关于笔记的全部信息。","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"获取或设置配置变量。若未提供[value],则会显示[name]的值。若[name]及[value]都未提供,则列出当前配置。","Also displays unset and hidden config variables.":"同时显示未设置的与隐藏的配置变量。","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"复制符合的笔记至[notebook]。若无指定笔记本则在当前笔记本内复制该笔记。","Marks a to-do as done.":"标记待办事项为完成。","Note is not a to-do: \"%s\"":"笔记非待办事项:\"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"已禁止","Encryption is: %s":"","Edit note.":"编辑笔记。","No text editor is defined. Please set it using `config editor `":"未定义文本编辑器。请通过 `config editor `设置。","No active notebook.":"无活动笔记本。","Note does not exist: \"%s\". Create it?":"此笔记不存在:\"%s\"。是否创建?","Starting to edit note. Close the editor to get back to the prompt.":"开始编辑笔记。关闭编辑器则返回提示。","Error opening note in editor: %s":"","Note has been saved.":"笔记已被保存。","Exits the application.":"退出程序。","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"仅导出给定笔记。","Exports only the given notebook.":"仅导出给定笔记本。","Displays a geolocation URL for the note.":"显示此笔记的地理定位URL地址。","Displays usage information.":"显示使用信息。","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"快捷键在CLI模式下不可用。","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"可用命令为:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"在任意命令中,笔记或笔记本可通过其标题或ID来引用,也可使用代表当前所选笔记或笔记本的变量`$n`与`$b`。`$c`可用于引用当前所选项目。","To move from one pane to another, press Tab or Shift+Tab.":"按Tab或Shift+Tab切换面板。","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"通过上下左右与page up/down键来滚动列表与文本区域(包含此控制台)。","To maximise/minimise the console, press \"TC\".":"按\"TC\"最大化/最小化控制台。","To enter command line mode, press \":\"":"按\":\"键进入命令行模式","To exit command line mode, press ESCAPE":"按ESC键退出命令行模式","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"不再要求确认。","Found: %d.":"已找到:%d条。","Created: %d.":"已创建:%d条。","Updated: %d.":"已更新:%d条。","Skipped: %d.":"已跳过:%d条。","Resources: %d.":"资源:%d。","Tagged: %d.":"已标签:%d条。","Importing notes...":"正在导入笔记...","The notes have been imported: %s":"以下笔记已被导入:%s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"显示当前笔记本的笔记。使用`ls /`显示笔记本列表。","Displays only the first top  notes.":"只显示最上方的条笔记。","Sorts the item by  (eg. title, updated_time, created_time).":"使用排序项目(例标题、更新日期、创建日期)。","Reverses the sorting order.":"反转排序顺序。","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"仅显示指定格式的项目。`n`代表笔记,`t`代表待办事项,`nt`代表笔记和待办事项(例,`-tt`则会仅显示待办事项,`-ttd`则会显示笔记和待办事项)。","Either \"text\" or \"json\"":"\"文本\"或\"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"使用长列表格式。格式为ID, NOTE_COUNT(笔记本), DATE, TODO_CHECKED(待办事项),TITLE","Please select a notebook first.":"请先选择笔记本。","Creates a new notebook.":"创建新笔记本。","Creates a new note.":"创建新笔记。","Notes can only be created within a notebook.":"笔记只能创建于笔记本内。","Creates a new to-do.":"创建新待办事项。","Moves the notes matching  to [notebook].":"移动符合的笔记至[notebook]。","Renames the given  (note or notebook) to .":"重命名给定的(笔记或笔记本)至。","Deletes the given notebook.":"删除给定笔记本。","Deletes the notebook without asking for confirmation.":"删除笔记本(不要求确认)。","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"删除符合的笔记。","Deletes the notes without asking for confirmation.":"删除笔记(不要求确认)。","%d notes match this pattern. Delete them?":"%d条笔记符合此模式。是否删除它们?","Delete note?":"是否删除笔记?","Searches for the given  in all the notes.":"在所有笔记内搜索给定的。","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"显示关于笔记与笔记本的概况。","Synchronises with remote storage.":"与远程储存空间同步。","Sync to provided target (defaults to sync.target config value)":"同步至所提供的目标(默认为同步目标配置值)","Authentication was not completed (did not receive an authentication token).":"认证未完成(未收到认证令牌)。","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"同步正在进行中。","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"锁定文件已被保留。若当前没有任何正在进行的同步,您可以在\"%s\"删除锁定文件并继续操作。","Synchronisation target: %s (%s)":"同步目标:%s (%s)","Cannot initialize synchroniser.":"无法初始化同步。","Starting synchronisation...":"开始同步...","Cancelling... Please wait.":"正在取消...请稍后。"," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":"可添加\"add\"、删除\"remove\",或列出\"list\"于[note],用来指定或移除[tag],也可以列出于[tag]相关的笔记。`tag list`命令可用于列出所有标签。","Invalid command: \"%s\"":"无效命令:\"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"可被切换\"toggle\"或清除\"clear\"。用\"toggle\"可使给定待办事项在已完成与未完成两个状态下切换(若目标为常规笔记,它将被转换成待办事项)。用\"clear\"可把该待办事项转换回常规笔记。","Marks a to-do as non-completed.":"标记待办事项为未完成。","Switches to [notebook] - all further operations will happen within this notebook.":"切换至[notebook] - 所有进一步处理将在此笔记本中进行。","Displays version information":"显示版本信息。","%s %s (%s)":"%s %s (%s)","Enum":"枚举","Type: %s.":"格式:%s。","Possible values: %s.":"可用值: %s。","Default: %s":"默认值: %s","Possible keys/values:":"可用键/值:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"严重错误:","The application has been authorised - you may now close this browser tab.":"此程序已被授权 - 您可以关闭此浏览页面了。","The application has been successfully authorised.":"此程序已被成功授权。","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"请用网页浏览器打开以下URL来认证此程序。此程序将创建\"Apps/Joplin\"目录,并仅在此目录内写入及读取文件。程序对于在该目录外的文件或任何个人数据没有任何访问权限。同时也不会与第三方共享任何数据。","Search:":"搜索:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"文件","New note":"新笔记","New to-do":"新待办事项","New notebook":"新笔记本","Import":"导入","Export":"Export","Print":"","Hide %s":"","Quit":"退出","Edit":"编辑","Copy":"复制","Cut":"剪切","Paste":"粘贴","Search in all the notes":"在所有笔记内搜索","View":"","Toggle editor layout":"","Tools":"工具","Synchronisation status":"同步状态","Encryption options":"","General Options":"General Options","Help":"帮助","Website and documentation":"网站与文档","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"关于Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"确认","Cancel":"取消","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"状态","Encryption is:":"","Back":"返回","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"将创建新笔记本\"%s\"并将文件\"%s\"导入至其中","Please create a notebook first.":"请先创建笔记本。","Please create a notebook first":"请先创建笔记本","Notebook title:":"笔记本标题:","Add or remove tags:":"添加或删除标签:","Separate each tag by a comma.":"用逗号\",\"分开每个标签。","Rename notebook:":"重命名笔记本:","Set alarm:":"设置提醒:","Search":"搜索","Layout":"布局","Some items cannot be synchronised.":"一些项目无法被同步。","View them now":"马上查看","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"添加或删除标签","Switch between note and to-do type":"在笔记和待办事项类型之间切换","Delete":"删除","Delete notes?":"是否删除笔记?","No notes in here. Create one by clicking on \"New note\".":"此处无笔记。点击\"新笔记\"创建新笔记。","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"不支持的链接或信息:%s","Attach file":"附加文件","Tags":"标签","Set alarm":"设置提醒","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"刷新","Clear":"清除","OneDrive Login":"登陆OneDrive","Options":"选项","Synchronisation Status":"同步状态","Encryption Options":"","Remove this tag from all the notes?":"从所有笔记中删除此标签?","Remove this search from the sidebar?":"从侧栏中删除此项搜索历史?","Rename":"重命名","Synchronise":"同步","Notebooks":"笔记本","Searches":"搜索历史","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"使用:%s","Unknown flag: %s":"未知标记:%s","File system":"文件系统","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive开发员(仅测试用)","WebDAV":"","Unknown log level: %s":"未知日志level:%s","Unknown level ID: %s":"未知 level ID:%s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"无法刷新令牌:缺失认证数据。请尝试重新启动同步。","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"无法与OneDrive同步。\n\n此错误经常在使用OneDrive for Business时出现。很可惜我们无法支持此服务。\n\n请您考虑使用常规的OneDrive账号。","Cannot access %s":"无法访问%s","Created local items: %d.":"已新建本地项目: %d。","Updated local items: %d.":"已更新本地项目: %d。","Created remote items: %d.":"已新建远程项目: %d。","Updated remote items: %d.":"已更新远程项目: %d。","Deleted local items: %d.":"已删除本地项目: %d。","Deleted remote items: %d.":"已删除远程项目: %d。","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"状态:\"%s\"。","Cancelling...":"正在取消...","Completed: %s":"已完成:\"%s\"","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"同步正在进行中。状态:%s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"冲突","A notebook with this title already exists: \"%s\"":"以此标题命名的笔记本已存在:\"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"笔记本无法被命名为\"%s\",此标题为保留标题。","Untitled":"无标题","This note does not have geolocation information.":"此笔记不包含地理定位信息。","Cannot copy note to \"%s\" notebook":"无法复制笔记至\"%s\"笔记本","Cannot move note to \"%s\" notebook":"无法移动笔记至\"%s\"笔记本","Text editor":"文本编辑器","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"将用于打开笔记的编辑器。若未提供,将自动尝试检测默认编辑器。","Language":"语言","Date format":"日期格式","Time format":"时间格式","Theme":"主题","Light":"浅色","Dark":"深色","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"保存笔记时同时保存地理定位信息","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"自动更新此程序","Synchronisation interval":"同步间隔","%d minutes":"%d分","%d hour":"%d小时","%d hours":"%d小时","Show advanced options":"显示高级选项","Synchronisation target":"同步目标","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"当文件系统同步开启时的同步路径。参考`sync.target`。","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"无效的选项值:\"%s\"。可用值为:%s。","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"项目无法被同步。","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"同步状态(已同步项目/项目总数)","%s: %d/%d":"%s:%d/%d条","Total: %d/%d":"总数:%d/%d条","Conflicted: %d":"有冲突的:%d条","To delete: %d":"将删除:%d条","Folders":"文件夹","%s: %d notes":"%s: %d条笔记","Coming alarms":"临近提醒","On %s: %s":"%s:%s","There are currently no notes. Create one by clicking on the (+) button.":"当前无笔记。点击(+)创建新笔记。","Delete these notes?":"是否删除这些笔记?","Log":"日志","Export Debug Report":"导出调试报告","Encryption Config":"","Configuration":"配置","Move to notebook...":"移动至笔记本...","Move %d notes to notebook \"%s\"?":"移动%d条笔记至笔记本\"%s\"?","Press to set the decryption password.":"","Select date":"选择日期","Confirm":"确认","Cancel synchronisation":"取消同步","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"此笔记本无法保存:%s","Edit notebook":"编辑笔记本","Show all":"","Errors only":"","This note has been modified:":"此笔记已被修改:","Save changes":"保存更改","Discard changes":"放弃更改","Unsupported image type: %s":"不支持的图片格式:%s","Attach photo":"附加照片","Attach any file":"附加任何文件","Convert to note":"转换至笔记","Convert to todo":"转换至待办事项","Hide metadata":"隐藏元数据","Show metadata":"显示元数据","View on map":"查看地图","Delete notebook":"删除笔记本","Login with OneDrive":"用OneDrive登陆","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"点击(+)按钮创建新笔记或笔记本。点击侧边菜单来访问您现有的笔记本。","You currently have no notebook. Create one by clicking on (+) button.":"您当前没有任何笔记本。点击(+)按钮创建新笔记本。","Welcome":"欢迎"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"移除相关笔记的标签后才可删除此标签。","Please select the note or notebook to be deleted first.":"请选择最先删除的笔记或笔记本。","Press Ctrl+D or type \"exit\" to exit the application":"按Ctrl+D或输入\"exit\"退出程序","More than one item match \"%s\". Please narrow down your query.":"有多个项目与\"%s\"匹配,请缩小您的查询范围。","No notebook selected.":"未选择笔记本。","No notebook has been specified.":"无指定笔记本。","Y":"是","n":"否","N":"否","y":"是","Cancelling background synchronisation... Please wait.":"正在取消背景同步...请稍后。","No such command: %s":"无以下命令:%s","The command \"%s\" is only available in GUI mode":"命令\"%s\"仅在GUI模式下可用","Cannot change encrypted item":"","Missing required argument: %s":"缺失所需参数:%s","%s: %s":"%s: %s","Your choice: ":"您的选择: ","Invalid answer: %s":"此答案无效:%s","Attaches the given file to the note.":"给笔记附加给定文件。","Cannot find \"%s\".":"无法找到 \"%s\"。","Displays the given note.":"显示给定笔记。","Displays the complete information about note.":"显示关于笔记的全部信息。","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"获取或设置配置变量。若未提供[value],则会显示[name]的值。若[name]及[value]都未提供,则列出当前配置。","Also displays unset and hidden config variables.":"同时显示未设置的与隐藏的配置变量。","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"复制符合的笔记至[notebook]。若无指定笔记本则在当前笔记本内复制该笔记。","Marks a to-do as done.":"标记待办事项为完成。","Note is not a to-do: \"%s\"":"笔记非待办事项:\"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"已禁止","Encryption is: %s":"","Edit note.":"编辑笔记。","No text editor is defined. Please set it using `config editor `":"未定义文本编辑器。请通过 `config editor `设置。","No active notebook.":"无活动笔记本。","Note does not exist: \"%s\". Create it?":"此笔记不存在:\"%s\"。是否创建?","Starting to edit note. Close the editor to get back to the prompt.":"开始编辑笔记。关闭编辑器则返回提示。","Error opening note in editor: %s":"","Note has been saved.":"笔记已被保存。","Exits the application.":"退出程序。","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"仅导出给定笔记。","Exports only the given notebook.":"仅导出给定笔记本。","Displays a geolocation URL for the note.":"显示此笔记的地理定位URL地址。","Displays usage information.":"显示使用信息。","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"快捷键在CLI模式下不可用。","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"可用命令为:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"在任意命令中,笔记或笔记本可通过其标题或ID来引用,也可使用代表当前所选笔记或笔记本的变量`$n`与`$b`。`$c`可用于引用当前所选项目。","To move from one pane to another, press Tab or Shift+Tab.":"按Tab或Shift+Tab切换面板。","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"通过上下左右与page up/down键来滚动列表与文本区域(包含此控制台)。","To maximise/minimise the console, press \"TC\".":"按\"TC\"最大化/最小化控制台。","To enter command line mode, press \":\"":"按\":\"键进入命令行模式","To exit command line mode, press ESCAPE":"按ESC键退出命令行模式","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"不再要求确认。","Found: %d.":"已找到:%d条。","Created: %d.":"已创建:%d条。","Updated: %d.":"已更新:%d条。","Skipped: %d.":"已跳过:%d条。","Resources: %d.":"资源:%d。","Tagged: %d.":"已标签:%d条。","Importing notes...":"正在导入笔记...","The notes have been imported: %s":"以下笔记已被导入:%s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"显示当前笔记本的笔记。使用`ls /`显示笔记本列表。","Displays only the first top  notes.":"只显示最上方的条笔记。","Sorts the item by  (eg. title, updated_time, created_time).":"使用排序项目(例标题、更新日期、创建日期)。","Reverses the sorting order.":"反转排序顺序。","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"仅显示指定格式的项目。`n`代表笔记,`t`代表待办事项,`nt`代表笔记和待办事项(例,`-tt`则会仅显示待办事项,`-ttd`则会显示笔记和待办事项)。","Either \"text\" or \"json\"":"\"文本\"或\"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"使用长列表格式。格式为ID, NOTE_COUNT(笔记本), DATE, TODO_CHECKED(待办事项),TITLE","Please select a notebook first.":"请先选择笔记本。","Creates a new notebook.":"创建新笔记本。","Creates a new note.":"创建新笔记。","Notes can only be created within a notebook.":"笔记只能创建于笔记本内。","Creates a new to-do.":"创建新待办事项。","Moves the notes matching  to [notebook].":"移动符合的笔记至[notebook]。","Renames the given  (note or notebook) to .":"重命名给定的(笔记或笔记本)至。","Deletes the given notebook.":"删除给定笔记本。","Deletes the notebook without asking for confirmation.":"删除笔记本(不要求确认)。","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"删除符合的笔记。","Deletes the notes without asking for confirmation.":"删除笔记(不要求确认)。","%d notes match this pattern. Delete them?":"%d条笔记符合此模式。是否删除它们?","Delete note?":"是否删除笔记?","Searches for the given  in all the notes.":"在所有笔记内搜索给定的。","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"显示关于笔记与笔记本的概况。","Synchronises with remote storage.":"与远程储存空间同步。","Sync to provided target (defaults to sync.target config value)":"同步至所提供的目标(默认为同步目标配置值)","Authentication was not completed (did not receive an authentication token).":"认证未完成(未收到认证令牌)。","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"同步正在进行中。","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"锁定文件已被保留。若当前没有任何正在进行的同步,您可以在\"%s\"删除锁定文件并继续操作。","Synchronisation target: %s (%s)":"同步目标:%s (%s)","Cannot initialize synchroniser.":"无法初始化同步。","Starting synchronisation...":"开始同步...","Cancelling... Please wait.":"正在取消...请稍后。"," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":"可添加\"add\"、删除\"remove\",或列出\"list\"于[note],用来指定或移除[tag],也可以列出于[tag]相关的笔记。`tag list`命令可用于列出所有标签。","Invalid command: \"%s\"":"无效命令:\"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"可被切换\"toggle\"或清除\"clear\"。用\"toggle\"可使给定待办事项在已完成与未完成两个状态下切换(若目标为常规笔记,它将被转换成待办事项)。用\"clear\"可把该待办事项转换回常规笔记。","Marks a to-do as non-completed.":"标记待办事项为未完成。","Switches to [notebook] - all further operations will happen within this notebook.":"切换至[notebook] - 所有进一步处理将在此笔记本中进行。","Displays version information":"显示版本信息。","%s %s (%s)":"%s %s (%s)","Enum":"枚举","Type: %s.":"格式:%s。","Possible values: %s.":"可用值: %s。","Default: %s":"默认值: %s","Possible keys/values:":"可用键/值:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"严重错误:","The application has been authorised - you may now close this browser tab.":"此程序已被授权 - 您可以关闭此浏览页面了。","The application has been successfully authorised.":"此程序已被成功授权。","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"请用网页浏览器打开以下URL来认证此程序。此程序将创建\"Apps/Joplin\"目录,并仅在此目录内写入及读取文件。程序对于在该目录外的文件或任何个人数据没有任何访问权限。同时也不会与第三方共享任何数据。","Search:":"搜索:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"文件","New note":"新笔记","New to-do":"新待办事项","New notebook":"新笔记本","Import":"导入","Export":"Export","Print":"","Hide %s":"","Quit":"退出","Edit":"编辑","Copy":"复制","Cut":"剪切","Paste":"粘贴","Search in all the notes":"在所有笔记内搜索","View":"","Toggle editor layout":"","Tools":"工具","Synchronisation status":"同步状态","Encryption options":"","General Options":"General Options","Help":"帮助","Website and documentation":"网站与文档","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"关于Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"确认","Cancel":"取消","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"状态","Encryption is:":"","Back":"返回","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"将创建新笔记本\"%s\"并将文件\"%s\"导入至其中","Please create a notebook first.":"请先创建笔记本。","Please create a notebook first":"请先创建笔记本","Notebook title:":"笔记本标题:","Add or remove tags:":"添加或删除标签:","Separate each tag by a comma.":"用逗号\",\"分开每个标签。","Rename notebook:":"重命名笔记本:","Set alarm:":"设置提醒:","Search":"搜索","Layout":"布局","Some items cannot be synchronised.":"一些项目无法被同步。","View them now":"马上查看","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"添加或删除标签","Switch between note and to-do type":"在笔记和待办事项类型之间切换","Delete":"删除","Delete notes?":"是否删除笔记?","No notes in here. Create one by clicking on \"New note\".":"此处无笔记。点击\"新笔记\"创建新笔记。","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"不支持的链接或信息:%s","Attach file":"附加文件","Tags":"标签","Set alarm":"设置提醒","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"刷新","Clear":"清除","OneDrive Login":"登陆OneDrive","Options":"选项","Synchronisation Status":"同步状态","Encryption Options":"","Remove this tag from all the notes?":"从所有笔记中删除此标签?","Remove this search from the sidebar?":"从侧栏中删除此项搜索历史?","Rename":"重命名","Synchronise":"同步","Notebooks":"笔记本","Searches":"搜索历史","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"使用:%s","Unknown flag: %s":"未知标记:%s","File system":"文件系统","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive开发员(仅测试用)","WebDAV":"","Unknown log level: %s":"未知日志level:%s","Unknown level ID: %s":"未知 level ID:%s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"无法刷新令牌:缺失认证数据。请尝试重新启动同步。","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"无法与OneDrive同步。\n\n此错误经常在使用OneDrive for Business时出现。很可惜我们无法支持此服务。\n\n请您考虑使用常规的OneDrive账号。","Cannot access %s":"无法访问%s","Created local items: %d.":"已新建本地项目: %d。","Updated local items: %d.":"已更新本地项目: %d。","Created remote items: %d.":"已新建远程项目: %d。","Updated remote items: %d.":"已更新远程项目: %d。","Deleted local items: %d.":"已删除本地项目: %d。","Deleted remote items: %d.":"已删除远程项目: %d。","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: %s.":"State: %s.","Cancelling...":"正在取消...","Completed: %s":"已完成:\"%s\"","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"同步正在进行中。状态:%s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"冲突","A notebook with this title already exists: \"%s\"":"以此标题命名的笔记本已存在:\"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"笔记本无法被命名为\"%s\",此标题为保留标题。","Untitled":"无标题","This note does not have geolocation information.":"此笔记不包含地理定位信息。","Cannot copy note to \"%s\" notebook":"无法复制笔记至\"%s\"笔记本","Cannot move note to \"%s\" notebook":"无法移动笔记至\"%s\"笔记本","Text editor":"文本编辑器","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"将用于打开笔记的编辑器。若未提供,将自动尝试检测默认编辑器。","Language":"语言","Date format":"日期格式","Time format":"时间格式","Theme":"主题","Light":"浅色","Dark":"深色","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"保存笔记时同时保存地理定位信息","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"自动更新此程序","Synchronisation interval":"同步间隔","%d minutes":"%d分","%d hour":"%d小时","%d hours":"%d小时","Show advanced options":"显示高级选项","Synchronisation target":"同步目标","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"当文件系统同步开启时的同步路径。参考`sync.target`。","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"无效的选项值:\"%s\"。可用值为:%s。","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"项目无法被同步。","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"同步状态(已同步项目/项目总数)","%s: %d/%d":"%s:%d/%d条","Total: %d/%d":"总数:%d/%d条","Conflicted: %d":"有冲突的:%d条","To delete: %d":"将删除:%d条","Folders":"文件夹","%s: %d notes":"%s: %d条笔记","Coming alarms":"临近提醒","On %s: %s":"%s:%s","There are currently no notes. Create one by clicking on the (+) button.":"当前无笔记。点击(+)创建新笔记。","Delete these notes?":"是否删除这些笔记?","Log":"日志","Export Debug Report":"导出调试报告","Encryption Config":"","Configuration":"配置","Move to notebook...":"移动至笔记本...","Move %d notes to notebook \"%s\"?":"移动%d条笔记至笔记本\"%s\"?","Press to set the decryption password.":"","Select date":"选择日期","Confirm":"确认","Cancel synchronisation":"取消同步","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"此笔记本无法保存:%s","Edit notebook":"编辑笔记本","Show all":"","Errors only":"","This note has been modified:":"此笔记已被修改:","Save changes":"保存更改","Discard changes":"放弃更改","Unsupported image type: %s":"不支持的图片格式:%s","Attach photo":"附加照片","Attach any file":"附加任何文件","Convert to note":"转换至笔记","Convert to todo":"转换至待办事项","Hide metadata":"隐藏元数据","Show metadata":"显示元数据","View on map":"查看地图","Delete notebook":"删除笔记本","Login with OneDrive":"用OneDrive登陆","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"点击(+)按钮创建新笔记或笔记本。点击侧边菜单来访问您现有的笔记本。","You currently have no notebook. Create one by clicking on (+) button.":"您当前没有任何笔记本。点击(+)按钮创建新笔记本。","Welcome":"欢迎"}
        \ No newline at end of file
        diff --git a/README.md b/README.md
        index b191f58cc0..91cb007c0f 100644
        --- a/README.md
        +++ b/README.md
        @@ -228,18 +228,18 @@ Current translations:
         
            |  Language  |  Po File  |  Last translator  |  Percent done
         ---|---|---|---|---
        -![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/es/basque_country.png)  |  Basque  |  [eu](https://github.com/laurent22/joplin/blob/master/CliClient/locales/eu.po)  |  juan.abasolo@ehu.eus  |  80%
        -![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/hr.png)  |  Croatian  |  [hr_HR](https://github.com/laurent22/joplin/blob/master/CliClient/locales/hr_HR.po)  |  Hrvoje Mandić   |  65%
        -![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/de.png)  |  Deutsch  |  [de_DE](https://github.com/laurent22/joplin/blob/master/CliClient/locales/de_DE.po)  |  Tobias Strobel   |  97%
        +![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/es/basque_country.png)  |  Basque  |  [eu](https://github.com/laurent22/joplin/blob/master/CliClient/locales/eu.po)  |  juan.abasolo@ehu.eus  |  79%
        +![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/hr.png)  |  Croatian  |  [hr_HR](https://github.com/laurent22/joplin/blob/master/CliClient/locales/hr_HR.po)  |  Hrvoje Mandić   |  64%
        +![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/de.png)  |  Deutsch  |  [de_DE](https://github.com/laurent22/joplin/blob/master/CliClient/locales/de_DE.po)  |  Tobias Grasse   |  99%
         ![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/gb.png)  |  English  |  [en_GB](https://github.com/laurent22/joplin/blob/master/CliClient/locales/en_GB.po)  |    |  100%
        -![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/es.png)  |  Español  |  [es_ES](https://github.com/laurent22/joplin/blob/master/CliClient/locales/es_ES.po)  |  Fernando Martín   |  100%
        -![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/fr.png)  |  Français  |  [fr_FR](https://github.com/laurent22/joplin/blob/master/CliClient/locales/fr_FR.po)  |  Laurent Cozic  |  100%
        +![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/es.png)  |  Español  |  [es_ES](https://github.com/laurent22/joplin/blob/master/CliClient/locales/es_ES.po)  |  Fernando Martín   |  99%
        +![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/fr.png)  |  Français  |  [fr_FR](https://github.com/laurent22/joplin/blob/master/CliClient/locales/fr_FR.po)  |  Laurent Cozic  |  99%
         ![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/it.png)  |  Italiano  |  [it_IT](https://github.com/laurent22/joplin/blob/master/CliClient/locales/it_IT.po)  |    |  66%
         ![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/be.png)  |  Nederlands  |  [nl_BE](https://github.com/laurent22/joplin/blob/master/CliClient/locales/nl_BE.po)  |    |  80%
         ![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/br.png)  |  Português (Brasil)  |  [pt_BR](https://github.com/laurent22/joplin/blob/master/CliClient/locales/pt_BR.po)  |  Renato Nunes Bastos   |  98%
        -![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/ru.png)  |  Русский  |  [ru_RU](https://github.com/laurent22/joplin/blob/master/CliClient/locales/ru_RU.po)  |  Artyom Karlov   |  100%
        +![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/ru.png)  |  Русский  |  [ru_RU](https://github.com/laurent22/joplin/blob/master/CliClient/locales/ru_RU.po)  |  Artyom Karlov   |  99%
         ![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/cn.png)  |  中文 (简体)  |  [zh_CN](https://github.com/laurent22/joplin/blob/master/CliClient/locales/zh_CN.po)  |  RCJacH   |  66%
        -![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/jp.png)  |  日本語  |  [ja_JP](https://github.com/laurent22/joplin/blob/master/CliClient/locales/ja_JP.po)  |    |  65%
        +![](https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/jp.png)  |  日本語  |  [ja_JP](https://github.com/laurent22/joplin/blob/master/CliClient/locales/ja_JP.po)  |    |  64%
         
         
         # Known bugs
        diff --git a/ReactNativeClient/locales/de_DE.json b/ReactNativeClient/locales/de_DE.json
        index b3b3261428..f12d792bd9 100644
        --- a/ReactNativeClient/locales/de_DE.json
        +++ b/ReactNativeClient/locales/de_DE.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"Um eine Markierung zu löschen, entferne diese bei allen damit verbundenen Notizen.","Please select the note or notebook to be deleted first.":"Wähle bitte zuerst eine Notiz oder ein Notizbuch aus, das gelöscht werden soll.","Press Ctrl+D or type \"exit\" to exit the application":"Drücke Strg+D oder tippe \"exit\" um das Programm zu verlassen","More than one item match \"%s\". Please narrow down your query.":"Mehr als eine Notiz stimmt mit \"%s\" überein. Bitte die Suche einschränken.","No notebook selected.":"Kein Notizbuch ausgewählt.","No notebook has been specified.":"Kein Notizbuch wurde ausgewählt.","Y":"J","n":"n","N":"N","y":"j","Cancelling background synchronisation... Please wait.":"Breche Hintergrund-Synchronisation ab... Bitte warten.","No such command: %s":"Ungültiger Befehl: %s","The command \"%s\" is only available in GUI mode":"Der Befehl \"%s\" ist nur im GUI Modus verfügbar","Cannot change encrypted item":"Kann verschlüsseltes Objekt nicht ändern","Missing required argument: %s":"Fehlendes erforderliches Argument: %s","%s: %s":"%s: %s","Your choice: ":"Deine Auswahl: ","Invalid answer: %s":"Ungültige Antwort: %s","Attaches the given file to the note.":"Hängt die ausgewählte Datei an die Notiz an.","Cannot find \"%s\".":"Kann \"%s\" nicht finden.","Displays the given note.":"Zeigt die jeweilige Notiz an.","Displays the complete information about note.":"Zeigt alle Informationen über die Notiz an.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Zeigt an oder stellt einen Optionswert. Wenn kein [Wert] angegeben ist, wird der Wert vom gegebenen [Namen] angezeigt. Wenn weder [Name] noch [Wert] gegeben sind, wird eine Liste der momentanen Konfiguration angezeigt.","Also displays unset and hidden config variables.":"Zeigt auch nicht gesetzte und versteckte Konfigurationsvariablen an.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Dupliziert die Notizen die mit  übereinstimmen in [Notizbuch]. Wenn kein Notizbuch angegeben ist, wird die Notiz in das aktuelle Notizbuch kopiert.","Marks a to-do as done.":"Markiert ein To-Do als erledigt.","Note is not a to-do: \"%s\"":"Notiz ist kein To-Do: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Verwaltet die E2EE-Konfiguration. Die Befehle lauten `enable`, `disable`, `decrypt`, `status` und `target-status`.","Enter master password:":"Master-Passwort eingeben:","Operation cancelled":"Vorgang abgebrochen","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Starte Entschlüsselung.... Bitte warten, da dies je nach Anzahl der betreffenden Objekte einige Minuten dauern kann.","Completed decryption.":"Entschlüsselung abgeschlossen.","Enabled":"Aktiviert","Disabled":"Deaktiviert","Encryption is: %s":"Verschlüsselung ist: %s","Edit note.":"Notiz bearbeiten.","No text editor is defined. Please set it using `config editor `":"Kein Texteditor definiert. Bitte lege einen mit `config editor ` fest","No active notebook.":"Kein aktives Notizbuch.","Note does not exist: \"%s\". Create it?":"Notiz \"%s\" existiert nicht. Soll sie erstellt werden?","Starting to edit note. Close the editor to get back to the prompt.":"Beginne die Notiz zu bearbeiten. Schließe das Textverarbeitungsprogramm, um zurück zum Terminal zu gelangen.","Error opening note in editor: %s":"Fehler beim Öffnen der Notiz im Editor: %s","Note has been saved.":"Die Notiz wurde gespeichert.","Exits the application.":"Beendet das Programm.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exportiert Joplin Dateien in den angegebenen Pfad. Standardmäßig wird die komplette Datenbank inklusive Notizbüchern, Notizen, Markierungen und Anhängen exportiert.","Destination format: %s":"Zielformat: %s","Exports only the given note.":"Exportiert nur die angegebene Notiz.","Exports only the given notebook.":"Exportiert nur das angegebene Notizbuch.","Displays a geolocation URL for the note.":"Zeigt die Standort-URL der Notiz an.","Displays usage information.":"Zeigt die Nutzungsstatistik an.","For information on how to customise the shortcuts please visit %s":"Für weitere Informationen über die Anpassung von Tastenkürzel besuche bitte %s","Shortcuts are not available in CLI mode.":"Tastenkürzel sind im CLI Modus nicht verfügbar.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Tippe `help [Befehl]` um weitere Informationen über einen Befehl zu erhalten oder tippe `help all` für die vollständigen Informationen zur Befehlsverwendung.","The possible commands are:":"Mögliche Befehle lauten:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In jedem Befehl können Notizen oder Notizbücher durch ihren Titel oder ihre ID spezifiziert werden, oder durch die Abkürzung `$n` oder `$b` um entweder das momentan ausgewählte Notizbuch oder die momentan ausgewählte Notiz auszuwählen. `$c` kann benutzt werden, um auf die momentane Auswahl zu verweisen.","To move from one pane to another, press Tab or Shift+Tab.":"Um von einem Fenster zu einem anderen zu wechseln, drücke Tab oder Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Benutze die Pfeiltasten und Bild hoch/runter um durch Listen und Texte zu scrollen (inklusive diesem Terminal).","To maximise/minimise the console, press \"TC\".":"Um das Terminal zu maximieren/minimieren, drücke \"TC\".","To enter command line mode, press \":\"":"Um den Kommandozeilen Modus aufzurufen, drücke \":\"","To exit command line mode, press ESCAPE":"Um den Kommandozeilen Modus zu beenden, drücke ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Um die komplette Liste aller verfügbaren Tastenkürzeln anzuzeigen, tippe `help keymap` ein","Imports data into Joplin.":"Importiert Daten in Joplin.","Source format: %s":"Quellformat: %s","Do not ask for confirmation.":"Nicht nach einer Bestätigung fragen.","Found: %d.":"Gefunden: %d.","Created: %d.":"Erstellt: %d.","Updated: %d.":"Aktualisiert: %d.","Skipped: %d.":"Übersprungen: %d.","Resources: %d.":"Anhänge: %d.","Tagged: %d.":"Markiert: %d.","Importing notes...":"Importiere Notizen...","The notes have been imported: %s":"Die Notizen wurden importiert: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Zeigt die Notizen im momentanen Notizbuch an. Benutze `ls /` um eine Liste aller Notizbücher anzuzeigen.","Displays only the first top  notes.":"Zeigt nur die ersten  Notizen an.","Sorts the item by  (eg. title, updated_time, created_time).":"Sortiert nach  ( z.B. Titel, Bearbeitungszeitpunkt, Erstellungszeitpunkt)","Reverses the sorting order.":"Dreht die Sortierreihenfolge um.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Zeigt nur bestimmte Item Typen an. Kann `n` für Notizen sein, `t` für To-Dos, oder `nt` für Notizen und To-Dos ( z.B. zeigt `-tt` nur To-Dos an, während `-ttd` Notizen und To-Dos anzeigt).","Either \"text\" or \"json\"":"Entweder \"text\" oder \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Verwende ausführliches Listen Format. Das Format lautet: ID, NOTIZEN_ANZAHL (für Notizbuch), DATUM, TODO_BEARBEITET (für To-Dos), TITEL","Please select a notebook first.":"Bitte wähle erst ein Notizbuch aus.","Creates a new notebook.":"Erstellt ein neues Notizbuch.","Creates a new note.":"Erstellt eine neue Notiz.","Notes can only be created within a notebook.":"Notizen können nur in einem Notizbuch erstellt werden.","Creates a new to-do.":"Erstellt ein neues To-Do.","Moves the notes matching  to [notebook].":"Verschiebt die Notizen, die mit  übereinstimmen, zu [Notizbuch]","Renames the given  (note or notebook) to .":"Benennt das angegebene  ( Notiz oder Notizbuch ) zu  um.","Deletes the given notebook.":"Löscht das ausgewählte Notizbuch.","Deletes the notebook without asking for confirmation.":"Löscht das Notizbuch, ohne nach einer Bestätigung zu fragen.","Delete notebook? All notes within this notebook will also be deleted.":"Notizbuch wirklich löschen? Alle Notizen darin werden ebenfalls gelöscht.","Deletes the notes matching .":"Löscht die Notizen, die mit  übereinstimmen.","Deletes the notes without asking for confirmation.":"Löscht die Notizen, ohne nach einer Bestätigung zu fragen.","%d notes match this pattern. Delete them?":"%d Notizen stimmen mit diesem Muster überein. Sollen sie gelöscht werden?","Delete note?":"Notiz löschen?","Searches for the given  in all the notes.":"Sucht nach dem angegebenen  in allen Notizen.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Setzt die Eigenschaft  der gegebenen  auf den gegebenen [Wert]. Mögliche Werte sind:\n\n%s","Displays summary about the notes and notebooks.":"Zeigt eine Zusammenfassung der Notizen und Notizbücher an.","Synchronises with remote storage.":"Synchronisiert mit Remotespeicher.","Sync to provided target (defaults to sync.target config value)":"Mit dem angegebenen Ziel synchronisieren (voreingestellt auf den sync.target Optionswert)","Authentication was not completed (did not receive an authentication token).":"Authentifizierung wurde nicht abgeschlossen (keinen Authentifizierung-Token erhalten).","Not authentified with %s. Please provide any missing credentials.":"Keine Authentifizierung mit %s. Gib bitte alle fehlenden Zugangsdaten an.","Synchronisation is already in progress.":"Synchronisation wird bereits ausgeführt.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Eine Sperrdatei ist vorhanden. Wenn du dir sicher bist, dass keine Synchronisation im Gange ist, kannst du die Sperrdatei \"%s\" löschen und fortfahren.","Synchronisation target: %s (%s)":"Synchronisationsziel: %s (%s)","Cannot initialize synchroniser.":"Kann Synchronisierer nicht initialisieren.","Starting synchronisation...":"Starte Synchronisation...","Cancelling... Please wait.":"Abbrechen… Bitte warten."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" kann \"add\", \"remove\" or \"list\" sein, um eine [Markierung] zu [Notiz] zuzuweisen oder zu entfernen, oder um mit [Markierung] markierte Notizen anzuzeigen. Mit dem Befehl `tag list` können alle Markierungen angezeigt werden.","Invalid command: \"%s\"":"Ungültiger Befehl: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" kann entweder \"toggle\" oder \"clear\" sein. Benutze \"toggle\", um ein To-Do abzuschließen, oder es zu beginnen (Wenn das Ziel eine normale Notiz ist, wird diese in ein To-Do umgewandelt). Benutze \"clear\", um es zurück in ein To-Do zu verwandeln.","Marks a to-do as non-completed.":"Makiert ein To-Do als nicht-abgeschlossen.","Switches to [notebook] - all further operations will happen within this notebook.":"Wechselt zu [Notizbuch] - alle weiteren Aktionen werden in diesem Notizbuch ausgeführt.","Displays version information":"Zeigt die Versionsnummer an","%s %s (%s)":"%s %s (%s)","Enum":"Aufzählung","Type: %s.":"Typ: %s.","Possible values: %s.":"Mögliche Werte: %s.","Default: %s":"Standard: %s","Possible keys/values:":"Mögliche Werte:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Schwerwiegender Fehler:","The application has been authorised - you may now close this browser tab.":"Das Programm wurde autorisiert - Du kannst diesen Browsertab nun schließen.","The application has been successfully authorised.":"Das Programm wurde erfolgreich autorisiert.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Bitte öffne die folgende URL in deinem Browser, um das Programm zu authentifizieren. Das Programm wird einen Ordner in \"Apps/Joplin\" erstellen und wird nur in diesem Ordner schreiben und lesen. Es wird weder Zugriff auf Dateien außerhalb dieses Ordners haben, noch auf andere persönliche Daten. Es werden keine Daten mit Dritten geteilt.","Search:":"Suchen:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Willkommen bei Joplin!\n\nTippe `:help shortcuts` für eine Liste der Shortcuts oder `:help` für Nutzungsinformationen ein.\n\nUm zum Beispiel ein Notizbuch zu erstellen, drücke `mb`; um eine Notiz zu erstellen drücke `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Ein oder mehrere Objekte sind derzeit verschlüsselt und es kann erforderlich sein, ein Master-Passwort zu hinterlegen. Gib dazu bitte `e2ee decrypt` ein. Wenn du das Passwort bereits eingegeben hast, werden die verschlüsselten Objekte im Hintergrund entschlüsselt und stehen in Kürze zur Verfügung.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportiere „%s“ ins „%s“ Format. Bitte warten...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importiere „%s“ ins „%s“ Format. Bitte warten…","PDF File":"PDF File","File":"Datei","New note":"Neue Notiz","New to-do":"Neues To-Do","New notebook":"Neues Notizbuch","Import":"Importieren","Export":"Exportieren","Print":"","Hide %s":"%s ausblenden","Quit":"Verlassen","Edit":"Bearbeiten","Copy":"Kopieren","Cut":"Ausschneiden","Paste":"Einfügen","Search in all the notes":"Alle Notizen durchsuchen","View":"Ansicht","Toggle editor layout":"Editor Layout umschalten","Tools":"Werkzeuge","Synchronisation status":"Status der Synchronisation","Encryption options":"Verschlüsselung","General Options":"Allgemeine Einstellungen","Help":"Hilfe","Website and documentation":"Webseite und Dokumentation","Make a donation":"Make a donation","Check for updates...":"Überprüfe auf Updates...","About Joplin":"Über Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Öffne %s","Exit":"Verlassen","OK":"OK","Cancel":"Abbrechen","Current version is up-to-date.":"Die aktuelle Version ist up-to-date.","An update is available, do you want to download it now?":"Es ist ein Update verfügbar! Soll dies jetzt heruntergeladen werden?","Yes":"Ja","No":"Nein","Check synchronisation configuration":"Überprüfen der Synchronisationseinstellungen","Notes and settings are stored in: %s":"Notizen und Einstellungen werden gespeichert in: %s","Save":"Speichern","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Durch die Deaktivierung der Verschlüsselung werden *alle* Notizen und Anhänge neu synchronisiert und unverschlüsselt an das Synchronisierungsziel gesendet. Möchtest du fortfahren?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Durch das Aktivieren der Verschlüsselung werden alle Notizen und Anhänge neu synchronisiert und verschlüsselt an das Synchronisationsziel gesendet. Achte darauf, dass du das Passwort nicht verlierst, da dies aus Sicherheitsgründen die einzige Möglichkeit ist, deine Daten zu entschlüsseln! Um die Verschlüsselung zu aktivieren, gib bitte unten dein Passwort ein.","Disable encryption":"Verschlüsselung deaktivieren","Enable encryption":"Verschlüsselung aktivieren","Master Keys":"Hauptschlüssel","Active":"Aktiv","ID":"ID","Source":"Quelle","Created":"Erstellt","Updated":"Aktualisiert","Password":"Passwort","Password OK":"Passwort OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Hinweis: Nur ein Hauptschlüssel wird für die Verschlüsselung verwendet (der als \"aktiv\" markierte). Jeder der Schlüssel kann für die Entschlüsselung verwendet werden, abhängig davon, wie die jeweiligen Notizen oder Notizbücher ursprünglich verschlüsselt wurden.","Missing Master Keys":"Fehlender Master-Key","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"Die Master-Keas dieser IDs werden für die Verschlüsselung einiger ...","Status":"Status","Encryption is:":"Die Verschlüsselung ist:","Back":"Zurück","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Neues Notizbuch \"%s\" wird erstellt und die Datei \"%s\" wird dort hinein importiert","Please create a notebook first.":"Bitte erstelle zuerst ein Notizbuch.","Please create a notebook first":"Bitte erstelle zuerst ein Notizbuch","Notebook title:":"Notizbuch Titel:","Add or remove tags:":"Füge hinzu oder entferne Markierungen:","Separate each tag by a comma.":"Trenne jede Markierung mit einem Komma.","Rename notebook:":"Notizbuch umbenennen:","Set alarm:":"Alarm erstellen:","Search":"Suchen","Layout":"Layout","Some items cannot be synchronised.":"Manche Objekte können nicht synchronisiert werden.","View them now":"Zeige sie jetzt an","Some items cannot be decrypted.":"Einige Objekte können nicht entschlüsselt werden.","Set the password":"Setze ein Passwort","Add or remove tags":"Markierungen hinzufügen oder entfernen","Switch between note and to-do type":"Zwischen Notiz und To-Do Typ wechseln","Delete":"Löschen","Delete notes?":"Notizen löschen?","No notes in here. Create one by clicking on \"New note\".":"Hier sind noch keine Notizen. Erstelle eine, indem du auf \"Neue Notiz\" drückst.","There is currently no notebook. Create one by clicking on \"New notebook\".":"Momentan existieren noch keine Notizbücher. Erstelle eines, indem du auf den (+) Knopf drückst.","Open...":"Öffne...","Save as...":"Sichern unter...","Unsupported link or message: %s":"Nicht unterstützter Link oder Nachricht: %s","Attach file":"Datei anhängen","Tags":"Markierungen","Set alarm":"Alarm erstellen","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Diese Notiz hat keinen Inhalt. Klicke auf „%s“ um den Editor zu aktivieren und die Notiz zu bearbeiten.","to-do":"To-Do","note":"Notiz","Creating new %s...":"Erstelle neue %s...","Refresh":"Aktualisieren","Clear":"Leeren","OneDrive Login":"OneDrive Login","Options":"Optionen","Synchronisation Status":"Synchronisations Status","Encryption Options":"Verschlüsselungsoptionen","Remove this tag from all the notes?":"Diese Markierung von allen Notizen entfernen?","Remove this search from the sidebar?":"Diese Suche von der Seitenleiste entfernen?","Rename":"Umbenennen","Synchronise":"Synchronisieren","Notebooks":"Notizbücher","Searches":"Suchen","Please select where the sync status should be exported to":"Bitte wähle aus, wohin der Synchronisations Status exportiert werden soll","Usage: %s":"Nutzung: %s","Unknown flag: %s":"Unbekanntes Argument: %s","File system":"Dateisystem","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Nur für Tests)","WebDAV":"WebDAV","Unknown log level: %s":"Unbekanntes Log Level: %s","Unknown level ID: %s":"Unbekannte Level ID: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Kann Token nicht erneuern: Authentifikationsdaten nicht vorhanden. Ein Neustart der Synchronisation könnte das Problem beheben.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Konnte nicht mit OneDrive synchronisieren.\n\nDieser Fehler kommt oft vor, wenn OneDrive Business benutzt wird, das leider nicht unterstützt wird.\n\nBitte benutze stattdessen einen normalen OneDrive Account.","Cannot access %s":"Kann nicht auf %s zugreifen","Created local items: %d.":"Lokale Objekte erstellt: %d.","Updated local items: %d.":"Lokale Objekte aktualisiert: %d.","Created remote items: %d.":"Remote Objekte erstellt: %d.","Updated remote items: %d.":"Remote Objekte aktualisiert: %d.","Deleted local items: %d.":"Lokale Objekte gelöscht: %d.","Deleted remote items: %d.":"Remote Objekte gelöscht: %d.","Fetched items: %d/%d.":"Geladene Objekte: %d/%d.","State: \"%s\".":"Status: \"%s\".","Cancelling...":"Abbrechen...","Completed: %s":"Abgeschlossen: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Synchronisation ist bereits im Gange. Status: %s","Encrypted":"Verschlüsselt","Encrypted items cannot be modified":"Verschlüsselte Objekte können nicht verändert werden","Conflicts":"Konflikte","A notebook with this title already exists: \"%s\"":"Ein Notizbuch mit diesem Titel existiert bereits : \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Notizbuch kann nicht \"%s\" genannt werden. Dies ist ein reservierter Titel.","Untitled":"Unbenannt","This note does not have geolocation information.":"Diese Notiz hat keine Standort-Informationen.","Cannot copy note to \"%s\" notebook":"Kann Notiz nicht zu Notizbuch \"%s\" kopieren","Cannot move note to \"%s\" notebook":"Kann Notiz nicht zu Notizbuch \"%s\" verschieben","Text editor":"Textverarbeitungsprogramm","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Das Textverarbeitungsprogramm, mit dem Notizen geöffnet werden. Wenn keines ausgewählt wurde, wird Joplin versuchen das standard-Textverarbeitungsprogramm zu erkennen.","Language":"Sprache","Date format":"Datumsformat","Time format":"Zeitformat","Theme":"Thema","Light":"Hell","Dark":"Dunkel","Uncompleted to-dos on top":"Zeige unvollständige To-Dos an oberster Stelle","Sort notes by":"Sortiere Notizen nach","Reverse sort order":"Sortierreihenfolge umdrehen","Save geo-location with notes":"Momentanen Standort zusammen mit Notizen speichern","When creating a new to-do:":"Wenn eine neue To-Do erstellt wird:","Focus title":"Fokussiere Titel","Focus body":"Fokussiere Inhalt","When creating a new note:":"Wenn eine neue Notiz erstellt wird:","Show tray icon":"Zeige Tray Icon","Global zoom percentage":"Zoomstufe der Benutzeroberfläche","Editor font family":"Editor Schriftenfamilie","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"Der Name der Schrift wird nicht überprüft. Ist dieser inkorrekt oder leer wird eine generische Monospace Schrift verwendet.","Automatically update the application":"Die Applikation automatisch aktualisieren","Synchronisation interval":"Synchronisationsinterval","%d minutes":"%d Minuten","%d hour":"%d Stunde","%d hours":"%d Stunden","Show advanced options":"Erweiterte Optionen anzeigen","Synchronisation target":"Synchronisationsziel","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Das Ziel, mit dem synchronisiert werden soll. Jedes Synchronisationsziel kann zusätzliche Parameter haben, die als `sync.NUM.NAME` (alle unten dokumentiert) bezeichnet werden.","Directory to synchronise with (absolute path)":"Verzeichnis zum synchronisieren (absoluter Pfad)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Der Pfad, mit dem synchronisiert werden soll, wenn die Dateisystem-Synchronisation aktiviert ist. Siehe `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Nextcloud Benutzername","Nextcloud password":"Nextcloud Passwort","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV Benutzername","WebDAV password":"WebDAV Passwort","Invalid option value: \"%s\". Possible values are: %s.":"Ungültiger Optionswert: \"%s\". Mögliche Werte sind: %s.","Joplin Export File":"Joplin Export Datei","Markdown":"Markdown","Joplin Export Directory":"Joplin Export Verzeichnis","Evernote Export File":"Evernote Export Datei","Directory":"Verzeichnis","Cannot load \"%s\" module for format \"%s\"":"Das Modul „%s“ für das Format „%s“ kann nicht geladen werden","Please specify import format for %s":"Bitte das Exportformat für %s angeben","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Dieses Objekt ist zur Zeit verschlüsselt: %s „%s“. Bitte warten bis alle Objekte entschlüsselt wurden und versuche es dann erneut.","There is no data to export.":"Keine Daten für den Export vorhanden.","Please specify the notebook where the notes should be imported to.":"Bitte wähle aus, wohin der Synchronisations-Status exportiert werden soll.","Items that cannot be synchronised":"Objekte können nicht synchronisiert werden","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Diese Objekte verbleiben auf dem Gerät, werden aber nicht zum Synchronisationsziel hochgeladen. Um diese Objekte zu finden, suchen Sie entweder nach dem Titel oder der ID (die oben in Klammern angezeigt wird).","Sync status (synced items / total items)":"Synchronisationsstatus (synchronisierte Objekte / gesamte Objekte)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Insgesamt: %d/%d","Conflicted: %d":"In Konflikt %d","To delete: %d":"Zu löschen: %d","Folders":"Ordner","%s: %d notes":"%s: %d Notizen","Coming alarms":"Anstehende Alarme","On %s: %s":"Auf %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Momentan existieren noch keine Notizen. Erstelle eine, indem du auf den (+) Knopf drückst.","Delete these notes?":"Sollen diese Notizen gelöscht werden?","Log":"Protokoll","Export Debug Report":"Fehlerbericht exportieren","Encryption Config":"Verschlüsselungskonfiguration","Configuration":"Konfiguration","Move to notebook...":"In Notizbuch verschieben...","Move %d notes to notebook \"%s\"?":"%d Notizen in das Notizbuch \"%s\" verschieben?","Press to set the decryption password.":"Tippe hier, um das Entschlüsselungspasswort festzulegen.","Select date":"Datum auswählen","Confirm":"Bestätigen","Cancel synchronisation":"Synchronisation abbrechen","Joplin website":"","Master Key %s":"Hauptschlüssel %s","Created: %s":"Erstellt: %s","Password:":"Passwort:","Password cannot be empty":"Passwort darf nicht leer sein","Enable":"Aktivieren","The notebook could not be saved: %s":"Dieses Notizbuch konnte nicht gespeichert werden: %s","Edit notebook":"Notizbuch bearbeiten","Show all":"Zeige Alles","Errors only":"Nur Fehler","This note has been modified:":"Diese Notiz wurde verändert:","Save changes":"Änderungen speichern","Discard changes":"Änderungen verwerfen","Unsupported image type: %s":"Nicht unterstütztes Fotoformat: %s","Attach photo":"Foto anhängen","Attach any file":"Beliebige Datei anhängen","Convert to note":"In eine Notiz umwandeln","Convert to todo":"In ein To-Do umwandeln","Hide metadata":"Metadaten verstecken","Show metadata":"Metadaten anzeigen","View on map":"Auf der Karte anzeigen","Delete notebook":"Notizbuch löschen","Login with OneDrive":"Mit OneDrive anmelden","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Drücke auf den (+) Knopf, um eine neue Notiz oder ein neues Notizbuch zu erstellen. Tippe auf die Seitenleiste, um auf deine existierenden Notizbücher zuzugreifen.","You currently have no notebook. Create one by clicking on (+) button.":"Du hast noch kein Notizbuch. Erstelle eines, indem du auf den (+) Knopf drückst.","Welcome":"Willkommen"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"Um eine Markierung zu löschen, entferne diese bei allen damit verbundenen Notizen.","Please select the note or notebook to be deleted first.":"Wähle bitte zuerst eine Notiz oder ein Notizbuch aus, das gelöscht werden soll.","Press Ctrl+D or type \"exit\" to exit the application":"Drücke Strg+D oder tippe \"exit\" um das Programm zu verlassen","More than one item match \"%s\". Please narrow down your query.":"Mehr als eine Notiz stimmt mit \"%s\" überein. Bitte die Suche einschränken.","No notebook selected.":"Kein Notizbuch ausgewählt.","No notebook has been specified.":"Es wurde kein Notizbuch festgelegt.","Y":"J","n":"n","N":"N","y":"j","Cancelling background synchronisation... Please wait.":"Breche Hintergrund-Synchronisation ab... Bitte warten.","No such command: %s":"Ungültiger Befehl: %s","The command \"%s\" is only available in GUI mode":"Der Befehl \"%s\" ist nur im GUI Modus verfügbar","Cannot change encrypted item":"Kann verschlüsseltes Objekt nicht ändern","Missing required argument: %s":"Fehlendes erforderliches Argument: %s","%s: %s":"%s: %s","Your choice: ":"Deine Auswahl: ","Invalid answer: %s":"Ungültige Antwort: %s","Attaches the given file to the note.":"Hängt die ausgewählte Datei an die Notiz an.","Cannot find \"%s\".":"Kann \"%s\" nicht finden.","Displays the given note.":"Zeigt die jeweilige Notiz an.","Displays the complete information about note.":"Zeigt alle Informationen über die Notiz an.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Zeigt an oder stellt einen Optionswert. Wenn kein [Wert] angegeben ist, wird der Wert vom gegebenen [Namen] angezeigt. Wenn weder [Name] noch [Wert] gegeben sind, wird eine Liste der momentanen Konfiguration angezeigt.","Also displays unset and hidden config variables.":"Zeigt auch nicht gesetzte und versteckte Konfigurationsvariablen an.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Dupliziert die Notizen die mit  übereinstimmen in [Notizbuch]. Wenn kein Notizbuch angegeben ist, wird die Notiz in das aktuelle Notizbuch kopiert.","Marks a to-do as done.":"Markiert ein To-Do als erledigt.","Note is not a to-do: \"%s\"":"Notiz ist kein To-Do: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Verwaltet die E2EE-Konfiguration. Die Befehle lauten `enable`, `disable`, `decrypt`, `status` und `target-status`.","Enter master password:":"Master-Passwort eingeben:","Operation cancelled":"Vorgang abgebrochen","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Starte Entschlüsselung.... Bitte warten, da dies je nach Anzahl der betreffenden Objekte einige Minuten dauern kann.","Completed decryption.":"Entschlüsselung abgeschlossen.","Enabled":"Aktiviert","Disabled":"Deaktiviert","Encryption is: %s":"Verschlüsselung ist: %s","Edit note.":"Notiz bearbeiten.","No text editor is defined. Please set it using `config editor `":"Kein Texteditor definiert. Bitte lege einen mit `config editor ` fest","No active notebook.":"Kein aktives Notizbuch.","Note does not exist: \"%s\". Create it?":"Notiz \"%s\" existiert nicht. Soll sie erstellt werden?","Starting to edit note. Close the editor to get back to the prompt.":"Beginne die Notiz zu bearbeiten. Schließe das Textverarbeitungsprogramm, um zurück zum Terminal zu gelangen.","Error opening note in editor: %s":"Fehler beim Öffnen der Notiz im Editor: %s","Note has been saved.":"Die Notiz wurde gespeichert.","Exits the application.":"Beendet das Programm.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exportiert Joplin Dateien in den angegebenen Pfad. Standardmäßig wird die komplette Datenbank inklusive Notizbüchern, Notizen, Markierungen und Anhängen exportiert.","Destination format: %s":"Zielformat: %s","Exports only the given note.":"Exportiert nur die angegebene Notiz.","Exports only the given notebook.":"Exportiert nur das angegebene Notizbuch.","Displays a geolocation URL for the note.":"Zeigt die Standort-URL der Notiz an.","Displays usage information.":"Zeigt die Nutzungsstatistik an.","For information on how to customise the shortcuts please visit %s":"Für weitere Informationen über die Anpassung von Tastenkürzel besuche bitte %s","Shortcuts are not available in CLI mode.":"Tastenkürzel sind im CLI Modus nicht verfügbar.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Tippe `help [Befehl]` um weitere Informationen über einen Befehl zu erhalten oder tippe `help all` für die vollständigen Informationen zur Befehlsverwendung.","The possible commands are:":"Mögliche Befehle lauten:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In jedem Befehl können Notizen oder Notizbücher durch ihren Titel oder ihre ID spezifiziert werden, oder durch die Abkürzung `$n` oder `$b` um entweder das momentan ausgewählte Notizbuch oder die momentan ausgewählte Notiz auszuwählen. `$c` kann benutzt werden, um auf die momentane Auswahl zu verweisen.","To move from one pane to another, press Tab or Shift+Tab.":"Um von einem Fenster zu einem anderen zu wechseln, drücke Tab oder Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Benutze die Pfeiltasten und Bild hoch/runter um durch Listen und Texte zu scrollen (inklusive diesem Terminal).","To maximise/minimise the console, press \"TC\".":"Um das Terminal zu maximieren/minimieren, drücke \"TC\".","To enter command line mode, press \":\"":"Um den Kommandozeilen Modus aufzurufen, drücke \":\"","To exit command line mode, press ESCAPE":"Um den Kommandozeilen Modus zu beenden, drücke ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Um die komplette Liste aller verfügbaren Tastenkürzeln anzuzeigen, tippe `help keymap` ein","Imports data into Joplin.":"Importiert Daten in Joplin.","Source format: %s":"Quellformat: %s","Do not ask for confirmation.":"Nicht nach einer Bestätigung fragen.","Found: %d.":"Gefunden: %d.","Created: %d.":"Erstellt: %d.","Updated: %d.":"Aktualisiert: %d.","Skipped: %d.":"Übersprungen: %d.","Resources: %d.":"Anhänge: %d.","Tagged: %d.":"Markiert: %d.","Importing notes...":"Importiere Notizen...","The notes have been imported: %s":"Die Notizen wurden importiert: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Zeigt die Notizen im momentanen Notizbuch an. Benutze `ls /` um eine Liste aller Notizbücher anzuzeigen.","Displays only the first top  notes.":"Zeigt nur die ersten  Notizen an.","Sorts the item by  (eg. title, updated_time, created_time).":"Sortiert nach  ( z.B. Titel, Bearbeitungszeitpunkt, Erstellungszeitpunkt)","Reverses the sorting order.":"Dreht die Sortierreihenfolge um.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Zeigt nur bestimmte Item Typen an. Kann `n` für Notizen sein, `t` für To-Dos, oder `nt` für Notizen und To-Dos ( z.B. zeigt `-tt` nur To-Dos an, während `-ttd` Notizen und To-Dos anzeigt).","Either \"text\" or \"json\"":"Entweder \"text\" oder \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Verwende ausführliches Listen Format. Das Format lautet: ID, NOTIZEN_ANZAHL (für Notizbuch), DATUM, TODO_BEARBEITET (für To-Dos), TITEL","Please select a notebook first.":"Bitte wähle erst ein Notizbuch aus.","Creates a new notebook.":"Erstellt ein neues Notizbuch.","Creates a new note.":"Erstellt eine neue Notiz.","Notes can only be created within a notebook.":"Notizen können nur in einem Notizbuch erstellt werden.","Creates a new to-do.":"Erstellt ein neues To-Do.","Moves the notes matching  to [notebook].":"Verschiebt die Notizen, die mit  übereinstimmen, zu [Notizbuch]","Renames the given  (note or notebook) to .":"Benennt das angegebene  ( Notiz oder Notizbuch ) zu  um.","Deletes the given notebook.":"Löscht das ausgewählte Notizbuch.","Deletes the notebook without asking for confirmation.":"Löscht das Notizbuch, ohne nach einer Bestätigung zu fragen.","Delete notebook? All notes within this notebook will also be deleted.":"Notizbuch wirklich löschen? Alle Notizen darin werden ebenfalls gelöscht.","Deletes the notes matching .":"Löscht die Notizen, die mit  übereinstimmen.","Deletes the notes without asking for confirmation.":"Löscht die Notizen, ohne nach einer Bestätigung zu fragen.","%d notes match this pattern. Delete them?":"%d Notizen stimmen mit diesem Muster überein. Sollen sie gelöscht werden?","Delete note?":"Notiz löschen?","Searches for the given  in all the notes.":"Sucht nach dem angegebenen  in allen Notizen.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Setzt die Eigenschaft  der gegebenen  auf den gegebenen [Wert]. Mögliche Werte sind:\n\n%s","Displays summary about the notes and notebooks.":"Zeigt eine Zusammenfassung der Notizen und Notizbücher an.","Synchronises with remote storage.":"Synchronisiert mit Remotespeicher.","Sync to provided target (defaults to sync.target config value)":"Mit dem angegebenen Ziel synchronisieren (voreingestellt auf den sync.target Optionswert)","Authentication was not completed (did not receive an authentication token).":"Authentifizierung wurde nicht abgeschlossen (keinen Authentifizierung-Token erhalten).","Not authentified with %s. Please provide any missing credentials.":"Keine Authentifizierung mit %s. Gib bitte alle fehlenden Zugangsdaten an.","Synchronisation is already in progress.":"Synchronisation wird bereits ausgeführt.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Eine Sperrdatei ist vorhanden. Wenn du dir sicher bist, dass keine Synchronisation im Gange ist, kannst du die Sperrdatei \"%s\" löschen und fortfahren.","Synchronisation target: %s (%s)":"Synchronisationsziel: %s (%s)","Cannot initialize synchroniser.":"Kann Synchronisierer nicht initialisieren.","Starting synchronisation...":"Starte Synchronisation...","Cancelling... Please wait.":"Abbrechen… Bitte warten."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" kann \"add\", \"remove\" or \"list\" sein, um eine [Markierung] zu [Notiz] zuzuweisen oder zu entfernen, oder um mit [Markierung] markierte Notizen anzuzeigen. Mit dem Befehl `tag list` können alle Markierungen angezeigt werden.","Invalid command: \"%s\"":"Ungültiger Befehl: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" kann entweder \"toggle\" oder \"clear\" sein. Benutze \"toggle\", um ein To-Do abzuschließen, oder es zu beginnen (Wenn das Ziel eine normale Notiz ist, wird diese in ein To-Do umgewandelt). Benutze \"clear\", um es zurück in ein To-Do zu verwandeln.","Marks a to-do as non-completed.":"Makiert ein To-Do als nicht-abgeschlossen.","Switches to [notebook] - all further operations will happen within this notebook.":"Wechselt zu [Notizbuch] - alle weiteren Aktionen werden in diesem Notizbuch ausgeführt.","Displays version information":"Zeigt die Versionsnummer an","%s %s (%s)":"%s %s (%s)","Enum":"Aufzählung","Type: %s.":"Typ: %s.","Possible values: %s.":"Mögliche Werte: %s.","Default: %s":"Standard: %s","Possible keys/values:":"Mögliche Werte:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Schwerwiegender Fehler:","The application has been authorised - you may now close this browser tab.":"Das Programm wurde autorisiert - Du kannst diesen Browsertab nun schließen.","The application has been successfully authorised.":"Das Programm wurde erfolgreich autorisiert.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Bitte öffne die folgende URL in deinem Browser, um das Programm zu authentifizieren. Das Programm wird einen Ordner in \"Apps/Joplin\" erstellen und wird nur in diesem Ordner schreiben und lesen. Es wird weder Zugriff auf Dateien außerhalb dieses Ordners haben, noch auf andere persönliche Daten. Es werden keine Daten mit Dritten geteilt.","Search:":"Suchen:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Willkommen bei Joplin!\n\nTippe `:help shortcuts` für eine Liste der Shortcuts oder `:help` für Nutzungsinformationen ein.\n\nUm zum Beispiel ein Notizbuch zu erstellen, drücke `mb`; um eine Notiz zu erstellen drücke `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Ein oder mehrere Objekte sind derzeit verschlüsselt und es kann erforderlich sein, ein Master-Passwort zu hinterlegen. Gib dazu bitte `e2ee decrypt` ein. Wenn du das Passwort bereits eingegeben hast, werden die verschlüsselten Objekte im Hintergrund entschlüsselt und stehen in Kürze zur Verfügung.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportiere „%s“ ins „%s“ Format. Bitte warten...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importiere „%s“ ins „%s“ Format. Bitte warten…","PDF File":"PDF-Datei","File":"Datei","New note":"Neue Notiz","New to-do":"Neues To-Do","New notebook":"Neues Notizbuch","Import":"Importieren","Export":"Exportieren","Print":"Drucken","Hide %s":"%s ausblenden","Quit":"Verlassen","Edit":"Bearbeiten","Copy":"Kopieren","Cut":"Ausschneiden","Paste":"Einfügen","Search in all the notes":"Alle Notizen durchsuchen","View":"Ansicht","Toggle editor layout":"Editor Layout umschalten","Tools":"Werkzeuge","Synchronisation status":"Status der Synchronisation","Encryption options":"Verschlüsselung","General Options":"Allgemeine Einstellungen","Help":"Hilfe","Website and documentation":"Webseite und Dokumentation","Make a donation":"Spenden","Check for updates...":"Überprüfe auf Updates...","About Joplin":"Über Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Öffne %s","Exit":"Verlassen","OK":"OK","Cancel":"Abbrechen","Current version is up-to-date.":"Die aktuelle Version ist up-to-date.","An update is available, do you want to download it now?":"Es ist ein Update verfügbar! Soll dies jetzt heruntergeladen werden?","Yes":"Ja","No":"Nein","Check synchronisation configuration":"Überprüfen der Synchronisationseinstellungen","Notes and settings are stored in: %s":"Notizen und Einstellungen werden gespeichert in: %s","Save":"Speichern","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Durch die Deaktivierung der Verschlüsselung werden *alle* Notizen und Anhänge neu synchronisiert und unverschlüsselt an das Synchronisierungsziel gesendet. Möchtest du fortfahren?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Durch das Aktivieren der Verschlüsselung werden alle Notizen und Anhänge neu synchronisiert und verschlüsselt an das Synchronisationsziel gesendet. Achte darauf, dass du das Passwort nicht verlierst, da dies aus Sicherheitsgründen die einzige Möglichkeit ist, deine Daten zu entschlüsseln! Um die Verschlüsselung zu aktivieren, gib bitte unten dein Passwort ein.","Disable encryption":"Verschlüsselung deaktivieren","Enable encryption":"Verschlüsselung aktivieren","Master Keys":"Hauptschlüssel","Active":"Aktiv","ID":"ID","Source":"Quelle","Created":"Erstellt","Updated":"Aktualisiert","Password":"Passwort","Password OK":"Passwort OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Hinweis: Nur ein Hauptschlüssel wird für die Verschlüsselung verwendet (der als \"aktiv\" markierte). Jeder der Schlüssel kann für die Entschlüsselung verwendet werden, abhängig davon, wie die jeweiligen Notizen oder Notizbücher ursprünglich verschlüsselt wurden.","Missing Master Keys":"Fehlender Master-Key","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"Die Master-Keas dieser IDs werden für die Verschlüsselung einiger ...","Status":"Status","Encryption is:":"Die Verschlüsselung ist:","Back":"Zurück","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Neues Notizbuch \"%s\" wird erstellt und die Datei \"%s\" wird dort hinein importiert","Please create a notebook first.":"Bitte erstelle zuerst ein Notizbuch.","Please create a notebook first":"Bitte erstelle zuerst ein Notizbuch","Notebook title:":"Notizbuch Titel:","Add or remove tags:":"Füge hinzu oder entferne Markierungen:","Separate each tag by a comma.":"Trenne jede Markierung mit einem Komma.","Rename notebook:":"Notizbuch umbenennen:","Set alarm:":"Alarm erstellen:","Search":"Suchen","Layout":"Layout","Some items cannot be synchronised.":"Manche Objekte können nicht synchronisiert werden.","View them now":"Zeige sie jetzt an","Some items cannot be decrypted.":"Einige Objekte können nicht entschlüsselt werden.","Set the password":"Setze ein Passwort","Add or remove tags":"Markierungen hinzufügen oder entfernen","Switch between note and to-do type":"Zwischen Notiz und To-Do Typ wechseln","Delete":"Löschen","Delete notes?":"Notizen löschen?","No notes in here. Create one by clicking on \"New note\".":"Hier sind noch keine Notizen. Erstelle eine, indem du auf \"Neue Notiz\" drückst.","There is currently no notebook. Create one by clicking on \"New notebook\".":"Momentan existieren noch keine Notizbücher. Erstelle eines, indem du auf den (+) Knopf drückst.","Open...":"Öffne...","Save as...":"Sichern unter...","Unsupported link or message: %s":"Nicht unterstützter Link oder Nachricht: %s","Attach file":"Datei anhängen","Tags":"Markierungen","Set alarm":"Alarm erstellen","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Diese Notiz hat keinen Inhalt. Klicke auf „%s“ um den Editor zu aktivieren und die Notiz zu bearbeiten.","to-do":"To-Do","note":"Notiz","Creating new %s...":"Erstelle neue %s...","Refresh":"Aktualisieren","Clear":"Leeren","OneDrive Login":"OneDrive Login","Options":"Optionen","Synchronisation Status":"Synchronisations Status","Encryption Options":"Verschlüsselungsoptionen","Remove this tag from all the notes?":"Diese Markierung von allen Notizen entfernen?","Remove this search from the sidebar?":"Diese Suche von der Seitenleiste entfernen?","Rename":"Umbenennen","Synchronise":"Synchronisieren","Notebooks":"Notizbücher","Searches":"Suchen","Please select where the sync status should be exported to":"Bitte wähle aus, wohin der Synchronisations Status exportiert werden soll","Usage: %s":"Nutzung: %s","Unknown flag: %s":"Unbekanntes Argument: %s","File system":"Dateisystem","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Nur für Tests)","WebDAV":"WebDAV","Unknown log level: %s":"Unbekanntes Log Level: %s","Unknown level ID: %s":"Unbekannte Level ID: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Kann Token nicht erneuern: Authentifikationsdaten nicht vorhanden. Ein Neustart der Synchronisation könnte das Problem beheben.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Konnte nicht mit OneDrive synchronisieren.\n\nDieser Fehler kommt oft vor, wenn OneDrive Business benutzt wird, das leider nicht unterstützt wird.\n\nBitte benutze stattdessen einen normalen OneDrive Account.","Cannot access %s":"Kann nicht auf %s zugreifen","Created local items: %d.":"Lokale Objekte erstellt: %d.","Updated local items: %d.":"Lokale Objekte aktualisiert: %d.","Created remote items: %d.":"Remote Objekte erstellt: %d.","Updated remote items: %d.":"Remote Objekte aktualisiert: %d.","Deleted local items: %d.":"Lokale Objekte gelöscht: %d.","Deleted remote items: %d.":"Remote Objekte gelöscht: %d.","Fetched items: %d/%d.":"Geladene Objekte: %d/%d.","State: %s.":"State: %s.","Cancelling...":"Abbrechen...","Completed: %s":"Abgeschlossen: %s","Last error: %s":"Letzte Fehlermeldung: %s","Idle":"wartend","In progress":"In Bearbeitung","Synchronisation is already in progress. State: %s":"Synchronisation ist bereits im Gange. Status: %s","Encrypted":"Verschlüsselt","Encrypted items cannot be modified":"Verschlüsselte Objekte können nicht verändert werden","Conflicts":"Konflikte","A notebook with this title already exists: \"%s\"":"Ein Notizbuch mit diesem Titel existiert bereits : \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Notizbuch kann nicht \"%s\" genannt werden. Dies ist ein reservierter Titel.","Untitled":"Unbenannt","This note does not have geolocation information.":"Diese Notiz hat keine Standort-Informationen.","Cannot copy note to \"%s\" notebook":"Kann Notiz nicht zu Notizbuch \"%s\" kopieren","Cannot move note to \"%s\" notebook":"Kann Notiz nicht zu Notizbuch \"%s\" verschieben","Text editor":"Textverarbeitungsprogramm","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Das Textverarbeitungsprogramm, mit dem Notizen geöffnet werden. Wenn keines ausgewählt wurde, wird Joplin versuchen das standard-Textverarbeitungsprogramm zu erkennen.","Language":"Sprache","Date format":"Datumsformat","Time format":"Zeitformat","Theme":"Thema","Light":"Hell","Dark":"Dunkel","Uncompleted to-dos on top":"Zeige unvollständige To-Dos an oberster Stelle","Sort notes by":"Sortiere Notizen nach","Reverse sort order":"Sortierreihenfolge umdrehen","Save geo-location with notes":"Momentanen Standort zusammen mit Notizen speichern","When creating a new to-do:":"Wenn eine neue To-Do erstellt wird:","Focus title":"Fokussiere Titel","Focus body":"Fokussiere Inhalt","When creating a new note:":"Wenn eine neue Notiz erstellt wird:","Show tray icon":"Zeige Tray Icon","Global zoom percentage":"Zoomstufe der Benutzeroberfläche","Editor font family":"Editor Schriftenfamilie","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"Der Name der Schrift wird nicht überprüft. Ist dieser inkorrekt oder leer wird eine generische Monospace Schrift verwendet.","Automatically update the application":"Die Applikation automatisch aktualisieren","Synchronisation interval":"Synchronisationsinterval","%d minutes":"%d Minuten","%d hour":"%d Stunde","%d hours":"%d Stunden","Show advanced options":"Erweiterte Optionen anzeigen","Synchronisation target":"Synchronisationsziel","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Das Ziel, mit dem synchronisiert werden soll. Jedes Synchronisationsziel kann zusätzliche Parameter haben, die als `sync.NUM.NAME` (alle unten dokumentiert) bezeichnet werden.","Directory to synchronise with (absolute path)":"Verzeichnis zum synchronisieren (absoluter Pfad)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Der Pfad, mit dem synchronisiert werden soll, wenn die Dateisystem-Synchronisation aktiviert ist. Siehe `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Nextcloud Benutzername","Nextcloud password":"Nextcloud Passwort","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV Benutzername","WebDAV password":"WebDAV Passwort","Invalid option value: \"%s\". Possible values are: %s.":"Ungültiger Optionswert: \"%s\". Mögliche Werte sind: %s.","Joplin Export File":"Joplin Export Datei","Markdown":"Markdown","Joplin Export Directory":"Joplin Export Verzeichnis","Evernote Export File":"Evernote Export Datei","Directory":"Verzeichnis","Cannot load \"%s\" module for format \"%s\"":"Das Modul „%s“ für das Format „%s“ kann nicht geladen werden","Please specify import format for %s":"Bitte das Exportformat für %s angeben","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Dieses Objekt ist zur Zeit verschlüsselt: %s „%s“. Bitte warten bis alle Objekte entschlüsselt wurden und versuche es dann erneut.","There is no data to export.":"Keine Daten für den Export vorhanden.","Please specify the notebook where the notes should be imported to.":"Bitte wähle aus, wohin der Synchronisations-Status exportiert werden soll.","Items that cannot be synchronised":"Objekte können nicht synchronisiert werden","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Diese Objekte verbleiben auf dem Gerät, werden aber nicht zum Synchronisationsziel hochgeladen. Um diese Objekte zu finden, suchen Sie entweder nach dem Titel oder der ID (die oben in Klammern angezeigt wird).","Sync status (synced items / total items)":"Synchronisationsstatus (synchronisierte Objekte / gesamte Objekte)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Insgesamt: %d/%d","Conflicted: %d":"In Konflikt %d","To delete: %d":"Zu löschen: %d","Folders":"Ordner","%s: %d notes":"%s: %d Notizen","Coming alarms":"Anstehende Alarme","On %s: %s":"Auf %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Momentan existieren noch keine Notizen. Erstelle eine, indem du auf den (+) Knopf drückst.","Delete these notes?":"Sollen diese Notizen gelöscht werden?","Log":"Protokoll","Export Debug Report":"Fehlerbericht exportieren","Encryption Config":"Verschlüsselungskonfiguration","Configuration":"Konfiguration","Move to notebook...":"In Notizbuch verschieben...","Move %d notes to notebook \"%s\"?":"%d Notizen in das Notizbuch \"%s\" verschieben?","Press to set the decryption password.":"Tippe hier, um das Entschlüsselungspasswort festzulegen.","Select date":"Datum auswählen","Confirm":"Bestätigen","Cancel synchronisation":"Synchronisation abbrechen","Joplin website":"Website von Joplin","Master Key %s":"Hauptschlüssel %s","Created: %s":"Erstellt: %s","Password:":"Passwort:","Password cannot be empty":"Passwort darf nicht leer sein","Enable":"Aktivieren","The notebook could not be saved: %s":"Dieses Notizbuch konnte nicht gespeichert werden: %s","Edit notebook":"Notizbuch bearbeiten","Show all":"Zeige Alles","Errors only":"Nur Fehler","This note has been modified:":"Diese Notiz wurde verändert:","Save changes":"Änderungen speichern","Discard changes":"Änderungen verwerfen","Unsupported image type: %s":"Nicht unterstütztes Fotoformat: %s","Attach photo":"Foto anhängen","Attach any file":"Beliebige Datei anhängen","Convert to note":"In eine Notiz umwandeln","Convert to todo":"In ein To-Do umwandeln","Hide metadata":"Metadaten verstecken","Show metadata":"Metadaten anzeigen","View on map":"Auf der Karte anzeigen","Delete notebook":"Notizbuch löschen","Login with OneDrive":"Mit OneDrive anmelden","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Drücke auf den (+) Knopf, um eine neue Notiz oder ein neues Notizbuch zu erstellen. Tippe auf die Seitenleiste, um auf deine existierenden Notizbücher zuzugreifen.","You currently have no notebook. Create one by clicking on (+) button.":"Du hast noch kein Notizbuch. Erstelle eines, indem du auf den (+) Knopf drückst.","Welcome":"Willkommen"}
        \ No newline at end of file
        diff --git a/ReactNativeClient/locales/en_GB.json b/ReactNativeClient/locales/en_GB.json
        index 1a7b52f413..111cd59ff1 100644
        --- a/ReactNativeClient/locales/en_GB.json
        +++ b/ReactNativeClient/locales/en_GB.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"","Please select the note or notebook to be deleted first.":"","Press Ctrl+D or type \"exit\" to exit the application":"","More than one item match \"%s\". Please narrow down your query.":"","No notebook selected.":"","No notebook has been specified.":"","Y":"","n":"","N":"","y":"","Cancelling background synchronisation... Please wait.":"","No such command: %s":"","The command \"%s\" is only available in GUI mode":"","Cannot change encrypted item":"","Missing required argument: %s":"","%s: %s":"","Your choice: ":"","Invalid answer: %s":"","Attaches the given file to the note.":"","Cannot find \"%s\".":"","Displays the given note.":"","Displays the complete information about note.":"","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"","Also displays unset and hidden config variables.":"","%s = %s (%s)":"","%s = %s":"","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"","Marks a to-do as done.":"","Note is not a to-do: \"%s\"":"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"","Disabled":"","Encryption is: %s":"","Edit note.":"","No text editor is defined. Please set it using `config editor `":"","No active notebook.":"","Note does not exist: \"%s\". Create it?":"","Starting to edit note. Close the editor to get back to the prompt.":"","Error opening note in editor: %s":"","Note has been saved.":"","Exits the application.":"","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"","Destination format: %s":"","Exports only the given note.":"","Exports only the given notebook.":"","Displays a geolocation URL for the note.":"","Displays usage information.":"","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"","The possible commands are:":"","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"","To move from one pane to another, press Tab or Shift+Tab.":"","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"","To maximise/minimise the console, press \"TC\".":"","To enter command line mode, press \":\"":"","To exit command line mode, press ESCAPE":"","For the list of keyboard shortcuts and config options, type `help keymap`":"","Imports data into Joplin.":"","Source format: %s":"","Do not ask for confirmation.":"","Found: %d.":"","Created: %d.":"","Updated: %d.":"","Skipped: %d.":"","Resources: %d.":"","Tagged: %d.":"","Importing notes...":"","The notes have been imported: %s":"","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"","Displays only the first top  notes.":"","Sorts the item by  (eg. title, updated_time, created_time).":"","Reverses the sorting order.":"","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"","Either \"text\" or \"json\"":"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"","Please select a notebook first.":"","Creates a new notebook.":"","Creates a new note.":"","Notes can only be created within a notebook.":"","Creates a new to-do.":"","Moves the notes matching  to [notebook].":"","Renames the given  (note or notebook) to .":"","Deletes the given notebook.":"","Deletes the notebook without asking for confirmation.":"","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"","Deletes the notes without asking for confirmation.":"","%d notes match this pattern. Delete them?":"","Delete note?":"","Searches for the given  in all the notes.":"","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"","Displays summary about the notes and notebooks.":"","Synchronises with remote storage.":"","Sync to provided target (defaults to sync.target config value)":"","Authentication was not completed (did not receive an authentication token).":"","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"","Synchronisation target: %s (%s)":"","Cannot initialize synchroniser.":"","Starting synchronisation...":"","Cancelling... Please wait.":""," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":"","Invalid command: \"%s\"":""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"","Marks a to-do as non-completed.":"","Switches to [notebook] - all further operations will happen within this notebook.":"","Displays version information":"","%s %s (%s)":"","Enum":"","Type: %s.":"","Possible values: %s.":"","Default: %s":"","Possible keys/values:":"","Type `joplin help` for usage information.":"","Fatal error:":"","The application has been authorised - you may now close this browser tab.":"","The application has been successfully authorised.":"","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"","Search:":"","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"","File":"","New note":"","New to-do":"","New notebook":"","Import":"","Export":"","Print":"","Hide %s":"","Quit":"","Edit":"","Copy":"","Cut":"","Paste":"","Search in all the notes":"","View":"","Toggle editor layout":"","Tools":"","Synchronisation status":"","Encryption options":"","General Options":"","Help":"","Website and documentation":"","Make a donation":"","Check for updates...":"","About Joplin":"","%s %s (%s, %s)":"","Open %s":"","Exit":"","OK":"","Cancel":"","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"","Check synchronisation configuration":"","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"","Updated":"","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"","Encryption is:":"","Back":"","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"","Please create a notebook first.":"","Please create a notebook first":"","Notebook title:":"","Add or remove tags:":"","Separate each tag by a comma.":"","Rename notebook:":"","Set alarm:":"","Search":"","Layout":"","Some items cannot be synchronised.":"","View them now":"","Some items cannot be decrypted.":"","Set the password":"","Add or remove tags":"","Switch between note and to-do type":"","Delete":"","Delete notes?":"","No notes in here. Create one by clicking on \"New note\".":"","There is currently no notebook. Create one by clicking on \"New notebook\".":"","Open...":"","Save as...":"","Unsupported link or message: %s":"","Attach file":"","Tags":"","Set alarm":"","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"","note":"","Creating new %s...":"","Refresh":"","Clear":"","OneDrive Login":"","Options":"","Synchronisation Status":"","Encryption Options":"","Remove this tag from all the notes?":"","Remove this search from the sidebar?":"","Rename":"","Synchronise":"","Notebooks":"","Searches":"","Please select where the sync status should be exported to":"","Usage: %s":"","Unknown flag: %s":"","File system":"","Nextcloud":"","OneDrive":"","OneDrive Dev (For testing only)":"","WebDAV":"","Unknown log level: %s":"","Unknown level ID: %s":"","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"","Cannot access %s":"","Created local items: %d.":"","Updated local items: %d.":"","Created remote items: %d.":"","Updated remote items: %d.":"","Deleted local items: %d.":"","Deleted remote items: %d.":"","Fetched items: %d/%d.":"","State: \"%s\".":"","Cancelling...":"","Completed: %s":"","Last error: %s":"","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"","Encrypted":"","Encrypted items cannot be modified":"","Conflicts":"","A notebook with this title already exists: \"%s\"":"","Notebooks cannot be named \"%s\", which is a reserved title.":"","Untitled":"","This note does not have geolocation information.":"","Cannot copy note to \"%s\" notebook":"","Cannot move note to \"%s\" notebook":"","Text editor":"","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"","Language":"","Date format":"","Time format":"","Theme":"","Light":"","Dark":"","Uncompleted to-dos on top":"","Sort notes by":"","Reverse sort order":"","Save geo-location with notes":"","When creating a new to-do:":"","Focus title":"","Focus body":"","When creating a new note:":"","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"","Synchronisation interval":"","%d minutes":"","%d hour":"","%d hours":"","Show advanced options":"","Synchronisation target":"","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"","Joplin Export File":"","Markdown":"","Joplin Export Directory":"","Evernote Export File":"","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"","Items that cannot be synchronised":"","%s (%s): %s":"","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"","%s: %d/%d":"","Total: %d/%d":"","Conflicted: %d":"","To delete: %d":"","Folders":"","%s: %d notes":"","Coming alarms":"","On %s: %s":"","There are currently no notes. Create one by clicking on the (+) button.":"","Delete these notes?":"","Log":"","Export Debug Report":"","Encryption Config":"","Configuration":"","Move to notebook...":"","Move %d notes to notebook \"%s\"?":"","Press to set the decryption password.":"","Select date":"","Confirm":"","Cancel synchronisation":"","Joplin website":"","Master Key %s":"","Created: %s":"","Password:":"","Password cannot be empty":"","Enable":"","The notebook could not be saved: %s":"","Edit notebook":"","Show all":"","Errors only":"","This note has been modified:":"","Save changes":"","Discard changes":"","Unsupported image type: %s":"","Attach photo":"","Attach any file":"","Convert to note":"","Convert to todo":"","Hide metadata":"","Show metadata":"","View on map":"","Delete notebook":"","Login with OneDrive":"","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"","You currently have no notebook. Create one by clicking on (+) button.":"","Welcome":""}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"","Please select the note or notebook to be deleted first.":"","Press Ctrl+D or type \"exit\" to exit the application":"","More than one item match \"%s\". Please narrow down your query.":"","No notebook selected.":"","No notebook has been specified.":"","Y":"","n":"","N":"","y":"","Cancelling background synchronisation... Please wait.":"","No such command: %s":"","The command \"%s\" is only available in GUI mode":"","Cannot change encrypted item":"","Missing required argument: %s":"","%s: %s":"","Your choice: ":"","Invalid answer: %s":"","Attaches the given file to the note.":"","Cannot find \"%s\".":"","Displays the given note.":"","Displays the complete information about note.":"","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"","Also displays unset and hidden config variables.":"","%s = %s (%s)":"","%s = %s":"","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"","Marks a to-do as done.":"","Note is not a to-do: \"%s\"":"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"","Disabled":"","Encryption is: %s":"","Edit note.":"","No text editor is defined. Please set it using `config editor `":"","No active notebook.":"","Note does not exist: \"%s\". Create it?":"","Starting to edit note. Close the editor to get back to the prompt.":"","Error opening note in editor: %s":"","Note has been saved.":"","Exits the application.":"","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"","Destination format: %s":"","Exports only the given note.":"","Exports only the given notebook.":"","Displays a geolocation URL for the note.":"","Displays usage information.":"","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"","The possible commands are:":"","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"","To move from one pane to another, press Tab or Shift+Tab.":"","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"","To maximise/minimise the console, press \"TC\".":"","To enter command line mode, press \":\"":"","To exit command line mode, press ESCAPE":"","For the list of keyboard shortcuts and config options, type `help keymap`":"","Imports data into Joplin.":"","Source format: %s":"","Do not ask for confirmation.":"","Found: %d.":"","Created: %d.":"","Updated: %d.":"","Skipped: %d.":"","Resources: %d.":"","Tagged: %d.":"","Importing notes...":"","The notes have been imported: %s":"","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"","Displays only the first top  notes.":"","Sorts the item by  (eg. title, updated_time, created_time).":"","Reverses the sorting order.":"","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"","Either \"text\" or \"json\"":"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"","Please select a notebook first.":"","Creates a new notebook.":"","Creates a new note.":"","Notes can only be created within a notebook.":"","Creates a new to-do.":"","Moves the notes matching  to [notebook].":"","Renames the given  (note or notebook) to .":"","Deletes the given notebook.":"","Deletes the notebook without asking for confirmation.":"","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"","Deletes the notes without asking for confirmation.":"","%d notes match this pattern. Delete them?":"","Delete note?":"","Searches for the given  in all the notes.":"","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"","Displays summary about the notes and notebooks.":"","Synchronises with remote storage.":"","Sync to provided target (defaults to sync.target config value)":"","Authentication was not completed (did not receive an authentication token).":"","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"","Synchronisation target: %s (%s)":"","Cannot initialize synchroniser.":"","Starting synchronisation...":"","Cancelling... Please wait.":""," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":"","Invalid command: \"%s\"":""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"","Marks a to-do as non-completed.":"","Switches to [notebook] - all further operations will happen within this notebook.":"","Displays version information":"","%s %s (%s)":"","Enum":"","Type: %s.":"","Possible values: %s.":"","Default: %s":"","Possible keys/values:":"","Type `joplin help` for usage information.":"","Fatal error:":"","The application has been authorised - you may now close this browser tab.":"","The application has been successfully authorised.":"","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"","Search:":"","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"","File":"","New note":"","New to-do":"","New notebook":"","Import":"","Export":"","Print":"","Hide %s":"","Quit":"","Edit":"","Copy":"","Cut":"","Paste":"","Search in all the notes":"","View":"","Toggle editor layout":"","Tools":"","Synchronisation status":"","Encryption options":"","General Options":"","Help":"","Website and documentation":"","Make a donation":"","Check for updates...":"","About Joplin":"","%s %s (%s, %s)":"","Open %s":"","Exit":"","OK":"","Cancel":"","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"","Check synchronisation configuration":"","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"","Updated":"","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"","Encryption is:":"","Back":"","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"","Please create a notebook first.":"","Please create a notebook first":"","Notebook title:":"","Add or remove tags:":"","Separate each tag by a comma.":"","Rename notebook:":"","Set alarm:":"","Search":"","Layout":"","Some items cannot be synchronised.":"","View them now":"","Some items cannot be decrypted.":"","Set the password":"","Add or remove tags":"","Switch between note and to-do type":"","Delete":"","Delete notes?":"","No notes in here. Create one by clicking on \"New note\".":"","There is currently no notebook. Create one by clicking on \"New notebook\".":"","Open...":"","Save as...":"","Unsupported link or message: %s":"","Attach file":"","Tags":"","Set alarm":"","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"","note":"","Creating new %s...":"","Refresh":"","Clear":"","OneDrive Login":"","Options":"","Synchronisation Status":"","Encryption Options":"","Remove this tag from all the notes?":"","Remove this search from the sidebar?":"","Rename":"","Synchronise":"","Notebooks":"","Searches":"","Please select where the sync status should be exported to":"","Usage: %s":"","Unknown flag: %s":"","File system":"","Nextcloud":"","OneDrive":"","OneDrive Dev (For testing only)":"","WebDAV":"","Unknown log level: %s":"","Unknown level ID: %s":"","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"","Cannot access %s":"","Created local items: %d.":"","Updated local items: %d.":"","Created remote items: %d.":"","Updated remote items: %d.":"","Deleted local items: %d.":"","Deleted remote items: %d.":"","Fetched items: %d/%d.":"","State: %s.":"","Cancelling...":"","Completed: %s":"","Last error: %s":"","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"","Encrypted":"","Encrypted items cannot be modified":"","Conflicts":"","A notebook with this title already exists: \"%s\"":"","Notebooks cannot be named \"%s\", which is a reserved title.":"","Untitled":"","This note does not have geolocation information.":"","Cannot copy note to \"%s\" notebook":"","Cannot move note to \"%s\" notebook":"","Text editor":"","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"","Language":"","Date format":"","Time format":"","Theme":"","Light":"","Dark":"","Uncompleted to-dos on top":"","Sort notes by":"","Reverse sort order":"","Save geo-location with notes":"","When creating a new to-do:":"","Focus title":"","Focus body":"","When creating a new note:":"","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"","Synchronisation interval":"","%d minutes":"","%d hour":"","%d hours":"","Show advanced options":"","Synchronisation target":"","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"","Joplin Export File":"","Markdown":"","Joplin Export Directory":"","Evernote Export File":"","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"","Items that cannot be synchronised":"","%s (%s): %s":"","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"","%s: %d/%d":"","Total: %d/%d":"","Conflicted: %d":"","To delete: %d":"","Folders":"","%s: %d notes":"","Coming alarms":"","On %s: %s":"","There are currently no notes. Create one by clicking on the (+) button.":"","Delete these notes?":"","Log":"","Export Debug Report":"","Encryption Config":"","Configuration":"","Move to notebook...":"","Move %d notes to notebook \"%s\"?":"","Press to set the decryption password.":"","Select date":"","Confirm":"","Cancel synchronisation":"","Joplin website":"","Master Key %s":"","Created: %s":"","Password:":"","Password cannot be empty":"","Enable":"","The notebook could not be saved: %s":"","Edit notebook":"","Show all":"","Errors only":"","This note has been modified:":"","Save changes":"","Discard changes":"","Unsupported image type: %s":"","Attach photo":"","Attach any file":"","Convert to note":"","Convert to todo":"","Hide metadata":"","Show metadata":"","View on map":"","Delete notebook":"","Login with OneDrive":"","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"","You currently have no notebook. Create one by clicking on (+) button.":"","Welcome":""}
        \ No newline at end of file
        diff --git a/ReactNativeClient/locales/es_ES.json b/ReactNativeClient/locales/es_ES.json
        index 83465eb5d1..a30f9425bf 100644
        --- a/ReactNativeClient/locales/es_ES.json
        +++ b/ReactNativeClient/locales/es_ES.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"Desmarque las notas asociadas para eliminar una etiqueta.","Please select the note or notebook to be deleted first.":"Seleccione primero la nota o libreta que desea eliminar.","Press Ctrl+D or type \"exit\" to exit the application":"Pulse Ctrl+D o escriba «salir» para salir de la aplicación","More than one item match \"%s\". Please narrow down your query.":"Hay más de un elemento que coincide con «%s», intente mejorar su consulta.","No notebook selected.":"No se ha seleccionado ninguna libreta.","No notebook has been specified.":"Ninguna libreta fue especificada","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Cancelando sincronización de segundo plano... Por favor espere.","No such command: %s":"El comando no existe: %s","The command \"%s\" is only available in GUI mode":"El comando «%s» solamente está disponible en modo GUI","Cannot change encrypted item":"No se puede cambiar el elemento cifrado","Missing required argument: %s":"Falta un argumento requerido: %s","%s: %s":"%s: %s","Your choice: ":"Su elección: ","Invalid answer: %s":"Respuesta inválida: %s","Attaches the given file to the note.":"Adjuntar archivo a la nota.","Cannot find \"%s\".":"No se encuentra \"%s\".","Displays the given note.":"Mostrar la nota dada.","Displays the complete information about note.":"Mostrar la información completa acerca de la nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtener o configurar un valor. Si no se provee el [valor], se mostrará el valor de [nombre]. Si no se provee [nombre] ni [valor], se listará la configuración actual.","Also displays unset and hidden config variables.":"También muestra variables ocultas o no configuradas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica las notas que coincidan con  en la libreta. Si no se especifica una libreta la nota se duplica en la libreta actual.","Marks a to-do as done.":"Marca una tarea como hecha.","Note is not a to-do: \"%s\"":"La nota no es una tarea: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Maneja la configuración E2EE. Comandos disponibles `enable`, `disable`, `decrypt`, `status` y `target-status`.","Enter master password:":"Introduzca la contraseña maestra:","Operation cancelled":"Operación cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando descifrado... Por favor espere, puede tardar varios minutos dependiendo de cuanto haya que descifrar.","Completed decryption.":"Descifrado completado.","Enabled":"Habilitado","Disabled":"Deshabilitado","Encryption is: %s":"El cifrado es: %s","Edit note.":"Editar una nota.","No text editor is defined. Please set it using `config editor `":"No hay editor de texto definido. Por favor configure uno usando `config editor `","No active notebook.":"No hay libreta activa.","Note does not exist: \"%s\". Create it?":"La nota no existe: \"%s\". ¿Crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Iniciando la edición de una nota. Cierre el editor para regresar al prompt.","Error opening note in editor: %s":"Error abriendo la nota en el editor: %s","Note has been saved.":"La nota ha sido guardada.","Exits the application.":"Sale de la aplicación.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporta datos de Joplin al directorio indicado. Por defecto, se exportará la base de datos completa incluyendo libretas, notas, etiquetas y recursos.","Destination format: %s":"Formato de destino: %s","Exports only the given note.":"Exporta únicamente la nota indicada.","Exports only the given notebook.":"Exporta únicamente la libreta indicada.","Displays a geolocation URL for the note.":"Muestra la URL de la geolocalización de la nota.","Displays usage information.":"Muestra información de uso.","For information on how to customise the shortcuts please visit %s":"Para información de cómo personalizar los atajos por favor visite %s","Shortcuts are not available in CLI mode.":"Atajos no disponibles en modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Escriba `help [command]` para obtener más información sobre el comando, o escriba `help all` para obtener toda la información acerca del uso del programa.","The possible commands are:":"Los posibles comandos son:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Con cualquier comando, una nota o libreta puede ser referida por su título o ID, o utilizando atajos `$n` o `$b`, respectivamente, para la nota o libreta seleccionada. Se puede utilizar `$c` para hacer referencia al elemento seleccionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover desde un panel a otro, presione Tabulador o Mayúsuclas+Tabulador.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Para desplazar en las listas y areas de texto (incluyendo la consola) utilice las flechas y re pág/av pág.","To maximise/minimise the console, press \"TC\".":"Para maximizar/minimizar la consola, presione \"TC\".","To enter command line mode, press \":\"":"Para entrar a modo línea de comando, presione \":\"","To exit command line mode, press ESCAPE":"Para salir de modo línea de comando, presione ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Para una lista de los atajos de teclado disponibles, escriba `help keymap`","Imports data into Joplin.":"Importa los datos en Joplin.","Source format: %s":"Formato de origen: %s","Do not ask for confirmation.":"No requiere confirmación.","Found: %d.":"Encontrado: %d.","Created: %d.":"Creado: %d.","Updated: %d.":"Actualizado: %d.","Skipped: %d.":"Omitido: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Etiquetado: %d.","Importing notes...":"Importando notas...","The notes have been imported: %s":"Las notas han sido importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Muestra las notas en la libreta actual. Usa `ls /` para mostrar la lista de libretas.","Displays only the first top  notes.":"Muestra las primeras  notas.","Sorts the item by  (eg. title, updated_time, created_time).":"Ordena los elementos por campo ( ej. title, updated_time, created_time).","Reverses the sorting order.":"Invierte el orden.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Muestra únicamente los elementos de los tipos especificados. Pueden ser `n` para notas, `t` para tareas, o `nt` para libretas y tareas (ej. `-tt` mostrará unicamente las tareas, mientras `-ttd` mostrará notas y tareas).","Either \"text\" or \"json\"":"Puede ser \"text\" o \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usar formato largo de lista. El formato es ID, NOTE_COUNT ( para libretas), DATE,TODO_CHECKED ( para tareas), TITLE","Please select a notebook first.":"Por favor seleccione la libreta.","Creates a new notebook.":"Crea una nueva libreta.","Creates a new note.":"Crea una nueva nota.","Notes can only be created within a notebook.":"Notas solamente pueden ser creadas dentro de una libreta.","Creates a new to-do.":"Crea una nueva lista de tareas.","Moves the notes matching  to [notebook].":"Mueve las notas que coincidan con  a la [libreta].","Renames the given  (note or notebook) to .":"Renombra el elemento dado  (nota o libreta) a .","Deletes the given notebook.":"Elimina la libreta dada.","Deletes the notebook without asking for confirmation.":"Elimina una libreta sin pedir confirmación.","Delete notebook? All notes within this notebook will also be deleted.":"¿Desea eliminar la libreta? Todas las notas dentro de esta libreta también serán eliminadas.","Deletes the notes matching .":"Elimina las notas que coinciden con .","Deletes the notes without asking for confirmation.":"Elimina las notas sin pedir confirmación.","%d notes match this pattern. Delete them?":"%d notas coinciden con el patrón. ¿Eliminarlas?","Delete note?":"¿Eliminar nota?","Searches for the given  in all the notes.":"Buscar el patrón  en todas las notas.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Asigna el valor [value] a la propiedad  de la nota indicada . Propiedades disponibles:\n\n%s","Displays summary about the notes and notebooks.":"Muestra un resumen acerca de las notas y las libretas.","Synchronises with remote storage.":"Sincroniza con el almacenamiento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincroniza con el destino indicado (por defecto al valor de configuración sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticación no completada (no se recibió token de autenticación).","Not authentified with %s. Please provide any missing credentials.":"No autenticado con %s. Por favor provea las credenciales.","Synchronisation is already in progress.":"Sincronzación en progreso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ya hay un archivo de bloqueo. Si está seguro de que no hay una sincronización en curso puede eliminar el archivo de bloqueo «%s» y reanudar la operación.","Synchronisation target: %s (%s)":"Destino de la sincronización: %s (%s)","Cannot initialize synchroniser.":"No se puede inicializar sincronizador.","Starting synchronisation...":"Iniciando sincronización...","Cancelling... Please wait.":"Cancelando... Por favor espere."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" puede ser \"add\", \"remove\" o \"list\" para asignar o eliminar [tag] de [note], o para listar las notas asociadas con [tag]. El comando `tag list` puede ser usado para listar todas las etiquetas.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" puede ser \"toggle\" o \"clear\". Usa \"toggle\" para cambiar la tarea dada entre estado completado y sin completar. (Si el objetivo es una nota regular se convertirá en una tarea). Usa \"clear\" para convertir la tarea a una nota regular.","Marks a to-do as non-completed.":"Marca una tarea como no completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Cambia una [libreta] - todas las demás operaciones se realizan en ésta libreta.","Displays version information":"Muestra información de la versión","%s %s (%s)":"%s %s (%s)","Enum":"Enumeración","Type: %s.":"Tipo: %s.","Possible values: %s.":"Posibles valores: %s.","Default: %s":"Por  defecto: %s","Possible keys/values:":"Claves/valores posbiles:","Type `joplin help` for usage information.":"Escriba `joplin help` para mostrar información de uso.","Fatal error:":"Error fatal:","The application has been authorised - you may now close this browser tab.":"La aplicación ha sido autorizada - ahora puede cerrar esta pestaña de su navegador.","The application has been successfully authorised.":"La aplicacion ha sido autorizada éxitosamente.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra la siguiente URL en su navegador para autenticar la aplicación. La aplicación creará un directorio en «Apps/Joplin» y solo leerá y escribirá archivos en ese directorio. No tendrá acceso a ningún archivo fuera de ese directorio ni a ningún otro archivo personal. No se compartirá información con terceros.","Search:":"Buscar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenido a Joplin.\n\nEscriba «:help shortcuts» para obtener una lista con los atajos de teclado, o simplemente «:help» para información general.\n\nPor ejemplo, para crear una libreta escriba «mb», para crear una nota escriba «mn».","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Uno o más elementos están cifrados y debe proporcionar la contraseña maestra. Para hacerlo por favor escriba `e2ee decrypt`. Si ya ha proporcionado la contraseña, los elementos están siendo descifrados en segundo plano y estarán disponibles en breve.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportando el formato de \"%s\" a \"%s\". Por favor espere...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importando el formato de \"%s\" a \"%s\". Por favor espere...","PDF File":"Archivo PDF","File":"Archivo","New note":"Nueva nota","New to-do":"Nueva lista de tareas","New notebook":"Nueva libreta","Import":"Importar","Export":"Exportar","Print":"Imprimir","Hide %s":"Oculta %s","Quit":"Salir","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Pegar","Search in all the notes":"Buscar en todas las notas","View":"Ver","Toggle editor layout":"Cambia el diseño del editor","Tools":"Herramientas","Synchronisation status":"Estado de la sincronización","Encryption options":"Opciones de cifrado","General Options":"Opciones generales","Help":"Ayuda","Website and documentation":"Sitio web y documentación","Make a donation":"Hacer una donación","Check for updates...":"Comprobar actualizaciones...","About Joplin":"Acerca de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Abrir %s","Exit":"Salir","OK":"OK","Cancel":"Cancelar","Current version is up-to-date.":"La versión actual está actualizada.","An update is available, do you want to download it now?":"Hay disponible una actualización. ¿Quiere descargarla ahora?","Yes":"Sí","No":"No","Check synchronisation configuration":"Comprobar sincronización","Notes and settings are stored in: %s":"Las notas y los ajustes se guardan en: %s","Save":"Guardar","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Deshabilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán descifrados al destino. ¿Desea continuar?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Habilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán cifrados al destino. No pierda la contraseña, por cuestiones de seguridad, ¡es la *única* forma de descifrar los datos! Para habilitar el cifrado, por favor introduzca su contraseña más abajo.","Disable encryption":"Deshabilitar cifrado","Enable encryption":"Habilitar cifrado","Master Keys":"Clave maestra","Active":"Activo","ID":"ID","Source":"Origen","Created":"Creado","Updated":"Actualizado","Password":"Contraseña","Password OK":"Contraseña OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Nota: Solo una clave maestra va a ser utilizar para el cifrado (la marcada como \"activa\"). Cualquiera de las claves puede ser utilizada para descifrar, dependiendo de como fueron cifradas originalmente las notas o las libretas.","Missing Master Keys":"No se encuentra la clave maestra","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"La clave maestra con estos ID son utilizadas para descifrar algunos de tus elementos, pero la apliación no tiene acceso a ellas. Serán descargadas a través de la sincronización.","Status":"Estado","Encryption is:":"El cifrado está:","Back":"Atrás","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Se creará la nueva libreta «%s» y se importará en ella el archivo «%s»","Please create a notebook first.":"Por favor cree una libreta primero.","Please create a notebook first":"Por favor cree una libreta primero","Notebook title:":"Título de libreta:","Add or remove tags:":"Agregar o borrar etiquetas: ","Separate each tag by a comma.":"Separar cada etiqueta por una coma.","Rename notebook:":"Renombrar libreta:","Set alarm:":"Ajustar alarma:","Search":"Buscar","Layout":"Diseño","Some items cannot be synchronised.":"No se han podido sincronizar algunos de los elementos.","View them now":"Verlos ahora","Some items cannot be decrypted.":"No se han podido descifrar algunos elementos.","Set the password":"Establecer la contraseña","Add or remove tags":"Añadir o borrar etiquetas","Switch between note and to-do type":"Cambiar entre nota y lista de tareas","Delete":"Eliminar","Delete notes?":"¿Desea eliminar notas?","No notes in here. Create one by clicking on \"New note\".":"No hay ninguna nota. Cree una pulsando «Nota nueva».","There is currently no notebook. Create one by clicking on \"New notebook\".":"No hay ninguna libreta. Cree una pulsando en «Libreta nueva».","Open...":"Abrir...","Save as...":"Guardar como...","Unsupported link or message: %s":"Enlace o mensaje no soportado: %s","Attach file":"Adjuntar archivo","Tags":"Etiquetas","Set alarm":"Establecer alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota no tiene contenido. Pulse en \"%s\" para cambiar al editor y editar la nota.","to-do":"lista de tareas","note":"nota","Creating new %s...":"Creando nuevo %s...","Refresh":"Refrescar","Clear":"Limpiar","OneDrive Login":"Inicio de sesión de OneDrive","Options":"Opciones","Synchronisation Status":"Estado de la sincronización","Encryption Options":"Opciones de cifrado","Remove this tag from all the notes?":"¿Desea eliminar esta etiqueta de todas las notas?","Remove this search from the sidebar?":"¿Desea eliminar esta búsqueda de la barra lateral?","Rename":"Renombrar","Synchronise":"Sincronizar","Notebooks":"Libretas","Searches":"Búsquedas","Please select where the sync status should be exported to":"Seleccione a dónde se debería exportar el estado de sincronización","Usage: %s":"Uso: %s","Unknown flag: %s":"Etiqueta desconocida: %s","File system":"Sistema de archivos","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Solo para pruebas)","WebDAV":"WebDAV","Unknown log level: %s":"Nivel de log desconocido: %s","Unknown level ID: %s":"ID de nivel desconocido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"No se ha podido actualizar token: faltan datos de autenticación. Reiniciar la sincronización podría solucionar el problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"No se ha podido sincronizar con OneDrive.\n\nEste error suele ocurrir al utilizar OneDrive for Business. Este producto no está soportado.\n\nPodría considerar utilizar una cuenta Personal de OneDrive.","Cannot access %s":"No se ha podido acceder a %s","Created local items: %d.":"Elementos locales creados: %d.","Updated local items: %d.":"Elementos locales actualizados: %d.","Created remote items: %d.":"Elementos remotos creados: %d.","Updated remote items: %d.":"Elementos remotos actualizados: %d.","Deleted local items: %d.":"Elementos locales borrados: %d.","Deleted remote items: %d.":"Elementos remotos borrados: %d.","Fetched items: %d/%d.":"Elementos obtenidos: %d/%d.","State: \"%s\".":"Estado: «%s».","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Last error: %s":"Último error: %s","Idle":"Espera","In progress":"En progreso","Synchronisation is already in progress. State: %s":"La sincronización ya está en progreso. Estado: %s","Encrypted":"Cifrado","Encrypted items cannot be modified":"Los elementos cifrados no pueden ser modificados","Conflicts":"Conflictos","A notebook with this title already exists: \"%s\"":"Ya existe una libreta con este nombre: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"No se puede usar el nombre «%s» para una libreta; es un título reservado.","Untitled":"Sin título","This note does not have geolocation information.":"Esta nota no tiene informacion de geolocalización.","Cannot copy note to \"%s\" notebook":"No se ha podido copiar la nota a la libreta «%s»","Cannot move note to \"%s\" notebook":"No se ha podido mover la nota a la libreta «%s»","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"El editor que se usará para abrir una nota. Se intentará auto-detectar el editor predeterminado si no se proporciona ninguno.","Language":"Idioma","Date format":"Formato de fecha","Time format":"Formato de hora","Theme":"Tema","Light":"Claro","Dark":"Oscuro","Uncompleted to-dos on top":"Mostrar tareas incompletas al inicio de las listas","Sort notes by":"Ordenar notas por","Reverse sort order":"Invierte el orden","Save geo-location with notes":"Guardar geolocalización en las notas","When creating a new to-do:":"Al crear una nueva lista de tareas:","Focus title":"Foco en el título","Focus body":"Foco en el cuerpo","When creating a new note:":"Cuando se crear una nota nueva:","Show tray icon":"Mostrar icono en la bandeja","Global zoom percentage":"Establecer el porcentaje de aumento de la aplicación","Editor font family":"Fuente del editor","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"El nombre de la fuente no se comprobado. Si es incorrecto o está vacío, se utilizará una fuente genérica monoespaciada.","Automatically update the application":"Actualizar la aplicación automáticamente","Synchronisation interval":"Intervalo de sincronización","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opciones avanzadas","Synchronisation target":"Destino de sincronización","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"El destino de la sincronización. Cada destino de la sincronización puede tener parámetros adicionales los cuales son llamados como `sync.NUM.NAME` (todos abajo documentados).","Directory to synchronise with (absolute path)":"Directorio con el que sincronizarse (ruta completa)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"La ruta a la que sincronizar cuando se activa la sincronización con sistema de archivos. Vea «sync.target».","Nextcloud WebDAV URL":"Servidor WebDAV de Nextcloud","Nextcloud username":"Usuario de Nextcloud","Nextcloud password":"Contraseña de Nextcloud","WebDAV URL":"Servidor WebDAV","WebDAV username":"Usuario de WebDAV","WebDAV password":"Contraseña de WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Opción inválida: «%s». Los valores posibles son: %s.","Joplin Export File":"Archivo de exportación de Joplin","Markdown":"Markdown","Joplin Export Directory":"Directorio para exportar de Joplin","Evernote Export File":"Archivo exportado de Evernote","Directory":"Directorio","Cannot load \"%s\" module for format \"%s\"":"No se puede cargar el módulo \"%s\" para el formato \"%s\"","Please specify import format for %s":"Por favor especifique el formato para importar de %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"El elemento se encuentra cifrado: %s \"%s\". Por favor espere a que todos los elementos estén descifrados y pruebe de nuevo.","There is no data to export.":"No hay datos para exportar.","Please specify the notebook where the notes should be imported to.":"Por favor especifique la libreta donde las notas deben ser importadas.","Items that cannot be synchronised":"Elementos que no se pueden sincronizar","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Estos elementos se mantendrán en el dispositivo pero no serán enviados al destino de sincronización. Para encontrar dichos elementos busca en el título o en el ID (el cual se muestra arriba entre corchetes).","Sync status (synced items / total items)":"Estado de sincronización (elementos sincronizados/elementos totales)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Conflictos: %d","To delete: %d":"Borrar: %d","Folders":"Carpetas","%s: %d notes":"%s: %d notas","Coming alarms":"Alarmas próximas","On %s: %s":"En %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"No hay notas. Cree una pulsando en el botón (+).","Delete these notes?":"¿Desea borrar estas notas?","Log":"Log","Export Debug Report":"Exportar informe de depuración","Encryption Config":"Configuración de cifrado","Configuration":"Configuración","Move to notebook...":"Mover a la libreta...","Move %d notes to notebook \"%s\"?":"¿Desea mover %d notas a libreta «%s»?","Press to set the decryption password.":"Presione para establecer la contraseña de descifrado.","Select date":"Seleccione fecha","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronización","Joplin website":"Sitio web de Joplin","Master Key %s":"Clave maestra %s","Created: %s":"Creado: %s","Password:":"Contraseña:","Password cannot be empty":"La contraseña no puede estar vacía","Enable":"Habilitado","The notebook could not be saved: %s":"No se ha podido guardar esta libreta: %s","Edit notebook":"Editar libreta","Show all":"Mostrar todo","Errors only":"Solo errores","This note has been modified:":"Esta nota ha sido modificada:","Save changes":"Guardar cambios","Discard changes":"Descartar cambios","Unsupported image type: %s":"Tipo de imagen no soportado: %s","Attach photo":"Adjuntar foto","Attach any file":"Adjuntar cualquier archivo","Convert to note":"Convertir a nota","Convert to todo":"Convertir a lista de tareas","Hide metadata":"Ocultar metadatos","Show metadata":"Mostrar metadatos","View on map":"Ver en un mapa","Delete notebook":"Borrar libreta","Login with OneDrive":"Acceder con OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Pulse en el botón (+) para crear una nueva nota o libreta. Pulse en el menú lateral para acceder a las libretas existentes.","You currently have no notebook. Create one by clicking on (+) button.":"No hay ninguna libreta. Cree una nueva libreta pulsando en el botón (+).","Welcome":"Bienvenido"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"Desmarque las notas asociadas para eliminar una etiqueta.","Please select the note or notebook to be deleted first.":"Seleccione primero la nota o libreta que desea eliminar.","Press Ctrl+D or type \"exit\" to exit the application":"Pulse Ctrl+D o escriba «salir» para salir de la aplicación","More than one item match \"%s\". Please narrow down your query.":"Hay más de un elemento que coincide con «%s», intente mejorar su consulta.","No notebook selected.":"No se ha seleccionado ninguna libreta.","No notebook has been specified.":"Ninguna libreta fue especificada","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Cancelando sincronización de segundo plano... Por favor espere.","No such command: %s":"El comando no existe: %s","The command \"%s\" is only available in GUI mode":"El comando «%s» solamente está disponible en modo GUI","Cannot change encrypted item":"No se puede cambiar el elemento cifrado","Missing required argument: %s":"Falta un argumento requerido: %s","%s: %s":"%s: %s","Your choice: ":"Su elección: ","Invalid answer: %s":"Respuesta inválida: %s","Attaches the given file to the note.":"Adjuntar archivo a la nota.","Cannot find \"%s\".":"No se encuentra \"%s\".","Displays the given note.":"Mostrar la nota dada.","Displays the complete information about note.":"Mostrar la información completa acerca de la nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtener o configurar un valor. Si no se provee el [valor], se mostrará el valor de [nombre]. Si no se provee [nombre] ni [valor], se listará la configuración actual.","Also displays unset and hidden config variables.":"También muestra variables ocultas o no configuradas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica las notas que coincidan con  en la libreta. Si no se especifica una libreta la nota se duplica en la libreta actual.","Marks a to-do as done.":"Marca una tarea como hecha.","Note is not a to-do: \"%s\"":"La nota no es una tarea: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Maneja la configuración E2EE. Comandos disponibles `enable`, `disable`, `decrypt`, `status` y `target-status`.","Enter master password:":"Introduzca la contraseña maestra:","Operation cancelled":"Operación cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando descifrado... Por favor espere, puede tardar varios minutos dependiendo de cuanto haya que descifrar.","Completed decryption.":"Descifrado completado.","Enabled":"Habilitado","Disabled":"Deshabilitado","Encryption is: %s":"El cifrado es: %s","Edit note.":"Editar una nota.","No text editor is defined. Please set it using `config editor `":"No hay editor de texto definido. Por favor configure uno usando `config editor `","No active notebook.":"No hay libreta activa.","Note does not exist: \"%s\". Create it?":"La nota no existe: \"%s\". ¿Crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Iniciando la edición de una nota. Cierre el editor para regresar al prompt.","Error opening note in editor: %s":"Error abriendo la nota en el editor: %s","Note has been saved.":"La nota ha sido guardada.","Exits the application.":"Sale de la aplicación.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporta datos de Joplin al directorio indicado. Por defecto, se exportará la base de datos completa incluyendo libretas, notas, etiquetas y recursos.","Destination format: %s":"Formato de destino: %s","Exports only the given note.":"Exporta únicamente la nota indicada.","Exports only the given notebook.":"Exporta únicamente la libreta indicada.","Displays a geolocation URL for the note.":"Muestra la URL de la geolocalización de la nota.","Displays usage information.":"Muestra información de uso.","For information on how to customise the shortcuts please visit %s":"Para información de cómo personalizar los atajos por favor visite %s","Shortcuts are not available in CLI mode.":"Atajos no disponibles en modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Escriba `help [command]` para obtener más información sobre el comando, o escriba `help all` para obtener toda la información acerca del uso del programa.","The possible commands are:":"Los posibles comandos son:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Con cualquier comando, una nota o libreta puede ser referida por su título o ID, o utilizando atajos `$n` o `$b`, respectivamente, para la nota o libreta seleccionada. Se puede utilizar `$c` para hacer referencia al elemento seleccionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover desde un panel a otro, presione Tabulador o Mayúsuclas+Tabulador.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Para desplazar en las listas y areas de texto (incluyendo la consola) utilice las flechas y re pág/av pág.","To maximise/minimise the console, press \"TC\".":"Para maximizar/minimizar la consola, presione \"TC\".","To enter command line mode, press \":\"":"Para entrar a modo línea de comando, presione \":\"","To exit command line mode, press ESCAPE":"Para salir de modo línea de comando, presione ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Para una lista de los atajos de teclado disponibles, escriba `help keymap`","Imports data into Joplin.":"Importa los datos en Joplin.","Source format: %s":"Formato de origen: %s","Do not ask for confirmation.":"No requiere confirmación.","Found: %d.":"Encontrado: %d.","Created: %d.":"Creado: %d.","Updated: %d.":"Actualizado: %d.","Skipped: %d.":"Omitido: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Etiquetado: %d.","Importing notes...":"Importando notas...","The notes have been imported: %s":"Las notas han sido importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Muestra las notas en la libreta actual. Usa `ls /` para mostrar la lista de libretas.","Displays only the first top  notes.":"Muestra las primeras  notas.","Sorts the item by  (eg. title, updated_time, created_time).":"Ordena los elementos por campo ( ej. title, updated_time, created_time).","Reverses the sorting order.":"Invierte el orden.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Muestra únicamente los elementos de los tipos especificados. Pueden ser `n` para notas, `t` para tareas, o `nt` para libretas y tareas (ej. `-tt` mostrará unicamente las tareas, mientras `-ttd` mostrará notas y tareas).","Either \"text\" or \"json\"":"Puede ser \"text\" o \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usar formato largo de lista. El formato es ID, NOTE_COUNT ( para libretas), DATE,TODO_CHECKED ( para tareas), TITLE","Please select a notebook first.":"Por favor seleccione la libreta.","Creates a new notebook.":"Crea una nueva libreta.","Creates a new note.":"Crea una nueva nota.","Notes can only be created within a notebook.":"Notas solamente pueden ser creadas dentro de una libreta.","Creates a new to-do.":"Crea una nueva lista de tareas.","Moves the notes matching  to [notebook].":"Mueve las notas que coincidan con  a la [libreta].","Renames the given  (note or notebook) to .":"Renombra el elemento dado  (nota o libreta) a .","Deletes the given notebook.":"Elimina la libreta dada.","Deletes the notebook without asking for confirmation.":"Elimina una libreta sin pedir confirmación.","Delete notebook? All notes within this notebook will also be deleted.":"¿Desea eliminar la libreta? Todas las notas dentro de esta libreta también serán eliminadas.","Deletes the notes matching .":"Elimina las notas que coinciden con .","Deletes the notes without asking for confirmation.":"Elimina las notas sin pedir confirmación.","%d notes match this pattern. Delete them?":"%d notas coinciden con el patrón. ¿Eliminarlas?","Delete note?":"¿Eliminar nota?","Searches for the given  in all the notes.":"Buscar el patrón  en todas las notas.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Asigna el valor [value] a la propiedad  de la nota indicada . Propiedades disponibles:\n\n%s","Displays summary about the notes and notebooks.":"Muestra un resumen acerca de las notas y las libretas.","Synchronises with remote storage.":"Sincroniza con el almacenamiento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincroniza con el destino indicado (por defecto al valor de configuración sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticación no completada (no se recibió token de autenticación).","Not authentified with %s. Please provide any missing credentials.":"No autenticado con %s. Por favor provea las credenciales.","Synchronisation is already in progress.":"Sincronzación en progreso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ya hay un archivo de bloqueo. Si está seguro de que no hay una sincronización en curso puede eliminar el archivo de bloqueo «%s» y reanudar la operación.","Synchronisation target: %s (%s)":"Destino de la sincronización: %s (%s)","Cannot initialize synchroniser.":"No se puede inicializar sincronizador.","Starting synchronisation...":"Iniciando sincronización...","Cancelling... Please wait.":"Cancelando... Por favor espere."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" puede ser \"add\", \"remove\" o \"list\" para asignar o eliminar [tag] de [note], o para listar las notas asociadas con [tag]. El comando `tag list` puede ser usado para listar todas las etiquetas.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" puede ser \"toggle\" o \"clear\". Usa \"toggle\" para cambiar la tarea dada entre estado completado y sin completar. (Si el objetivo es una nota regular se convertirá en una tarea). Usa \"clear\" para convertir la tarea a una nota regular.","Marks a to-do as non-completed.":"Marca una tarea como no completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Cambia una [libreta] - todas las demás operaciones se realizan en ésta libreta.","Displays version information":"Muestra información de la versión","%s %s (%s)":"%s %s (%s)","Enum":"Enumeración","Type: %s.":"Tipo: %s.","Possible values: %s.":"Posibles valores: %s.","Default: %s":"Por  defecto: %s","Possible keys/values:":"Claves/valores posbiles:","Type `joplin help` for usage information.":"Escriba `joplin help` para mostrar información de uso.","Fatal error:":"Error fatal:","The application has been authorised - you may now close this browser tab.":"La aplicación ha sido autorizada - ahora puede cerrar esta pestaña de su navegador.","The application has been successfully authorised.":"La aplicacion ha sido autorizada éxitosamente.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra la siguiente URL en su navegador para autenticar la aplicación. La aplicación creará un directorio en «Apps/Joplin» y solo leerá y escribirá archivos en ese directorio. No tendrá acceso a ningún archivo fuera de ese directorio ni a ningún otro archivo personal. No se compartirá información con terceros.","Search:":"Buscar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenido a Joplin.\n\nEscriba «:help shortcuts» para obtener una lista con los atajos de teclado, o simplemente «:help» para información general.\n\nPor ejemplo, para crear una libreta escriba «mb», para crear una nota escriba «mn».","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Uno o más elementos están cifrados y debe proporcionar la contraseña maestra. Para hacerlo por favor escriba `e2ee decrypt`. Si ya ha proporcionado la contraseña, los elementos están siendo descifrados en segundo plano y estarán disponibles en breve.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportando el formato de \"%s\" a \"%s\". Por favor espere...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importando el formato de \"%s\" a \"%s\". Por favor espere...","PDF File":"Archivo PDF","File":"Archivo","New note":"Nueva nota","New to-do":"Nueva lista de tareas","New notebook":"Nueva libreta","Import":"Importar","Export":"Exportar","Print":"Imprimir","Hide %s":"Oculta %s","Quit":"Salir","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Pegar","Search in all the notes":"Buscar en todas las notas","View":"Ver","Toggle editor layout":"Cambia el diseño del editor","Tools":"Herramientas","Synchronisation status":"Estado de la sincronización","Encryption options":"Opciones de cifrado","General Options":"Opciones generales","Help":"Ayuda","Website and documentation":"Sitio web y documentación","Make a donation":"Hacer una donación","Check for updates...":"Comprobar actualizaciones...","About Joplin":"Acerca de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Abrir %s","Exit":"Salir","OK":"OK","Cancel":"Cancelar","Current version is up-to-date.":"La versión actual está actualizada.","An update is available, do you want to download it now?":"Hay disponible una actualización. ¿Quiere descargarla ahora?","Yes":"Sí","No":"No","Check synchronisation configuration":"Comprobar sincronización","Notes and settings are stored in: %s":"Las notas y los ajustes se guardan en: %s","Save":"Guardar","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Deshabilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán descifrados al destino. ¿Desea continuar?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Habilitar el cifrado significa que *todas* sus notas y adjuntos van a ser re-sincronizados y se enviarán cifrados al destino. No pierda la contraseña, por cuestiones de seguridad, ¡es la *única* forma de descifrar los datos! Para habilitar el cifrado, por favor introduzca su contraseña más abajo.","Disable encryption":"Deshabilitar cifrado","Enable encryption":"Habilitar cifrado","Master Keys":"Clave maestra","Active":"Activo","ID":"ID","Source":"Origen","Created":"Creado","Updated":"Actualizado","Password":"Contraseña","Password OK":"Contraseña OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Nota: Solo una clave maestra va a ser utilizar para el cifrado (la marcada como \"activa\"). Cualquiera de las claves puede ser utilizada para descifrar, dependiendo de como fueron cifradas originalmente las notas o las libretas.","Missing Master Keys":"No se encuentra la clave maestra","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"La clave maestra con estos ID son utilizadas para descifrar algunos de tus elementos, pero la apliación no tiene acceso a ellas. Serán descargadas a través de la sincronización.","Status":"Estado","Encryption is:":"El cifrado está:","Back":"Atrás","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Se creará la nueva libreta «%s» y se importará en ella el archivo «%s»","Please create a notebook first.":"Por favor cree una libreta primero.","Please create a notebook first":"Por favor cree una libreta primero","Notebook title:":"Título de libreta:","Add or remove tags:":"Agregar o borrar etiquetas: ","Separate each tag by a comma.":"Separar cada etiqueta por una coma.","Rename notebook:":"Renombrar libreta:","Set alarm:":"Ajustar alarma:","Search":"Buscar","Layout":"Diseño","Some items cannot be synchronised.":"No se han podido sincronizar algunos de los elementos.","View them now":"Verlos ahora","Some items cannot be decrypted.":"No se han podido descifrar algunos elementos.","Set the password":"Establecer la contraseña","Add or remove tags":"Añadir o borrar etiquetas","Switch between note and to-do type":"Cambiar entre nota y lista de tareas","Delete":"Eliminar","Delete notes?":"¿Desea eliminar notas?","No notes in here. Create one by clicking on \"New note\".":"No hay ninguna nota. Cree una pulsando «Nota nueva».","There is currently no notebook. Create one by clicking on \"New notebook\".":"No hay ninguna libreta. Cree una pulsando en «Libreta nueva».","Open...":"Abrir...","Save as...":"Guardar como...","Unsupported link or message: %s":"Enlace o mensaje no soportado: %s","Attach file":"Adjuntar archivo","Tags":"Etiquetas","Set alarm":"Establecer alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota no tiene contenido. Pulse en \"%s\" para cambiar al editor y editar la nota.","to-do":"lista de tareas","note":"nota","Creating new %s...":"Creando nuevo %s...","Refresh":"Refrescar","Clear":"Limpiar","OneDrive Login":"Inicio de sesión de OneDrive","Options":"Opciones","Synchronisation Status":"Estado de la sincronización","Encryption Options":"Opciones de cifrado","Remove this tag from all the notes?":"¿Desea eliminar esta etiqueta de todas las notas?","Remove this search from the sidebar?":"¿Desea eliminar esta búsqueda de la barra lateral?","Rename":"Renombrar","Synchronise":"Sincronizar","Notebooks":"Libretas","Searches":"Búsquedas","Please select where the sync status should be exported to":"Seleccione a dónde se debería exportar el estado de sincronización","Usage: %s":"Uso: %s","Unknown flag: %s":"Etiqueta desconocida: %s","File system":"Sistema de archivos","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Solo para pruebas)","WebDAV":"WebDAV","Unknown log level: %s":"Nivel de log desconocido: %s","Unknown level ID: %s":"ID de nivel desconocido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"No se ha podido actualizar token: faltan datos de autenticación. Reiniciar la sincronización podría solucionar el problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"No se ha podido sincronizar con OneDrive.\n\nEste error suele ocurrir al utilizar OneDrive for Business. Este producto no está soportado.\n\nPodría considerar utilizar una cuenta Personal de OneDrive.","Cannot access %s":"No se ha podido acceder a %s","Created local items: %d.":"Elementos locales creados: %d.","Updated local items: %d.":"Elementos locales actualizados: %d.","Created remote items: %d.":"Elementos remotos creados: %d.","Updated remote items: %d.":"Elementos remotos actualizados: %d.","Deleted local items: %d.":"Elementos locales borrados: %d.","Deleted remote items: %d.":"Elementos remotos borrados: %d.","Fetched items: %d/%d.":"Elementos obtenidos: %d/%d.","State: %s.":"State: %s.","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Last error: %s":"Último error: %s","Idle":"Espera","In progress":"En progreso","Synchronisation is already in progress. State: %s":"La sincronización ya está en progreso. Estado: %s","Encrypted":"Cifrado","Encrypted items cannot be modified":"Los elementos cifrados no pueden ser modificados","Conflicts":"Conflictos","A notebook with this title already exists: \"%s\"":"Ya existe una libreta con este nombre: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"No se puede usar el nombre «%s» para una libreta; es un título reservado.","Untitled":"Sin título","This note does not have geolocation information.":"Esta nota no tiene informacion de geolocalización.","Cannot copy note to \"%s\" notebook":"No se ha podido copiar la nota a la libreta «%s»","Cannot move note to \"%s\" notebook":"No se ha podido mover la nota a la libreta «%s»","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"El editor que se usará para abrir una nota. Se intentará auto-detectar el editor predeterminado si no se proporciona ninguno.","Language":"Idioma","Date format":"Formato de fecha","Time format":"Formato de hora","Theme":"Tema","Light":"Claro","Dark":"Oscuro","Uncompleted to-dos on top":"Mostrar tareas incompletas al inicio de las listas","Sort notes by":"Ordenar notas por","Reverse sort order":"Invierte el orden","Save geo-location with notes":"Guardar geolocalización en las notas","When creating a new to-do:":"Al crear una nueva lista de tareas:","Focus title":"Foco en el título","Focus body":"Foco en el cuerpo","When creating a new note:":"Cuando se crear una nota nueva:","Show tray icon":"Mostrar icono en la bandeja","Global zoom percentage":"Establecer el porcentaje de aumento de la aplicación","Editor font family":"Fuente del editor","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"El nombre de la fuente no se comprobado. Si es incorrecto o está vacío, se utilizará una fuente genérica monoespaciada.","Automatically update the application":"Actualizar la aplicación automáticamente","Synchronisation interval":"Intervalo de sincronización","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opciones avanzadas","Synchronisation target":"Destino de sincronización","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"El destino de la sincronización. Cada destino de la sincronización puede tener parámetros adicionales los cuales son llamados como `sync.NUM.NAME` (todos abajo documentados).","Directory to synchronise with (absolute path)":"Directorio con el que sincronizarse (ruta completa)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"La ruta a la que sincronizar cuando se activa la sincronización con sistema de archivos. Vea «sync.target».","Nextcloud WebDAV URL":"Servidor WebDAV de Nextcloud","Nextcloud username":"Usuario de Nextcloud","Nextcloud password":"Contraseña de Nextcloud","WebDAV URL":"Servidor WebDAV","WebDAV username":"Usuario de WebDAV","WebDAV password":"Contraseña de WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Opción inválida: «%s». Los valores posibles son: %s.","Joplin Export File":"Archivo de exportación de Joplin","Markdown":"Markdown","Joplin Export Directory":"Directorio para exportar de Joplin","Evernote Export File":"Archivo exportado de Evernote","Directory":"Directorio","Cannot load \"%s\" module for format \"%s\"":"No se puede cargar el módulo \"%s\" para el formato \"%s\"","Please specify import format for %s":"Por favor especifique el formato para importar de %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"El elemento se encuentra cifrado: %s \"%s\". Por favor espere a que todos los elementos estén descifrados y pruebe de nuevo.","There is no data to export.":"No hay datos para exportar.","Please specify the notebook where the notes should be imported to.":"Por favor especifique la libreta donde las notas deben ser importadas.","Items that cannot be synchronised":"Elementos que no se pueden sincronizar","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Estos elementos se mantendrán en el dispositivo pero no serán enviados al destino de sincronización. Para encontrar dichos elementos busca en el título o en el ID (el cual se muestra arriba entre corchetes).","Sync status (synced items / total items)":"Estado de sincronización (elementos sincronizados/elementos totales)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Conflictos: %d","To delete: %d":"Borrar: %d","Folders":"Carpetas","%s: %d notes":"%s: %d notas","Coming alarms":"Alarmas próximas","On %s: %s":"En %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"No hay notas. Cree una pulsando en el botón (+).","Delete these notes?":"¿Desea borrar estas notas?","Log":"Log","Export Debug Report":"Exportar informe de depuración","Encryption Config":"Configuración de cifrado","Configuration":"Configuración","Move to notebook...":"Mover a la libreta...","Move %d notes to notebook \"%s\"?":"¿Desea mover %d notas a libreta «%s»?","Press to set the decryption password.":"Presione para establecer la contraseña de descifrado.","Select date":"Seleccione fecha","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronización","Joplin website":"Sitio web de Joplin","Master Key %s":"Clave maestra %s","Created: %s":"Creado: %s","Password:":"Contraseña:","Password cannot be empty":"La contraseña no puede estar vacía","Enable":"Habilitado","The notebook could not be saved: %s":"No se ha podido guardar esta libreta: %s","Edit notebook":"Editar libreta","Show all":"Mostrar todo","Errors only":"Solo errores","This note has been modified:":"Esta nota ha sido modificada:","Save changes":"Guardar cambios","Discard changes":"Descartar cambios","Unsupported image type: %s":"Tipo de imagen no soportado: %s","Attach photo":"Adjuntar foto","Attach any file":"Adjuntar cualquier archivo","Convert to note":"Convertir a nota","Convert to todo":"Convertir a lista de tareas","Hide metadata":"Ocultar metadatos","Show metadata":"Mostrar metadatos","View on map":"Ver en un mapa","Delete notebook":"Borrar libreta","Login with OneDrive":"Acceder con OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Pulse en el botón (+) para crear una nueva nota o libreta. Pulse en el menú lateral para acceder a las libretas existentes.","You currently have no notebook. Create one by clicking on (+) button.":"No hay ninguna libreta. Cree una nueva libreta pulsando en el botón (+).","Welcome":"Bienvenido"}
        \ No newline at end of file
        diff --git a/ReactNativeClient/locales/eu.json b/ReactNativeClient/locales/eu.json
        index 584a768032..10e1ced37c 100644
        --- a/ReactNativeClient/locales/eu.json
        +++ b/ReactNativeClient/locales/eu.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"Etiketa ezabatzeko, kendu etiketa duten oharrei","Please select the note or notebook to be deleted first.":"Aurretik aukeratu ezabatzeko oharra edo koadernoa, mesedez.","Press Ctrl+D or type \"exit\" to exit the application":"Sakatu Ktrl+D edo idatzi \"exit\" aplikaziotik irteteko","More than one item match \"%s\". Please narrow down your query.":"Elementu bat baino gehiago bat dator \"%s\" bilaketarekin. Mugatu zure bilaketa, mesedez.","No notebook selected.":"Ez dago koadernorik aukeratuta","No notebook has been specified.":"Ez dago koadernorik aukeratuta.","Y":"B","n":"e","N":"E","y":"b","Cancelling background synchronisation... Please wait.":"Atzeko sinkronizazioa uzten... Mesedez itxaron.","No such command: %s":"Ez dago komandorik: %s","The command \"%s\" is only available in GUI mode":"\"%s\" komandoa  soilik eskuragarri GUI moduan","Cannot change encrypted item":"Ezinezkoa zifratutako itema aldatzea","Missing required argument: %s":"Beharrezko argumentua faltan: %s","%s: %s":"%s: %s","Your choice: ":"Zure aukera:","Invalid answer: %s":"Erantzun baliogabea: %s","Attaches the given file to the note.":"Erantsi fitxategia notan","Cannot find \"%s\".":"Ezin aurkitu \"%s\"","Displays the given note.":"Oharra erakutsi","Displays the complete information about note.":"Erakutsi oharrari buruzko informazio guztia.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Konfigurazio balioa hartu edo ezartzen du. Baldin eta [balioa] ez bada ematen, [izena]ren balioa erakutsiko du. Ez bada ematen [izena] ez [balioa], oraingo konfigurazioaren zerrenda erakutsiko da.","Also displays unset and hidden config variables.":"Ezkutuko edo zehaztu gabeko konfigurazio aldagaiak ere erakusten ditu.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"rekin bat datozen oharrak [koaderno]ra kopiatzen ditu. Koadernorik ez bada zehazten, oharra oraingo koadernoan bikoiztuko da","Marks a to-do as done.":"Markatu zeregina egindakotzat.","Note is not a to-do: \"%s\"":"Oharra ez da zeregina: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"E2EEren konfigurazioa erabiltzen du. Komandoak dira `enable`, `disable`, `decrypt`, `status` eta `target-status`.","Enter master password:":"Sartu pasahitz nagusia:","Operation cancelled":" Eragiketa utzita","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Deszifratzearen hasiera... Mesedez itxaron, prozesua luzea izan daiteke, zenbat dagoen prozesatzeko.","Completed decryption.":"Deszifratuta.","Enabled":"Gaituta","Disabled":"Desgaituta","Encryption is: %s":"Zifratzea da: %s","Edit note.":"Oharra editatu.","No text editor is defined. Please set it using `config editor `":"Testu editorerik ez dago definituta. Egin hau erabilita, mesedez: `config editor `","No active notebook.":"Ez dago koadernorik aukeratuta.","Note does not exist: \"%s\". Create it?":"Ez dago oharrik: \"%s\". Sortu?","Starting to edit note. Close the editor to get back to the prompt.":"Oharra editatzearen hasiera. Itxi editorea prompt-era bueltatzeko.","Error opening note in editor: %s":"Errorea editorean oharra zabaltzean: %s","Note has been saved.":"Oharra gorde da.","Exits the application.":"Irten aplikaziotik.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Esportatu emandako oharra soilik.","Exports only the given notebook.":"Esportatu emandako koadernoa soilik.","Displays a geolocation URL for the note.":"Erakutsi URL geolokalizazioa oharrean.","Displays usage information.":"Erakutsi erabilera datuak.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"CLI moduan ez dago lasterbiderik erabilgarri.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Idatzi `help [command]` komandoari buruzko informazio gehiagorako; edo idatzi `help all` erabilerari buruzko informazio osoa lortzeko.","The possible commands are:":"Litezkeen komandoak hauek dira:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Edozein komandotan, oharra edo koadernoari erreferentzia egin ahal zaio izenburuz edo ID erabilita, edo `$n` edo `$b` lasterbideak erabilita, aukeratuta dagoen oharra edo koadernoa erabiltzeko. `$c` ere erabil daiteke aukeratutako elementua erabiltzeko.","To move from one pane to another, press Tab or Shift+Tab.":"Panel batetik bestera mugitzeko, sakatu Tab edo Shifft + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Erabili geziak edo page up/down list eta testu guneen artean aldatzeko (kontsola hau ere kontuan izanda).","To maximise/minimise the console, press \"TC\".":"Kontsola maximizatu edo minimizatzeko, saka \"TC\" .","To enter command line mode, press \":\"":"Komando lerroa sartzeko, idatzi \":\"","To exit command line mode, press ESCAPE":"Komando lerrotik irteteko, sakatu ESC, mesedez","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Ez galdetu berresteko.","Found: %d.":"Aurkitua: %d","Created: %d.":"Sortuta: %d.","Updated: %d.":"Eguneratuta: %d.","Skipped: %d.":"Saltatuta: %d.","Resources: %d.":"Baliabideak: %d.","Tagged: %d.":"Etiketatuta: %d.","Importing notes...":"Oharrak inportatzen...","The notes have been imported: %s":"Oharrak inportatu dira: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Oraingo koadernoko oharrak erakusten ditu. Erabili `ls /` koadernoen zerrenda erakusteko.","Displays only the first top  notes.":"Erakusten ditu soilik gorengo  oharrak.","Sorts the item by  (eg. title, updated_time, created_time).":"Itemak antolatzen ditu  arabera (esate baterako, izenburua, eguneratze_unea, sortze_unea).","Reverses the sorting order.":"Alderantziz antolatzen du.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Zehaztutako item motak baino ez du erakusten. Izan daiteke `n` oharretarako, `t` zereginetarako, edo `nt` ohar eta zereginetarako (esate batrako, `-tt` zereginak erakutsiko ditu soilik, `-ttd` berriz zereginak eta oharrak.","Either \"text\" or \"json\"":"Either \"text\" or \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Zerrenda luzearen formatua erabili. Formatua hau da, ID, NOTE_COUNT (libururako), DATE, TODO_CHECKED (zereginetarako), TITLE","Please select a notebook first.":"Aurretik aukeratu formatua, mesedez.","Creates a new notebook.":"Koaderno berria sortzen du.","Creates a new note.":"Ohar berria sortzen du.","Notes can only be created within a notebook.":"Oharrak soilik sor daitezke koaderno baten barruan.","Creates a new to-do.":"Zeregin berria sortu.","Moves the notes matching  to [notebook].":"Oharrak eramaten ditu  bilatuta [notebook]era.","Renames the given  (note or notebook) to .":"Ber izendatu emandako  (oharra edo koadernoa)  izen berriaz.","Deletes the given notebook.":"Ezabatu emandako koadernoak.","Deletes the notebook without asking for confirmation.":"Ezabatu koadernoak berrespenik gabe.","Delete notebook? All notes within this notebook will also be deleted.":"Koadernoa ezabatu? Dituen ohar guztiak ere ezabatuko dira.","Deletes the notes matching .":"Ezabatu bat datozen oharrak:  .","Deletes the notes without asking for confirmation.":"Ezabatu oharrak berrespenik eskatu gabe.","%d notes match this pattern. Delete them?":"%d oharrak bat datoz ereduarekin. Ezabatu nahi dituzu?","Delete note?":"Oharra ezabatu?","Searches for the given  in all the notes.":"Emandako  bilatzen du ohar guztietan.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Emandako ren  ezaugarrian emandako [value] balioa ezartzen du. Litezkeen ezaugarriak dira:\n\n%s","Displays summary about the notes and notebooks.":"Oharren eta koadernoen laburpena erakusten du.","Synchronises with remote storage.":"Urruneko biltegiarekin sinkronizatzen du.","Sync to provided target (defaults to sync.target config value)":"Sync to provided target (defaults to sync.target config value)","Authentication was not completed (did not receive an authentication token).":"Autentifikazioa ez da egin osorik (ez du token-ik hartu).","Not authentified with %s. Please provide any missing credentials.":"Ez da autentifikatu %s -rekin. Eman galdutako kredentzialak.","Synchronisation is already in progress.":"Sinkronizazio prozesua dagoeneko abian da.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Giltzatzeko fitxategia dagoeneko eutsita dagoeneko. Baldin eta badakizu ez dena sinkronizaziorik egiten ari, ken dezakezu giltzatzeko fitxategia \"%s\"-n eta berrekin eragiketari.","Synchronisation target: %s (%s)":"Sinkronizazio helburua: %s (%s)","Cannot initialize synchroniser.":"Ezin has daiteke sinkronizazio prozesua.","Starting synchronisation...":"Sinkronizazioa hasten...","Cancelling... Please wait.":"Bertan behera uzten... itxaron, mesedez."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" izan daiteke \"add\", \"remove\" edo \"list\" [oharra]tik [etiketa] esleitu edo kentzeko, edo [etiketa]rekin elkartutako oharrak zerrendatzeko. Etiketa guztiak zerrendatzeko `tag list` komandoa erabil daiteke. ","Invalid command: \"%s\"":"Komando baliogabea: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" erabil daiteke \"txandakatzeko\" edo \"garbitzeko\". Erabili \"txandakatu\", emandako zeregina txandakatzeko bete ala ez-betea txandaketzeko (helburua ohar arrunta bada, zeregin bihurtuko da. Erabili \"garbitu\" zeregina ohar arrunt bilakatzeko.","Marks a to-do as non-completed.":"Markatu zeregina betegabe moduan.","Switches to [notebook] - all further operations will happen within this notebook.":"Aldatu [koaderno]ra - hurrengo eragiketak koaderno horretan jazoko dira.","Displays version information":"Erakutsi bertsioko informazioa","%s %s (%s)":"%s %s (%s)","Enum":"Zenbakitu","Type: %s.":"Idatz: %s.","Possible values: %s.":"Litezkeen balioak: %s.","Default: %s":"Lehenetsia: %s","Possible keys/values:":"Litezkeen balioak:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Aio! Agur! :_( ","The application has been authorised - you may now close this browser tab.":"Aplikazioak baimena hartu du - Orain fitxa hau zarratu dezakezu.","The application has been successfully authorised.":"Aplikazioak baimena hartu du.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.","Search:":"Bilatu:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Ongi etorri Joplin-era!\n\nIdatz `:help shortcuts` lasterbideak ikusteko, edo soilik `:help`erabilerako informaziorako.\n\nEsate baterako, koadernoa sortzeko sakatu `mb`: oharra sortzeko sakatu `mn`","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Item bat edo gehiago orain zifratuta daude eta baliteke zuk pasahitz nagusia ordezkatu behar izatea. Horixe egiteko, mesedez, idatz `e2ee decrypt`. Dagoeneko pasahitza ordezkatua baduzu, itemak deszifratzen ari izango dira atzeko planoan eta laster izango dira eskuragarri.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"Fitxategia","New note":"Ohar berria","New to-do":"Zeregin berria","New notebook":"Koaderno berria","Import":"Inportatu","Export":"Export","Print":"","Hide %s":"","Quit":"Irten","Edit":"Editatu","Copy":"Kopiatu","Cut":"Moztu","Paste":"Itsatsi","Search in all the notes":"Bilatu ohar guztietan","View":"","Toggle editor layout":"","Tools":"Tresnak","Synchronisation status":"Sinkronizazioaren egoera","Encryption options":"Zifratzeko aukerak","General Options":"Ezarpenak","Help":"Laguntza","Website and documentation":"Web orria eta dokumentazioa (en)","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Joplin-i buruz","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Utzi","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Oharrak eta ezarpenak hemen daude gordeta: %s","Save":"Gorde","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Zifratua desgaitzeak esan nahi du zure ohar eta eranskin *guztiak* berriro deszifratuta sinkronizatuko eta bidaliko direla sinkronizazio helburura. Segitu nahi duzu?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Zifratua gaitzeak esan nahi du zure ohar eta eranskin *guztiak* zifratuta sinkronizatuko eta bidaliko direla sinkronizazio helburura. Ez galdu pasahitza, bera izango baita datuak deszifratzeko bide *bakarra*! Zifratua baimentzeko, mesedez, aurretik sartu zure pasahitza.","Disable encryption":"Zifratzea desgaitu","Enable encryption":"Zifratua gaitu","Master Keys":"Pasahitz nagusia","Active":"Aktibo","ID":"ID","Source":"Iturburua","Created":"Sortua","Updated":"Eguneratua","Password":"Pasahitza","Password OK":"Pasahitza ondo","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Egoera","Encryption is:":"Zifratua  da:","Back":"Atzera","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"\"%s\" koaderno berria sortuko da eta \"%s\" Fitxategia inportatuko da bertara","Please create a notebook first.":"Aurretik sortu koadernoa, mesedez.","Please create a notebook first":"Aurretik sortu koadernoa, mesedez","Notebook title:":"Koadernoaren izenburua: ","Add or remove tags:":"Gehitu edo ezabatu etiketak:","Separate each tag by a comma.":"Banatu etiketak koma erabiliaz.","Rename notebook:":"Berrizendatu koadernoa:","Set alarm:":"Ezarri alarma:","Search":"Bilatu","Layout":"Diseinua","Some items cannot be synchronised.":"Zenbait item ezin dira sinkronizatu.","View them now":"Ikusi hori orain","Some items cannot be decrypted.":"Zenbait item ezin dira deszifratu.","Set the password":"Ezarri pasahitza","Add or remove tags":"Gehitu edo ezabatu etiketak","Switch between note and to-do type":"Aldatu oharra eta zeregin eren artean.","Delete":"Ezabatu","Delete notes?":"Oharrak ezabatu?","No notes in here. Create one by clicking on \"New note\".":"Hemen ez dago oharrik. Sortu bat \"Ohar berria\" sakatuta.","There is currently no notebook. Create one by clicking on \"New notebook\".":"Momentuz ez dago koadernorik. Sortu bat \"Koaderno berria\" sakatuta.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Esteka edo mezu ez dago onartua: %s","Attach file":"Erantsi fitxategia","Tags":"Etiketak","Set alarm":"Ezarri alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Refresh","Clear":"Garbitu","OneDrive Login":"Logeatu OneDriven","Options":"Aukerak","Synchronisation Status":"Sinkronizazioaren egoera","Encryption Options":"Zifratzeko aukerak","Remove this tag from all the notes?":"Kendu etiketa hori ohar guztietatik?","Remove this search from the sidebar?":"Kendu bilaketa hori ohar guztietatik?","Rename":"Berrizendatu","Synchronise":"Sinkronizatu","Notebooks":"Koadernoak","Searches":"Bilaketak","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Erabili: %s","Unknown flag: %s":"Marka ezezaguna: %s","File system":"Fitxategi sistema","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (aprobetarako soilik)","WebDAV":"WebDAV","Unknown log level: %s":"Egunkari maila ezezaguna: %s","Unknown level ID: %s":"IDa maila ezezaguna: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Tokena ezin eguneratu daiteke: egiaztatze-datuak desagertuta daude. Agian, berriro sinkronizatzeak arazoa konpon lezake.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.","Cannot access %s":"Ezin atzituta %s","Created local items: %d.":"Item lokalak sortuta: %d.","Updated local items: %d.":"Item lokalak eguneratuta: %d.","Created remote items: %d.":"Urruneko itemak sortuta: %d.","Updated remote items: %d.":"Urruneko itemak eguneratuta: %d.","Deleted local items: %d.":"Item lokala ezabatuta: %d.","Deleted remote items: %d.":"Urruneko itemak ezabatuta: %d.","Fetched items: %d/%d.":"Itemak eskuratuta: %d%d.","State: \"%s\".":"Egoera: \"%s\".","Cancelling...":"Bertan behera uzten...","Completed: %s":"Osatuta: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Sinkronizazioa hasita dago. Egoera: %s","Encrypted":"Zifratuta","Encrypted items cannot be modified":"Zifratutako itemak ezin aldatu daitezke","Conflicts":"Gatazkak","A notebook with this title already exists: \"%s\"":"Dagoeneko bada koaderno bat izen horrekin: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Koadernoak ezin izendatu daitezke \"%s\", izen hori Joplinek gordeta dauka","Untitled":"Titulu gabekoa","This note does not have geolocation information.":"Ohar honek ez du geokokapen informaziorik.","Cannot copy note to \"%s\" notebook":"Ezin kopia daiteke oharra \"%s\" koadernora","Cannot move note to \"%s\" notebook":"Ezin eraman daiteke oharra \"%s\" koadernora","Text editor":"Testu editorea","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Editorea erabiliko da oharra zabaltzeko. Ez badago zehaztutakorik lehenetsia igartzen ahaleginduko da.","Language":"Hizkuntza","Date format":"Data-formatua","Time format":"Ordu formatua","Theme":"Gaia","Light":"Argia","Dark":"Iluna","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Gore geokokapena oharrekin","When creating a new to-do:":"When creating a new to-do:","Focus title":"","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Automatikoki eguneratu aplikazioa","Synchronisation interval":"Sinkronizazio tartea","%d minutes":"%d minutuak","%d hour":"% ordua","%d hours":"% orduak","Show advanced options":"Erakutsi aukera aurreratuak","Synchronisation target":"Sinkronizazio helbudua","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Sinkronizazio helburua. Sinkronizazio aukera bakoitzak izan ditzake parametro gehigarriak, horrela izendatuta `sync.NUM.NAME` (dena beherago dokumentatuta).","Directory to synchronise with (absolute path)":"Sinkronizatzeko direktorioa (bide-izena osorik)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Sinkronizazio sistema gaituta dagoenerako bide-izena. Ikus `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Nextcloud erabiltzaile-izena","Nextcloud password":"Nextcloud pasahitza","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV username","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Balio aukera baliogabea: \"%s\". Litezkeen balioak: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Itemok ezin sinkronizatu","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Itemok gailuan geratuko dira baina ez dira sinkronizatuko. Horiek aurkitzeko bilaketak egin titulu edo goiko parentesien arteko IDaren arabera.","Sync status (synced items / total items)":"Sinkronizazio egoera (sinkronizatutako itemak/itemak guztira)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Denera: %d/%d","Conflicted: %d":"Gatazkatsua: %d","To delete: %d":"Ezabatzeko: %d","Folders":"Karpetak","%s: %d notes":"%s: %d oharrak","Coming alarms":"Hurrengo alarmak","On %s: %s":"On %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Ez dago oharrik. Sortu bat (+) botoian klik eginaz.","Delete these notes?":"Oharrok ezabatu?","Log":"Egunkaria","Export Debug Report":"Esportatu arazketa txostena","Encryption Config":"Zifratze Ezarpenak","Configuration":"Konfigurazioa","Move to notebook...":"Mugitu ... koadernora","Move %d notes to notebook \"%s\"?":"Mugitu %d oharrak \"%s\" koadernora?","Press to set the decryption password.":"Sakatu deszifratze pasahitza ezartzeko.","Select date":"Data aukeratu","Confirm":"Baieztatu","Cancel synchronisation":"Sinkronizazioa utzi","Joplin website":"","Master Key %s":"Pasahitz Nagusia %s","Created: %s":"Sortuta: %s","Password:":"Pasahitza:","Password cannot be empty":"Pasahitza ezin utz daiteke hutsik","Enable":"Gaituta","The notebook could not be saved: %s":"Koadernoa ezin gorde daiteke: %s","Edit notebook":"Editatu koadernoa","Show all":"","Errors only":"","This note has been modified:":"Ohar hau mugitua izan da:","Save changes":"Gorde aldaketak","Discard changes":"Bertan behera utzi aldaketak","Unsupported image type: %s":"Irudi formatua ez onartua: %s","Attach photo":"Argazkia erantsi","Attach any file":"Erantsi fitxategiren bat","Convert to note":"Oharra bihurtu","Convert to todo":"Zeregina bihurtu","Hide metadata":"Ezkutatu metadatuak","Show metadata":"Erakutsi metadatuak","View on map":"Ikusi mapan","Delete notebook":"Ezabatu koadernoa","Login with OneDrive":"Login with OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Sakatu (+) botoian ohar edo koaderno berria sortzeko. Klik alboko menuan dagoeneko badiren koadernoak.","You currently have no notebook. Create one by clicking on (+) button.":"Oraindik ez duzu koadernorik. Sortu bat (+) botoian sakatuta.","Welcome":"Ongi etorri!"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"Etiketa ezabatzeko, kendu etiketa duten oharrei","Please select the note or notebook to be deleted first.":"Aurretik aukeratu ezabatzeko oharra edo koadernoa, mesedez.","Press Ctrl+D or type \"exit\" to exit the application":"Sakatu Ktrl+D edo idatzi \"exit\" aplikaziotik irteteko","More than one item match \"%s\". Please narrow down your query.":"Elementu bat baino gehiago bat dator \"%s\" bilaketarekin. Mugatu zure bilaketa, mesedez.","No notebook selected.":"Ez dago koadernorik aukeratuta","No notebook has been specified.":"Ez dago koadernorik aukeratuta.","Y":"B","n":"e","N":"E","y":"b","Cancelling background synchronisation... Please wait.":"Atzeko sinkronizazioa uzten... Mesedez itxaron.","No such command: %s":"Ez dago komandorik: %s","The command \"%s\" is only available in GUI mode":"\"%s\" komandoa  soilik eskuragarri GUI moduan","Cannot change encrypted item":"Ezinezkoa zifratutako itema aldatzea","Missing required argument: %s":"Beharrezko argumentua faltan: %s","%s: %s":"%s: %s","Your choice: ":"Zure aukera:","Invalid answer: %s":"Erantzun baliogabea: %s","Attaches the given file to the note.":"Erantsi fitxategia notan","Cannot find \"%s\".":"Ezin aurkitu \"%s\"","Displays the given note.":"Oharra erakutsi","Displays the complete information about note.":"Erakutsi oharrari buruzko informazio guztia.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Konfigurazio balioa hartu edo ezartzen du. Baldin eta [balioa] ez bada ematen, [izena]ren balioa erakutsiko du. Ez bada ematen [izena] ez [balioa], oraingo konfigurazioaren zerrenda erakutsiko da.","Also displays unset and hidden config variables.":"Ezkutuko edo zehaztu gabeko konfigurazio aldagaiak ere erakusten ditu.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"rekin bat datozen oharrak [koaderno]ra kopiatzen ditu. Koadernorik ez bada zehazten, oharra oraingo koadernoan bikoiztuko da","Marks a to-do as done.":"Markatu zeregina egindakotzat.","Note is not a to-do: \"%s\"":"Oharra ez da zeregina: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"E2EEren konfigurazioa erabiltzen du. Komandoak dira `enable`, `disable`, `decrypt`, `status` eta `target-status`.","Enter master password:":"Sartu pasahitz nagusia:","Operation cancelled":" Eragiketa utzita","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Deszifratzearen hasiera... Mesedez itxaron, prozesua luzea izan daiteke, zenbat dagoen prozesatzeko.","Completed decryption.":"Deszifratuta.","Enabled":"Gaituta","Disabled":"Desgaituta","Encryption is: %s":"Zifratzea da: %s","Edit note.":"Oharra editatu.","No text editor is defined. Please set it using `config editor `":"Testu editorerik ez dago definituta. Egin hau erabilita, mesedez: `config editor `","No active notebook.":"Ez dago koadernorik aukeratuta.","Note does not exist: \"%s\". Create it?":"Ez dago oharrik: \"%s\". Sortu?","Starting to edit note. Close the editor to get back to the prompt.":"Oharra editatzearen hasiera. Itxi editorea prompt-era bueltatzeko.","Error opening note in editor: %s":"Errorea editorean oharra zabaltzean: %s","Note has been saved.":"Oharra gorde da.","Exits the application.":"Irten aplikaziotik.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Esportatu emandako oharra soilik.","Exports only the given notebook.":"Esportatu emandako koadernoa soilik.","Displays a geolocation URL for the note.":"Erakutsi URL geolokalizazioa oharrean.","Displays usage information.":"Erakutsi erabilera datuak.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"CLI moduan ez dago lasterbiderik erabilgarri.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Idatzi `help [command]` komandoari buruzko informazio gehiagorako; edo idatzi `help all` erabilerari buruzko informazio osoa lortzeko.","The possible commands are:":"Litezkeen komandoak hauek dira:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Edozein komandotan, oharra edo koadernoari erreferentzia egin ahal zaio izenburuz edo ID erabilita, edo `$n` edo `$b` lasterbideak erabilita, aukeratuta dagoen oharra edo koadernoa erabiltzeko. `$c` ere erabil daiteke aukeratutako elementua erabiltzeko.","To move from one pane to another, press Tab or Shift+Tab.":"Panel batetik bestera mugitzeko, sakatu Tab edo Shifft + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Erabili geziak edo page up/down list eta testu guneen artean aldatzeko (kontsola hau ere kontuan izanda).","To maximise/minimise the console, press \"TC\".":"Kontsola maximizatu edo minimizatzeko, saka \"TC\" .","To enter command line mode, press \":\"":"Komando lerroa sartzeko, idatzi \":\"","To exit command line mode, press ESCAPE":"Komando lerrotik irteteko, sakatu ESC, mesedez","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Ez galdetu berresteko.","Found: %d.":"Aurkitua: %d","Created: %d.":"Sortuta: %d.","Updated: %d.":"Eguneratuta: %d.","Skipped: %d.":"Saltatuta: %d.","Resources: %d.":"Baliabideak: %d.","Tagged: %d.":"Etiketatuta: %d.","Importing notes...":"Oharrak inportatzen...","The notes have been imported: %s":"Oharrak inportatu dira: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Oraingo koadernoko oharrak erakusten ditu. Erabili `ls /` koadernoen zerrenda erakusteko.","Displays only the first top  notes.":"Erakusten ditu soilik gorengo  oharrak.","Sorts the item by  (eg. title, updated_time, created_time).":"Itemak antolatzen ditu  arabera (esate baterako, izenburua, eguneratze_unea, sortze_unea).","Reverses the sorting order.":"Alderantziz antolatzen du.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Zehaztutako item motak baino ez du erakusten. Izan daiteke `n` oharretarako, `t` zereginetarako, edo `nt` ohar eta zereginetarako (esate batrako, `-tt` zereginak erakutsiko ditu soilik, `-ttd` berriz zereginak eta oharrak.","Either \"text\" or \"json\"":"Either \"text\" or \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Zerrenda luzearen formatua erabili. Formatua hau da, ID, NOTE_COUNT (libururako), DATE, TODO_CHECKED (zereginetarako), TITLE","Please select a notebook first.":"Aurretik aukeratu formatua, mesedez.","Creates a new notebook.":"Koaderno berria sortzen du.","Creates a new note.":"Ohar berria sortzen du.","Notes can only be created within a notebook.":"Oharrak soilik sor daitezke koaderno baten barruan.","Creates a new to-do.":"Zeregin berria sortu.","Moves the notes matching  to [notebook].":"Oharrak eramaten ditu  bilatuta [notebook]era.","Renames the given  (note or notebook) to .":"Ber izendatu emandako  (oharra edo koadernoa)  izen berriaz.","Deletes the given notebook.":"Ezabatu emandako koadernoak.","Deletes the notebook without asking for confirmation.":"Ezabatu koadernoak berrespenik gabe.","Delete notebook? All notes within this notebook will also be deleted.":"Koadernoa ezabatu? Dituen ohar guztiak ere ezabatuko dira.","Deletes the notes matching .":"Ezabatu bat datozen oharrak:  .","Deletes the notes without asking for confirmation.":"Ezabatu oharrak berrespenik eskatu gabe.","%d notes match this pattern. Delete them?":"%d oharrak bat datoz ereduarekin. Ezabatu nahi dituzu?","Delete note?":"Oharra ezabatu?","Searches for the given  in all the notes.":"Emandako  bilatzen du ohar guztietan.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Emandako ren  ezaugarrian emandako [value] balioa ezartzen du. Litezkeen ezaugarriak dira:\n\n%s","Displays summary about the notes and notebooks.":"Oharren eta koadernoen laburpena erakusten du.","Synchronises with remote storage.":"Urruneko biltegiarekin sinkronizatzen du.","Sync to provided target (defaults to sync.target config value)":"Sync to provided target (defaults to sync.target config value)","Authentication was not completed (did not receive an authentication token).":"Autentifikazioa ez da egin osorik (ez du token-ik hartu).","Not authentified with %s. Please provide any missing credentials.":"Ez da autentifikatu %s -rekin. Eman galdutako kredentzialak.","Synchronisation is already in progress.":"Sinkronizazio prozesua dagoeneko abian da.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Giltzatzeko fitxategia dagoeneko eutsita dagoeneko. Baldin eta badakizu ez dena sinkronizaziorik egiten ari, ken dezakezu giltzatzeko fitxategia \"%s\"-n eta berrekin eragiketari.","Synchronisation target: %s (%s)":"Sinkronizazio helburua: %s (%s)","Cannot initialize synchroniser.":"Ezin has daiteke sinkronizazio prozesua.","Starting synchronisation...":"Sinkronizazioa hasten...","Cancelling... Please wait.":"Bertan behera uzten... itxaron, mesedez."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" izan daiteke \"add\", \"remove\" edo \"list\" [oharra]tik [etiketa] esleitu edo kentzeko, edo [etiketa]rekin elkartutako oharrak zerrendatzeko. Etiketa guztiak zerrendatzeko `tag list` komandoa erabil daiteke. ","Invalid command: \"%s\"":"Komando baliogabea: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" erabil daiteke \"txandakatzeko\" edo \"garbitzeko\". Erabili \"txandakatu\", emandako zeregina txandakatzeko bete ala ez-betea txandaketzeko (helburua ohar arrunta bada, zeregin bihurtuko da. Erabili \"garbitu\" zeregina ohar arrunt bilakatzeko.","Marks a to-do as non-completed.":"Markatu zeregina betegabe moduan.","Switches to [notebook] - all further operations will happen within this notebook.":"Aldatu [koaderno]ra - hurrengo eragiketak koaderno horretan jazoko dira.","Displays version information":"Erakutsi bertsioko informazioa","%s %s (%s)":"%s %s (%s)","Enum":"Zenbakitu","Type: %s.":"Idatz: %s.","Possible values: %s.":"Litezkeen balioak: %s.","Default: %s":"Lehenetsia: %s","Possible keys/values:":"Litezkeen balioak:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Aio! Agur! :_( ","The application has been authorised - you may now close this browser tab.":"Aplikazioak baimena hartu du - Orain fitxa hau zarratu dezakezu.","The application has been successfully authorised.":"Aplikazioak baimena hartu du.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.","Search:":"Bilatu:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Ongi etorri Joplin-era!\n\nIdatz `:help shortcuts` lasterbideak ikusteko, edo soilik `:help`erabilerako informaziorako.\n\nEsate baterako, koadernoa sortzeko sakatu `mb`: oharra sortzeko sakatu `mn`","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Item bat edo gehiago orain zifratuta daude eta baliteke zuk pasahitz nagusia ordezkatu behar izatea. Horixe egiteko, mesedez, idatz `e2ee decrypt`. Dagoeneko pasahitza ordezkatua baduzu, itemak deszifratzen ari izango dira atzeko planoan eta laster izango dira eskuragarri.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"Fitxategia","New note":"Ohar berria","New to-do":"Zeregin berria","New notebook":"Koaderno berria","Import":"Inportatu","Export":"Export","Print":"","Hide %s":"","Quit":"Irten","Edit":"Editatu","Copy":"Kopiatu","Cut":"Moztu","Paste":"Itsatsi","Search in all the notes":"Bilatu ohar guztietan","View":"","Toggle editor layout":"","Tools":"Tresnak","Synchronisation status":"Sinkronizazioaren egoera","Encryption options":"Zifratzeko aukerak","General Options":"Ezarpenak","Help":"Laguntza","Website and documentation":"Web orria eta dokumentazioa (en)","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Joplin-i buruz","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Utzi","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Oharrak eta ezarpenak hemen daude gordeta: %s","Save":"Gorde","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Zifratua desgaitzeak esan nahi du zure ohar eta eranskin *guztiak* berriro deszifratuta sinkronizatuko eta bidaliko direla sinkronizazio helburura. Segitu nahi duzu?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Zifratua gaitzeak esan nahi du zure ohar eta eranskin *guztiak* zifratuta sinkronizatuko eta bidaliko direla sinkronizazio helburura. Ez galdu pasahitza, bera izango baita datuak deszifratzeko bide *bakarra*! Zifratua baimentzeko, mesedez, aurretik sartu zure pasahitza.","Disable encryption":"Zifratzea desgaitu","Enable encryption":"Zifratua gaitu","Master Keys":"Pasahitz nagusia","Active":"Aktibo","ID":"ID","Source":"Iturburua","Created":"Sortua","Updated":"Eguneratua","Password":"Pasahitza","Password OK":"Pasahitza ondo","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Egoera","Encryption is:":"Zifratua  da:","Back":"Atzera","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"\"%s\" koaderno berria sortuko da eta \"%s\" Fitxategia inportatuko da bertara","Please create a notebook first.":"Aurretik sortu koadernoa, mesedez.","Please create a notebook first":"Aurretik sortu koadernoa, mesedez","Notebook title:":"Koadernoaren izenburua: ","Add or remove tags:":"Gehitu edo ezabatu etiketak:","Separate each tag by a comma.":"Banatu etiketak koma erabiliaz.","Rename notebook:":"Berrizendatu koadernoa:","Set alarm:":"Ezarri alarma:","Search":"Bilatu","Layout":"Diseinua","Some items cannot be synchronised.":"Zenbait item ezin dira sinkronizatu.","View them now":"Ikusi hori orain","Some items cannot be decrypted.":"Zenbait item ezin dira deszifratu.","Set the password":"Ezarri pasahitza","Add or remove tags":"Gehitu edo ezabatu etiketak","Switch between note and to-do type":"Aldatu oharra eta zeregin eren artean.","Delete":"Ezabatu","Delete notes?":"Oharrak ezabatu?","No notes in here. Create one by clicking on \"New note\".":"Hemen ez dago oharrik. Sortu bat \"Ohar berria\" sakatuta.","There is currently no notebook. Create one by clicking on \"New notebook\".":"Momentuz ez dago koadernorik. Sortu bat \"Koaderno berria\" sakatuta.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Esteka edo mezu ez dago onartua: %s","Attach file":"Erantsi fitxategia","Tags":"Etiketak","Set alarm":"Ezarri alarma","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Refresh","Clear":"Garbitu","OneDrive Login":"Logeatu OneDriven","Options":"Aukerak","Synchronisation Status":"Sinkronizazioaren egoera","Encryption Options":"Zifratzeko aukerak","Remove this tag from all the notes?":"Kendu etiketa hori ohar guztietatik?","Remove this search from the sidebar?":"Kendu bilaketa hori ohar guztietatik?","Rename":"Berrizendatu","Synchronise":"Sinkronizatu","Notebooks":"Koadernoak","Searches":"Bilaketak","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Erabili: %s","Unknown flag: %s":"Marka ezezaguna: %s","File system":"Fitxategi sistema","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (aprobetarako soilik)","WebDAV":"WebDAV","Unknown log level: %s":"Egunkari maila ezezaguna: %s","Unknown level ID: %s":"IDa maila ezezaguna: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Tokena ezin eguneratu daiteke: egiaztatze-datuak desagertuta daude. Agian, berriro sinkronizatzeak arazoa konpon lezake.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.","Cannot access %s":"Ezin atzituta %s","Created local items: %d.":"Item lokalak sortuta: %d.","Updated local items: %d.":"Item lokalak eguneratuta: %d.","Created remote items: %d.":"Urruneko itemak sortuta: %d.","Updated remote items: %d.":"Urruneko itemak eguneratuta: %d.","Deleted local items: %d.":"Item lokala ezabatuta: %d.","Deleted remote items: %d.":"Urruneko itemak ezabatuta: %d.","Fetched items: %d/%d.":"Itemak eskuratuta: %d%d.","State: %s.":"State: %s.","Cancelling...":"Bertan behera uzten...","Completed: %s":"Osatuta: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Sinkronizazioa hasita dago. Egoera: %s","Encrypted":"Zifratuta","Encrypted items cannot be modified":"Zifratutako itemak ezin aldatu daitezke","Conflicts":"Gatazkak","A notebook with this title already exists: \"%s\"":"Dagoeneko bada koaderno bat izen horrekin: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Koadernoak ezin izendatu daitezke \"%s\", izen hori Joplinek gordeta dauka","Untitled":"Titulu gabekoa","This note does not have geolocation information.":"Ohar honek ez du geokokapen informaziorik.","Cannot copy note to \"%s\" notebook":"Ezin kopia daiteke oharra \"%s\" koadernora","Cannot move note to \"%s\" notebook":"Ezin eraman daiteke oharra \"%s\" koadernora","Text editor":"Testu editorea","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Editorea erabiliko da oharra zabaltzeko. Ez badago zehaztutakorik lehenetsia igartzen ahaleginduko da.","Language":"Hizkuntza","Date format":"Data-formatua","Time format":"Ordu formatua","Theme":"Gaia","Light":"Argia","Dark":"Iluna","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Gore geokokapena oharrekin","When creating a new to-do:":"When creating a new to-do:","Focus title":"","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"Global zoom percentage","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Automatikoki eguneratu aplikazioa","Synchronisation interval":"Sinkronizazio tartea","%d minutes":"%d minutuak","%d hour":"% ordua","%d hours":"% orduak","Show advanced options":"Erakutsi aukera aurreratuak","Synchronisation target":"Sinkronizazio helbudua","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Sinkronizazio helburua. Sinkronizazio aukera bakoitzak izan ditzake parametro gehigarriak, horrela izendatuta `sync.NUM.NAME` (dena beherago dokumentatuta).","Directory to synchronise with (absolute path)":"Sinkronizatzeko direktorioa (bide-izena osorik)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Sinkronizazio sistema gaituta dagoenerako bide-izena. Ikus `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Nextcloud erabiltzaile-izena","Nextcloud password":"Nextcloud pasahitza","WebDAV URL":"WebDAV URL","WebDAV username":"WebDAV username","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Balio aukera baliogabea: \"%s\". Litezkeen balioak: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Itemok ezin sinkronizatu","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Itemok gailuan geratuko dira baina ez dira sinkronizatuko. Horiek aurkitzeko bilaketak egin titulu edo goiko parentesien arteko IDaren arabera.","Sync status (synced items / total items)":"Sinkronizazio egoera (sinkronizatutako itemak/itemak guztira)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Denera: %d/%d","Conflicted: %d":"Gatazkatsua: %d","To delete: %d":"Ezabatzeko: %d","Folders":"Karpetak","%s: %d notes":"%s: %d oharrak","Coming alarms":"Hurrengo alarmak","On %s: %s":"On %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Ez dago oharrik. Sortu bat (+) botoian klik eginaz.","Delete these notes?":"Oharrok ezabatu?","Log":"Egunkaria","Export Debug Report":"Esportatu arazketa txostena","Encryption Config":"Zifratze Ezarpenak","Configuration":"Konfigurazioa","Move to notebook...":"Mugitu ... koadernora","Move %d notes to notebook \"%s\"?":"Mugitu %d oharrak \"%s\" koadernora?","Press to set the decryption password.":"Sakatu deszifratze pasahitza ezartzeko.","Select date":"Data aukeratu","Confirm":"Baieztatu","Cancel synchronisation":"Sinkronizazioa utzi","Joplin website":"","Master Key %s":"Pasahitz Nagusia %s","Created: %s":"Sortuta: %s","Password:":"Pasahitza:","Password cannot be empty":"Pasahitza ezin utz daiteke hutsik","Enable":"Gaituta","The notebook could not be saved: %s":"Koadernoa ezin gorde daiteke: %s","Edit notebook":"Editatu koadernoa","Show all":"","Errors only":"","This note has been modified:":"Ohar hau mugitua izan da:","Save changes":"Gorde aldaketak","Discard changes":"Bertan behera utzi aldaketak","Unsupported image type: %s":"Irudi formatua ez onartua: %s","Attach photo":"Argazkia erantsi","Attach any file":"Erantsi fitxategiren bat","Convert to note":"Oharra bihurtu","Convert to todo":"Zeregina bihurtu","Hide metadata":"Ezkutatu metadatuak","Show metadata":"Erakutsi metadatuak","View on map":"Ikusi mapan","Delete notebook":"Ezabatu koadernoa","Login with OneDrive":"Login with OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Sakatu (+) botoian ohar edo koaderno berria sortzeko. Klik alboko menuan dagoeneko badiren koadernoak.","You currently have no notebook. Create one by clicking on (+) button.":"Oraindik ez duzu koadernorik. Sortu bat (+) botoian sakatuta.","Welcome":"Ongi etorri!"}
        \ No newline at end of file
        diff --git a/ReactNativeClient/locales/fr_FR.json b/ReactNativeClient/locales/fr_FR.json
        index 5b44f5f8a9..15b8d0198f 100644
        --- a/ReactNativeClient/locales/fr_FR.json
        +++ b/ReactNativeClient/locales/fr_FR.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"Pour supprimer une vignette, enlever là des notes associées.","Please select the note or notebook to be deleted first.":"Veuillez d'abord sélectionner un carnet.","Press Ctrl+D or type \"exit\" to exit the application":"Appuyez sur Ctrl+D ou tapez \"exit\" pour sortir du logiciel","More than one item match \"%s\". Please narrow down your query.":"Plus d'un objet correspond à \"%s\". Veuillez préciser votre requête.","No notebook selected.":"Aucun carnet n'est sélectionné.","No notebook has been specified.":"Aucun carnet n'est spécifié.","Y":"O","n":"n","N":"N","y":"o","Cancelling background synchronisation... Please wait.":"Annulation de la synchronisation... Veuillez patienter.","No such command: %s":"Commande invalide : %s","The command \"%s\" is only available in GUI mode":"La commande \"%s\" est disponible uniquement en mode d'interface graphique","Cannot change encrypted item":"Un objet crypté ne peut pas être modifié","Missing required argument: %s":"Paramètre requis manquant : %s","%s: %s":"%s : %s","Your choice: ":"Votre choix : ","Invalid answer: %s":"Réponse invalide : %s","Attaches the given file to the note.":"Joindre le fichier fourni à la note.","Cannot find \"%s\".":"Impossible de trouver \"%s\".","Displays the given note.":"Affiche la note.","Displays the complete information about note.":"Affiche tous les détails de la note.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtient ou modifie une valeur de configuration. Si la [valeur] n'est pas fournie, la valeur de [nom] sera affichée. Si ni le [nom] ni la [valeur] ne sont fournis, la configuration complète sera affichée.","Also displays unset and hidden config variables.":"Afficher également les variables cachées.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Copier les notes correspondant à  vers [carnet]. Si aucun carnet n'est spécifié, la note est dupliquée sur place.","Marks a to-do as done.":"Marquer la tâche comme complétée.","Note is not a to-do: \"%s\"":"La note n'est pas une tâche : \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Gérer la configuration E2EE (Cryptage de bout à bout). Les commandes sont `enable`, `disable`, `decrypt` et `status` et `target-status`.","Enter master password:":"Entrer le mot de passe maître :","Operation cancelled":"Opération annulée","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Démarrage du décryptage... Veuillez patienter car cela pourrait prendre plusieurs minutes selon le nombre d'objets à décrypter.","Completed decryption.":"Décryptage complété.","Enabled":"Activé","Disabled":"Désactivé","Encryption is: %s":"Le cryptage est : %s","Edit note.":"Éditer la note.","No text editor is defined. Please set it using `config editor `":"Aucun éditeur de texte n'est défini. Veuillez le définir en utilisant la commande `config editor `","No active notebook.":"Aucun carnet actif.","Note does not exist: \"%s\". Create it?":"Cette note n'existe pas : \"%s\". La créer ?","Starting to edit note. Close the editor to get back to the prompt.":"Édition de la note en cours. Fermez l'éditeur de texte pour retourner à l'invite de commande.","Error opening note in editor: %s":"Erreur lors de l'ouverture de la note dans l'éditeur de texte : %s","Note has been saved.":"La note a été enregistrée.","Exits the application.":"Quitter le logiciel.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporter les données de Joplin. Par défaut, la base de donnée complète sera exportée, y compris les carnets, notes, tags et ressources.","Destination format: %s":"Format de la destination : %s","Exports only the given note.":"Exporter uniquement la note spécifiée.","Exports only the given notebook.":"Exporter uniquement le carnet spécifié.","Displays a geolocation URL for the note.":"Afficher l'URL de l'emplacement de la note.","Displays usage information.":"Affiche les informations d'utilisation.","For information on how to customise the shortcuts please visit %s":"Pour personnaliser les raccourcis veuillez consulter la documentation à %s","Shortcuts are not available in CLI mode.":"Les raccourcis ne sont pas disponible en mode de ligne de commande.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Tapez `help [command]` pour plus d'information sur une commande ; ou tapez `help all` pour l'aide complète.","The possible commands are:":"Les commandes possibles sont :","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Dans une commande, une note ou carnet peut être référé par titre ou identifiant, ou en utilisant les raccourcis `$n` et `$b` pour, respectivement, la note sélectionnée et le carnet sélectionné. `$c` peut être utilisé pour faire référence à l'objet sélectionné en cours.","To move from one pane to another, press Tab or Shift+Tab.":"Pour aller d'un volet à l'autre, pressez Tab ou Maj+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Utilisez les touches fléchées et page précédente/suivante pour faire défiler les listes et zones de texte (y compris cette console).","To maximise/minimise the console, press \"TC\".":"Pour maximiser ou minimiser la console, pressez \"TC\".","To enter command line mode, press \":\"":"Pour démarrer le mode ligne de commande, pressez \":\"","To exit command line mode, press ESCAPE":"Pour sortir du mode ligne de commande, pressez ECHAP","For the list of keyboard shortcuts and config options, type `help keymap`":"Pour la liste complète des raccourcis disponibles, tapez `help keymap`","Imports data into Joplin.":"Importer des données dans Joplin.","Source format: %s":"Format de la source : %s","Do not ask for confirmation.":"Ne pas demander de confirmation.","Found: %d.":"Trouvés : %d.","Created: %d.":"Créés : %d.","Updated: %d.":"Mis à jour : %d.","Skipped: %d.":"Ignorés : %d.","Resources: %d.":"Ressources : %d.","Tagged: %d.":"Étiquettes : %d.","Importing notes...":"Importation des notes...","The notes have been imported: %s":"Les notes ont été importées : %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Affiche les notes dans le carnet. Utilisez `ls /` pour afficher la liste des carnets.","Displays only the first top  notes.":"Affiche uniquement les  premières notes.","Sorts the item by  (eg. title, updated_time, created_time).":"Trier les notes par  (par exemple, title, updated_time, created_time).","Reverses the sorting order.":"Inverser l'ordre.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Affiche uniquement les notes du ou des types spécifiés. Le type peut-être `n` pour les notes, `t` pour les tâches (par exemple, `-tt` affiche uniquement les tâches, tandis que `-ttd` affiche les notes et les tâches).","Either \"text\" or \"json\"":"Soit \"text\" soit \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Utilise le format de liste longue. Le format est ID, NOMBRE_DE_NOTES (pour les carnets), DATE, TACHE_TERMINE (pour les tâches), TITRE","Please select a notebook first.":"Veuillez d'abord sélectionner un carnet.","Creates a new notebook.":"Créer un carnet.","Creates a new note.":"Créer une note.","Notes can only be created within a notebook.":"Les notes ne peuvent être créées que dans un carnet.","Creates a new to-do.":"Créer une nouvelle tâche.","Moves the notes matching  to [notebook].":"Déplacer les notes correspondant à  vers [notebook].","Renames the given  (note or notebook) to .":"Renommer l'objet  (note ou carnet) en .","Deletes the given notebook.":"Supprimer le carnet.","Deletes the notebook without asking for confirmation.":"Supprimer le carnet sans demander la confirmation.","Delete notebook? All notes within this notebook will also be deleted.":"Effacer le carnet ? Toutes les notes dans ce carnet seront également effacées.","Deletes the notes matching .":"Supprimer les notes correspondants à .","Deletes the notes without asking for confirmation.":"Supprimer les notes sans demander la confirmation.","%d notes match this pattern. Delete them?":"%d notes correspondent à ce motif. Les supprimer ?","Delete note?":"Supprimer la note ?","Searches for the given  in all the notes.":"Chercher le motif  dans toutes les notes.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Assigner la valeur [value] à la propriété  de la  donnée. Les valeurs possibles sont :\n\n%s","Displays summary about the notes and notebooks.":"Afficher un résumé des notes et carnets.","Synchronises with remote storage.":"Synchroniser les notes et carnets.","Sync to provided target (defaults to sync.target config value)":"Synchroniser avec la cible donnée (par défaut, la valeur de configuration `sync.target`).","Authentication was not completed (did not receive an authentication token).":"Impossible d'autoriser le logiciel (jeton d'identification non-reçu).","Not authentified with %s. Please provide any missing credentials.":"Non-connecté à %s. Veuillez fournir les identifiants et mots de passe manquants.","Synchronisation is already in progress.":"La synchronisation est déjà en cours.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"La synchronisation est déjà en cours ou ne s'est pas interrompue correctement. Si vous savez qu'aucune autre synchronisation est en cours, vous pouvez supprimer le fichier \"%s\" pour reprendre l'opération.","Synchronisation target: %s (%s)":"Cible de la synchronisation : %s (%s)","Cannot initialize synchroniser.":"Impossible d'initialiser la synchronisation.","Starting synchronisation...":"Commencement de la synchronisation...","Cancelling... Please wait.":"Annulation... Veuillez attendre."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" peut être \"add\", \"remove\" ou \"list\" pour assigner ou enlever l'étiquette [tag] de la [note], our pour lister les notes associées avec l'étiquette [tag]. La commande `tag list` peut être utilisée pour lister les étiquettes.","Invalid command: \"%s\"":"Commande invalide : \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"Gère le status des tâches.  peut être \"toggle\" ou \"clear\". Utilisez \"toggle\" pour basculer la tâche entre le status terminé et non-terminé (Si la cible est une note, elle sera convertie en tâche). Utilisez \"clear\" pour convertir la tâche en note.","Marks a to-do as non-completed.":"Marquer une tâche comme non-complétée.","Switches to [notebook] - all further operations will happen within this notebook.":"Changer de carnet - toutes les opérations à venir se feront dans ce carnet.","Displays version information":"Affiche les informations de version","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Type : %s.","Possible values: %s.":"Valeurs possibles : %s.","Default: %s":"Défaut : %s","Possible keys/values:":"Clefs/Valeurs possibles :","Type `joplin help` for usage information.":"Tapez `Joplin help` pour afficher l'aide.","Fatal error:":"Erreur fatale :","The application has been authorised - you may now close this browser tab.":"Le logiciel a été autorisé. Vous pouvez maintenant fermer cet onglet.","The application has been successfully authorised.":"Le logiciel a été autorisé.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Veuillez ouvrir le lien ci-dessous dans votre navigateur pour authentifier le logiciel. Joplin va créer un répertoire \"Apps/Joplin\" et lire/écrira des fichiers uniquement dans ce répertoire. Le logiciel n'aura pas d'accès à aucun fichier en dehors de ce répertoire, ni à d'autres données personnelles. Aucune donnée ne sera partagé avec aucun tier.","Search:":"Recherche :","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenue dans Joplin!\n\nTapez `:help shortcuts` pour la liste des raccourcis claviers, ou simplement `:help` pour une vue d'ensemble.\n\nPar exemple, pour créer un carnet, pressez `mb` ; pour créer une note pressed `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Au moins un objet est actuellement crypté et il se peut que vous deviez fournir votre mot de passe maître. Pour se faire, veuillez taper `e2ee decrypt`. Si vous avez déjà fourni ce mot de passe, les objets cryptés vont être décrypté en tâche de fond et seront disponible prochainement.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exporter vers \"%s\" au format \"%s\". Veuillez patienter...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importer depuis \"%s\" au format \"%s\". Veuillez patienter...","PDF File":"Fichier PDF","File":"Fichier","New note":"Nouvelle note","New to-do":"Nouvelle tâche","New notebook":"Nouveau carnet","Import":"Importer","Export":"Exporter","Print":"Imprimer","Hide %s":"Cacher %s","Quit":"Quitter","Edit":"Édition","Copy":"Copier","Cut":"Couper","Paste":"Coller","Search in all the notes":"Chercher dans toutes les notes","View":"Affichage","Toggle editor layout":"Basculer l'agencement de l'éditeur","Tools":"Outils","Synchronisation status":"État de la synchronisation","Encryption options":"Options de cryptage","General Options":"Options générales","Help":"Aide","Website and documentation":"Documentation en ligne","Make a donation":"Faire un don","Check for updates...":"Vérifier les mises à jour...","About Joplin":"A propos de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Ouvrir %s","Exit":"Quitter","OK":"OK","Cancel":"Annuler","Current version is up-to-date.":"La version actuelle est à jour.","An update is available, do you want to download it now?":"Une mise à jour est disponible, souhaitez vous la télécharger maintenant ?","Yes":"Oui","No":"Non","Check synchronisation configuration":"Vérifier config synchronisation","Notes and settings are stored in: %s":"Les notes et paramètres se trouve dans : %s","Save":"Enregistrer","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Désactiver le cryptage signifie que *toutes* les notes et fichiers vont être re-synchronisés et envoyés décryptés sur la cible de la synchronisation. Souhaitez vous continuer ?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Activer le cryptage signifie que *toutes* les notes et fichiers vont être re-synchronisés et envoyés cryptés vers la cible de la synchronisation. Ne perdez pas votre mot de passe car, pour des raisons de sécurité, ce sera la *seule* façon de décrypter les données ! Pour activer le cryptage, veuillez entrer votre mot de passe ci-dessous.","Disable encryption":"Désactiver le cryptage","Enable encryption":"Activer le cryptage","Master Keys":"Clefs maître","Active":"Actif","ID":"ID","Source":"Source","Created":"Créé","Updated":"Mis à jour","Password":"Mot de passe","Password OK":"Mot de passe OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Note : seule une clef maître va être utilisée pour le cryptage (celle marquée comme \"actif\" ci-dessus). N'importe quel clef peut-être utilisée pour le décryptage, selon la façon dont les notes ou carnets étaient cryptés à l'origine.","Missing Master Keys":"Clefs maître manquantes","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"Les clefs maître avec ces identifiants sont utilisées pour crypter certains de vos objets, cependant le logiciel n'y a pour l'instant pas accès. Il est probable qu'elle vont être prochainement disponible via la synchronisation.","Status":"État","Encryption is:":"Le cryptage est :","Back":"Retour","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Un nouveau carnet \"%s\" va être créé et le fichier \"%s\" va être importé dedans","Please create a notebook first.":"Veuillez d'abord sélectionner un carnet.","Please create a notebook first":"Veuillez d'abord créer un carnet d'abord","Notebook title:":"Titre du carnet :","Add or remove tags:":"Modifier les étiquettes :","Separate each tag by a comma.":"Séparez chaque étiquette par une virgule.","Rename notebook:":"Renommer le carnet :","Set alarm:":"Régler alarme :","Search":"Chercher","Layout":"Disposition","Some items cannot be synchronised.":"Certains objets ne peuvent être synchronisés.","View them now":"Les voir maintenant","Some items cannot be decrypted.":"Certains objets ne peuvent être décryptés.","Set the password":"Définir le mot de passe","Add or remove tags":"Gérer les étiquettes","Switch between note and to-do type":"Alterner entre note et tâche","Delete":"Supprimer","Delete notes?":"Supprimer les notes ?","No notes in here. Create one by clicking on \"New note\".":"Pas de notes ici. Créez-en une en pressant le bouton \"Nouvelle note\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Il n'y a pour l'instant aucun carnet. Créez-en un en cliquant sur \"Nouveau carnet\".","Open...":"Ouvrir...","Save as...":"Enregistrer sous...","Unsupported link or message: %s":"Lien ou message non géré : %s","Attach file":"Attacher un fichier","Tags":"Étiquettes","Set alarm":"Régler alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Cette note n'a pas de contenu. Cliquer sur \"%s\" pour basculer vers l'éditeur et éditer cette note.","to-do":"tâche","note":"note","Creating new %s...":"Création de %s...","Refresh":"Rafraîchir","Clear":"Supprimer","OneDrive Login":"Connexion OneDrive","Options":"Options","Synchronisation Status":"État de la synchronisation","Encryption Options":"Options de cryptage","Remove this tag from all the notes?":"Enlever cette étiquette de toutes les notes ?","Remove this search from the sidebar?":"Enlever cette recherche de la barre latérale ?","Rename":"Renommer","Synchronise":"Synchroniser","Notebooks":"Carnets","Searches":"Recherches","Please select where the sync status should be exported to":"Veuillez sélectionner un répertoire ou exporter l'état de la synchronisation","Usage: %s":"Utilisation : %s","Unknown flag: %s":"Paramètre inconnu : %s","File system":"Système de fichier","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dév (Pour tester uniquement)","WebDAV":"WebDAV","Unknown log level: %s":"Paramètre inconnu : %s","Unknown level ID: %s":"Paramètre inconnu : %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Impossible de rafraîchir la connexion à OneDrive. Démarrez la synchronisation à nouveau pour corriger le problème.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Impossible de synchroniser avec OneDrive.\n\nCette erreur se produit lors de l'utilisation de OneDrive for Business, qui malheureusement n'est pas compatible.\n\nVeuillez utiliser à la place un compte OneDrive normal.","Cannot access %s":"Impossible d'accéder à %s","Created local items: %d.":"Objets créés localement : %d.","Updated local items: %d.":"Objets mis à jour localement : %d.","Created remote items: %d.":"Objets distants créés : %d.","Updated remote items: %d.":"Objets distants mis à jour : %d.","Deleted local items: %d.":"Objets supprimés localement : %d.","Deleted remote items: %d.":"Objets distants supprimés : %d.","Fetched items: %d/%d.":"Téléchargés : %d/%d.","State: \"%s\".":"État : \"%s\".","Cancelling...":"Annulation...","Completed: %s":"Terminé : %s","Last error: %s":"Dernière erreur : %s","Idle":"Arrêté","In progress":"En cours","Synchronisation is already in progress. State: %s":"La synchronisation est déjà en cours. État : %s","Encrypted":"Crypté","Encrypted items cannot be modified":"Les objets cryptés ne peuvent être modifiés","Conflicts":"Conflits","A notebook with this title already exists: \"%s\"":"Un carnet avec ce titre existe déjà : \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Les carnets ne peuvent être nommés \"%s\" car c'est un nom réservé.","Untitled":"Sans titre","This note does not have geolocation information.":"Cette note n'a pas d'information d'emplacement.","Cannot copy note to \"%s\" notebook":"Impossible de copier la note vers le carnet \"%s\"","Cannot move note to \"%s\" notebook":"Impossible de déplacer la note vers le carnet \"%s\"","Text editor":"Éditeur de texte","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"L'éditeur de texte pour ouvrir et modifier les notes. Si aucun n'est spécifié, il sera détecté automatiquement.","Language":"Langue","Date format":"Format de la date","Time format":"Format de l'heure","Theme":"Apparence","Light":"Clair","Dark":"Sombre","Uncompleted to-dos on top":"Tâches non-terminées en haut","Sort notes by":"Trier les notes par","Reverse sort order":"Inverser l'ordre","Save geo-location with notes":"Enregistrer l'emplacement avec les notes","When creating a new to-do:":"Lors de la création d'une tâche :","Focus title":"Curseur sur le titre","Focus body":"Curseur sur corps du message","When creating a new note:":"Lors de la création d'une note :","Show tray icon":"Afficher icône dans la zone de notifications","Global zoom percentage":"Niveau de zoom","Editor font family":"Police de l'éditeur","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"Le nom de la police ne sera pas vérifié. Si incorrect ou vide une police monospace sera utilisée par défaut.","Automatically update the application":"Mettre à jour le logiciel automatiquement","Synchronisation interval":"Intervalle de synchronisation","%d minutes":"%d minutes","%d hour":"%d heure","%d hours":"%d heures","Show advanced options":"Montrer les options avancées","Synchronisation target":"Cible de la synchronisation","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"La cible avec laquelle synchroniser. Chaque cible de synchronisation peut avoir des paramètres supplémentaires sous le nom `sync.NUM.NOM` (documentés ci-dessous).","Directory to synchronise with (absolute path)":"Répertoire avec lequel synchroniser (chemin absolu)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Le chemin du répertoire avec lequel synchroniser lorsque la synchronisation par système de fichier est activée. Voir `sync.target`.","Nextcloud WebDAV URL":"Nextcloud : URL WebDAV","Nextcloud username":"Nextcloud : Nom utilisateur","Nextcloud password":"Nextcloud : Mot de passe","WebDAV URL":"WebDAV : URL","WebDAV username":"WebDAV : Nom utilisateur","WebDAV password":"WebDAV : Mot de passe","Invalid option value: \"%s\". Possible values are: %s.":"Option invalide: \"%s\". Les valeurs possibles sont : %s.","Joplin Export File":"Fichier d'export Joplin","Markdown":"Markdown","Joplin Export Directory":"Dossier d'export Joplin","Evernote Export File":"Fichiers d'export Evernote","Directory":"Dossier","Cannot load \"%s\" module for format \"%s\"":"Impossible de charger module \"%s\" pour le format \"%s\"","Please specify import format for %s":"Veuillez spécifier le format d'import pour %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Cet objet est crypté : %s \"%s\". Veuillez attendre que tout soit décrypté et réessayez.","There is no data to export.":"Il n'y a pas de données à exporter.","Please specify the notebook where the notes should be imported to.":"Veuillez sélectionner le carnet où les notes doivent être importées.","Items that cannot be synchronised":"Objets qui ne peuvent pas être synchronisés","%s (%s): %s":"%s (%s) : %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Ces objets resteront sur l'appareil mais ne seront pas envoyé sur la cible de la synchronisation. Pour trouver ces objets, faite une recherche sur le titre ou l'identifiant de l'objet (affiché ci-dessus entre parenthèses).","Sync status (synced items / total items)":"Status de la synchronisation (objets synchro. / total)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total : %d/%d","Conflicted: %d":"Conflits : %d","To delete: %d":"A supprimer : %d","Folders":"Carnets","%s: %d notes":"%s : %d notes","Coming alarms":"Alarmes à venir","On %s: %s":"Le %s  : %s","There are currently no notes. Create one by clicking on the (+) button.":"Ce carnet ne contient aucune note. Créez-en une en appuyant sur le bouton (+).","Delete these notes?":"Supprimer ces notes ?","Log":"Journal","Export Debug Report":"Exporter rapport de débogage","Encryption Config":"Config cryptage","Configuration":"Configuration","Move to notebook...":"Déplacer vers...","Move %d notes to notebook \"%s\"?":"Déplacer %d notes vers carnet \"%s\" ?","Press to set the decryption password.":"Définir mot de passe de synchronisation.","Select date":"Sélectionner date","Confirm":"Confirmer","Cancel synchronisation":"Annuler synchronisation","Joplin website":"Site web de Joplin","Master Key %s":"Clef maître %s","Created: %s":"Créé : %s","Password:":"Mot de passe :","Password cannot be empty":"Mot de passe ne peut être vide","Enable":"Activer","The notebook could not be saved: %s":"Ce carnet n'a pas pu être sauvegardé : %s","Edit notebook":"Éditer le carnet","Show all":"Afficher tous","Errors only":"Erreurs seulement","This note has been modified:":"Cette note a été modifiée :","Save changes":"Enregistrer les changements","Discard changes":"Ignorer les changements","Unsupported image type: %s":"Type d'image non géré : %s","Attach photo":"Attacher une photo","Attach any file":"Attacher un fichier","Convert to note":"Convertir en note","Convert to todo":"Convertir en tâche","Hide metadata":"Cacher les métadonnées","Show metadata":"Voir métadonnées","View on map":"Voir sur carte","Delete notebook":"Supprimer le carnet","Login with OneDrive":"Se connecter à OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Appuyez sur le bouton (+) pour créer une nouvelle note ou carnet. Ouvrez le menu latéral pour accéder à vos carnets.","You currently have no notebook. Create one by clicking on (+) button.":"Vous n'avez pour l'instant pas de carnets. Créez-en un en pressant le bouton (+).","Welcome":"Bienvenue"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"Pour supprimer une vignette, enlever là des notes associées.","Please select the note or notebook to be deleted first.":"Veuillez d'abord sélectionner un carnet.","Press Ctrl+D or type \"exit\" to exit the application":"Appuyez sur Ctrl+D ou tapez \"exit\" pour sortir du logiciel","More than one item match \"%s\". Please narrow down your query.":"Plus d'un objet correspond à \"%s\". Veuillez préciser votre requête.","No notebook selected.":"Aucun carnet n'est sélectionné.","No notebook has been specified.":"Aucun carnet n'est spécifié.","Y":"O","n":"n","N":"N","y":"o","Cancelling background synchronisation... Please wait.":"Annulation de la synchronisation... Veuillez patienter.","No such command: %s":"Commande invalide : %s","The command \"%s\" is only available in GUI mode":"La commande \"%s\" est disponible uniquement en mode d'interface graphique","Cannot change encrypted item":"Un objet crypté ne peut pas être modifié","Missing required argument: %s":"Paramètre requis manquant : %s","%s: %s":"%s : %s","Your choice: ":"Votre choix : ","Invalid answer: %s":"Réponse invalide : %s","Attaches the given file to the note.":"Joindre le fichier fourni à la note.","Cannot find \"%s\".":"Impossible de trouver \"%s\".","Displays the given note.":"Affiche la note.","Displays the complete information about note.":"Affiche tous les détails de la note.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtient ou modifie une valeur de configuration. Si la [valeur] n'est pas fournie, la valeur de [nom] sera affichée. Si ni le [nom] ni la [valeur] ne sont fournis, la configuration complète sera affichée.","Also displays unset and hidden config variables.":"Afficher également les variables cachées.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Copier les notes correspondant à  vers [carnet]. Si aucun carnet n'est spécifié, la note est dupliquée sur place.","Marks a to-do as done.":"Marquer la tâche comme complétée.","Note is not a to-do: \"%s\"":"La note n'est pas une tâche : \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Gérer la configuration E2EE (Cryptage de bout à bout). Les commandes sont `enable`, `disable`, `decrypt` et `status` et `target-status`.","Enter master password:":"Entrer le mot de passe maître :","Operation cancelled":"Opération annulée","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Démarrage du décryptage... Veuillez patienter car cela pourrait prendre plusieurs minutes selon le nombre d'objets à décrypter.","Completed decryption.":"Décryptage complété.","Enabled":"Activé","Disabled":"Désactivé","Encryption is: %s":"Le cryptage est : %s","Edit note.":"Éditer la note.","No text editor is defined. Please set it using `config editor `":"Aucun éditeur de texte n'est défini. Veuillez le définir en utilisant la commande `config editor `","No active notebook.":"Aucun carnet actif.","Note does not exist: \"%s\". Create it?":"Cette note n'existe pas : \"%s\". La créer ?","Starting to edit note. Close the editor to get back to the prompt.":"Édition de la note en cours. Fermez l'éditeur de texte pour retourner à l'invite de commande.","Error opening note in editor: %s":"Erreur lors de l'ouverture de la note dans l'éditeur de texte : %s","Note has been saved.":"La note a été enregistrée.","Exits the application.":"Quitter le logiciel.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporter les données de Joplin. Par défaut, la base de donnée complète sera exportée, y compris les carnets, notes, tags et ressources.","Destination format: %s":"Format de la destination : %s","Exports only the given note.":"Exporter uniquement la note spécifiée.","Exports only the given notebook.":"Exporter uniquement le carnet spécifié.","Displays a geolocation URL for the note.":"Afficher l'URL de l'emplacement de la note.","Displays usage information.":"Affiche les informations d'utilisation.","For information on how to customise the shortcuts please visit %s":"Pour personnaliser les raccourcis veuillez consulter la documentation à %s","Shortcuts are not available in CLI mode.":"Les raccourcis ne sont pas disponible en mode de ligne de commande.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Tapez `help [command]` pour plus d'information sur une commande ; ou tapez `help all` pour l'aide complète.","The possible commands are:":"Les commandes possibles sont :","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Dans une commande, une note ou carnet peut être référé par titre ou identifiant, ou en utilisant les raccourcis `$n` et `$b` pour, respectivement, la note sélectionnée et le carnet sélectionné. `$c` peut être utilisé pour faire référence à l'objet sélectionné en cours.","To move from one pane to another, press Tab or Shift+Tab.":"Pour aller d'un volet à l'autre, pressez Tab ou Maj+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Utilisez les touches fléchées et page précédente/suivante pour faire défiler les listes et zones de texte (y compris cette console).","To maximise/minimise the console, press \"TC\".":"Pour maximiser ou minimiser la console, pressez \"TC\".","To enter command line mode, press \":\"":"Pour démarrer le mode ligne de commande, pressez \":\"","To exit command line mode, press ESCAPE":"Pour sortir du mode ligne de commande, pressez ECHAP","For the list of keyboard shortcuts and config options, type `help keymap`":"Pour la liste complète des raccourcis disponibles, tapez `help keymap`","Imports data into Joplin.":"Importer des données dans Joplin.","Source format: %s":"Format de la source : %s","Do not ask for confirmation.":"Ne pas demander de confirmation.","Found: %d.":"Trouvés : %d.","Created: %d.":"Créés : %d.","Updated: %d.":"Mis à jour : %d.","Skipped: %d.":"Ignorés : %d.","Resources: %d.":"Ressources : %d.","Tagged: %d.":"Étiquettes : %d.","Importing notes...":"Importation des notes...","The notes have been imported: %s":"Les notes ont été importées : %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Affiche les notes dans le carnet. Utilisez `ls /` pour afficher la liste des carnets.","Displays only the first top  notes.":"Affiche uniquement les  premières notes.","Sorts the item by  (eg. title, updated_time, created_time).":"Trier les notes par  (par exemple, title, updated_time, created_time).","Reverses the sorting order.":"Inverser l'ordre.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Affiche uniquement les notes du ou des types spécifiés. Le type peut-être `n` pour les notes, `t` pour les tâches (par exemple, `-tt` affiche uniquement les tâches, tandis que `-ttd` affiche les notes et les tâches).","Either \"text\" or \"json\"":"Soit \"text\" soit \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Utilise le format de liste longue. Le format est ID, NOMBRE_DE_NOTES (pour les carnets), DATE, TACHE_TERMINE (pour les tâches), TITRE","Please select a notebook first.":"Veuillez d'abord sélectionner un carnet.","Creates a new notebook.":"Créer un carnet.","Creates a new note.":"Créer une note.","Notes can only be created within a notebook.":"Les notes ne peuvent être créées que dans un carnet.","Creates a new to-do.":"Créer une nouvelle tâche.","Moves the notes matching  to [notebook].":"Déplacer les notes correspondant à  vers [notebook].","Renames the given  (note or notebook) to .":"Renommer l'objet  (note ou carnet) en .","Deletes the given notebook.":"Supprimer le carnet.","Deletes the notebook without asking for confirmation.":"Supprimer le carnet sans demander la confirmation.","Delete notebook? All notes within this notebook will also be deleted.":"Effacer le carnet ? Toutes les notes dans ce carnet seront également effacées.","Deletes the notes matching .":"Supprimer les notes correspondants à .","Deletes the notes without asking for confirmation.":"Supprimer les notes sans demander la confirmation.","%d notes match this pattern. Delete them?":"%d notes correspondent à ce motif. Les supprimer ?","Delete note?":"Supprimer la note ?","Searches for the given  in all the notes.":"Chercher le motif  dans toutes les notes.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Assigner la valeur [value] à la propriété  de la  donnée. Les valeurs possibles sont :\n\n%s","Displays summary about the notes and notebooks.":"Afficher un résumé des notes et carnets.","Synchronises with remote storage.":"Synchroniser les notes et carnets.","Sync to provided target (defaults to sync.target config value)":"Synchroniser avec la cible donnée (par défaut, la valeur de configuration `sync.target`).","Authentication was not completed (did not receive an authentication token).":"Impossible d'autoriser le logiciel (jeton d'identification non-reçu).","Not authentified with %s. Please provide any missing credentials.":"Non-connecté à %s. Veuillez fournir les identifiants et mots de passe manquants.","Synchronisation is already in progress.":"La synchronisation est déjà en cours.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"La synchronisation est déjà en cours ou ne s'est pas interrompue correctement. Si vous savez qu'aucune autre synchronisation est en cours, vous pouvez supprimer le fichier \"%s\" pour reprendre l'opération.","Synchronisation target: %s (%s)":"Cible de la synchronisation : %s (%s)","Cannot initialize synchroniser.":"Impossible d'initialiser la synchronisation.","Starting synchronisation...":"Commencement de la synchronisation...","Cancelling... Please wait.":"Annulation... Veuillez attendre."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" peut être \"add\", \"remove\" ou \"list\" pour assigner ou enlever l'étiquette [tag] de la [note], our pour lister les notes associées avec l'étiquette [tag]. La commande `tag list` peut être utilisée pour lister les étiquettes.","Invalid command: \"%s\"":"Commande invalide : \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"Gère le status des tâches.  peut être \"toggle\" ou \"clear\". Utilisez \"toggle\" pour basculer la tâche entre le status terminé et non-terminé (Si la cible est une note, elle sera convertie en tâche). Utilisez \"clear\" pour convertir la tâche en note.","Marks a to-do as non-completed.":"Marquer une tâche comme non-complétée.","Switches to [notebook] - all further operations will happen within this notebook.":"Changer de carnet - toutes les opérations à venir se feront dans ce carnet.","Displays version information":"Affiche les informations de version","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Type : %s.","Possible values: %s.":"Valeurs possibles : %s.","Default: %s":"Défaut : %s","Possible keys/values:":"Clefs/Valeurs possibles :","Type `joplin help` for usage information.":"Tapez `Joplin help` pour afficher l'aide.","Fatal error:":"Erreur fatale :","The application has been authorised - you may now close this browser tab.":"Le logiciel a été autorisé. Vous pouvez maintenant fermer cet onglet.","The application has been successfully authorised.":"Le logiciel a été autorisé.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Veuillez ouvrir le lien ci-dessous dans votre navigateur pour authentifier le logiciel. Joplin va créer un répertoire \"Apps/Joplin\" et lire/écrira des fichiers uniquement dans ce répertoire. Le logiciel n'aura pas d'accès à aucun fichier en dehors de ce répertoire, ni à d'autres données personnelles. Aucune donnée ne sera partagé avec aucun tier.","Search:":"Recherche :","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bienvenue dans Joplin!\n\nTapez `:help shortcuts` pour la liste des raccourcis claviers, ou simplement `:help` pour une vue d'ensemble.\n\nPar exemple, pour créer un carnet, pressez `mb` ; pour créer une note pressed `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Au moins un objet est actuellement crypté et il se peut que vous deviez fournir votre mot de passe maître. Pour se faire, veuillez taper `e2ee decrypt`. Si vous avez déjà fourni ce mot de passe, les objets cryptés vont être décrypté en tâche de fond et seront disponible prochainement.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exporter vers \"%s\" au format \"%s\". Veuillez patienter...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importer depuis \"%s\" au format \"%s\". Veuillez patienter...","PDF File":"Fichier PDF","File":"Fichier","New note":"Nouvelle note","New to-do":"Nouvelle tâche","New notebook":"Nouveau carnet","Import":"Importer","Export":"Exporter","Print":"Imprimer","Hide %s":"Cacher %s","Quit":"Quitter","Edit":"Édition","Copy":"Copier","Cut":"Couper","Paste":"Coller","Search in all the notes":"Chercher dans toutes les notes","View":"Affichage","Toggle editor layout":"Basculer l'agencement de l'éditeur","Tools":"Outils","Synchronisation status":"État de la synchronisation","Encryption options":"Options de cryptage","General Options":"Options générales","Help":"Aide","Website and documentation":"Documentation en ligne","Make a donation":"Faire un don","Check for updates...":"Vérifier les mises à jour...","About Joplin":"A propos de Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Ouvrir %s","Exit":"Quitter","OK":"OK","Cancel":"Annuler","Current version is up-to-date.":"La version actuelle est à jour.","An update is available, do you want to download it now?":"Une mise à jour est disponible, souhaitez vous la télécharger maintenant ?","Yes":"Oui","No":"Non","Check synchronisation configuration":"Vérifier config synchronisation","Notes and settings are stored in: %s":"Les notes et paramètres se trouve dans : %s","Save":"Enregistrer","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Désactiver le cryptage signifie que *toutes* les notes et fichiers vont être re-synchronisés et envoyés décryptés sur la cible de la synchronisation. Souhaitez vous continuer ?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Activer le cryptage signifie que *toutes* les notes et fichiers vont être re-synchronisés et envoyés cryptés vers la cible de la synchronisation. Ne perdez pas votre mot de passe car, pour des raisons de sécurité, ce sera la *seule* façon de décrypter les données ! Pour activer le cryptage, veuillez entrer votre mot de passe ci-dessous.","Disable encryption":"Désactiver le cryptage","Enable encryption":"Activer le cryptage","Master Keys":"Clefs maître","Active":"Actif","ID":"ID","Source":"Source","Created":"Créé","Updated":"Mis à jour","Password":"Mot de passe","Password OK":"Mot de passe OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Note : seule une clef maître va être utilisée pour le cryptage (celle marquée comme \"actif\" ci-dessus). N'importe quel clef peut-être utilisée pour le décryptage, selon la façon dont les notes ou carnets étaient cryptés à l'origine.","Missing Master Keys":"Clefs maître manquantes","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"Les clefs maître avec ces identifiants sont utilisées pour crypter certains de vos objets, cependant le logiciel n'y a pour l'instant pas accès. Il est probable qu'elle vont être prochainement disponible via la synchronisation.","Status":"État","Encryption is:":"Le cryptage est :","Back":"Retour","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Un nouveau carnet \"%s\" va être créé et le fichier \"%s\" va être importé dedans","Please create a notebook first.":"Veuillez d'abord sélectionner un carnet.","Please create a notebook first":"Veuillez d'abord créer un carnet d'abord","Notebook title:":"Titre du carnet :","Add or remove tags:":"Modifier les étiquettes :","Separate each tag by a comma.":"Séparez chaque étiquette par une virgule.","Rename notebook:":"Renommer le carnet :","Set alarm:":"Régler alarme :","Search":"Chercher","Layout":"Disposition","Some items cannot be synchronised.":"Certains objets ne peuvent être synchronisés.","View them now":"Les voir maintenant","Some items cannot be decrypted.":"Certains objets ne peuvent être décryptés.","Set the password":"Définir le mot de passe","Add or remove tags":"Gérer les étiquettes","Switch between note and to-do type":"Alterner entre note et tâche","Delete":"Supprimer","Delete notes?":"Supprimer les notes ?","No notes in here. Create one by clicking on \"New note\".":"Pas de notes ici. Créez-en une en pressant le bouton \"Nouvelle note\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Il n'y a pour l'instant aucun carnet. Créez-en un en cliquant sur \"Nouveau carnet\".","Open...":"Ouvrir...","Save as...":"Enregistrer sous...","Unsupported link or message: %s":"Lien ou message non géré : %s","Attach file":"Attacher un fichier","Tags":"Étiquettes","Set alarm":"Régler alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Cette note n'a pas de contenu. Cliquer sur \"%s\" pour basculer vers l'éditeur et éditer cette note.","to-do":"tâche","note":"note","Creating new %s...":"Création de %s...","Refresh":"Rafraîchir","Clear":"Supprimer","OneDrive Login":"Connexion OneDrive","Options":"Options","Synchronisation Status":"État de la synchronisation","Encryption Options":"Options de cryptage","Remove this tag from all the notes?":"Enlever cette étiquette de toutes les notes ?","Remove this search from the sidebar?":"Enlever cette recherche de la barre latérale ?","Rename":"Renommer","Synchronise":"Synchroniser","Notebooks":"Carnets","Searches":"Recherches","Please select where the sync status should be exported to":"Veuillez sélectionner un répertoire ou exporter l'état de la synchronisation","Usage: %s":"Utilisation : %s","Unknown flag: %s":"Paramètre inconnu : %s","File system":"Système de fichier","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dév (Pour tester uniquement)","WebDAV":"WebDAV","Unknown log level: %s":"Paramètre inconnu : %s","Unknown level ID: %s":"Paramètre inconnu : %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Impossible de rafraîchir la connexion à OneDrive. Démarrez la synchronisation à nouveau pour corriger le problème.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Impossible de synchroniser avec OneDrive.\n\nCette erreur se produit lors de l'utilisation de OneDrive for Business, qui malheureusement n'est pas compatible.\n\nVeuillez utiliser à la place un compte OneDrive normal.","Cannot access %s":"Impossible d'accéder à %s","Created local items: %d.":"Objets créés localement : %d.","Updated local items: %d.":"Objets mis à jour localement : %d.","Created remote items: %d.":"Objets distants créés : %d.","Updated remote items: %d.":"Objets distants mis à jour : %d.","Deleted local items: %d.":"Objets supprimés localement : %d.","Deleted remote items: %d.":"Objets distants supprimés : %d.","Fetched items: %d/%d.":"Téléchargés : %d/%d.","State: %s.":"State: %s.","Cancelling...":"Annulation...","Completed: %s":"Terminé : %s","Last error: %s":"Dernière erreur : %s","Idle":"Arrêté","In progress":"En cours","Synchronisation is already in progress. State: %s":"La synchronisation est déjà en cours. État : %s","Encrypted":"Crypté","Encrypted items cannot be modified":"Les objets cryptés ne peuvent être modifiés","Conflicts":"Conflits","A notebook with this title already exists: \"%s\"":"Un carnet avec ce titre existe déjà : \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Les carnets ne peuvent être nommés \"%s\" car c'est un nom réservé.","Untitled":"Sans titre","This note does not have geolocation information.":"Cette note n'a pas d'information d'emplacement.","Cannot copy note to \"%s\" notebook":"Impossible de copier la note vers le carnet \"%s\"","Cannot move note to \"%s\" notebook":"Impossible de déplacer la note vers le carnet \"%s\"","Text editor":"Éditeur de texte","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"L'éditeur de texte pour ouvrir et modifier les notes. Si aucun n'est spécifié, il sera détecté automatiquement.","Language":"Langue","Date format":"Format de la date","Time format":"Format de l'heure","Theme":"Apparence","Light":"Clair","Dark":"Sombre","Uncompleted to-dos on top":"Tâches non-terminées en haut","Sort notes by":"Trier les notes par","Reverse sort order":"Inverser l'ordre","Save geo-location with notes":"Enregistrer l'emplacement avec les notes","When creating a new to-do:":"Lors de la création d'une tâche :","Focus title":"Curseur sur le titre","Focus body":"Curseur sur corps du message","When creating a new note:":"Lors de la création d'une note :","Show tray icon":"Afficher icône dans la zone de notifications","Global zoom percentage":"Niveau de zoom","Editor font family":"Police de l'éditeur","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"Le nom de la police ne sera pas vérifié. Si incorrect ou vide une police monospace sera utilisée par défaut.","Automatically update the application":"Mettre à jour le logiciel automatiquement","Synchronisation interval":"Intervalle de synchronisation","%d minutes":"%d minutes","%d hour":"%d heure","%d hours":"%d heures","Show advanced options":"Montrer les options avancées","Synchronisation target":"Cible de la synchronisation","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"La cible avec laquelle synchroniser. Chaque cible de synchronisation peut avoir des paramètres supplémentaires sous le nom `sync.NUM.NOM` (documentés ci-dessous).","Directory to synchronise with (absolute path)":"Répertoire avec lequel synchroniser (chemin absolu)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Le chemin du répertoire avec lequel synchroniser lorsque la synchronisation par système de fichier est activée. Voir `sync.target`.","Nextcloud WebDAV URL":"Nextcloud : URL WebDAV","Nextcloud username":"Nextcloud : Nom utilisateur","Nextcloud password":"Nextcloud : Mot de passe","WebDAV URL":"WebDAV : URL","WebDAV username":"WebDAV : Nom utilisateur","WebDAV password":"WebDAV : Mot de passe","Invalid option value: \"%s\". Possible values are: %s.":"Option invalide: \"%s\". Les valeurs possibles sont : %s.","Joplin Export File":"Fichier d'export Joplin","Markdown":"Markdown","Joplin Export Directory":"Dossier d'export Joplin","Evernote Export File":"Fichiers d'export Evernote","Directory":"Dossier","Cannot load \"%s\" module for format \"%s\"":"Impossible de charger module \"%s\" pour le format \"%s\"","Please specify import format for %s":"Veuillez spécifier le format d'import pour %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Cet objet est crypté : %s \"%s\". Veuillez attendre que tout soit décrypté et réessayez.","There is no data to export.":"Il n'y a pas de données à exporter.","Please specify the notebook where the notes should be imported to.":"Veuillez sélectionner le carnet où les notes doivent être importées.","Items that cannot be synchronised":"Objets qui ne peuvent pas être synchronisés","%s (%s): %s":"%s (%s) : %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Ces objets resteront sur l'appareil mais ne seront pas envoyé sur la cible de la synchronisation. Pour trouver ces objets, faite une recherche sur le titre ou l'identifiant de l'objet (affiché ci-dessus entre parenthèses).","Sync status (synced items / total items)":"Status de la synchronisation (objets synchro. / total)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total : %d/%d","Conflicted: %d":"Conflits : %d","To delete: %d":"A supprimer : %d","Folders":"Carnets","%s: %d notes":"%s : %d notes","Coming alarms":"Alarmes à venir","On %s: %s":"Le %s  : %s","There are currently no notes. Create one by clicking on the (+) button.":"Ce carnet ne contient aucune note. Créez-en une en appuyant sur le bouton (+).","Delete these notes?":"Supprimer ces notes ?","Log":"Journal","Export Debug Report":"Exporter rapport de débogage","Encryption Config":"Config cryptage","Configuration":"Configuration","Move to notebook...":"Déplacer vers...","Move %d notes to notebook \"%s\"?":"Déplacer %d notes vers carnet \"%s\" ?","Press to set the decryption password.":"Définir mot de passe de synchronisation.","Select date":"Sélectionner date","Confirm":"Confirmer","Cancel synchronisation":"Annuler synchronisation","Joplin website":"Site web de Joplin","Master Key %s":"Clef maître %s","Created: %s":"Créé : %s","Password:":"Mot de passe :","Password cannot be empty":"Mot de passe ne peut être vide","Enable":"Activer","The notebook could not be saved: %s":"Ce carnet n'a pas pu être sauvegardé : %s","Edit notebook":"Éditer le carnet","Show all":"Afficher tous","Errors only":"Erreurs seulement","This note has been modified:":"Cette note a été modifiée :","Save changes":"Enregistrer les changements","Discard changes":"Ignorer les changements","Unsupported image type: %s":"Type d'image non géré : %s","Attach photo":"Attacher une photo","Attach any file":"Attacher un fichier","Convert to note":"Convertir en note","Convert to todo":"Convertir en tâche","Hide metadata":"Cacher les métadonnées","Show metadata":"Voir métadonnées","View on map":"Voir sur carte","Delete notebook":"Supprimer le carnet","Login with OneDrive":"Se connecter à OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Appuyez sur le bouton (+) pour créer une nouvelle note ou carnet. Ouvrez le menu latéral pour accéder à vos carnets.","You currently have no notebook. Create one by clicking on (+) button.":"Vous n'avez pour l'instant pas de carnets. Créez-en un en pressant le bouton (+).","Welcome":"Bienvenue"}
        \ No newline at end of file
        diff --git a/ReactNativeClient/locales/hr_HR.json b/ReactNativeClient/locales/hr_HR.json
        index 08521bc843..5897557f45 100644
        --- a/ReactNativeClient/locales/hr_HR.json
        +++ b/ReactNativeClient/locales/hr_HR.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"Da bi mogao obrisati oznaku, skini oznaku s povezanih bilješki.","Please select the note or notebook to be deleted first.":"Odaberi bilješku ili bilježnicu za brisanje.","Press Ctrl+D or type \"exit\" to exit the application":"Pritisni Ctrl+D ili napiši \"exit\" za izlazak iz aplikacije","More than one item match \"%s\". Please narrow down your query.":"Više od jednog rezultata odgovara \"%s\". Promijeni upit.","No notebook selected.":"Nije odabrana bilježnica.","No notebook has been specified.":"Nije specificirana bilježnica.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Prekid sinkronizacije u pozadini... Pričekaj.","No such command: %s":"Ne postoji naredba: %s","The command \"%s\" is only available in GUI mode":"Naredba \"%s\" postoji samo u inačici s grafičkim sučeljem","Cannot change encrypted item":"","Missing required argument: %s":"Nedostaje obavezni argument: %s","%s: %s":"%s: %s","Your choice: ":"Tvoj izbor: ","Invalid answer: %s":"Nevažeći odgovor: %s","Attaches the given file to the note.":"Prilaže datu datoteku bilješci.","Cannot find \"%s\".":"Ne mogu naći \"%s\".","Displays the given note.":"Prikazuje datu bilješku.","Displays the complete information about note.":"Prikazuje potpunu informaciju o bilješci.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.","Also displays unset and hidden config variables.":"Također prikazuje nepostavljene i skrivene konfiguracijske varijable.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.","Marks a to-do as done.":"Označava zadatak završenim.","Note is not a to-do: \"%s\"":"Bilješka nije zadatak: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Onemogućeno","Encryption is: %s":"","Edit note.":"Uredi bilješku.","No text editor is defined. Please set it using `config editor `":"No text editor is defined. Please set it using `config editor `","No active notebook.":"Nema aktivne bilježnice.","Note does not exist: \"%s\". Create it?":"Bilješka ne postoji: \"%s\". Napravi je?","Starting to edit note. Close the editor to get back to the prompt.":"Starting to edit note. Close the editor to get back to the prompt.","Error opening note in editor: %s":"","Note has been saved.":"Bilješka je spremljena.","Exits the application.":"Izlaz iz aplikacije.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Izvozi samo datu bilješku.","Exports only the given notebook.":"Izvozi samo datu bilježnicu.","Displays a geolocation URL for the note.":"Prikazuje geolokacijski URL bilješke.","Displays usage information.":"Prikazuje informacije o korištenju.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Prečaci nisu podržani u naredbenom retku.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Upiši `help [naredba]` za više informacija o naredbi ili `help all` za sve informacije o korištenju.","The possible commands are:":"Moguće naredbe su:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.","To move from one pane to another, press Tab or Shift+Tab.":"Za prijelaz iz jednog okna u drugo, pritisni Tab ili Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use the arrows and page up/down to scroll the lists and text areas (including this console).","To maximise/minimise the console, press \"TC\".":"Za maksimiziranje/minimiziranje konzole, pritisni \"TC\".","To enter command line mode, press \":\"":"Za ulaz u naredbeni redak, pritisni \":\"","To exit command line mode, press ESCAPE":"Za izlaz iz naredbenog retka, pritisni Esc","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Ne pitaj za potvrdu.","Found: %d.":"Nađeno: %d.","Created: %d.":"Stvoreno: %d.","Updated: %d.":"Ažurirano: %d.","Skipped: %d.":"Preskočeno: %d.","Resources: %d.":"Resursi: %d.","Tagged: %d.":"Označeno: %d.","Importing notes...":"Uvozim bilješke...","The notes have been imported: %s":"Bilješke su uvezene: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Prikazuje bilješke u trenutnoj bilježnici. Upiši `ls /` za prikaz liste bilježnica.","Displays only the first top  notes.":"Prikaži samo prvih  bilješki.","Sorts the item by  (eg. title, updated_time, created_time).":"Sorts the item by  (eg. title, updated_time, created_time).","Reverses the sorting order.":"Mijenja redoslijed.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.","Either \"text\" or \"json\"":"Ili \"text\" ili \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE","Please select a notebook first.":"Odaberi bilježnicu.","Creates a new notebook.":"Stvara novu bilježnicu.","Creates a new note.":"Stvara novu bilješku.","Notes can only be created within a notebook.":"Bilješke je moguće stvoriti samo u sklopu bilježnice.","Creates a new to-do.":"Stvara novi zadatak.","Moves the notes matching  to [notebook].":"Premješta podudarajuće bilješke  u [bilježnicu].","Renames the given  (note or notebook) to .":"Renames the given  (note or notebook) to .","Deletes the given notebook.":"Briše datu bilježnicu.","Deletes the notebook without asking for confirmation.":"Briše bilježnicu bez traženja potvrde.","Delete notebook? All notes within this notebook will also be deleted.":"Obrisati bilježnicu? Sve bilješke u toj bilježnici će također biti obrisane.","Deletes the notes matching .":"Deletes the notes matching .","Deletes the notes without asking for confirmation.":"Briše bilješke bez traženja potvrde.","%d notes match this pattern. Delete them?":"%d bilješki se podudara s pojmom pretraživanja. Obriši ih?","Delete note?":"Obrisati bilješku?","Searches for the given  in all the notes.":"Searches for the given  in all the notes.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Prikazuje sažetak o bilješkama i bilježnicama.","Synchronises with remote storage.":"Sinkronizira sa udaljenom pohranom podataka.","Sync to provided target (defaults to sync.target config value)":"Sinkroniziraj sa metom (default je polje sync.target u konfiguraciji)","Authentication was not completed (did not receive an authentication token).":"Authentication was not completed (did not receive an authentication token).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"Sinkronizacija je već u toku.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ako sinkronizacija nije u toku, obriši lock datoteku u \"%s\" i nastavi...","Synchronisation target: %s (%s)":"Meta sinkronizacije: %s (%s)","Cannot initialize synchroniser.":"Ne mogu započeti sinkronizaciju.","Starting synchronisation...":"Započinjem sinkronizaciju...","Cancelling... Please wait.":"Prekidam... Pričekaj."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.","Invalid command: \"%s\"":"Nevažeća naredba: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.","Marks a to-do as non-completed.":"Označava zadatak kao nezavršen.","Switches to [notebook] - all further operations will happen within this notebook.":"Switches to [notebook] - all further operations will happen within this notebook.","Displays version information":"Prikazuje verziju","%s %s (%s)":"%s %s (%s)","Enum":"Enumeracija","Type: %s.":"Vrsta: %s.","Possible values: %s.":"Moguće vrijednosti: %s.","Default: %s":"Default: %s","Possible keys/values:":"Mogući ključevi/vrijednosti:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Fatalna greška:","The application has been authorised - you may now close this browser tab.":"Aplikacija je autorizirana - smiješ zatvoriti karticu preglednika.","The application has been successfully authorised.":"Aplikacija je uspješno autorizirana.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Otvori sljedeći URL u pregledniku da bi ovjerio aplikaciju. Aplikacija će stvoriti direktorij u \"Apps/Joplin\" i koristiti će samo taj direktorij za čitanje i pisanje. Aplikacija neće imati pristup osobnim podacima niti ičemu izvan tog direktorija. Nijedan se podatak neće dijeliti s trećom stranom.","Search:":"Traži:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"Datoteka","New note":"Nova bilješka","New to-do":"Novi zadatak","New notebook":"Nova bilježnica","Import":"Uvoz","Export":"Export","Print":"","Hide %s":"","Quit":"Izađi","Edit":"Uredi","Copy":"Kopiraj","Cut":"Izreži","Paste":"Zalijepi","Search in all the notes":"Pretraži u svim bilješkama","View":"","Toggle editor layout":"","Tools":"Alati","Synchronisation status":"Status sinkronizacije","Encryption options":"","General Options":"General Options","Help":"Pomoć","Website and documentation":"Website i dokumentacija","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"O Joplinu","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"U redu","Cancel":"Odustani","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Bilješke i postavke su pohranjene u: %s","Save":"Spremi","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"ID","Source":"Izvor","Created":"Stvoreno","Updated":"Ažurirano","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"","Back":"Natrag","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nova bilježnica \"%s\" će biti stvorena i datoteka \"%s\" će biti uvezena u nju","Please create a notebook first.":"Prvo stvori bilježnicu.","Please create a notebook first":"Prvo stvori bilježnicu","Notebook title:":"Naslov bilježnice:","Add or remove tags:":"Dodaj ili makni oznake:","Separate each tag by a comma.":"Odvoji oznake zarezom.","Rename notebook:":"Preimenuj bilježnicu:","Set alarm:":"Postavi upozorenje:","Search":"Traži","Layout":"Izgled","Some items cannot be synchronised.":"Neke stavke se ne mogu sinkronizirati.","View them now":"Pogledaj ih sada","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Dodaj ili makni oznake","Switch between note and to-do type":"Zamijeni bilješku i zadatak","Delete":"Obriši","Delete notes?":"Obriši bilješke?","No notes in here. Create one by clicking on \"New note\".":"Ovdje nema bilješki. Stvori novu pritiskom na \"Nova bilješka\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Ovdje nema bilježnica. Stvori novu pritiskom na \"Nova bilježnica\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Nepodržana poveznica ili poruka: %s","Attach file":"Priloži datoteku","Tags":"Oznake","Set alarm":"Postavi upozorenje","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Osvježi","Clear":"Očisti","OneDrive Login":"OneDrive Login","Options":"Opcije","Synchronisation Status":"Status Sinkronizacije","Encryption Options":"","Remove this tag from all the notes?":"Makni ovu oznaku iz svih bilješki?","Remove this search from the sidebar?":"Makni ovu pretragu iz izbornika?","Rename":"Preimenuj","Synchronise":"Sinkroniziraj","Notebooks":"Bilježnice","Searches":"Pretraživanja","Please select where the sync status should be exported to":"Odaberi lokaciju za izvoz statusa sinkronizacije","Usage: %s":"Korištenje: %s","Unknown flag: %s":"Nepoznata zastavica: %s","File system":"Datotečni sustav","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Samo za testiranje)","WebDAV":"","Unknown log level: %s":"Nepoznata razina logiranja: %s","Unknown level ID: %s":"Nepoznat ID razine: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Nedostaju podaci za ovjeru. Pokušaj ponovo započeti sinkronizaciju.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Ne mogu sinkronizirati OneDrive.\n\nOva greška se često javlja pri korištenju usluge OneDrive for Business koja nije podržana.\n\nMolimo da koristite obični OneDrive korisnički račun.","Cannot access %s":"Ne mogu pristupiti %s","Created local items: %d.":"Stvorene lokalne stavke: %d.","Updated local items: %d.":"Ažurirane lokalne stavke: %d.","Created remote items: %d.":"Stvorene udaljene stavke: %d.","Updated remote items: %d.":"Ažurirane udaljene stavke: %d.","Deleted local items: %d.":"Obrisane lokalne stavke: %d.","Deleted remote items: %d.":"Obrisane udaljene stavke: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"Stanje: \"%s\".","Cancelling...":"Prekidam...","Completed: %s":"Dovršeno: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Sinkronizacija je već u toku. Stanje: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Sukobi","A notebook with this title already exists: \"%s\"":"Bilježnica s ovim naslovom već postoji: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Naslov \"%s\" je rezerviran i ne može se koristiti.","Untitled":"Nenaslovljen","This note does not have geolocation information.":"Ova bilješka nema geolokacijske informacije.","Cannot copy note to \"%s\" notebook":"Ne mogu kopirati bilješku u bilježnicu %s","Cannot move note to \"%s\" notebook":"Ne mogu premjestiti bilješku u bilježnicu %s","Text editor":"Uređivač teksta","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Program za uređivanje koji će biti korišten za uređivanje bilješki. Ako ni jedan nije odabran, pokušati će se sa default programom.","Language":"Jezik","Date format":"Format datuma","Time format":"Format vremena","Theme":"Tema","Light":"Svijetla","Dark":"Tamna","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Spremi geolokacijske podatke sa bilješkama","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Automatsko instaliranje nove verzije","Synchronisation interval":"Interval sinkronizacije","%d minutes":"%d minuta","%d hour":"%d sat","%d hours":"%d sati","Show advanced options":"Prikaži napredne opcije","Synchronisation target":"Sinkroniziraj sa","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"Direktorij za sinkroniziranje (apsolutna putanja)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Putanja do direktorija za sinkronizaciju u slučaju kad je sinkronizacija sa datotečnim sustavom omogućena. Vidi `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Nevažeća vrijednost: \"%s\". Moguće vrijednosti su: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Stavke koje se ne mogu sinkronizirati","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Status (sinkronizirane stavke / ukupni broj stavki)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Ukupno: %d/%d","Conflicted: %d":"U sukobu: %d","To delete: %d":"Za brisanje: %d","Folders":"Mape","%s: %d notes":"%s: %d notes","Coming alarms":"Nadolazeća upozorenja","On %s: %s":"On %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Trenutno nema bilješki. Stvori novu klikom na (+) gumb.","Delete these notes?":"Obriši ove bilješke?","Log":"Log","Export Debug Report":"Izvezi Debug izvještaj","Encryption Config":"","Configuration":"Konfiguracija","Move to notebook...":"Premjesti u bilježnicu...","Move %d notes to notebook \"%s\"?":"Premjesti %d bilješke u bilježnicu \"%s\"?","Press to set the decryption password.":"","Select date":"Odaberi datum","Confirm":"Potvrdi","Cancel synchronisation":"Prekini sinkronizaciju","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"Bilježnicu nije moguće snimiti: %s","Edit notebook":"Uredi bilježnicu","Show all":"","Errors only":"","This note has been modified:":"Bilješka je promijenjena:","Save changes":"Spremi promjene","Discard changes":"Odbaci promjene","Unsupported image type: %s":"Nepodržana vrsta slike: %s","Attach photo":"Priloži sliku","Attach any file":"Priloži datoteku","Convert to note":"Pretvori u bilješku","Convert to todo":"Pretvori u zadatak","Hide metadata":"Sakrij metapodatke","Show metadata":"Prikaži metapodatke","View on map":"Vidi na karti","Delete notebook":"Obriši bilježnicu","Login with OneDrive":"Prijavi se u OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Klikni (+) gumb za dodavanje nove bilješke ili bilježnice ili odaberi postojeću bilježnicu iz izbornika.","You currently have no notebook. Create one by clicking on (+) button.":"Trenutno nemaš nijednu bilježnicu. Stvori novu klikom na (+) gumb.","Welcome":"Dobro došli"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"Da bi mogao obrisati oznaku, skini oznaku s povezanih bilješki.","Please select the note or notebook to be deleted first.":"Odaberi bilješku ili bilježnicu za brisanje.","Press Ctrl+D or type \"exit\" to exit the application":"Pritisni Ctrl+D ili napiši \"exit\" za izlazak iz aplikacije","More than one item match \"%s\". Please narrow down your query.":"Više od jednog rezultata odgovara \"%s\". Promijeni upit.","No notebook selected.":"Nije odabrana bilježnica.","No notebook has been specified.":"Nije specificirana bilježnica.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Prekid sinkronizacije u pozadini... Pričekaj.","No such command: %s":"Ne postoji naredba: %s","The command \"%s\" is only available in GUI mode":"Naredba \"%s\" postoji samo u inačici s grafičkim sučeljem","Cannot change encrypted item":"","Missing required argument: %s":"Nedostaje obavezni argument: %s","%s: %s":"%s: %s","Your choice: ":"Tvoj izbor: ","Invalid answer: %s":"Nevažeći odgovor: %s","Attaches the given file to the note.":"Prilaže datu datoteku bilješci.","Cannot find \"%s\".":"Ne mogu naći \"%s\".","Displays the given note.":"Prikazuje datu bilješku.","Displays the complete information about note.":"Prikazuje potpunu informaciju o bilješci.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.","Also displays unset and hidden config variables.":"Također prikazuje nepostavljene i skrivene konfiguracijske varijable.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.","Marks a to-do as done.":"Označava zadatak završenim.","Note is not a to-do: \"%s\"":"Bilješka nije zadatak: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Onemogućeno","Encryption is: %s":"","Edit note.":"Uredi bilješku.","No text editor is defined. Please set it using `config editor `":"No text editor is defined. Please set it using `config editor `","No active notebook.":"Nema aktivne bilježnice.","Note does not exist: \"%s\". Create it?":"Bilješka ne postoji: \"%s\". Napravi je?","Starting to edit note. Close the editor to get back to the prompt.":"Starting to edit note. Close the editor to get back to the prompt.","Error opening note in editor: %s":"","Note has been saved.":"Bilješka je spremljena.","Exits the application.":"Izlaz iz aplikacije.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Izvozi samo datu bilješku.","Exports only the given notebook.":"Izvozi samo datu bilježnicu.","Displays a geolocation URL for the note.":"Prikazuje geolokacijski URL bilješke.","Displays usage information.":"Prikazuje informacije o korištenju.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Prečaci nisu podržani u naredbenom retku.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Upiši `help [naredba]` za više informacija o naredbi ili `help all` za sve informacije o korištenju.","The possible commands are:":"Moguće naredbe su:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.","To move from one pane to another, press Tab or Shift+Tab.":"Za prijelaz iz jednog okna u drugo, pritisni Tab ili Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use the arrows and page up/down to scroll the lists and text areas (including this console).","To maximise/minimise the console, press \"TC\".":"Za maksimiziranje/minimiziranje konzole, pritisni \"TC\".","To enter command line mode, press \":\"":"Za ulaz u naredbeni redak, pritisni \":\"","To exit command line mode, press ESCAPE":"Za izlaz iz naredbenog retka, pritisni Esc","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Ne pitaj za potvrdu.","Found: %d.":"Nađeno: %d.","Created: %d.":"Stvoreno: %d.","Updated: %d.":"Ažurirano: %d.","Skipped: %d.":"Preskočeno: %d.","Resources: %d.":"Resursi: %d.","Tagged: %d.":"Označeno: %d.","Importing notes...":"Uvozim bilješke...","The notes have been imported: %s":"Bilješke su uvezene: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Prikazuje bilješke u trenutnoj bilježnici. Upiši `ls /` za prikaz liste bilježnica.","Displays only the first top  notes.":"Prikaži samo prvih  bilješki.","Sorts the item by  (eg. title, updated_time, created_time).":"Sorts the item by  (eg. title, updated_time, created_time).","Reverses the sorting order.":"Mijenja redoslijed.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.","Either \"text\" or \"json\"":"Ili \"text\" ili \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE","Please select a notebook first.":"Odaberi bilježnicu.","Creates a new notebook.":"Stvara novu bilježnicu.","Creates a new note.":"Stvara novu bilješku.","Notes can only be created within a notebook.":"Bilješke je moguće stvoriti samo u sklopu bilježnice.","Creates a new to-do.":"Stvara novi zadatak.","Moves the notes matching  to [notebook].":"Premješta podudarajuće bilješke  u [bilježnicu].","Renames the given  (note or notebook) to .":"Renames the given  (note or notebook) to .","Deletes the given notebook.":"Briše datu bilježnicu.","Deletes the notebook without asking for confirmation.":"Briše bilježnicu bez traženja potvrde.","Delete notebook? All notes within this notebook will also be deleted.":"Obrisati bilježnicu? Sve bilješke u toj bilježnici će također biti obrisane.","Deletes the notes matching .":"Deletes the notes matching .","Deletes the notes without asking for confirmation.":"Briše bilješke bez traženja potvrde.","%d notes match this pattern. Delete them?":"%d bilješki se podudara s pojmom pretraživanja. Obriši ih?","Delete note?":"Obrisati bilješku?","Searches for the given  in all the notes.":"Searches for the given  in all the notes.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Prikazuje sažetak o bilješkama i bilježnicama.","Synchronises with remote storage.":"Sinkronizira sa udaljenom pohranom podataka.","Sync to provided target (defaults to sync.target config value)":"Sinkroniziraj sa metom (default je polje sync.target u konfiguraciji)","Authentication was not completed (did not receive an authentication token).":"Authentication was not completed (did not receive an authentication token).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"Sinkronizacija je već u toku.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Ako sinkronizacija nije u toku, obriši lock datoteku u \"%s\" i nastavi...","Synchronisation target: %s (%s)":"Meta sinkronizacije: %s (%s)","Cannot initialize synchroniser.":"Ne mogu započeti sinkronizaciju.","Starting synchronisation...":"Započinjem sinkronizaciju...","Cancelling... Please wait.":"Prekidam... Pričekaj."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.","Invalid command: \"%s\"":"Nevažeća naredba: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.","Marks a to-do as non-completed.":"Označava zadatak kao nezavršen.","Switches to [notebook] - all further operations will happen within this notebook.":"Switches to [notebook] - all further operations will happen within this notebook.","Displays version information":"Prikazuje verziju","%s %s (%s)":"%s %s (%s)","Enum":"Enumeracija","Type: %s.":"Vrsta: %s.","Possible values: %s.":"Moguće vrijednosti: %s.","Default: %s":"Default: %s","Possible keys/values:":"Mogući ključevi/vrijednosti:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Fatalna greška:","The application has been authorised - you may now close this browser tab.":"Aplikacija je autorizirana - smiješ zatvoriti karticu preglednika.","The application has been successfully authorised.":"Aplikacija je uspješno autorizirana.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Otvori sljedeći URL u pregledniku da bi ovjerio aplikaciju. Aplikacija će stvoriti direktorij u \"Apps/Joplin\" i koristiti će samo taj direktorij za čitanje i pisanje. Aplikacija neće imati pristup osobnim podacima niti ičemu izvan tog direktorija. Nijedan se podatak neće dijeliti s trećom stranom.","Search:":"Traži:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"Datoteka","New note":"Nova bilješka","New to-do":"Novi zadatak","New notebook":"Nova bilježnica","Import":"Uvoz","Export":"Export","Print":"","Hide %s":"","Quit":"Izađi","Edit":"Uredi","Copy":"Kopiraj","Cut":"Izreži","Paste":"Zalijepi","Search in all the notes":"Pretraži u svim bilješkama","View":"","Toggle editor layout":"","Tools":"Alati","Synchronisation status":"Status sinkronizacije","Encryption options":"","General Options":"General Options","Help":"Pomoć","Website and documentation":"Website i dokumentacija","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"O Joplinu","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"U redu","Cancel":"Odustani","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Bilješke i postavke su pohranjene u: %s","Save":"Spremi","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"ID","Source":"Izvor","Created":"Stvoreno","Updated":"Ažurirano","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"","Back":"Natrag","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nova bilježnica \"%s\" će biti stvorena i datoteka \"%s\" će biti uvezena u nju","Please create a notebook first.":"Prvo stvori bilježnicu.","Please create a notebook first":"Prvo stvori bilježnicu","Notebook title:":"Naslov bilježnice:","Add or remove tags:":"Dodaj ili makni oznake:","Separate each tag by a comma.":"Odvoji oznake zarezom.","Rename notebook:":"Preimenuj bilježnicu:","Set alarm:":"Postavi upozorenje:","Search":"Traži","Layout":"Izgled","Some items cannot be synchronised.":"Neke stavke se ne mogu sinkronizirati.","View them now":"Pogledaj ih sada","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Dodaj ili makni oznake","Switch between note and to-do type":"Zamijeni bilješku i zadatak","Delete":"Obriši","Delete notes?":"Obriši bilješke?","No notes in here. Create one by clicking on \"New note\".":"Ovdje nema bilješki. Stvori novu pritiskom na \"Nova bilješka\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Ovdje nema bilježnica. Stvori novu pritiskom na \"Nova bilježnica\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Nepodržana poveznica ili poruka: %s","Attach file":"Priloži datoteku","Tags":"Oznake","Set alarm":"Postavi upozorenje","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Osvježi","Clear":"Očisti","OneDrive Login":"OneDrive Login","Options":"Opcije","Synchronisation Status":"Status Sinkronizacije","Encryption Options":"","Remove this tag from all the notes?":"Makni ovu oznaku iz svih bilješki?","Remove this search from the sidebar?":"Makni ovu pretragu iz izbornika?","Rename":"Preimenuj","Synchronise":"Sinkroniziraj","Notebooks":"Bilježnice","Searches":"Pretraživanja","Please select where the sync status should be exported to":"Odaberi lokaciju za izvoz statusa sinkronizacije","Usage: %s":"Korištenje: %s","Unknown flag: %s":"Nepoznata zastavica: %s","File system":"Datotečni sustav","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Samo za testiranje)","WebDAV":"","Unknown log level: %s":"Nepoznata razina logiranja: %s","Unknown level ID: %s":"Nepoznat ID razine: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Nedostaju podaci za ovjeru. Pokušaj ponovo započeti sinkronizaciju.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Ne mogu sinkronizirati OneDrive.\n\nOva greška se često javlja pri korištenju usluge OneDrive for Business koja nije podržana.\n\nMolimo da koristite obični OneDrive korisnički račun.","Cannot access %s":"Ne mogu pristupiti %s","Created local items: %d.":"Stvorene lokalne stavke: %d.","Updated local items: %d.":"Ažurirane lokalne stavke: %d.","Created remote items: %d.":"Stvorene udaljene stavke: %d.","Updated remote items: %d.":"Ažurirane udaljene stavke: %d.","Deleted local items: %d.":"Obrisane lokalne stavke: %d.","Deleted remote items: %d.":"Obrisane udaljene stavke: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: %s.":"State: %s.","Cancelling...":"Prekidam...","Completed: %s":"Dovršeno: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Sinkronizacija je već u toku. Stanje: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Sukobi","A notebook with this title already exists: \"%s\"":"Bilježnica s ovim naslovom već postoji: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Naslov \"%s\" je rezerviran i ne može se koristiti.","Untitled":"Nenaslovljen","This note does not have geolocation information.":"Ova bilješka nema geolokacijske informacije.","Cannot copy note to \"%s\" notebook":"Ne mogu kopirati bilješku u bilježnicu %s","Cannot move note to \"%s\" notebook":"Ne mogu premjestiti bilješku u bilježnicu %s","Text editor":"Uređivač teksta","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Program za uređivanje koji će biti korišten za uređivanje bilješki. Ako ni jedan nije odabran, pokušati će se sa default programom.","Language":"Jezik","Date format":"Format datuma","Time format":"Format vremena","Theme":"Tema","Light":"Svijetla","Dark":"Tamna","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Spremi geolokacijske podatke sa bilješkama","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Automatsko instaliranje nove verzije","Synchronisation interval":"Interval sinkronizacije","%d minutes":"%d minuta","%d hour":"%d sat","%d hours":"%d sati","Show advanced options":"Prikaži napredne opcije","Synchronisation target":"Sinkroniziraj sa","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"Direktorij za sinkroniziranje (apsolutna putanja)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Putanja do direktorija za sinkronizaciju u slučaju kad je sinkronizacija sa datotečnim sustavom omogućena. Vidi `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Nevažeća vrijednost: \"%s\". Moguće vrijednosti su: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Stavke koje se ne mogu sinkronizirati","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Status (sinkronizirane stavke / ukupni broj stavki)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Ukupno: %d/%d","Conflicted: %d":"U sukobu: %d","To delete: %d":"Za brisanje: %d","Folders":"Mape","%s: %d notes":"%s: %d notes","Coming alarms":"Nadolazeća upozorenja","On %s: %s":"On %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Trenutno nema bilješki. Stvori novu klikom na (+) gumb.","Delete these notes?":"Obriši ove bilješke?","Log":"Log","Export Debug Report":"Izvezi Debug izvještaj","Encryption Config":"","Configuration":"Konfiguracija","Move to notebook...":"Premjesti u bilježnicu...","Move %d notes to notebook \"%s\"?":"Premjesti %d bilješke u bilježnicu \"%s\"?","Press to set the decryption password.":"","Select date":"Odaberi datum","Confirm":"Potvrdi","Cancel synchronisation":"Prekini sinkronizaciju","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"Bilježnicu nije moguće snimiti: %s","Edit notebook":"Uredi bilježnicu","Show all":"","Errors only":"","This note has been modified:":"Bilješka je promijenjena:","Save changes":"Spremi promjene","Discard changes":"Odbaci promjene","Unsupported image type: %s":"Nepodržana vrsta slike: %s","Attach photo":"Priloži sliku","Attach any file":"Priloži datoteku","Convert to note":"Pretvori u bilješku","Convert to todo":"Pretvori u zadatak","Hide metadata":"Sakrij metapodatke","Show metadata":"Prikaži metapodatke","View on map":"Vidi na karti","Delete notebook":"Obriši bilježnicu","Login with OneDrive":"Prijavi se u OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Klikni (+) gumb za dodavanje nove bilješke ili bilježnice ili odaberi postojeću bilježnicu iz izbornika.","You currently have no notebook. Create one by clicking on (+) button.":"Trenutno nemaš nijednu bilježnicu. Stvori novu klikom na (+) gumb.","Welcome":"Dobro došli"}
        \ No newline at end of file
        diff --git a/ReactNativeClient/locales/it_IT.json b/ReactNativeClient/locales/it_IT.json
        index 3f78530843..27e1adc058 100644
        --- a/ReactNativeClient/locales/it_IT.json
        +++ b/ReactNativeClient/locales/it_IT.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"Elimina un'etichetta, togli l'etichetta associata alle note.","Please select the note or notebook to be deleted first.":"Per favore seleziona la nota o il blocco note da eliminare.","Press Ctrl+D or type \"exit\" to exit the application":"Premi Ctrl+D o digita \"exit\" per uscire dall'applicazione","More than one item match \"%s\". Please narrow down your query.":"Più di un elemento corrisponde a \"%s\". Per favore restringi la ricerca.","No notebook selected.":"Nessun blocco note selezionato.","No notebook has been specified.":"Nessun blocco note è statoi specificato.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancellazione della sincronizzazione in background... Attendere prego.","No such command: %s":"Nessun comando: %s","The command \"%s\" is only available in GUI mode":"Il comando \"%s\" è disponibile solo nella modalità grafica","Cannot change encrypted item":"","Missing required argument: %s":"Argomento richiesto mancante: %s","%s: %s":"%s: %s","Your choice: ":"La tua scelta: ","Invalid answer: %s":"Risposta non valida: %s","Attaches the given file to the note.":"Allega il seguente file alla nota.","Cannot find \"%s\".":"Non posso trovare \"%s\".","Displays the given note.":"Mostra la seguente nota.","Displays the complete information about note.":"Mostra le informazioni complete sulla nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Ricevi o imposta un valore di configurazione. se [value] non è impostato, verrà mostrato il valore del [name]. Se sia [name] che [valore] sono impostati, verrà mostrata la configurazione corrente.","Also displays unset and hidden config variables.":"Mostra anche le variabili di configurazione non impostate o nascoste.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica le note che corrispondono a  nel [notebook]. Se nessun blocco note è specificato, la nota viene duplicata nel blocco note corrente.","Marks a to-do as done.":"Segna un'attività come completata.","Note is not a to-do: \"%s\"":"La nota non è un'attività: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Disabilitato","Encryption is: %s":"","Edit note.":"Modifica nota.","No text editor is defined. Please set it using `config editor `":"Non è definito nessun editor di testo. Per favore impostalo usando `config editor `","No active notebook.":"Nessun blocco note attivo.","Note does not exist: \"%s\". Create it?":"Non esiste la nota: \"%s\". Desideri crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Comincia a modificare la nota. Chiudi l'editor per tornare al prompt.","Error opening note in editor: %s":"","Note has been saved.":"La nota è stata salvata.","Exits the application.":"Esci dall'applicazione.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Esporta solo la seguente nota.","Exports only the given notebook.":"Esporta solo il seguente blocco note.","Displays a geolocation URL for the note.":"Mostra l'URL di geolocalizzazione per la nota.","Displays usage information.":"Mostra le informazioni di utilizzo.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Le scorciatoie non sono disponibili nella modalità CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"I possibili comandi sono:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In ciascun comando, si deve necessariamente definire una nota o un blocco note usando un titolo, un ID o usando le scorciatoie `$n` or `$b` per , rispettivamente, la nota o il blocco note selezionato `$c` può essere usato per fare riferimento all'elemento selezionato.","To move from one pane to another, press Tab or Shift+Tab.":"Per passare da un pannello all'altro, premi Tab o Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Usa le frecce e pagina su/giù per scorrere le liste e le aree di testo (compresa questa console).","To maximise/minimise the console, press \"TC\".":"Per massimizzare/minimizzare la console, premi \"TC\".","To enter command line mode, press \":\"":"Per entrare nella modalità command line, premi \":\"","To exit command line mode, press ESCAPE":"Per uscire dalla modalità command line, premi ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Non chiedere conferma.","Found: %d.":"Trovato: %d.","Created: %d.":"Creato: %d.","Updated: %d.":"Aggiornato: %d.","Skipped: %d.":"Saltato: %d.","Resources: %d.":"Risorse: %d.","Tagged: %d.":"Etichettato: %d.","Importing notes...":"Importazione delle note...","The notes have been imported: %s":"Le note sono state importate: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Mostra le note nel seguente blocco note. Usa `ls /` per mostrare la lista dei blocchi note.","Displays only the first top  notes.":"Mostra solo le prima  note.","Sorts the item by  (eg. title, updated_time, created_time).":"Ordina per  (es. titolo, ultimo aggiornamento, creazione).","Reverses the sorting order.":"Inverti l'ordine.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Mostra solo gli elementi del tipo specificato. Possono essere `n` per le note, `t` per le attività o `nt` per note e attività. (es. `-tt` mostrerà solo le attività, mentre `-ttd` mostrerà sia note che attività.","Either \"text\" or \"json\"":"Sia \"testo\" che \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usa un formato lungo di lista. Il formato è ID, NOTE_COUNT (per i blocchi note), DATE, TODO_CHECKED (per le attività), TITLE","Please select a notebook first.":"Per favore prima seleziona un blocco note.","Creates a new notebook.":"Crea un nuovo blocco note.","Creates a new note.":"Crea una nuova nota.","Notes can only be created within a notebook.":"Le note possono essere create all'interno de blocco note.","Creates a new to-do.":"Crea una nuova attività.","Moves the notes matching  to [notebook].":"Sposta le note che corrispondono a  in [notebook].","Renames the given  (note or notebook) to .":"Rinomina  (nota o blocco note) in .","Deletes the given notebook.":"Elimina il seguente blocco note.","Deletes the notebook without asking for confirmation.":"Elimina il blocco note senza richiedere una conferma.","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"Elimina le note che corrispondono a .","Deletes the notes without asking for confirmation.":"Elimina le note senza chiedere conferma.","%d notes match this pattern. Delete them?":"%d note corrispondono. Eliminarle?","Delete note?":"Eliminare la nota?","Searches for the given  in all the notes.":"Cerca  in tutte le note.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Mostra un sommario delle note e dei blocchi note.","Synchronises with remote storage.":"Sincronizza con l'archivio remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizza con l'obiettivo fornito (come predefinito il valore di configurazione sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticazione non completata (non è stato ricevuto alcun token di autenticazione).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"La sincronizzazione è in corso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Trovato un file di blocco. Se si è certi che non è in corso alcuna sincronizzazione, è possibile eliminare il file di blocco in \"% s\" e riprendere l'operazione.","Synchronisation target: %s (%s)":"Posizione di sincronizzazione: %s (%s)","Cannot initialize synchroniser.":"Non è possibile inizializzare il sincronizzatore.","Starting synchronisation...":"Inizio sincronizzazione...","Cancelling... Please wait.":"Cancellazione... Attendere per favore."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" può essere \"add\", \"remove\" or \"list\" per assegnare o rimuovere [tag] da [note], o per mostrare le note associate a [tag]. Il comando `tag list` può essere usato per mostrare tutte le etichette.","Invalid command: \"%s\"":"Comando non valido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" può essere \"toggle\" or \"clear\". Usa \"toggle\" per cambiare lo stato dell'attività tra completata/non completata (se l'oggetto è una normale nota, questa verrà convertita in un'attività). Usa \"clear\" convertire le attività in normali note.","Marks a to-do as non-completed.":"Marca un'attività come non completata.","Switches to [notebook] - all further operations will happen within this notebook.":"Passa tra [notebook] - tutte le ulteriori operazioni interesseranno il seguente blocco note.","Displays version information":"Mostra le informazioni sulla versione","%s %s (%s)":"%s %s (%s)","Enum":"Enumerare","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valori possibili: %s.","Default: %s":"Predefinito: %s","Possible keys/values:":"Chiave/valore possibili:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Errore fatale:","The application has been authorised - you may now close this browser tab.":"L'applicazione è stata autorizzata - puoi chiudere questo tab del tuo browser.","The application has been successfully authorised.":"L'applicazione è stata autorizzata con successo.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Per favore apri il seguente URL nel tuo browser per autenticare l'applicazione. L'applicazione creerà una directory in \"Apps/Joplin\" e leggerà/scriverà file solo in questa directory. Non avrà accesso a nessun file all'esterno di questa directory o ad alcun dato personale. Nessun dato verrà condiviso con terze parti.","Search:":"Cerca:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"File","New note":"Nuova nota","New to-do":"Nuova attività","New notebook":"Nuovo blocco note","Import":"Importa","Export":"Export","Print":"","Hide %s":"","Quit":"Esci","Edit":"Modifica","Copy":"Copia","Cut":"Taglia","Paste":"Incolla","Search in all the notes":"Cerca in tutte le note","View":"","Toggle editor layout":"","Tools":"Strumenti","Synchronisation status":"Stato di sincronizzazione","Encryption options":"","General Options":"General Options","Help":"Aiuto","Website and documentation":"Sito web e documentazione","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Informazione si Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Cancella","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Stato","Encryption is:":"","Back":"Indietro","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Il nuovo blocco note \"%s\" verrà creato e \"%s\" vi verrà importato","Please create a notebook first.":"Per favore prima crea un blocco note.","Please create a notebook first":"Per favore prima crea un blocco note","Notebook title:":"Titolo del blocco note:","Add or remove tags:":"Aggiungi or rimuovi etichetta:","Separate each tag by a comma.":"Separa ogni etichetta da una virgola.","Rename notebook:":"Rinomina il blocco note:","Set alarm:":"Imposta allarme:","Search":"Cerca","Layout":"Disposizione","Some items cannot be synchronised.":"Alcuni elementi non possono essere sincronizzati.","View them now":"Mostrali ora","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Aggiungi o rimuovi etichetta","Switch between note and to-do type":"Passa da un tipo di nota a un elenco di attività","Delete":"Elimina","Delete notes?":"Eliminare le note?","No notes in here. Create one by clicking on \"New note\".":"Non è presente nessuna nota. Creane una cliccando \"Nuova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Collegamento o messaggio non supportato: %s","Attach file":"Allega file","Tags":"Etichette","Set alarm":"Imposta allarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Aggiorna","Clear":"Pulisci","OneDrive Login":"Login OneDrive","Options":"Opzioni","Synchronisation Status":"Stato della Sincronizzazione","Encryption Options":"","Remove this tag from all the notes?":"Rimuovere questa etichetta da tutte le note?","Remove this search from the sidebar?":"Rimuovere questa ricerca dalla barra laterale?","Rename":"Rinomina","Synchronise":"Sincronizza","Notebooks":"Blocchi note","Searches":"Ricerche","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Uso: %s","Unknown flag: %s":"Etichetta sconosciuta: %s","File system":"File system","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (solo per test)","WebDAV":"","Unknown log level: %s":"Livello di log sconosciuto: %s","Unknown level ID: %s":"Livello ID sconosciuto: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Non è possibile aggiornare il token. mancano i dati di autenticazione. Ricominciare la sincronizzazione da capo potrebbe risolvere il problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Impossibile sincronizzare con OneDrive.\n\nQuesto errore spesso accade quando si utilizza OneDrive for Business, che purtroppo non può essere supportato.\n\nSi prega di considerare l'idea di utilizzare un account OneDrive normale.","Cannot access %s":"Non è possibile accedere a %s","Created local items: %d.":"Elementi locali creati: %d.","Updated local items: %d.":"Elementi locali aggiornati: %d.","Created remote items: %d.":"Elementi remoti creati: %d.","Updated remote items: %d.":"Elementi remoti aggiornati: %d.","Deleted local items: %d.":"Elementi locali eliminati: %d.","Deleted remote items: %d.":"Elementi remoti eliminati: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"Stato: \"%s\".","Cancelling...":"Cancellazione...","Completed: %s":"Completata: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"La sincronizzazione è già in corso. Stato: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Conflitti","A notebook with this title already exists: \"%s\"":"Esiste già un blocco note col titolo \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"I blocchi non possono essere chiamati \"%s\". È un titolo riservato.","Untitled":"Senza titolo","This note does not have geolocation information.":"Questa nota non ha informazione sulla geolocalizzazione.","Cannot copy note to \"%s\" notebook":"Non posso copiare la nota nel blocco note \"%s\"","Cannot move note to \"%s\" notebook":"Non posso spostare la nota nel blocco note \"%s\"","Text editor":"Editor di testo","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"L'editor che sarà usato per aprire la nota. Se nessun editor è specificato si cercherà di individuare automaticamente l'editor predefinito.","Language":"Linguaggio","Date format":"Formato della data","Time format":"Formato dell'orario","Theme":"Tema","Light":"Chiaro","Dark":"Scuro","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Salva geo-localizzazione con le note","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Aggiorna automaticamente l'applicazione","Synchronisation interval":"Intervallo di sincronizzazione","%d minutes":"%d minuti","%d hour":"%d ora","%d hours":"%d ore","Show advanced options":"Mostra opzioni avanzate","Synchronisation target":"Destinazione di sincronizzazione","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Il percorso di sincronizzazione quando la sincronizzazione è abilitata. Vedi `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Oprione non valida: \"%s\". I valori possibili sono: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Elementi che non possono essere sincronizzati","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Stato di sincronizzazione (Elementi sincronizzati / Elementi totali)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Totale: %d %d","Conflicted: %d":"In conflitto: %d","To delete: %d":"Da cancellare: %d","Folders":"Cartelle","%s: %d notes":"%s: %d note","Coming alarms":"Avviso imminente","On %s: %s":"Su %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Al momento non ci sono note. Creane una cliccando sul bottone (+).","Delete these notes?":"Cancellare queste note?","Log":"Log","Export Debug Report":"Esporta il Report di Debug","Encryption Config":"","Configuration":"Configurazione","Move to notebook...":"Sposta sul blocco note...","Move %d notes to notebook \"%s\"?":"Spostare le note %d sul blocco note \"%s\"?","Press to set the decryption password.":"","Select date":"Seleziona la data","Confirm":"Conferma","Cancel synchronisation":"Cancella la sincronizzazione","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"Il blocco note non può essere salvato: %s","Edit notebook":"Modifica blocco note","Show all":"","Errors only":"","This note has been modified:":"Questa note è stata modificata:","Save changes":"Salva i cambiamenti","Discard changes":"Ignora modifiche","Unsupported image type: %s":"Tipo di immagine non supportata: %s","Attach photo":"Allega foto","Attach any file":"Allega qualsiasi file","Convert to note":"Converti in nota","Convert to todo":"Converti in Todo","Hide metadata":"Nascondi i Metadati","Show metadata":"Mostra i metadati","View on map":"Guarda sulla mappa","Delete notebook":"Cancella blocco note","Login with OneDrive":"Accedi a OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Fare clic sul pulsante (+) per creare una nuova nota o un nuovo blocco note. Fare clic sul menu laterale per accedere ai tuoi blocchi note esistenti.","You currently have no notebook. Create one by clicking on (+) button.":"Attualmente non hai nessun blocco note. Crearne uno cliccando sul pulsante (+).","Welcome":"Benvenuto"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"Elimina un'etichetta, togli l'etichetta associata alle note.","Please select the note or notebook to be deleted first.":"Per favore seleziona la nota o il blocco note da eliminare.","Press Ctrl+D or type \"exit\" to exit the application":"Premi Ctrl+D o digita \"exit\" per uscire dall'applicazione","More than one item match \"%s\". Please narrow down your query.":"Più di un elemento corrisponde a \"%s\". Per favore restringi la ricerca.","No notebook selected.":"Nessun blocco note selezionato.","No notebook has been specified.":"Nessun blocco note è statoi specificato.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancellazione della sincronizzazione in background... Attendere prego.","No such command: %s":"Nessun comando: %s","The command \"%s\" is only available in GUI mode":"Il comando \"%s\" è disponibile solo nella modalità grafica","Cannot change encrypted item":"","Missing required argument: %s":"Argomento richiesto mancante: %s","%s: %s":"%s: %s","Your choice: ":"La tua scelta: ","Invalid answer: %s":"Risposta non valida: %s","Attaches the given file to the note.":"Allega il seguente file alla nota.","Cannot find \"%s\".":"Non posso trovare \"%s\".","Displays the given note.":"Mostra la seguente nota.","Displays the complete information about note.":"Mostra le informazioni complete sulla nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Ricevi o imposta un valore di configurazione. se [value] non è impostato, verrà mostrato il valore del [name]. Se sia [name] che [valore] sono impostati, verrà mostrata la configurazione corrente.","Also displays unset and hidden config variables.":"Mostra anche le variabili di configurazione non impostate o nascoste.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica le note che corrispondono a  nel [notebook]. Se nessun blocco note è specificato, la nota viene duplicata nel blocco note corrente.","Marks a to-do as done.":"Segna un'attività come completata.","Note is not a to-do: \"%s\"":"La nota non è un'attività: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"Disabilitato","Encryption is: %s":"","Edit note.":"Modifica nota.","No text editor is defined. Please set it using `config editor `":"Non è definito nessun editor di testo. Per favore impostalo usando `config editor `","No active notebook.":"Nessun blocco note attivo.","Note does not exist: \"%s\". Create it?":"Non esiste la nota: \"%s\". Desideri crearla?","Starting to edit note. Close the editor to get back to the prompt.":"Comincia a modificare la nota. Chiudi l'editor per tornare al prompt.","Error opening note in editor: %s":"","Note has been saved.":"La nota è stata salvata.","Exits the application.":"Esci dall'applicazione.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Esporta solo la seguente nota.","Exports only the given notebook.":"Esporta solo il seguente blocco note.","Displays a geolocation URL for the note.":"Mostra l'URL di geolocalizzazione per la nota.","Displays usage information.":"Mostra le informazioni di utilizzo.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Le scorciatoie non sono disponibili nella modalità CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"I possibili comandi sono:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In ciascun comando, si deve necessariamente definire una nota o un blocco note usando un titolo, un ID o usando le scorciatoie `$n` or `$b` per , rispettivamente, la nota o il blocco note selezionato `$c` può essere usato per fare riferimento all'elemento selezionato.","To move from one pane to another, press Tab or Shift+Tab.":"Per passare da un pannello all'altro, premi Tab o Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Usa le frecce e pagina su/giù per scorrere le liste e le aree di testo (compresa questa console).","To maximise/minimise the console, press \"TC\".":"Per massimizzare/minimizzare la console, premi \"TC\".","To enter command line mode, press \":\"":"Per entrare nella modalità command line, premi \":\"","To exit command line mode, press ESCAPE":"Per uscire dalla modalità command line, premi ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Non chiedere conferma.","Found: %d.":"Trovato: %d.","Created: %d.":"Creato: %d.","Updated: %d.":"Aggiornato: %d.","Skipped: %d.":"Saltato: %d.","Resources: %d.":"Risorse: %d.","Tagged: %d.":"Etichettato: %d.","Importing notes...":"Importazione delle note...","The notes have been imported: %s":"Le note sono state importate: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Mostra le note nel seguente blocco note. Usa `ls /` per mostrare la lista dei blocchi note.","Displays only the first top  notes.":"Mostra solo le prima  note.","Sorts the item by  (eg. title, updated_time, created_time).":"Ordina per  (es. titolo, ultimo aggiornamento, creazione).","Reverses the sorting order.":"Inverti l'ordine.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Mostra solo gli elementi del tipo specificato. Possono essere `n` per le note, `t` per le attività o `nt` per note e attività. (es. `-tt` mostrerà solo le attività, mentre `-ttd` mostrerà sia note che attività.","Either \"text\" or \"json\"":"Sia \"testo\" che \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Usa un formato lungo di lista. Il formato è ID, NOTE_COUNT (per i blocchi note), DATE, TODO_CHECKED (per le attività), TITLE","Please select a notebook first.":"Per favore prima seleziona un blocco note.","Creates a new notebook.":"Crea un nuovo blocco note.","Creates a new note.":"Crea una nuova nota.","Notes can only be created within a notebook.":"Le note possono essere create all'interno de blocco note.","Creates a new to-do.":"Crea una nuova attività.","Moves the notes matching  to [notebook].":"Sposta le note che corrispondono a  in [notebook].","Renames the given  (note or notebook) to .":"Rinomina  (nota o blocco note) in .","Deletes the given notebook.":"Elimina il seguente blocco note.","Deletes the notebook without asking for confirmation.":"Elimina il blocco note senza richiedere una conferma.","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"Elimina le note che corrispondono a .","Deletes the notes without asking for confirmation.":"Elimina le note senza chiedere conferma.","%d notes match this pattern. Delete them?":"%d note corrispondono. Eliminarle?","Delete note?":"Eliminare la nota?","Searches for the given  in all the notes.":"Cerca  in tutte le note.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"Mostra un sommario delle note e dei blocchi note.","Synchronises with remote storage.":"Sincronizza con l'archivio remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizza con l'obiettivo fornito (come predefinito il valore di configurazione sync.target)","Authentication was not completed (did not receive an authentication token).":"Autenticazione non completata (non è stato ricevuto alcun token di autenticazione).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"La sincronizzazione è in corso.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Trovato un file di blocco. Se si è certi che non è in corso alcuna sincronizzazione, è possibile eliminare il file di blocco in \"% s\" e riprendere l'operazione.","Synchronisation target: %s (%s)":"Posizione di sincronizzazione: %s (%s)","Cannot initialize synchroniser.":"Non è possibile inizializzare il sincronizzatore.","Starting synchronisation...":"Inizio sincronizzazione...","Cancelling... Please wait.":"Cancellazione... Attendere per favore."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" può essere \"add\", \"remove\" or \"list\" per assegnare o rimuovere [tag] da [note], o per mostrare le note associate a [tag]. Il comando `tag list` può essere usato per mostrare tutte le etichette.","Invalid command: \"%s\"":"Comando non valido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" può essere \"toggle\" or \"clear\". Usa \"toggle\" per cambiare lo stato dell'attività tra completata/non completata (se l'oggetto è una normale nota, questa verrà convertita in un'attività). Usa \"clear\" convertire le attività in normali note.","Marks a to-do as non-completed.":"Marca un'attività come non completata.","Switches to [notebook] - all further operations will happen within this notebook.":"Passa tra [notebook] - tutte le ulteriori operazioni interesseranno il seguente blocco note.","Displays version information":"Mostra le informazioni sulla versione","%s %s (%s)":"%s %s (%s)","Enum":"Enumerare","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valori possibili: %s.","Default: %s":"Predefinito: %s","Possible keys/values:":"Chiave/valore possibili:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Errore fatale:","The application has been authorised - you may now close this browser tab.":"L'applicazione è stata autorizzata - puoi chiudere questo tab del tuo browser.","The application has been successfully authorised.":"L'applicazione è stata autorizzata con successo.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Per favore apri il seguente URL nel tuo browser per autenticare l'applicazione. L'applicazione creerà una directory in \"Apps/Joplin\" e leggerà/scriverà file solo in questa directory. Non avrà accesso a nessun file all'esterno di questa directory o ad alcun dato personale. Nessun dato verrà condiviso con terze parti.","Search:":"Cerca:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"File","New note":"Nuova nota","New to-do":"Nuova attività","New notebook":"Nuovo blocco note","Import":"Importa","Export":"Export","Print":"","Hide %s":"","Quit":"Esci","Edit":"Modifica","Copy":"Copia","Cut":"Taglia","Paste":"Incolla","Search in all the notes":"Cerca in tutte le note","View":"","Toggle editor layout":"","Tools":"Strumenti","Synchronisation status":"Stato di sincronizzazione","Encryption options":"","General Options":"General Options","Help":"Aiuto","Website and documentation":"Sito web e documentazione","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Informazione si Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Cancella","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Stato","Encryption is:":"","Back":"Indietro","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Il nuovo blocco note \"%s\" verrà creato e \"%s\" vi verrà importato","Please create a notebook first.":"Per favore prima crea un blocco note.","Please create a notebook first":"Per favore prima crea un blocco note","Notebook title:":"Titolo del blocco note:","Add or remove tags:":"Aggiungi or rimuovi etichetta:","Separate each tag by a comma.":"Separa ogni etichetta da una virgola.","Rename notebook:":"Rinomina il blocco note:","Set alarm:":"Imposta allarme:","Search":"Cerca","Layout":"Disposizione","Some items cannot be synchronised.":"Alcuni elementi non possono essere sincronizzati.","View them now":"Mostrali ora","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"Aggiungi o rimuovi etichetta","Switch between note and to-do type":"Passa da un tipo di nota a un elenco di attività","Delete":"Elimina","Delete notes?":"Eliminare le note?","No notes in here. Create one by clicking on \"New note\".":"Non è presente nessuna nota. Creane una cliccando \"Nuova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Collegamento o messaggio non supportato: %s","Attach file":"Allega file","Tags":"Etichette","Set alarm":"Imposta allarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Aggiorna","Clear":"Pulisci","OneDrive Login":"Login OneDrive","Options":"Opzioni","Synchronisation Status":"Stato della Sincronizzazione","Encryption Options":"","Remove this tag from all the notes?":"Rimuovere questa etichetta da tutte le note?","Remove this search from the sidebar?":"Rimuovere questa ricerca dalla barra laterale?","Rename":"Rinomina","Synchronise":"Sincronizza","Notebooks":"Blocchi note","Searches":"Ricerche","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"Uso: %s","Unknown flag: %s":"Etichetta sconosciuta: %s","File system":"File system","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (solo per test)","WebDAV":"","Unknown log level: %s":"Livello di log sconosciuto: %s","Unknown level ID: %s":"Livello ID sconosciuto: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Non è possibile aggiornare il token. mancano i dati di autenticazione. Ricominciare la sincronizzazione da capo potrebbe risolvere il problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Impossibile sincronizzare con OneDrive.\n\nQuesto errore spesso accade quando si utilizza OneDrive for Business, che purtroppo non può essere supportato.\n\nSi prega di considerare l'idea di utilizzare un account OneDrive normale.","Cannot access %s":"Non è possibile accedere a %s","Created local items: %d.":"Elementi locali creati: %d.","Updated local items: %d.":"Elementi locali aggiornati: %d.","Created remote items: %d.":"Elementi remoti creati: %d.","Updated remote items: %d.":"Elementi remoti aggiornati: %d.","Deleted local items: %d.":"Elementi locali eliminati: %d.","Deleted remote items: %d.":"Elementi remoti eliminati: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: %s.":"State: %s.","Cancelling...":"Cancellazione...","Completed: %s":"Completata: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"La sincronizzazione è già in corso. Stato: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"Conflitti","A notebook with this title already exists: \"%s\"":"Esiste già un blocco note col titolo \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"I blocchi non possono essere chiamati \"%s\". È un titolo riservato.","Untitled":"Senza titolo","This note does not have geolocation information.":"Questa nota non ha informazione sulla geolocalizzazione.","Cannot copy note to \"%s\" notebook":"Non posso copiare la nota nel blocco note \"%s\"","Cannot move note to \"%s\" notebook":"Non posso spostare la nota nel blocco note \"%s\"","Text editor":"Editor di testo","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"L'editor che sarà usato per aprire la nota. Se nessun editor è specificato si cercherà di individuare automaticamente l'editor predefinito.","Language":"Linguaggio","Date format":"Formato della data","Time format":"Formato dell'orario","Theme":"Tema","Light":"Chiaro","Dark":"Scuro","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Salva geo-localizzazione con le note","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Aggiorna automaticamente l'applicazione","Synchronisation interval":"Intervallo di sincronizzazione","%d minutes":"%d minuti","%d hour":"%d ora","%d hours":"%d ore","Show advanced options":"Mostra opzioni avanzate","Synchronisation target":"Destinazione di sincronizzazione","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Il percorso di sincronizzazione quando la sincronizzazione è abilitata. Vedi `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"Oprione non valida: \"%s\". I valori possibili sono: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Elementi che non possono essere sincronizzati","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"Stato di sincronizzazione (Elementi sincronizzati / Elementi totali)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Totale: %d %d","Conflicted: %d":"In conflitto: %d","To delete: %d":"Da cancellare: %d","Folders":"Cartelle","%s: %d notes":"%s: %d note","Coming alarms":"Avviso imminente","On %s: %s":"Su %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Al momento non ci sono note. Creane una cliccando sul bottone (+).","Delete these notes?":"Cancellare queste note?","Log":"Log","Export Debug Report":"Esporta il Report di Debug","Encryption Config":"","Configuration":"Configurazione","Move to notebook...":"Sposta sul blocco note...","Move %d notes to notebook \"%s\"?":"Spostare le note %d sul blocco note \"%s\"?","Press to set the decryption password.":"","Select date":"Seleziona la data","Confirm":"Conferma","Cancel synchronisation":"Cancella la sincronizzazione","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"Il blocco note non può essere salvato: %s","Edit notebook":"Modifica blocco note","Show all":"","Errors only":"","This note has been modified:":"Questa note è stata modificata:","Save changes":"Salva i cambiamenti","Discard changes":"Ignora modifiche","Unsupported image type: %s":"Tipo di immagine non supportata: %s","Attach photo":"Allega foto","Attach any file":"Allega qualsiasi file","Convert to note":"Converti in nota","Convert to todo":"Converti in Todo","Hide metadata":"Nascondi i Metadati","Show metadata":"Mostra i metadati","View on map":"Guarda sulla mappa","Delete notebook":"Cancella blocco note","Login with OneDrive":"Accedi a OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Fare clic sul pulsante (+) per creare una nuova nota o un nuovo blocco note. Fare clic sul menu laterale per accedere ai tuoi blocchi note esistenti.","You currently have no notebook. Create one by clicking on (+) button.":"Attualmente non hai nessun blocco note. Crearne uno cliccando sul pulsante (+).","Welcome":"Benvenuto"}
        \ No newline at end of file
        diff --git a/ReactNativeClient/locales/ja_JP.json b/ReactNativeClient/locales/ja_JP.json
        index 04822614e4..412bc0ae17 100644
        --- a/ReactNativeClient/locales/ja_JP.json
        +++ b/ReactNativeClient/locales/ja_JP.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"タグを削除するには、関連するノートからタグを外してください。","Please select the note or notebook to be deleted first.":"ます削除するノートかノートブックを選択してください。","Press Ctrl+D or type \"exit\" to exit the application":"アプリケーションを終了するには、Ctrl+Dまたは\"exit\"と入力してください","More than one item match \"%s\". Please narrow down your query.":"一つ以上のアイテムが\"%s\"に一致しました。クエリを絞るようにしてください。","No notebook selected.":"ノートブックが選択されていません。","No notebook has been specified.":"ノートブックが選択されていません。","Y":"","n":"","N":"","y":"","Cancelling background synchronisation... Please wait.":"バックグラウンド同期を中止中… しばらくお待ちください。","No such command: %s":"コマンドが違います:%s","The command \"%s\" is only available in GUI mode":"コマンド \"%s\"は、GUIのみで有効です。","Cannot change encrypted item":"","Missing required argument: %s":"引数が足りません:%s","%s: %s":"","Your choice: ":"選択:","Invalid answer: %s":"無効な入力:%s","Attaches the given file to the note.":"選択されたファイルをノートに添付","Cannot find \"%s\".":"\"%s\"は見つかりませんでした。","Displays the given note.":"選択されたノートを表示","Displays the complete information about note.":"ノートに関するすべての情報を表示","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"設定を行います。[value]がない場合は、[name]で示された設定項目の値を表示します。両方とも指定されていない場合は、現在の設定のリストを表示します。","Also displays unset and hidden config variables.":"未設定または非表示の設定項目も表示します。","%s = %s (%s)":"","%s = %s":"","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"に一致するノートを[notebook]に複製します。[notebook]が指定されていない場合は、現在のノートブックに複製を行います。","Marks a to-do as done.":"ToDoを完了として","Note is not a to-do: \"%s\"":"ノートはToDoリストではありません:\"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"無効","Encryption is: %s":"","Edit note.":"ノートを編集する。","No text editor is defined. Please set it using `config editor `":"テキストエディタが設定されていません。`config editor `で設定を行ってください。","No active notebook.":"有効なbノートブックがありません。","Note does not exist: \"%s\". Create it?":"\"%s\"というノートはありません。お作りいたしますか?","Starting to edit note. Close the editor to get back to the prompt.":"ノートの編集の開始。エディタを閉じると元の画面に戻ることが出来ます。","Error opening note in editor: %s":"","Note has been saved.":"ノートは保存されました。","Exits the application.":"アプリケーションの終了。","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"選択されたノートのみを出力する。","Exports only the given notebook.":"選択されたノートブックのみを出力する。","Displays a geolocation URL for the note.":"ノートの位置情報URLを表示する。","Displays usage information.":"使い方を表示する。","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"CLIモードではショートカットは使用できません。","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"コマンドのさらなる情報は、`help [command]`で見ることが出来ます;または、`help all`ですべての使用方法の情報を表示できます。","The possible commands are:":"有効なコマンドは:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"すべてのコマンドで、ノートまたはノートブックは、題名またはID、または選択中の物はそれぞれショートカット`$n`または`$b`で指定できます。`$c`で選択中のアイテムを参照できます。","To move from one pane to another, press Tab or Shift+Tab.":"ペイン間を移動するには、TabかShift+Tabをおしてください。","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"リストや入力エリアの移動には矢印キーまたはPage Up/Downを使用します。","To maximise/minimise the console, press \"TC\".":"コンソールの最大化・最小化には\"TC\"と入力してください。","To enter command line mode, press \":\"":"コマンドラインモードに入るには、\":\"を入力してください。","To exit command line mode, press ESCAPE":"コマンドラインモードを終了するには、ESCキーを押してください。","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"確認を行わない。","Found: %d.":"見つかりました:%d","Created: %d.":"作成しました:%d","Updated: %d.":"アップデートしました:%d","Skipped: %d.":"スキップしました:%d","Resources: %d.":"リソース:%d","Tagged: %d.":"タグ付き:%d","Importing notes...":"ノートのインポート…","The notes have been imported: %s":"ノートはインポートされました:%s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"現在のノートブック中のノートを表示します。ノートブックのリストを表示するには、`ls /`と入力してください。","Displays only the first top  notes.":"上位 件のノートを表示する。","Sorts the item by  (eg. title, updated_time, created_time).":"アイテムをで並び替え (例: title, updated_time, created_time).","Reverses the sorting order.":"逆順に並び替える。","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.","Either \"text\" or \"json\"":"\"text\"または\"json\"のどちらか","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"長い形式のリストフォーマットを使用します。フォーマットは:ID, NOTE_COUNT (ノートブックのみ), DATE, TODO_CHECKED (ToDoのみ), TITLE","Please select a notebook first.":"ますはノートブックを選択して下さい。","Creates a new notebook.":"あたらしいノートブックを作成します。","Creates a new note.":"あたらしいノートを作成します。","Notes can only be created within a notebook.":"ノートは、ノートブック内のみで作ることが出来ます。","Creates a new to-do.":"新しいToDoを作成します。","Moves the notes matching  to [notebook].":"に一致するアイテムを、[notebook]に移動します。","Renames the given  (note or notebook) to .":" (ノートまたはノートブック)の名前を、に変更します。","Deletes the given notebook.":"指定されたノートブックを削除します。","Deletes the notebook without asking for confirmation.":"ノートブックを確認なしで削除します。","Delete notebook? All notes within this notebook will also be deleted.":"ノートブックを削除しますか?中にあるノートはすべて消えてしまいます。","Deletes the notes matching .":"に一致するノートを削除する。","Deletes the notes without asking for confirmation.":"ノートを確認なしで削除します。","%d notes match this pattern. Delete them?":"%d個のノートが一致しました。削除しますか?","Delete note?":"ノートを削除しますか?","Searches for the given  in all the notes.":"指定されたをすべてのノートから検索する。","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"のプロパティ を、指示された[value]に設定します。有効なプロパティは:\n\n%s","Displays summary about the notes and notebooks.":"ノートとノートブックのサマリを表示します。","Synchronises with remote storage.":"リモート保存領域と同期します。","Sync to provided target (defaults to sync.target config value)":"指定のターゲットと同期します。(標準: sync.targetの設定値)","Authentication was not completed (did not receive an authentication token).":"認証は完了していません(認証トークンが得られませんでした)","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"同期はすでに実行中です。","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"ロックファイルがすでに保持されています。同期作業が行われていない場合は、\"%s\"にあるロックファイルを削除して、作業を再度行ってください。","Synchronisation target: %s (%s)":"同期先: %s (%s)","Cannot initialize synchroniser.":"同期プロセスを初期化できませんでした。","Starting synchronisation...":"同期を開始中...","Cancelling... Please wait.":"中止中...お待ちください。"," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" は\"add\", \"remove\", \"list\"のいずれかで、指定したノートからタグをつけたり外したり出来ます。`tag list`で、すべてのタグを見ることが出来ます。","Invalid command: \"%s\"":"無効な命令: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"は、\"toggle\"または\"clear\"を指定できます。\"toggle\"を指定すると、指定したToDoの完了済み/未完を反転できます。指定したノートが通常のノートであれば、ToDoに変換されます。\"clear\"を指定すると、ToDoを通常のノートに変換できます。","Marks a to-do as non-completed.":"ToDoを未完としてマーク","Switches to [notebook] - all further operations will happen within this notebook.":"ノートブック [notebook]に切り替え - これ以降の作業は、指定のノートブック内で行われます。","Displays version information":"バージョン情報の表示","%s %s (%s)":"","Enum":"列挙","Type: %s.":"種類: %s.","Possible values: %s.":"取り得る値: %s.","Default: %s":"規定値: %s","Possible keys/values:":"取り得るキーバリュー: ","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"致命的なエラー: ","The application has been authorised - you may now close this browser tab.":"アプリケーションは認証されました - ブラウザを閉じて頂いてかまいません。","The application has been successfully authorised.":"アプリケーションは問題なく認証されました。","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"このアプリケーションを認証するためには下記のURLをブラウザで開いてください。アプリケーションは\"Apps/Joplin\"フォルダを作成し、その中のファイルのみを読み書きします。あなたの個人的なファイルや、ディレクトリ外のファイルにはアクセスしません。第三者にデータが共有されることもありません。","Search:":"検索: ","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Joplinへようこそ!\n\n`:help shortcuts`と入力することで、キーボードショートカットのリストを見ることが出来ます。また、`:help`で使い方を確認できます。\n\n例えば、ノートブックの作成には`mb`で出来、ノートの作成は`mn`で行うことが出来ます。","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"ファイル","New note":"新しいノート","New to-do":"新しいToDo","New notebook":"新しいノートブック","Import":"インポート","Export":"Export","Print":"","Hide %s":"","Quit":"終了","Edit":"編集","Copy":"コピー","Cut":"切り取り","Paste":"貼り付け","Search in all the notes":"すべてのノートを検索","View":"","Toggle editor layout":"","Tools":"ツール","Synchronisation status":"同期状況","Encryption options":"","General Options":"General Options","Help":"ヘルプ","Website and documentation":"Webサイトとドキュメント","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Joplinについて","%s %s (%s, %s)":"","Open %s":"","Exit":"","OK":"","Cancel":"キャンセル","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"ノートと設定は、%sに保存されます。","Save":"保存","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"アクティブ","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"注意:\"active\"に指定されたマスターキーのみが暗号化に使用されます。暗号化に使用されたキーの応じて、すべてのキーが暗号解除のために使用されます。","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"状態","Encryption is:":"","Back":"戻る","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"\"%s\"という名前の新しいノートブックが作成され、ファイル\"%s\"がインポートされます。","Please create a notebook first.":"ますはノートブックを作成して下さい。","Please create a notebook first":"ますはノートブックを作成して下さい。","Notebook title:":"ノートブックの題名:","Add or remove tags:":"タグの追加・削除:","Separate each tag by a comma.":"それぞれのタグをカンマ(,)で区切ってください。","Rename notebook:":"ノートブックの名前を変更:","Set alarm:":"アラームをセット:","Search":"検索","Layout":"レイアウト","Some items cannot be synchronised.":"いくつかの項目は同期されませんでした。","View them now":"今すぐ表示","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"タグの追加・削除","Switch between note and to-do type":"ノートとToDoを切り替え","Delete":"削除","Delete notes?":"ノートを削除しますか?","No notes in here. Create one by clicking on \"New note\".":"ノートがありません。新しいノートを作成して下さい。","There is currently no notebook. Create one by clicking on \"New notebook\".":"ノートブックがありません。新しいノートブックを作成してください。","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"","Attach file":"ファイルを添付","Tags":"タグ","Set alarm":"アラームをセット","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"更新","Clear":"クリア","OneDrive Login":"OneDriveログイン","Options":"オプション","Synchronisation Status":"同期状況","Encryption Options":"","Remove this tag from all the notes?":"すべてのノートからこのタグを削除しますか?","Remove this search from the sidebar?":"サイドバーからこの検索を削除しますか?","Rename":"名前の変更","Synchronise":"同期","Notebooks":"ノートブック","Searches":"検索","Please select where the sync status should be exported to":"同期状況の出力先を選択してください","Usage: %s":"使用方法: %s","Unknown flag: %s":"不明なフラグ: %s","File system":"ファイルシステム","Nextcloud":"","OneDrive":"","OneDrive Dev (For testing only)":"","WebDAV":"","Unknown log level: %s":"","Unknown level ID: %s":"","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"トークンの更新が出来ませんでした。認証データがありません。同期を再度行うことで解決することがあります。","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"OneDriveと同期できませんでした。\n\nOneDrive for Business(未サポート)を使用中はこのエラーが起こることがあります。\n\n通常のOneDriveアカウントの使用をご検討ください。","Cannot access %s":"%sにアクセスできません","Created local items: %d.":"ローカルアイテムの作成: %d.","Updated local items: %d.":"ローカルアイテムの更新: %d.","Created remote items: %d.":"リモートアイテムの作成: %d.","Updated remote items: %d.":"リモートアイテムの更新: %d.","Deleted local items: %d.":"ローカルアイテムの削除: %d.","Deleted remote items: %d.":"リモートアイテムの削除: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"状態: \"%s\"。","Cancelling...":"中止中...","Completed: %s":"完了: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"同期作業はすでに実行中です。状態: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"衝突","A notebook with this title already exists: \"%s\"":"\"%s\"という名前のノートブックはすでに存在しています。","Notebooks cannot be named \"%s\", which is a reserved title.":"\"%s\"と言う名前はシステムで使用するために予約済みです。名前の変更が出来ません。","Untitled":"名称未設定","This note does not have geolocation information.":"このノートには位置情報がありません。","Cannot copy note to \"%s\" notebook":"ノートをノートブック \"%s\"にコピーできませんでした。","Cannot move note to \"%s\" notebook":"ノートをノートブック \"%s\"に移動できませんでした。","Text editor":"テキストエディタ","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"ノートを開くために使用されるエディタです。特に指定がなければ、デフォルトのエディタの検出を試みます。","Language":"言語","Date format":"日付の形式","Time format":"時刻の形式","Theme":"テーマ","Light":"明るい","Dark":"暗い","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"ノートに位置情報を保存","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"アプリケーションの自動更新","Synchronisation interval":"同期間隔","%d minutes":"%d 分","%d hour":"%d 時間","%d hours":"%d 時間","Show advanced options":"詳細な設定の表示","Synchronisation target":"同期先","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"同期先のディレクトリ(絶対パス)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"ファイルシステム同期の有効時に同期を行うパスです。`sync.target`も参考にしてください。","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"無効な設定値: \"%s\"。有効な値は: %sです。","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"同期が出来なかったアイテム","%s (%s): %s":"","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"同期状況 (同期済/総数)","%s: %d/%d":"","Total: %d/%d":"総数: %d/%d","Conflicted: %d":"衝突: %d","To delete: %d":"削除予定: %d","Folders":"フォルダ","%s: %d notes":"%s: %d ノート","Coming alarms":"時間のきたアラーム","On %s: %s":"","There are currently no notes. Create one by clicking on the (+) button.":"ノートがありません。(+)ボタンを押して新しいノートを作成してください。","Delete these notes?":"ノートを削除しますか?","Log":"ログ","Export Debug Report":"デバッグレポートの出力","Encryption Config":"","Configuration":"設定","Move to notebook...":"ノートブックへ移動...","Move %d notes to notebook \"%s\"?":"%d個のノートを\"%s\"に移動しますか?","Press to set the decryption password.":"","Select date":"日付の選択","Confirm":"確認","Cancel synchronisation":"同期の中止","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"ノートブックは保存できませんでした:%s","Edit notebook":"ノートブックの編集","Show all":"","Errors only":"","This note has been modified:":"ノートは変更されています:","Save changes":"変更を保存","Discard changes":"変更を破棄","Unsupported image type: %s":"サポートされていないイメージ形式: %s.","Attach photo":"写真を添付","Attach any file":"ファイルを添付","Convert to note":"ノートに変換","Convert to todo":"ToDoに変換","Hide metadata":"メタデータを隠す","Show metadata":"メタデータを表示","View on map":"地図上に表示","Delete notebook":"ノートブックを削除","Login with OneDrive":"OneDriveログイン","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"(+)ボタンを押してノートやノートブックを作成してください。サイドメニューからあなたのノートブックにアクセスが出来ます。","You currently have no notebook. Create one by clicking on (+) button.":"ノートブックがありません。(+)をクリックして新しいノートブックを作成してください。","Welcome":"ようこそ"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"タグを削除するには、関連するノートからタグを外してください。","Please select the note or notebook to be deleted first.":"ます削除するノートかノートブックを選択してください。","Press Ctrl+D or type \"exit\" to exit the application":"アプリケーションを終了するには、Ctrl+Dまたは\"exit\"と入力してください","More than one item match \"%s\". Please narrow down your query.":"一つ以上のアイテムが\"%s\"に一致しました。クエリを絞るようにしてください。","No notebook selected.":"ノートブックが選択されていません。","No notebook has been specified.":"ノートブックが選択されていません。","Y":"","n":"","N":"","y":"","Cancelling background synchronisation... Please wait.":"バックグラウンド同期を中止中… しばらくお待ちください。","No such command: %s":"コマンドが違います:%s","The command \"%s\" is only available in GUI mode":"コマンド \"%s\"は、GUIのみで有効です。","Cannot change encrypted item":"","Missing required argument: %s":"引数が足りません:%s","%s: %s":"","Your choice: ":"選択:","Invalid answer: %s":"無効な入力:%s","Attaches the given file to the note.":"選択されたファイルをノートに添付","Cannot find \"%s\".":"\"%s\"は見つかりませんでした。","Displays the given note.":"選択されたノートを表示","Displays the complete information about note.":"ノートに関するすべての情報を表示","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"設定を行います。[value]がない場合は、[name]で示された設定項目の値を表示します。両方とも指定されていない場合は、現在の設定のリストを表示します。","Also displays unset and hidden config variables.":"未設定または非表示の設定項目も表示します。","%s = %s (%s)":"","%s = %s":"","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"に一致するノートを[notebook]に複製します。[notebook]が指定されていない場合は、現在のノートブックに複製を行います。","Marks a to-do as done.":"ToDoを完了として","Note is not a to-do: \"%s\"":"ノートはToDoリストではありません:\"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"無効","Encryption is: %s":"","Edit note.":"ノートを編集する。","No text editor is defined. Please set it using `config editor `":"テキストエディタが設定されていません。`config editor `で設定を行ってください。","No active notebook.":"有効なbノートブックがありません。","Note does not exist: \"%s\". Create it?":"\"%s\"というノートはありません。お作りいたしますか?","Starting to edit note. Close the editor to get back to the prompt.":"ノートの編集の開始。エディタを閉じると元の画面に戻ることが出来ます。","Error opening note in editor: %s":"","Note has been saved.":"ノートは保存されました。","Exits the application.":"アプリケーションの終了。","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"選択されたノートのみを出力する。","Exports only the given notebook.":"選択されたノートブックのみを出力する。","Displays a geolocation URL for the note.":"ノートの位置情報URLを表示する。","Displays usage information.":"使い方を表示する。","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"CLIモードではショートカットは使用できません。","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"コマンドのさらなる情報は、`help [command]`で見ることが出来ます;または、`help all`ですべての使用方法の情報を表示できます。","The possible commands are:":"有効なコマンドは:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"すべてのコマンドで、ノートまたはノートブックは、題名またはID、または選択中の物はそれぞれショートカット`$n`または`$b`で指定できます。`$c`で選択中のアイテムを参照できます。","To move from one pane to another, press Tab or Shift+Tab.":"ペイン間を移動するには、TabかShift+Tabをおしてください。","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"リストや入力エリアの移動には矢印キーまたはPage Up/Downを使用します。","To maximise/minimise the console, press \"TC\".":"コンソールの最大化・最小化には\"TC\"と入力してください。","To enter command line mode, press \":\"":"コマンドラインモードに入るには、\":\"を入力してください。","To exit command line mode, press ESCAPE":"コマンドラインモードを終了するには、ESCキーを押してください。","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"確認を行わない。","Found: %d.":"見つかりました:%d","Created: %d.":"作成しました:%d","Updated: %d.":"アップデートしました:%d","Skipped: %d.":"スキップしました:%d","Resources: %d.":"リソース:%d","Tagged: %d.":"タグ付き:%d","Importing notes...":"ノートのインポート…","The notes have been imported: %s":"ノートはインポートされました:%s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"現在のノートブック中のノートを表示します。ノートブックのリストを表示するには、`ls /`と入力してください。","Displays only the first top  notes.":"上位 件のノートを表示する。","Sorts the item by  (eg. title, updated_time, created_time).":"アイテムをで並び替え (例: title, updated_time, created_time).","Reverses the sorting order.":"逆順に並び替える。","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.","Either \"text\" or \"json\"":"\"text\"または\"json\"のどちらか","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"長い形式のリストフォーマットを使用します。フォーマットは:ID, NOTE_COUNT (ノートブックのみ), DATE, TODO_CHECKED (ToDoのみ), TITLE","Please select a notebook first.":"ますはノートブックを選択して下さい。","Creates a new notebook.":"あたらしいノートブックを作成します。","Creates a new note.":"あたらしいノートを作成します。","Notes can only be created within a notebook.":"ノートは、ノートブック内のみで作ることが出来ます。","Creates a new to-do.":"新しいToDoを作成します。","Moves the notes matching  to [notebook].":"に一致するアイテムを、[notebook]に移動します。","Renames the given  (note or notebook) to .":" (ノートまたはノートブック)の名前を、に変更します。","Deletes the given notebook.":"指定されたノートブックを削除します。","Deletes the notebook without asking for confirmation.":"ノートブックを確認なしで削除します。","Delete notebook? All notes within this notebook will also be deleted.":"ノートブックを削除しますか?中にあるノートはすべて消えてしまいます。","Deletes the notes matching .":"に一致するノートを削除する。","Deletes the notes without asking for confirmation.":"ノートを確認なしで削除します。","%d notes match this pattern. Delete them?":"%d個のノートが一致しました。削除しますか?","Delete note?":"ノートを削除しますか?","Searches for the given  in all the notes.":"指定されたをすべてのノートから検索する。","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"のプロパティ を、指示された[value]に設定します。有効なプロパティは:\n\n%s","Displays summary about the notes and notebooks.":"ノートとノートブックのサマリを表示します。","Synchronises with remote storage.":"リモート保存領域と同期します。","Sync to provided target (defaults to sync.target config value)":"指定のターゲットと同期します。(標準: sync.targetの設定値)","Authentication was not completed (did not receive an authentication token).":"認証は完了していません(認証トークンが得られませんでした)","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"同期はすでに実行中です。","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"ロックファイルがすでに保持されています。同期作業が行われていない場合は、\"%s\"にあるロックファイルを削除して、作業を再度行ってください。","Synchronisation target: %s (%s)":"同期先: %s (%s)","Cannot initialize synchroniser.":"同期プロセスを初期化できませんでした。","Starting synchronisation...":"同期を開始中...","Cancelling... Please wait.":"中止中...お待ちください。"," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" は\"add\", \"remove\", \"list\"のいずれかで、指定したノートからタグをつけたり外したり出来ます。`tag list`で、すべてのタグを見ることが出来ます。","Invalid command: \"%s\"":"無効な命令: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"は、\"toggle\"または\"clear\"を指定できます。\"toggle\"を指定すると、指定したToDoの完了済み/未完を反転できます。指定したノートが通常のノートであれば、ToDoに変換されます。\"clear\"を指定すると、ToDoを通常のノートに変換できます。","Marks a to-do as non-completed.":"ToDoを未完としてマーク","Switches to [notebook] - all further operations will happen within this notebook.":"ノートブック [notebook]に切り替え - これ以降の作業は、指定のノートブック内で行われます。","Displays version information":"バージョン情報の表示","%s %s (%s)":"","Enum":"列挙","Type: %s.":"種類: %s.","Possible values: %s.":"取り得る値: %s.","Default: %s":"規定値: %s","Possible keys/values:":"取り得るキーバリュー: ","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"致命的なエラー: ","The application has been authorised - you may now close this browser tab.":"アプリケーションは認証されました - ブラウザを閉じて頂いてかまいません。","The application has been successfully authorised.":"アプリケーションは問題なく認証されました。","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"このアプリケーションを認証するためには下記のURLをブラウザで開いてください。アプリケーションは\"Apps/Joplin\"フォルダを作成し、その中のファイルのみを読み書きします。あなたの個人的なファイルや、ディレクトリ外のファイルにはアクセスしません。第三者にデータが共有されることもありません。","Search:":"検索: ","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Joplinへようこそ!\n\n`:help shortcuts`と入力することで、キーボードショートカットのリストを見ることが出来ます。また、`:help`で使い方を確認できます。\n\n例えば、ノートブックの作成には`mb`で出来、ノートの作成は`mn`で行うことが出来ます。","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"ファイル","New note":"新しいノート","New to-do":"新しいToDo","New notebook":"新しいノートブック","Import":"インポート","Export":"Export","Print":"","Hide %s":"","Quit":"終了","Edit":"編集","Copy":"コピー","Cut":"切り取り","Paste":"貼り付け","Search in all the notes":"すべてのノートを検索","View":"","Toggle editor layout":"","Tools":"ツール","Synchronisation status":"同期状況","Encryption options":"","General Options":"General Options","Help":"ヘルプ","Website and documentation":"Webサイトとドキュメント","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Joplinについて","%s %s (%s, %s)":"","Open %s":"","Exit":"","OK":"","Cancel":"キャンセル","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"ノートと設定は、%sに保存されます。","Save":"保存","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"アクティブ","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"注意:\"active\"に指定されたマスターキーのみが暗号化に使用されます。暗号化に使用されたキーの応じて、すべてのキーが暗号解除のために使用されます。","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"状態","Encryption is:":"","Back":"戻る","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"\"%s\"という名前の新しいノートブックが作成され、ファイル\"%s\"がインポートされます。","Please create a notebook first.":"ますはノートブックを作成して下さい。","Please create a notebook first":"ますはノートブックを作成して下さい。","Notebook title:":"ノートブックの題名:","Add or remove tags:":"タグの追加・削除:","Separate each tag by a comma.":"それぞれのタグをカンマ(,)で区切ってください。","Rename notebook:":"ノートブックの名前を変更:","Set alarm:":"アラームをセット:","Search":"検索","Layout":"レイアウト","Some items cannot be synchronised.":"いくつかの項目は同期されませんでした。","View them now":"今すぐ表示","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"タグの追加・削除","Switch between note and to-do type":"ノートとToDoを切り替え","Delete":"削除","Delete notes?":"ノートを削除しますか?","No notes in here. Create one by clicking on \"New note\".":"ノートがありません。新しいノートを作成して下さい。","There is currently no notebook. Create one by clicking on \"New notebook\".":"ノートブックがありません。新しいノートブックを作成してください。","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"","Attach file":"ファイルを添付","Tags":"タグ","Set alarm":"アラームをセット","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"更新","Clear":"クリア","OneDrive Login":"OneDriveログイン","Options":"オプション","Synchronisation Status":"同期状況","Encryption Options":"","Remove this tag from all the notes?":"すべてのノートからこのタグを削除しますか?","Remove this search from the sidebar?":"サイドバーからこの検索を削除しますか?","Rename":"名前の変更","Synchronise":"同期","Notebooks":"ノートブック","Searches":"検索","Please select where the sync status should be exported to":"同期状況の出力先を選択してください","Usage: %s":"使用方法: %s","Unknown flag: %s":"不明なフラグ: %s","File system":"ファイルシステム","Nextcloud":"","OneDrive":"","OneDrive Dev (For testing only)":"","WebDAV":"","Unknown log level: %s":"","Unknown level ID: %s":"","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"トークンの更新が出来ませんでした。認証データがありません。同期を再度行うことで解決することがあります。","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"OneDriveと同期できませんでした。\n\nOneDrive for Business(未サポート)を使用中はこのエラーが起こることがあります。\n\n通常のOneDriveアカウントの使用をご検討ください。","Cannot access %s":"%sにアクセスできません","Created local items: %d.":"ローカルアイテムの作成: %d.","Updated local items: %d.":"ローカルアイテムの更新: %d.","Created remote items: %d.":"リモートアイテムの作成: %d.","Updated remote items: %d.":"リモートアイテムの更新: %d.","Deleted local items: %d.":"ローカルアイテムの削除: %d.","Deleted remote items: %d.":"リモートアイテムの削除: %d.","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: %s.":"State: %s.","Cancelling...":"中止中...","Completed: %s":"完了: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"同期作業はすでに実行中です。状態: %s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"衝突","A notebook with this title already exists: \"%s\"":"\"%s\"という名前のノートブックはすでに存在しています。","Notebooks cannot be named \"%s\", which is a reserved title.":"\"%s\"と言う名前はシステムで使用するために予約済みです。名前の変更が出来ません。","Untitled":"名称未設定","This note does not have geolocation information.":"このノートには位置情報がありません。","Cannot copy note to \"%s\" notebook":"ノートをノートブック \"%s\"にコピーできませんでした。","Cannot move note to \"%s\" notebook":"ノートをノートブック \"%s\"に移動できませんでした。","Text editor":"テキストエディタ","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"ノートを開くために使用されるエディタです。特に指定がなければ、デフォルトのエディタの検出を試みます。","Language":"言語","Date format":"日付の形式","Time format":"時刻の形式","Theme":"テーマ","Light":"明るい","Dark":"暗い","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"ノートに位置情報を保存","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"アプリケーションの自動更新","Synchronisation interval":"同期間隔","%d minutes":"%d 分","%d hour":"%d 時間","%d hours":"%d 時間","Show advanced options":"詳細な設定の表示","Synchronisation target":"同期先","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"同期先のディレクトリ(絶対パス)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"ファイルシステム同期の有効時に同期を行うパスです。`sync.target`も参考にしてください。","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"無効な設定値: \"%s\"。有効な値は: %sです。","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"同期が出来なかったアイテム","%s (%s): %s":"","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"同期状況 (同期済/総数)","%s: %d/%d":"","Total: %d/%d":"総数: %d/%d","Conflicted: %d":"衝突: %d","To delete: %d":"削除予定: %d","Folders":"フォルダ","%s: %d notes":"%s: %d ノート","Coming alarms":"時間のきたアラーム","On %s: %s":"","There are currently no notes. Create one by clicking on the (+) button.":"ノートがありません。(+)ボタンを押して新しいノートを作成してください。","Delete these notes?":"ノートを削除しますか?","Log":"ログ","Export Debug Report":"デバッグレポートの出力","Encryption Config":"","Configuration":"設定","Move to notebook...":"ノートブックへ移動...","Move %d notes to notebook \"%s\"?":"%d個のノートを\"%s\"に移動しますか?","Press to set the decryption password.":"","Select date":"日付の選択","Confirm":"確認","Cancel synchronisation":"同期の中止","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"ノートブックは保存できませんでした:%s","Edit notebook":"ノートブックの編集","Show all":"","Errors only":"","This note has been modified:":"ノートは変更されています:","Save changes":"変更を保存","Discard changes":"変更を破棄","Unsupported image type: %s":"サポートされていないイメージ形式: %s.","Attach photo":"写真を添付","Attach any file":"ファイルを添付","Convert to note":"ノートに変換","Convert to todo":"ToDoに変換","Hide metadata":"メタデータを隠す","Show metadata":"メタデータを表示","View on map":"地図上に表示","Delete notebook":"ノートブックを削除","Login with OneDrive":"OneDriveログイン","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"(+)ボタンを押してノートやノートブックを作成してください。サイドメニューからあなたのノートブックにアクセスが出来ます。","You currently have no notebook. Create one by clicking on (+) button.":"ノートブックがありません。(+)をクリックして新しいノートブックを作成してください。","Welcome":"ようこそ"}
        \ No newline at end of file
        diff --git a/ReactNativeClient/locales/nl_BE.json b/ReactNativeClient/locales/nl_BE.json
        index c75a3739ff..eeb672f3d5 100644
        --- a/ReactNativeClient/locales/nl_BE.json
        +++ b/ReactNativeClient/locales/nl_BE.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"Untag de geassocieerde notities om een tag te verwijderen.","Please select the note or notebook to be deleted first.":"Selecteer eerst het notitieboek of de notitie om te verwijderen.","Press Ctrl+D or type \"exit\" to exit the application":"Typ Ctrl+D of \"exit\" om de applicatie te sluiten","More than one item match \"%s\". Please narrow down your query.":"Meer dan een item voldoet aan de zoekterm \"%s\". Verfijn uw zoekterm a.u.b.","No notebook selected.":"Geen notitieboek geselecteerd.","No notebook has been specified.":"Geen notitieboek is gespecifieerd","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Achtergrond synchronisatie wordt geannuleerd... Even geduld.","No such command: %s":"Geen commando gevonden: \"%s\"","The command \"%s\" is only available in GUI mode":"Het opgegeven command \"%s\" is alleen beschikbaar in de GUI versie","Cannot change encrypted item":"Kan het versleutelde item niet wijzigen","Missing required argument: %s":"Benodigde argumenten niet voorzien: %s","%s: %s":"%s: %s","Your choice: ":"Uw keuze:","Invalid answer: %s":"Ongeldig antwoord: %s","Attaches the given file to the note.":"Voegt het bestand toe aan de notitie.","Cannot find \"%s\".":"Kan \"%s\" niet vinden.","Displays the given note.":"Toont de opgegeven notitie.","Displays the complete information about note.":"Toont de volledige informatie van een notitie.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Haal een configuratie waarde op of stel een waarde in. Als [value] niet opgegeven is, zal de waarde van [name] getoond worden. Als nog de [name] of [waarde] opgegeven zijn, zal de huidige configuratie opgelijst worden.","Also displays unset and hidden config variables.":"Toont ook niet-geconfigureerde en verborgen configuratie opties. ","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Verveelvoudig de notities die voldoen aan  in [notitieboek]. Als er geen notitieboek is meegegeven, de notitie is gedupliceerd in het huidige notitieboek.","Marks a to-do as done.":"Markeer een to-do als voltooid. ","Note is not a to-do: \"%s\"":"Notitie is geen to-do: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Beheert E2EE configuratie. Commando's zijn `enable`, `disable`, `decrypt`, `status` and `target-status`.","Enter master password:":"Voeg hoofdsleutel in:","Operation cancelled":"Operatie geannuleerd","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Ontsleuteling starten... Dit kan enkele minuten duren, afhankelijk van hoeveel er te ontsleutelen is. ","Completed decryption.":"Ontsleuteling voltooid","Enabled":"Ingeschakeld","Disabled":"UItgeschakeld","Encryption is: %s":"Encryptie is: %s","Edit note.":"Bewerk notitie.","No text editor is defined. Please set it using `config editor `":"Geen tekst editor is ingesteld. Stel in met `config editor `","No active notebook.":"Geen actief notitieboek.","Note does not exist: \"%s\". Create it?":"Notitie bestaat niet: \"%s\". Aanmaken?","Starting to edit note. Close the editor to get back to the prompt.":"Bewerken notitie gestart. Sluit de editor om terug naar de prompt te gaan.","Error opening note in editor: %s":"","Note has been saved.":"Notitie is opgeslaan.","Exits the application.":"Sluit de applicatie.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exporteert alleen de opgegeven notitie.","Exports only the given notebook.":"Exporteert alleen het opgegeven notitieboek.","Displays a geolocation URL for the note.":"Toont een geolocatie link voor de notitie.","Displays usage information.":"Toont gebruiksinformatie.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Shortcuts zijn niet beschikbaar in command line modus.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Typ `help [commando]` voor meer informatie over een commando; of typ `help all` voor de volledige gebruiksaanwijzing.","The possible commands are:":"Mogelijke commando's zijn:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In iedere commando kan een notitie of een notitieboek opgegeven worden door de title of het ID of de shortcuts `$n` of `$b` voor, respectievelijk, het huidig geslecteerde notitieboek of huidig geselecteerde notitie. `$c` kan gebruikt worden om te refereren naar het huidige geselecteerde item.","To move from one pane to another, press Tab or Shift+Tab.":"Om van het ene paneel naar het andere te gaan, duw Tab of Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Gebruik de pijltjes en page up/down om door de lijsten en de tekstvelden te scrollen (ook deze console).","To maximise/minimise the console, press \"TC\".":"Om de console te maximaliseren/minimaliseren, typ \"TC\".","To enter command line mode, press \":\"":"Om command line modus te gebruiken, duw \":\"","To exit command line mode, press ESCAPE":"Om command line modus te verlaten, duw ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Vraag niet om bevestiging. ","Found: %d.":"Gevonden: %d.","Created: %d.":"Aangemaakt: %d.","Updated: %d.":"Bijgewerkt: %d.","Skipped: %d.":"Geskipt: %d.","Resources: %d.":"Middelen: %d.","Tagged: %d.":"Getagd: %d.","Importing notes...":"Notities importeren...","The notes have been imported: %s":"Notities zijn geïmporteerd: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Toont de notities in het huidige notitieboek. Gebruik `ls /` om een lijst van notitieboeken te tonen.","Displays only the first top  notes.":"Toont enkel de top  notities.","Sorts the item by  (eg. title, updated_time, created_time).":"Sorteert de items volgens  (vb. title, updated_time, created_time).","Reverses the sorting order.":"Draait de sorteervolgorde om.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Toont enkel de items van de specifieke type(s). Kan `n` zijn voor notities, `t` voor to-do's, of `nt` voor notities en to-do's (vb. `-tt` zou alleen to-do's tonen, terwijl `-ttd` notities en to-do's zou tonen).","Either \"text\" or \"json\"":"Of \"text\" of \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Gebruik volgend lijst formaat. Formaat is ID, NOTE_COUNT (voor notitieboek), DATE, TODO_CHECKED (voor to-do's), TITLE","Please select a notebook first.":"Selecteer eerst een notitieboek. ","Creates a new notebook.":"Maakt een nieuw notitieboek aan.","Creates a new note.":"Maakt een nieuwe notitie aan.","Notes can only be created within a notebook.":"Notities kunnen enkel in een notitieboek aangemaakt worden.","Creates a new to-do.":"Maakt nieuwe to-do aan.","Moves the notes matching  to [notebook].":"Verplaatst de notities die voldoen aan  naar [notitieboek].","Renames the given  (note or notebook) to .":"Hernoemt het gegeven  (notitie of notitieboek) naar .","Deletes the given notebook.":"Verwijdert het opgegeven notitieboek.","Deletes the notebook without asking for confirmation.":"Verwijdert het notitieboek zonder te vragen om bevestiging.","Delete notebook? All notes within this notebook will also be deleted.":"Notitieboek verwijderen? Alle notities in dit notitieboek zullen ook verwijderd worden.","Deletes the notes matching .":"Verwijder alle notities die voldoen aan .","Deletes the notes without asking for confirmation.":"Verwijder de notities zonder te vragen om bevestiging. ","%d notes match this pattern. Delete them?":"%d notities voldoen aan het patroon. Items verwijderen?","Delete note?":"Notitie verwijderen?","Searches for the given  in all the notes.":"Zoektermen voor het opgegeven  in alle notities.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Zet de eigenschap  van de opgegeven  naar de opgegeven [value]. Mogelijke eigenschappen zijn:\n\n%s","Displays summary about the notes and notebooks.":"Toon samenvatting van alle notities en notitieboeken","Synchronises with remote storage.":"Synchroniseert met remote opslag. ","Sync to provided target (defaults to sync.target config value)":"Synchroniseer naar opgegeven doel (standaard sync.target configuratie optie)","Authentication was not completed (did not receive an authentication token).":"Authenticatie was niet voltooid (geen authenticatietoken ontvangen).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"Synchronisatie reeds bezig.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Er is reeds een lockfile. Als u zeker bent dat er geen synchronisatie bezig is, kan de lock file verwijderd worden op \"%s\" en verder gegaan worden met de synchronisatie. ","Synchronisation target: %s (%s)":"Synchronisatiedoel: %s (%s)","Cannot initialize synchroniser.":"Kan de synchronisatie niet starten.","Starting synchronisation...":"Synchronisatie starten...","Cancelling... Please wait.":"Annuleren.. Even geduld."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" kan \"add\", \"remove\" of \"list\" zijn om een [tag] toe te voegen aan een [note] of te verwijderen, of om alle notities geassocieerd met de [tag] op te lijsten. Het commando `tag list` kan gebruikt worden om alle tags op te lijsten.","Invalid command: \"%s\"":"Ongeldig commando: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" kan of \"toggle\" of \"clear\" zijn. Gebruik \"toggle\" om de to-do als voltooid of onvoltooid weer te geven (als het doel een standaard notitie is, zal ze geconverteerd worden naar een to-do). Gebruik \"clear\" om terug te wisselen naar een standaard notitie. ","Marks a to-do as non-completed.":"Markeert een to-do als onvoltooid.","Switches to [notebook] - all further operations will happen within this notebook.":"Wisselt naar [notitieboek] - Alle verdere acties zullen op dit notitieboek toegepast worden.","Displays version information":"Toont versie informatie","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Type: %s.","Possible values: %s.":"Mogelijke waarden: %s.","Default: %s":"Standaard: %s","Possible keys/values:":"Mogelijke sleutels/waarden:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Fatale fout:","The application has been authorised - you may now close this browser tab.":"De applicatie is geauthenticeerd - U kan deze tab sluiten.","The application has been successfully authorised.":"De applicatie is succesvol geauthenticeerd.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Open de volgende link in uw browser om de applicatie te authenticeren. De applicatie zal een folder in \"Apps/Joplin\" aanmaken en zal enkel bestanden aanmaken en lezen in deze folder. De applicatie zal geen toegang hebben tot bestanden buiten deze folder of enige andere persoonlijke gegevens. Geen gegevens zullen gedeeld worden met een externe partij. ","Search:":"Zoek:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Welkom bij Joplin!\n\nTyp `:help shortcuts` voor een lijst van shortcuts, of `:help` voor gebruiksinformatie.\n\nOm bijvoorbeeld een notitieboek aan te maken, typ `mb`; om een notitie te maken, typ `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Eén of meerdere items zijn momenteel versleuteld en de hoofdsleutel kan gevraagd worden. Om te ontsleutelen, typ `e2ee decrypt`. Als je de hoofdsleutel al ingegeven hebt, worden de versleutelde items ontsleuteld in de achtergrond. Ze zijn binnenkort beschikbaar.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"Bestand","New note":"Nieuwe notitie","New to-do":"Nieuwe to-do","New notebook":"Nieuw notitieboek","Import":"Importeer","Export":"Export","Print":"","Hide %s":"","Quit":"Stop","Edit":"Bewerk","Copy":"Kopieer","Cut":"Knip","Paste":"Plak","Search in all the notes":"Zoek in alle notities","View":"","Toggle editor layout":"","Tools":"Tools","Synchronisation status":"Synchronisatie status","Encryption options":"Versleutelopties","General Options":"Algemene opties","Help":"Help","Website and documentation":"Website en documentatie","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Over Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Annuleer","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Notities en instellingen zijn opgeslaan in %s","Save":"Sla op","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Encryptie uitschakelen betekent dat *al* uw notities en toevoegingen opnieuw gesynchroniseerd zullen worden en ontsleuteld naar het synchronisatiedoel zullen gestuurd worden. Wil u verder gaan?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Encryptie inschakelen betekent dat *al* uw notities en toevoegingen opnieuw gesynchroniseerd zullen worden en versleuteld verzonden worden naar het synchronisatiedoel. Verlies het wachtwoord niet, aangezien dit de enige manier is om de date de ontsleutelen. Om encryptie in te schakelen, vul uw wachtwoord hieronder in. ","Disable encryption":"Schakel encryptie uit","Enable encryption":"Schakel encryptie in","Master Keys":"Hoofdsleutels","Active":"Actief","ID":"ID","Source":"Bron","Created":"Aangemaakt","Updated":"Bijgewerkt","Password":"Wachtwoord","Password OK":"Wachtwoord OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Opmerking: Slechts één hoofdsleutel zal gebruikt worden voor versleuteling (aangeduid met \"active\"). Alle sleutels kunnen gebruikt worden voor decodering, afhankelijk van hoe de notitieboeken initieel versleuteld zijn.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"Versleuteling is:","Back":"Terug","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nieuw notitieboek \"%s\" zal aangemaakt worden en bestand \"%s\" wordt eraan toegevoegd","Please create a notebook first.":"Maak eerst een notitieboek aan.","Please create a notebook first":"Maak eerst een notitieboek aan","Notebook title:":"Notitieboek titel:","Add or remove tags:":"Voeg tag toe of verwijder tag","Separate each tag by a comma.":"Scheid iedere tag met een komma.","Rename notebook:":"Hernoem notitieboek:","Set alarm:":"Stel melding in:","Search":"Zoeken","Layout":"Layout","Some items cannot be synchronised.":"Sommige items kunnen niet gesynchroniseerd worden.","View them now":"Bekijk ze nu","Some items cannot be decrypted.":"Sommige items kunnen niet gedecodeerd worden.","Set the password":"Stel wachtwoord in","Add or remove tags":"Voeg tag toe of verwijder tag","Switch between note and to-do type":"Wissel tussen notitie en to-do type","Delete":"Verwijderen","Delete notes?":"Notities verwijderen?","No notes in here. Create one by clicking on \"New note\".":"Geen notities. Maak een notitie door op \"Nieuwe notitie\" te klikken.","There is currently no notebook. Create one by clicking on \"New notebook\".":"U heeft momenteel geen notitieboek. Maak een notitieboek door op \"Nieuw notitieboek\" te klikken.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Link of bericht \"%s\" wordt niet ondersteund","Attach file":"Voeg bestand toe","Tags":"Tags","Set alarm":"Zet melding","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Vernieuwen","Clear":"Vrijmaken","OneDrive Login":"OneDrive Login","Options":"Opties","Synchronisation Status":"Synchronisatie status","Encryption Options":"Versleutelopties","Remove this tag from all the notes?":"Deze tag verwijderen van alle notities?","Remove this search from the sidebar?":"Dit item verwijderen van de zijbalk?","Rename":"Hernoem","Synchronise":"Synchroniseer","Notebooks":"Notitieboeken","Searches":"Zoekopdrachten","Please select where the sync status should be exported to":"Selecteer waar de synchronisatie status naar geëxporteerd moet worden","Usage: %s":"Gebruik: %s","Unknown flag: %s":"Onbekende optie: %s","File system":"Bestandssysteem","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Alleen voor testen)","WebDAV":"","Unknown log level: %s":"Onbekend log level: %s","Unknown level ID: %s":"Onbekend level ID: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Kan token niet vernieuwen: authenticatiedata ontbreekt. Herstarten van de synchronisatie kan het probleem eventueel oplossen. ","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Kan niet synchroniseren met OneDrive.\n\nDeze fout gebeurt wanneer OneDrive for Business wordt gebruikt. Dit kan helaas niet ondersteund worden.\n\nOverweeg om een standaard OnDrive account te gebruiken.","Cannot access %s":"Geen toegang tot %s","Created local items: %d.":"Aangemaakte lokale items: %d.","Updated local items: %d.":"Bijgewerkte lokale items: %d.","Created remote items: %d.":"Aangemaakte remote items: %d.","Updated remote items: %d.":"Bijgewerkte remote items: %d.","Deleted local items: %d.":"Verwijderde lokale items: %d.","Deleted remote items: %d.":"Verwijderde remote items: %d.","Fetched items: %d/%d.":"Opgehaalde items: %d/%d.","State: \"%s\".":"Status: \"%s\"","Cancelling...":"Annuleren...","Completed: %s":"Voltooid: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Synchronisatie is reeds bezig. Status: %s","Encrypted":"Versleuteld","Encrypted items cannot be modified":"Versleutelde items kunnen niet aangepast worden","Conflicts":"Conflicten","A notebook with this title already exists: \"%s\"":"Er bestaat al een notitieboek met \"%s\" als titel","Notebooks cannot be named \"%s\", which is a reserved title.":"Notitieboeken kunnen niet \"%s\" genoemd worden, dit is een gereserveerd woord.","Untitled":"Untitled","This note does not have geolocation information.":"Deze notitie bevat geen geo-locatie informatie.","Cannot copy note to \"%s\" notebook":"Kan notitie niet naar notitieboek \"%s\" kopiëren.","Cannot move note to \"%s\" notebook":"Kan notitie niet naar notitieboek \"%s\" verplaatsen.","Text editor":"Tekst editor","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"De editor die zal gebruikt worden bij het openen van een notitie. Als er geen meegegeven wordt, zal het programma de standaard editor proberen te detecteren. ","Language":"Taal","Date format":"Datumnotatie","Time format":"Tijdsnotatie","Theme":"Thema","Light":"Licht","Dark":"Donker","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Sla geo-locatie op bij notities","When creating a new to-do:":"When creating a new to-do:","Focus title":"","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Update de applicatie automatisch","Synchronisation interval":"Synchronisatie interval","%d minutes":"%d minuten","%d hour":"%d uur","%d hours":"%d uren","Show advanced options":"Toon geavanceerde opties","Synchronisation target":"Synchronisatiedoel","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"Folder om mee te synchroniseren (absolute pad)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Het pad om mee te synchroniseren als bestandssysteem synchronisatie is ingeschakeld. Zie `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"Nextcloud password","WebDAV URL":"","WebDAV username":"","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Ongeldige optie: \"%s\". Geldige waarden zijn: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Items die niet gesynchroniseerd kunnen worden","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Deze items zullen op het apparaat beschikbaar blijven, maar zullen niet geüpload worden naar het synchronistatiedoel. Om deze items te vinden, zoek naar de titel of het ID (afgebeeld bovenaan tussen haakjes).","Sync status (synced items / total items)":"Sync status (gesynchroniseerde items / totaal aantal items)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Totaal: %d/%d","Conflicted: %d":"Conflict: %d","To delete: %d":"Verwijderen: %d","Folders":"Folders","%s: %d notes":"%s: %d notities","Coming alarms":"Meldingen","On %s: %s":"Op %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Er zijn momenteel geen notities. Maak een notitie door op (+) te klikken.","Delete these notes?":"Deze notities verwijderen?","Log":"Log","Export Debug Report":"Exporteer debug rapport","Encryption Config":"Encryptie configuratie","Configuration":"Configuratie","Move to notebook...":"Verplaats naar notitieboek...","Move %d notes to notebook \"%s\"?":"Verplaats %d notities naar notitieboek \"%s\"?","Press to set the decryption password.":"Klik om het decryptie wachtwoord in te stellen","Select date":"Selecteer datum","Confirm":"Bevestig","Cancel synchronisation":"Annuleer synchronisatie","Joplin website":"","Master Key %s":"Hoofdsleutel: %s","Created: %s":"Aangemaakt: %s","Password:":"Wachtwoord:","Password cannot be empty":"Wachtwoord kan niet leeg zijn","Enable":"Activeer","The notebook could not be saved: %s":"Het notitieboek kon niet opgeslaan worden: %s","Edit notebook":"Bewerk notitieboek","Show all":"","Errors only":"","This note has been modified:":"Deze notitie werd aangepast:","Save changes":"Sla wijzigingen op","Discard changes":"Verwijder wijzigingen","Unsupported image type: %s":"Afbeeldingstype %s wordt niet ondersteund","Attach photo":"Voeg foto toe","Attach any file":"Voeg bestand toe","Convert to note":"Converteer naar notitie","Convert to todo":"Converteer naar to-do","Hide metadata":"Verberg metadata","Show metadata":"Toon metadata","View on map":"Toon op de kaart","Delete notebook":"Verwijder notitieboek","Login with OneDrive":"Log in met OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Klik op de (+) om een nieuwe notitie of een nieuw notitieboek aan te maken. Klik in het menu om uw bestaande notitieboeken te raadplegen.","You currently have no notebook. Create one by clicking on (+) button.":"U heeft momenteel geen notitieboek. Maak een notitieboek door op (+) te klikken.","Welcome":"Welkom"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"Untag de geassocieerde notities om een tag te verwijderen.","Please select the note or notebook to be deleted first.":"Selecteer eerst het notitieboek of de notitie om te verwijderen.","Press Ctrl+D or type \"exit\" to exit the application":"Typ Ctrl+D of \"exit\" om de applicatie te sluiten","More than one item match \"%s\". Please narrow down your query.":"Meer dan een item voldoet aan de zoekterm \"%s\". Verfijn uw zoekterm a.u.b.","No notebook selected.":"Geen notitieboek geselecteerd.","No notebook has been specified.":"Geen notitieboek is gespecifieerd","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Achtergrond synchronisatie wordt geannuleerd... Even geduld.","No such command: %s":"Geen commando gevonden: \"%s\"","The command \"%s\" is only available in GUI mode":"Het opgegeven command \"%s\" is alleen beschikbaar in de GUI versie","Cannot change encrypted item":"Kan het versleutelde item niet wijzigen","Missing required argument: %s":"Benodigde argumenten niet voorzien: %s","%s: %s":"%s: %s","Your choice: ":"Uw keuze:","Invalid answer: %s":"Ongeldig antwoord: %s","Attaches the given file to the note.":"Voegt het bestand toe aan de notitie.","Cannot find \"%s\".":"Kan \"%s\" niet vinden.","Displays the given note.":"Toont de opgegeven notitie.","Displays the complete information about note.":"Toont de volledige informatie van een notitie.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Haal een configuratie waarde op of stel een waarde in. Als [value] niet opgegeven is, zal de waarde van [name] getoond worden. Als nog de [name] of [waarde] opgegeven zijn, zal de huidige configuratie opgelijst worden.","Also displays unset and hidden config variables.":"Toont ook niet-geconfigureerde en verborgen configuratie opties. ","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Verveelvoudig de notities die voldoen aan  in [notitieboek]. Als er geen notitieboek is meegegeven, de notitie is gedupliceerd in het huidige notitieboek.","Marks a to-do as done.":"Markeer een to-do als voltooid. ","Note is not a to-do: \"%s\"":"Notitie is geen to-do: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Beheert E2EE configuratie. Commando's zijn `enable`, `disable`, `decrypt`, `status` and `target-status`.","Enter master password:":"Voeg hoofdsleutel in:","Operation cancelled":"Operatie geannuleerd","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Ontsleuteling starten... Dit kan enkele minuten duren, afhankelijk van hoeveel er te ontsleutelen is. ","Completed decryption.":"Ontsleuteling voltooid","Enabled":"Ingeschakeld","Disabled":"UItgeschakeld","Encryption is: %s":"Encryptie is: %s","Edit note.":"Bewerk notitie.","No text editor is defined. Please set it using `config editor `":"Geen tekst editor is ingesteld. Stel in met `config editor `","No active notebook.":"Geen actief notitieboek.","Note does not exist: \"%s\". Create it?":"Notitie bestaat niet: \"%s\". Aanmaken?","Starting to edit note. Close the editor to get back to the prompt.":"Bewerken notitie gestart. Sluit de editor om terug naar de prompt te gaan.","Error opening note in editor: %s":"","Note has been saved.":"Notitie is opgeslaan.","Exits the application.":"Sluit de applicatie.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"Exporteert alleen de opgegeven notitie.","Exports only the given notebook.":"Exporteert alleen het opgegeven notitieboek.","Displays a geolocation URL for the note.":"Toont een geolocatie link voor de notitie.","Displays usage information.":"Toont gebruiksinformatie.","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"Shortcuts zijn niet beschikbaar in command line modus.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Typ `help [commando]` voor meer informatie over een commando; of typ `help all` voor de volledige gebruiksaanwijzing.","The possible commands are:":"Mogelijke commando's zijn:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"In iedere commando kan een notitie of een notitieboek opgegeven worden door de title of het ID of de shortcuts `$n` of `$b` voor, respectievelijk, het huidig geslecteerde notitieboek of huidig geselecteerde notitie. `$c` kan gebruikt worden om te refereren naar het huidige geselecteerde item.","To move from one pane to another, press Tab or Shift+Tab.":"Om van het ene paneel naar het andere te gaan, duw Tab of Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Gebruik de pijltjes en page up/down om door de lijsten en de tekstvelden te scrollen (ook deze console).","To maximise/minimise the console, press \"TC\".":"Om de console te maximaliseren/minimaliseren, typ \"TC\".","To enter command line mode, press \":\"":"Om command line modus te gebruiken, duw \":\"","To exit command line mode, press ESCAPE":"Om command line modus te verlaten, duw ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"Vraag niet om bevestiging. ","Found: %d.":"Gevonden: %d.","Created: %d.":"Aangemaakt: %d.","Updated: %d.":"Bijgewerkt: %d.","Skipped: %d.":"Geskipt: %d.","Resources: %d.":"Middelen: %d.","Tagged: %d.":"Getagd: %d.","Importing notes...":"Notities importeren...","The notes have been imported: %s":"Notities zijn geïmporteerd: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Toont de notities in het huidige notitieboek. Gebruik `ls /` om een lijst van notitieboeken te tonen.","Displays only the first top  notes.":"Toont enkel de top  notities.","Sorts the item by  (eg. title, updated_time, created_time).":"Sorteert de items volgens  (vb. title, updated_time, created_time).","Reverses the sorting order.":"Draait de sorteervolgorde om.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Toont enkel de items van de specifieke type(s). Kan `n` zijn voor notities, `t` voor to-do's, of `nt` voor notities en to-do's (vb. `-tt` zou alleen to-do's tonen, terwijl `-ttd` notities en to-do's zou tonen).","Either \"text\" or \"json\"":"Of \"text\" of \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Gebruik volgend lijst formaat. Formaat is ID, NOTE_COUNT (voor notitieboek), DATE, TODO_CHECKED (voor to-do's), TITLE","Please select a notebook first.":"Selecteer eerst een notitieboek. ","Creates a new notebook.":"Maakt een nieuw notitieboek aan.","Creates a new note.":"Maakt een nieuwe notitie aan.","Notes can only be created within a notebook.":"Notities kunnen enkel in een notitieboek aangemaakt worden.","Creates a new to-do.":"Maakt nieuwe to-do aan.","Moves the notes matching  to [notebook].":"Verplaatst de notities die voldoen aan  naar [notitieboek].","Renames the given  (note or notebook) to .":"Hernoemt het gegeven  (notitie of notitieboek) naar .","Deletes the given notebook.":"Verwijdert het opgegeven notitieboek.","Deletes the notebook without asking for confirmation.":"Verwijdert het notitieboek zonder te vragen om bevestiging.","Delete notebook? All notes within this notebook will also be deleted.":"Notitieboek verwijderen? Alle notities in dit notitieboek zullen ook verwijderd worden.","Deletes the notes matching .":"Verwijder alle notities die voldoen aan .","Deletes the notes without asking for confirmation.":"Verwijder de notities zonder te vragen om bevestiging. ","%d notes match this pattern. Delete them?":"%d notities voldoen aan het patroon. Items verwijderen?","Delete note?":"Notitie verwijderen?","Searches for the given  in all the notes.":"Zoektermen voor het opgegeven  in alle notities.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Zet de eigenschap  van de opgegeven  naar de opgegeven [value]. Mogelijke eigenschappen zijn:\n\n%s","Displays summary about the notes and notebooks.":"Toon samenvatting van alle notities en notitieboeken","Synchronises with remote storage.":"Synchroniseert met remote opslag. ","Sync to provided target (defaults to sync.target config value)":"Synchroniseer naar opgegeven doel (standaard sync.target configuratie optie)","Authentication was not completed (did not receive an authentication token).":"Authenticatie was niet voltooid (geen authenticatietoken ontvangen).","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"Synchronisatie reeds bezig.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Er is reeds een lockfile. Als u zeker bent dat er geen synchronisatie bezig is, kan de lock file verwijderd worden op \"%s\" en verder gegaan worden met de synchronisatie. ","Synchronisation target: %s (%s)":"Synchronisatiedoel: %s (%s)","Cannot initialize synchroniser.":"Kan de synchronisatie niet starten.","Starting synchronisation...":"Synchronisatie starten...","Cancelling... Please wait.":"Annuleren.. Even geduld."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" kan \"add\", \"remove\" of \"list\" zijn om een [tag] toe te voegen aan een [note] of te verwijderen, of om alle notities geassocieerd met de [tag] op te lijsten. Het commando `tag list` kan gebruikt worden om alle tags op te lijsten.","Invalid command: \"%s\"":"Ongeldig commando: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" kan of \"toggle\" of \"clear\" zijn. Gebruik \"toggle\" om de to-do als voltooid of onvoltooid weer te geven (als het doel een standaard notitie is, zal ze geconverteerd worden naar een to-do). Gebruik \"clear\" om terug te wisselen naar een standaard notitie. ","Marks a to-do as non-completed.":"Markeert een to-do als onvoltooid.","Switches to [notebook] - all further operations will happen within this notebook.":"Wisselt naar [notitieboek] - Alle verdere acties zullen op dit notitieboek toegepast worden.","Displays version information":"Toont versie informatie","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Type: %s.","Possible values: %s.":"Mogelijke waarden: %s.","Default: %s":"Standaard: %s","Possible keys/values:":"Mogelijke sleutels/waarden:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"Fatale fout:","The application has been authorised - you may now close this browser tab.":"De applicatie is geauthenticeerd - U kan deze tab sluiten.","The application has been successfully authorised.":"De applicatie is succesvol geauthenticeerd.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Open de volgende link in uw browser om de applicatie te authenticeren. De applicatie zal een folder in \"Apps/Joplin\" aanmaken en zal enkel bestanden aanmaken en lezen in deze folder. De applicatie zal geen toegang hebben tot bestanden buiten deze folder of enige andere persoonlijke gegevens. Geen gegevens zullen gedeeld worden met een externe partij. ","Search:":"Zoek:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Welkom bij Joplin!\n\nTyp `:help shortcuts` voor een lijst van shortcuts, of `:help` voor gebruiksinformatie.\n\nOm bijvoorbeeld een notitieboek aan te maken, typ `mb`; om een notitie te maken, typ `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Eén of meerdere items zijn momenteel versleuteld en de hoofdsleutel kan gevraagd worden. Om te ontsleutelen, typ `e2ee decrypt`. Als je de hoofdsleutel al ingegeven hebt, worden de versleutelde items ontsleuteld in de achtergrond. Ze zijn binnenkort beschikbaar.","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"Bestand","New note":"Nieuwe notitie","New to-do":"Nieuwe to-do","New notebook":"Nieuw notitieboek","Import":"Importeer","Export":"Export","Print":"","Hide %s":"","Quit":"Stop","Edit":"Bewerk","Copy":"Kopieer","Cut":"Knip","Paste":"Plak","Search in all the notes":"Zoek in alle notities","View":"","Toggle editor layout":"","Tools":"Tools","Synchronisation status":"Synchronisatie status","Encryption options":"Versleutelopties","General Options":"Algemene opties","Help":"Help","Website and documentation":"Website en documentatie","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"Over Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"OK","Cancel":"Annuleer","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"Notities en instellingen zijn opgeslaan in %s","Save":"Sla op","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Encryptie uitschakelen betekent dat *al* uw notities en toevoegingen opnieuw gesynchroniseerd zullen worden en ontsleuteld naar het synchronisatiedoel zullen gestuurd worden. Wil u verder gaan?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Encryptie inschakelen betekent dat *al* uw notities en toevoegingen opnieuw gesynchroniseerd zullen worden en versleuteld verzonden worden naar het synchronisatiedoel. Verlies het wachtwoord niet, aangezien dit de enige manier is om de date de ontsleutelen. Om encryptie in te schakelen, vul uw wachtwoord hieronder in. ","Disable encryption":"Schakel encryptie uit","Enable encryption":"Schakel encryptie in","Master Keys":"Hoofdsleutels","Active":"Actief","ID":"ID","Source":"Bron","Created":"Aangemaakt","Updated":"Bijgewerkt","Password":"Wachtwoord","Password OK":"Wachtwoord OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Opmerking: Slechts één hoofdsleutel zal gebruikt worden voor versleuteling (aangeduid met \"active\"). Alle sleutels kunnen gebruikt worden voor decodering, afhankelijk van hoe de notitieboeken initieel versleuteld zijn.","Missing Master Keys":"Missing Master Keys","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"Status","Encryption is:":"Versleuteling is:","Back":"Terug","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Nieuw notitieboek \"%s\" zal aangemaakt worden en bestand \"%s\" wordt eraan toegevoegd","Please create a notebook first.":"Maak eerst een notitieboek aan.","Please create a notebook first":"Maak eerst een notitieboek aan","Notebook title:":"Notitieboek titel:","Add or remove tags:":"Voeg tag toe of verwijder tag","Separate each tag by a comma.":"Scheid iedere tag met een komma.","Rename notebook:":"Hernoem notitieboek:","Set alarm:":"Stel melding in:","Search":"Zoeken","Layout":"Layout","Some items cannot be synchronised.":"Sommige items kunnen niet gesynchroniseerd worden.","View them now":"Bekijk ze nu","Some items cannot be decrypted.":"Sommige items kunnen niet gedecodeerd worden.","Set the password":"Stel wachtwoord in","Add or remove tags":"Voeg tag toe of verwijder tag","Switch between note and to-do type":"Wissel tussen notitie en to-do type","Delete":"Verwijderen","Delete notes?":"Notities verwijderen?","No notes in here. Create one by clicking on \"New note\".":"Geen notities. Maak een notitie door op \"Nieuwe notitie\" te klikken.","There is currently no notebook. Create one by clicking on \"New notebook\".":"U heeft momenteel geen notitieboek. Maak een notitieboek door op \"Nieuw notitieboek\" te klikken.","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"Link of bericht \"%s\" wordt niet ondersteund","Attach file":"Voeg bestand toe","Tags":"Tags","Set alarm":"Zet melding","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"Vernieuwen","Clear":"Vrijmaken","OneDrive Login":"OneDrive Login","Options":"Opties","Synchronisation Status":"Synchronisatie status","Encryption Options":"Versleutelopties","Remove this tag from all the notes?":"Deze tag verwijderen van alle notities?","Remove this search from the sidebar?":"Dit item verwijderen van de zijbalk?","Rename":"Hernoem","Synchronise":"Synchroniseer","Notebooks":"Notitieboeken","Searches":"Zoekopdrachten","Please select where the sync status should be exported to":"Selecteer waar de synchronisatie status naar geëxporteerd moet worden","Usage: %s":"Gebruik: %s","Unknown flag: %s":"Onbekende optie: %s","File system":"Bestandssysteem","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (Alleen voor testen)","WebDAV":"","Unknown log level: %s":"Onbekend log level: %s","Unknown level ID: %s":"Onbekend level ID: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Kan token niet vernieuwen: authenticatiedata ontbreekt. Herstarten van de synchronisatie kan het probleem eventueel oplossen. ","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Kan niet synchroniseren met OneDrive.\n\nDeze fout gebeurt wanneer OneDrive for Business wordt gebruikt. Dit kan helaas niet ondersteund worden.\n\nOverweeg om een standaard OnDrive account te gebruiken.","Cannot access %s":"Geen toegang tot %s","Created local items: %d.":"Aangemaakte lokale items: %d.","Updated local items: %d.":"Bijgewerkte lokale items: %d.","Created remote items: %d.":"Aangemaakte remote items: %d.","Updated remote items: %d.":"Bijgewerkte remote items: %d.","Deleted local items: %d.":"Verwijderde lokale items: %d.","Deleted remote items: %d.":"Verwijderde remote items: %d.","Fetched items: %d/%d.":"Opgehaalde items: %d/%d.","State: %s.":"State: %s.","Cancelling...":"Annuleren...","Completed: %s":"Voltooid: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Synchronisatie is reeds bezig. Status: %s","Encrypted":"Versleuteld","Encrypted items cannot be modified":"Versleutelde items kunnen niet aangepast worden","Conflicts":"Conflicten","A notebook with this title already exists: \"%s\"":"Er bestaat al een notitieboek met \"%s\" als titel","Notebooks cannot be named \"%s\", which is a reserved title.":"Notitieboeken kunnen niet \"%s\" genoemd worden, dit is een gereserveerd woord.","Untitled":"Untitled","This note does not have geolocation information.":"Deze notitie bevat geen geo-locatie informatie.","Cannot copy note to \"%s\" notebook":"Kan notitie niet naar notitieboek \"%s\" kopiëren.","Cannot move note to \"%s\" notebook":"Kan notitie niet naar notitieboek \"%s\" verplaatsen.","Text editor":"Tekst editor","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"De editor die zal gebruikt worden bij het openen van een notitie. Als er geen meegegeven wordt, zal het programma de standaard editor proberen te detecteren. ","Language":"Taal","Date format":"Datumnotatie","Time format":"Tijdsnotatie","Theme":"Thema","Light":"Licht","Dark":"Donker","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"Sla geo-locatie op bij notities","When creating a new to-do:":"When creating a new to-do:","Focus title":"","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"Update de applicatie automatisch","Synchronisation interval":"Synchronisatie interval","%d minutes":"%d minuten","%d hour":"%d uur","%d hours":"%d uren","Show advanced options":"Toon geavanceerde opties","Synchronisation target":"Synchronisatiedoel","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"Folder om mee te synchroniseren (absolute pad)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Het pad om mee te synchroniseren als bestandssysteem synchronisatie is ingeschakeld. Zie `sync.target`.","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"Nextcloud password","WebDAV URL":"","WebDAV username":"","WebDAV password":"WebDAV password","Invalid option value: \"%s\". Possible values are: %s.":"Ongeldige optie: \"%s\". Geldige waarden zijn: %s.","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"Items die niet gesynchroniseerd kunnen worden","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Deze items zullen op het apparaat beschikbaar blijven, maar zullen niet geüpload worden naar het synchronistatiedoel. Om deze items te vinden, zoek naar de titel of het ID (afgebeeld bovenaan tussen haakjes).","Sync status (synced items / total items)":"Sync status (gesynchroniseerde items / totaal aantal items)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Totaal: %d/%d","Conflicted: %d":"Conflict: %d","To delete: %d":"Verwijderen: %d","Folders":"Folders","%s: %d notes":"%s: %d notities","Coming alarms":"Meldingen","On %s: %s":"Op %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Er zijn momenteel geen notities. Maak een notitie door op (+) te klikken.","Delete these notes?":"Deze notities verwijderen?","Log":"Log","Export Debug Report":"Exporteer debug rapport","Encryption Config":"Encryptie configuratie","Configuration":"Configuratie","Move to notebook...":"Verplaats naar notitieboek...","Move %d notes to notebook \"%s\"?":"Verplaats %d notities naar notitieboek \"%s\"?","Press to set the decryption password.":"Klik om het decryptie wachtwoord in te stellen","Select date":"Selecteer datum","Confirm":"Bevestig","Cancel synchronisation":"Annuleer synchronisatie","Joplin website":"","Master Key %s":"Hoofdsleutel: %s","Created: %s":"Aangemaakt: %s","Password:":"Wachtwoord:","Password cannot be empty":"Wachtwoord kan niet leeg zijn","Enable":"Activeer","The notebook could not be saved: %s":"Het notitieboek kon niet opgeslaan worden: %s","Edit notebook":"Bewerk notitieboek","Show all":"","Errors only":"","This note has been modified:":"Deze notitie werd aangepast:","Save changes":"Sla wijzigingen op","Discard changes":"Verwijder wijzigingen","Unsupported image type: %s":"Afbeeldingstype %s wordt niet ondersteund","Attach photo":"Voeg foto toe","Attach any file":"Voeg bestand toe","Convert to note":"Converteer naar notitie","Convert to todo":"Converteer naar to-do","Hide metadata":"Verberg metadata","Show metadata":"Toon metadata","View on map":"Toon op de kaart","Delete notebook":"Verwijder notitieboek","Login with OneDrive":"Log in met OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Klik op de (+) om een nieuwe notitie of een nieuw notitieboek aan te maken. Klik in het menu om uw bestaande notitieboeken te raadplegen.","You currently have no notebook. Create one by clicking on (+) button.":"U heeft momenteel geen notitieboek. Maak een notitieboek door op (+) te klikken.","Welcome":"Welkom"}
        \ No newline at end of file
        diff --git a/ReactNativeClient/locales/pt_BR.json b/ReactNativeClient/locales/pt_BR.json
        index 40152a6098..c7dde3aa50 100644
        --- a/ReactNativeClient/locales/pt_BR.json
        +++ b/ReactNativeClient/locales/pt_BR.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"Para eliminar uma tag, remova a tag das notas associadas a ela.","Please select the note or notebook to be deleted first.":"Por favor, primeiro, selecione a nota ou caderno a excluir.","Press Ctrl+D or type \"exit\" to exit the application":"Digite Ctrl+D ou \"exit\" para sair da aplicação","More than one item match \"%s\". Please narrow down your query.":"Mais que um item combinam com \"%s\". Por favor, refine sua pesquisa.","No notebook selected.":"Nenhum caderno selecionado.","No notebook has been specified.":"Nenhum caderno foi especificado.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancelando sincronização em segundo plano... Por favor, aguarde.","No such command: %s":"Não existe o comando: \"%s\"","The command \"%s\" is only available in GUI mode":"O comando \"%s\" está disponível somente em modo gráfico","Cannot change encrypted item":"Não pode mudar um item encriptado","Missing required argument: %s":"Argumento requerido faltando: %s","%s: %s":"%s: %s","Your choice: ":"Sua escolha: ","Invalid answer: %s":"Resposta inválida: %s","Attaches the given file to the note.":"Anexa o arquivo dado à nota.","Cannot find \"%s\".":"Não posso encontrar \"%s\".","Displays the given note.":"Exibe a nota informada.","Displays the complete information about note.":"Exibe a informação completa sobre a nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtém ou define um valor de configuração. Se [valor] não for fornecido, ele mostrará o valor de [nome]. Se nem [nome] nem [valor] forem fornecidos, ele listará a configuração atual.","Also displays unset and hidden config variables.":"Também exibe variáveis de configuração não definidas e ocultas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica as notas que correspondem a  para o [caderno]. Se nenhum caderno for especificado, a nota será duplicada no caderno atual.","Marks a to-do as done.":"Marca uma tarefa como feita.","Note is not a to-do: \"%s\"":"Nota não é uma tarefa: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Gerencia a configuração E2EE. Os comandos são `enable`, `disable`, `decrypt`, `status` e `target-status`.","Enter master password:":"Entre a senha master:","Operation cancelled":"Operação cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando decriptação... Por favor aguarde, pois isso pode demorar vários minutos, dependendo de quanto há para decriptar.","Completed decryption.":"Decriptação completada.","Enabled":"Desabilitado","Disabled":"Desabilitado","Encryption is: %s":"Encriptação está: %s","Edit note.":"Editar nota.","No text editor is defined. Please set it using `config editor `":"Nenhum editor de texto está definido. Defina-o usando o comando `config edit `","No active notebook.":"Nenhum caderno ativo.","Note does not exist: \"%s\". Create it?":"A nota não existe: \"%s\". Criar?","Starting to edit note. Close the editor to get back to the prompt.":"Começando a editar a nota. Feche o editor para voltar ao prompt.","Error opening note in editor: %s":"Erro ao abir a nota no editor: %s","Note has been saved.":"Nota gravada.","Exits the application.":"Sai da aplicação.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporta os dados do Joplin para o diretório informado. Por padrão, ele exportará o banco de dados completo, incluindo cadernos, notas, tags e recursos.","Destination format: %s":"Formato do destino: %s","Exports only the given note.":"Exporta apenas a nota fornecida.","Exports only the given notebook.":"Exporta apenas o caderno fornecido.","Displays a geolocation URL for the note.":"Exibe uma URL de geolocalização para a nota.","Displays usage information.":"Exibe informações de uso.","For information on how to customise the shortcuts please visit %s":"Para informações sobre como customizar os atalhos, por favor visite %s","Shortcuts are not available in CLI mode.":"Os atalhos não estão disponíveis no modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Digite `help [comando]` para obter mais informações sobre um comando; ou digite `help all` para informações completas de uso.","The possible commands are:":"Os comandos possíveis são:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Em qualquer comando, uma nota ou caderno pode ser referenciado por título ou ID, ou usando os atalhos `$n` ou` $b` para, respectivamente, a nota ou caderno selecionado. `$c` pode ser usado para se referenciar ao item atualmente selecionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover de um painel para outro, pressione Tab ou Shift + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use as setas e a Page Up/Page Down para rolar as listas e áreas de texto (incluindo este console).","To maximise/minimise the console, press \"TC\".":"Para maximizar / minimizar o console, pressione \"TC\".","To enter command line mode, press \":\"":"Para entrar no modo de linha de comando, pressione \":\"","To exit command line mode, press ESCAPE":"Para sair do modo de linha de comando, pressione o ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"Para a lista completa de atalhos de teclado disponíveis, digite `help keymap`","Imports data into Joplin.":"Importa dados para o Joplin.","Source format: %s":"Formato da origem: \"%s\"","Do not ask for confirmation.":"Não pedir confirmação.","Found: %d.":"Encontrado: %d.","Created: %d.":"Criado: %d.","Updated: %d.":"Atualizado: %d.","Skipped: %d.":"Ignorado: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Tag adicionada: %d.","Importing notes...":"Importando notas ...","The notes have been imported: %s":"As notas foram importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Exibe as notas no caderno atual. Use `ls /` para exibir a lista de cadernos.","Displays only the first top  notes.":"Exibe apenas as primeiras notas.","Sorts the item by  (eg. title, updated_time, created_time).":"Classifica o item por  (ex.: title, update_time, created_time).","Reverses the sorting order.":"Inverte a ordem de classificação.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Exibe apenas os itens do(s) tipo(s) específico(s). Pode ser `n` para notas,` t` para tarefas, ou `nt` para notas e tarefas (por exemplo.` -tt` exibiria apenas os itens pendentes, enquanto `-ttd` exibiria notas e tarefas .","Either \"text\" or \"json\"":"Ou \"text\" ou \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use o formato da lista longa. O formato é ID, NOTE_COUNT (para caderno), DATE, TODO_CHECKED (para tarefas), TITLE","Please select a notebook first.":"Por favor, selecione um caderno primeiro.","Creates a new notebook.":"Cria um novo caderno.","Creates a new note.":"Cria uma nova nota.","Notes can only be created within a notebook.":"As notas só podem ser criadas dentro de um caderno.","Creates a new to-do.":"Cria uma nova tarefa.","Moves the notes matching  to [notebook].":"Move as notas correspondentes  para [caderno].","Renames the given  (note or notebook) to .":"Renomeia o  dado (nota ou caderno) para .","Deletes the given notebook.":"Exclui o caderno informado.","Deletes the notebook without asking for confirmation.":"Exclui o caderno sem pedir confirmação.","Delete notebook? All notes within this notebook will also be deleted.":"Excluir o caderno? Todas as notas deste caderno notebook também serão excluídas.","Deletes the notes matching .":"Exclui as notas correspondentes ao padrão .","Deletes the notes without asking for confirmation.":"Exclui as notas sem pedir confirmação.","%d notes match this pattern. Delete them?":"%d notas correspondem a este padrão. Apagar todos?","Delete note?":"Apagar nota?","Searches for the given  in all the notes.":"Procura o padrão em todas as notas.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Define a propriedade  da  para o valor [value]. As propriedades possíveis são:\n\n%s","Displays summary about the notes and notebooks.":"Exibe sumário sobre as notas e cadernos.","Synchronises with remote storage.":"Sincroniza com o armazenamento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizar para destino fornecido (p padrão é o valor de configuração sync.target)","Authentication was not completed (did not receive an authentication token).":"A autenticação não foi concluída (não recebeu um token de autenticação).","Not authentified with %s. Please provide any missing credentials.":"Não autenticado com %s. Por favor, complete as credenciais que estiverem faltando.","Synchronisation is already in progress.":"A sincronização já está em andamento.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"O arquivo de bloqueio já está ativo. Se você sabe que nenhuma sincronização está ocorrendo, você pode excluir o arquivo de bloqueio em \"%s\" e retomar a operação.","Synchronisation target: %s (%s)":"Alvo de sincronização: %s (%s)","Cannot initialize synchroniser.":"Não é possível inicializar o sincronizador.","Starting synchronisation...":"Iniciando sincronização...","Cancelling... Please wait.":"Cancelando... Aguarde."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" pode ser \"add\", \"remove\" ou \"list\" para atribuir ou remover [tag] de [nota], ou para listar as notas associadas a [tag]. O comando `taglist` pode ser usado para listar todas as tags.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" pode ser \"toggle\" ou \"clear\". Use \"toggle\" para alternar entre as tarefas entre o estado completo e incompleto (se o alvo for uma nota comum, ele será convertido em uma tarefa a fazer). Use \"clear\" para converter a tarefa em uma nota normal.","Marks a to-do as non-completed.":"Marca uma tarefa como não completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Alterna para [caderno] - todas as operações adicionais acontecerão dentro deste caderno.","Displays version information":"Exibe informações da versão","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valores possíveis: %s.","Default: %s":"Padrão: %s","Possible keys/values:":"Possíveis chaves/valores:","Type `joplin help` for usage information.":"Digite 'joplin help' para informações de uso.","Fatal error:":"Erro fatal:","The application has been authorised - you may now close this browser tab.":"O aplicativo foi autorizado - agora você pode fechar esta guia do navegador.","The application has been successfully authorised.":"O aplicativo foi autorizado com sucesso.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra a seguinte URL no seu navegador para autenticar o aplicativo. O aplicativo criará um diretório em \"Apps/Joplin\" e somente lerá e gravará arquivos neste diretório. Não terá acesso a nenhum arquivo fora deste diretório nem a nenhum outro dado pessoal. Nenhum dado será compartilhado com terceiros.","Search:":"Procurar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bem-vindo ao Joplin!\n\nDigite `:help shortcuts` para obter a lista de atalhos de teclado, ou apenas `:help` para informações de utilização.\n\nPor exemplo, para criar um caderno digite `mb`; para criar uma nota, digite `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Um ou mais itens estão criptografados, e você pode precisar de informar uma senha master. Para fazer isso, por favor digite `e2ee decrypt`. Se você já forneceu a senha, os itens criptografados estão sendo decriptados em background e logo estarão disponíveis.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportando para \"%s\" com o formato \"%s\". Por favor, aguarde...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importando de \"%s\" com o formato \"%s\". Por favor, aguarde...","PDF File":"PDF File","File":"Arquivo","New note":"Nova nota","New to-do":"Nova tarefa","New notebook":"Novo caderno","Import":"Importar","Export":"Exportar","Print":"","Hide %s":"Ocultar %s","Quit":"Sair","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Colar","Search in all the notes":"Pesquisar em todas as notas","View":"Visualizar","Toggle editor layout":"Alternar layout do editor","Tools":"Ferramentas","Synchronisation status":"Status de sincronização","Encryption options":"Opções de Encriptação","General Options":"Opções Gerais","Help":"Ajuda","Website and documentation":"Website e documentação","Make a donation":"Fazer uma doação","Check for updates...":"Verificar atualizações...","About Joplin":"Sobre o Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Abrir %s","Exit":"Sair","OK":"OK","Cancel":"Cancelar","Current version is up-to-date.":"A versão atual está atualizada.","An update is available, do you want to download it now?":"Uma atualização está disponível, você quer baixar agora?","Yes":"Sim","No":"Não","Check synchronisation configuration":"Verificar a configuração da sincronização","Notes and settings are stored in: %s":"Notas e configurações estão armazenadas em: %s","Save":"Salvar","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Desabilitar a encriptação significa que *todas* as suas notas e anexos serão re-sincronizados e enviados sem encriptação. Você quer continuar?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Habilitar a encriptação significa que *todas* as suas notas e anexos serão re-sincronizados e re-enviados com encriptação. Não perca sua senha, pois, por medidas de segurança, esse será o *único* modo de decriptar seus dados! Para habilitar a encriptação, por favor entre sua senha abaixo.","Disable encryption":"Desabilitar encriptação","Enable encryption":"Habilitar encriptação","Master Keys":"Chaves mestras","Active":"Ativar","ID":"ID","Source":"Origem","Created":"Criado","Updated":"Atualizado","Password":"Senha","Password OK":"Senha OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Noto: Apenas uma chave máster será usada para encriptação (a que estiver marcada como \"ativa\"). Qualquer uma das chaves pode ser usada para decriptação, dependendo de como as notas ou os cadernos foram encriptados originalmente.","Missing Master Keys":"Chaves Master faltando","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"As chaves master com essas IDs são usadas para encriptar alguns de seus itens, contudo a aplicação atualmente não tem acesso a elas. Provavelmente, elas serão baixadas via sincronização.","Status":"Status","Encryption is:":"Encriptação está:","Back":"Voltar","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"O novo caderno \"%s\" será criado e o arquivo \"%s\" será importado para ele","Please create a notebook first.":"Primeiro, crie um caderno.","Please create a notebook first":"Primeiro, crie um caderno","Notebook title:":"Título do caderno:","Add or remove tags:":"Adicionar ou remover tags:","Separate each tag by a comma.":"Separe cada tag por vírgula.","Rename notebook:":"Renomear caderno:","Set alarm:":"Definir alarme:","Search":"Procurar","Layout":"Layout","Some items cannot be synchronised.":"Alguns itens não podem ser sincronizados.","View them now":"Visualizar agora","Some items cannot be decrypted.":"Alguns itens não podem ser decriptados.","Set the password":"Configurar a senha","Add or remove tags":"Adicionar ou remover tags","Switch between note and to-do type":"Alternar entre os tipos Nota e Tarefa","Delete":"Excluir","Delete notes?":"Excluir notas?","No notes in here. Create one by clicking on \"New note\".":"Não há notas aqui. Crie uma, clicando em \"Nova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Atualmente, não há cadernos. Crie um, clicando em \"Novo caderno\".","Open...":"Abrir...","Save as...":"Salvar como...","Unsupported link or message: %s":"Link ou mensagem não suportada: %s","Attach file":"Anexar arquivo","Tags":"Tags","Set alarm":"Definir alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota não possui conteúdo. Clique em \"%s\" para alternar para o editor, e edite a nota.","to-do":"tarefa","note":"nota","Creating new %s...":"Criando novo %s...","Refresh":"Atualizar","Clear":"Limpar (clear)","OneDrive Login":"Login no OneDrive","Options":"Opções","Synchronisation Status":"Status de sincronização","Encryption Options":"Opções de Encriptação","Remove this tag from all the notes?":"Remover esta tag de todas as notas?","Remove this search from the sidebar?":"Remover essa pesquisa da barra lateral?","Rename":"Renomear","Synchronise":"Sincronizar","Notebooks":"Cadernos","Searches":"Pesquisas","Please select where the sync status should be exported to":"Favor selecionar o local para onde o status de sincronia deveria ser exportado","Usage: %s":"Uso: %s","Unknown flag: %s":"Flag desconhecido: %s","File system":"Sistema de arquivos","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (apenas para testes)","WebDAV":"WebDAV","Unknown log level: %s":"Nível de log desconhecido: %s","Unknown level ID: %s":"Nível ID desconhecido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Não é possível atualizar token: faltam dados de autenticação. Iniciar a sincronização novamente pode corrigir o problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Não foi possível sincronizar com o OneDrive.\n\nEste erro geralmente acontece ao usar o OneDrive for Business, que infelizmente não pode ser suportado.\n\nConsidere usar uma conta regular do OneDrive.","Cannot access %s":"Não é possível acessar %s","Created local items: %d.":"Itens locais criados: %d.","Updated local items: %d.":"Itens locais atualizados: %d.","Created remote items: %d.":"Itens remotos criados: %d.","Updated remote items: %d.":"Itens remotos atualizados: %d.","Deleted local items: %d.":"Itens locais excluídos: %d.","Deleted remote items: %d.":"Itens remotos excluídos: %d.","Fetched items: %d/%d.":"Itens pesquisados: %d/%d.","State: \"%s\".":"Estado: \"%s\".","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Sincronização já em andamento. Estado: %s","Encrypted":"Encriptado","Encrypted items cannot be modified":"Itens encriptados não podem ser modificados","Conflicts":"Conflitos","A notebook with this title already exists: \"%s\"":"Já existe caderno com este título: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Os cadernos não podem ser nomeados como\"%s\", que é um título reservado.","Untitled":"Sem título","This note does not have geolocation information.":"Esta nota não possui informações de geolocalização.","Cannot copy note to \"%s\" notebook":"Não é possível copiar a nota para o caderno \"%s\"","Cannot move note to \"%s\" notebook":"Não é possível mover a nota para o caderno \"%s\"","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"O editor que será usado para abrir uma nota. Se nenhum for indicado, ele tentará detectar automaticamente o editor padrão.","Language":"Idioma","Date format":"Formato de data","Time format":"Formato de hora","Theme":"Tema","Light":"Light","Dark":"Dark","Uncompleted to-dos on top":"Mostrar tarefas incompletas no topo","Sort notes by":"Ordenar notas por","Reverse sort order":"Inverter ordem de classificação.","Save geo-location with notes":"Salvar  geolocalização com notas","When creating a new to-do:":"Quando criar uma nova tarefa:","Focus title":"Foco no título","Focus body":"Focar no corpo","When creating a new note:":"Quando criar uma nota nova:","Show tray icon":"Exibir tray icon","Global zoom percentage":"Porcentagem global do zoom","Editor font family":"Família de fontes do editor","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"O nomes da fonte não será verificado. Se estiver incorreto ou vazio, será usado por default uma fonte genérica monospace.","Automatically update the application":"Atualizar automaticamente o aplicativo","Synchronisation interval":"Intervalo de sincronização","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opções avançadas","Synchronisation target":"Alvo de sincronização","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"O alvo para onde sincronizar. Cada alvo pode ter parâmetros adicionais que são nomeados como `sync.NUM.NAME` (todos documentados abaixo).","Directory to synchronise with (absolute path)":"Diretório para sincronizar (caminho absoluto)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"O caminho para sincronizar, quando a sincronização do sistema de arquivos está habilitada. Veja `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Usuário da Nextcloud","Nextcloud password":"Senha da Nextcloud","WebDAV URL":"WebDAV URL","WebDAV username":"Usuário do WebDAV","WebDAV password":"Senha do WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Valor da opção inválida: \"%s\". Os valores possíveis são: %s.","Joplin Export File":"Arquivo de Exportação do Joplin","Markdown":"Markdown","Joplin Export Directory":"Diretório de Exportação do Joplin","Evernote Export File":"Arquivo de Exportação do Evernote","Directory":"DIretório","Cannot load \"%s\" module for format \"%s\"":"Não é possível carregar o módulo \"%s\" para o formato \"%s\"","Please specify import format for %s":"Favor especificar o formato de importação para %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Este item atualmente está encriptado: %s \"%s\". Favor aguardar que todos os itens sejam decriptados e tente novamente.","There is no data to export.":"Não há dados a exportar.","Please specify the notebook where the notes should be imported to.":"Por favor, especifique o caderno para onde as notas deveriam ser importadas.","Items that cannot be synchronised":"Os itens não podem ser sincronizados","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Estes itens continuarão no dispositivo mas não serão enviados ao alvo de sincronização. Para encontrar esses itens, ou pesquise pelo título ou pelo ID (que é exibido nos colchetes acima)","Sync status (synced items / total items)":"Status de sincronização (sincronizados / totais)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Em conflito: %d","To delete: %d":"Para excluir: %d","Folders":"Pastas","%s: %d notes":"%s: %d notas","Coming alarms":"Próximos alarmes","On %s: %s":"Em %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Atualmente, não há notas. Crie uma, clicando no botão (+).","Delete these notes?":"Excluir estas notas?","Log":"Log","Export Debug Report":"Exportar Relatório de Debug","Encryption Config":"Configuração de Encriptação","Configuration":"Configuração","Move to notebook...":"Mover para o caderno...","Move %d notes to notebook \"%s\"?":"Mover %d notas para o caderno \"%s\"?","Press to set the decryption password.":"Pressione para configurar a senha de decriptação.","Select date":"Selecionar data","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronização","Joplin website":"Site do Joplin","Master Key %s":"Chave Master %s","Created: %s":"Criado: %s","Password:":"Senha:","Password cannot be empty":"Senha não pode ser vazia","Enable":"Habilitar","The notebook could not be saved: %s":"O caderno não pôde ser salvo: %s","Edit notebook":"Editar caderno","Show all":"Exibir tudo","Errors only":"Somente erros","This note has been modified:":"Esta nota foi modificada:","Save changes":"Gravar alterações","Discard changes":"Descartar alterações","Unsupported image type: %s":"Tipo de imagem não suportada: %s","Attach photo":"Anexar foto","Attach any file":"Anexar qualquer arquivo","Convert to note":"Converter para nota","Convert to todo":"Converter para tarefa","Hide metadata":"Ocultar metadados","Show metadata":"Exibir metadados","View on map":"Ver no mapa","Delete notebook":"Excluir caderno","Login with OneDrive":"Login com OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Clique no botão (+) para criar uma nova nota ou caderno. Clique no menu lateral para acessar seus cadernos existentes.","You currently have no notebook. Create one by clicking on (+) button.":"Você não possui cadernos. Crie um clicando no botão (+).","Welcome":"Bem-vindo"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"Para eliminar uma tag, remova a tag das notas associadas a ela.","Please select the note or notebook to be deleted first.":"Por favor, primeiro, selecione a nota ou caderno a excluir.","Press Ctrl+D or type \"exit\" to exit the application":"Digite Ctrl+D ou \"exit\" para sair da aplicação","More than one item match \"%s\". Please narrow down your query.":"Mais que um item combinam com \"%s\". Por favor, refine sua pesquisa.","No notebook selected.":"Nenhum caderno selecionado.","No notebook has been specified.":"Nenhum caderno foi especificado.","Y":"S","n":"n","N":"N","y":"s","Cancelling background synchronisation... Please wait.":"Cancelando sincronização em segundo plano... Por favor, aguarde.","No such command: %s":"Não existe o comando: \"%s\"","The command \"%s\" is only available in GUI mode":"O comando \"%s\" está disponível somente em modo gráfico","Cannot change encrypted item":"Não pode mudar um item encriptado","Missing required argument: %s":"Argumento requerido faltando: %s","%s: %s":"%s: %s","Your choice: ":"Sua escolha: ","Invalid answer: %s":"Resposta inválida: %s","Attaches the given file to the note.":"Anexa o arquivo dado à nota.","Cannot find \"%s\".":"Não posso encontrar \"%s\".","Displays the given note.":"Exibe a nota informada.","Displays the complete information about note.":"Exibe a informação completa sobre a nota.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Obtém ou define um valor de configuração. Se [valor] não for fornecido, ele mostrará o valor de [nome]. Se nem [nome] nem [valor] forem fornecidos, ele listará a configuração atual.","Also displays unset and hidden config variables.":"Também exibe variáveis de configuração não definidas e ocultas.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Duplica as notas que correspondem a  para o [caderno]. Se nenhum caderno for especificado, a nota será duplicada no caderno atual.","Marks a to-do as done.":"Marca uma tarefa como feita.","Note is not a to-do: \"%s\"":"Nota não é uma tarefa: \"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Gerencia a configuração E2EE. Os comandos são `enable`, `disable`, `decrypt`, `status` e `target-status`.","Enter master password:":"Entre a senha master:","Operation cancelled":"Operação cancelada","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Iniciando decriptação... Por favor aguarde, pois isso pode demorar vários minutos, dependendo de quanto há para decriptar.","Completed decryption.":"Decriptação completada.","Enabled":"Desabilitado","Disabled":"Desabilitado","Encryption is: %s":"Encriptação está: %s","Edit note.":"Editar nota.","No text editor is defined. Please set it using `config editor `":"Nenhum editor de texto está definido. Defina-o usando o comando `config edit `","No active notebook.":"Nenhum caderno ativo.","Note does not exist: \"%s\". Create it?":"A nota não existe: \"%s\". Criar?","Starting to edit note. Close the editor to get back to the prompt.":"Começando a editar a nota. Feche o editor para voltar ao prompt.","Error opening note in editor: %s":"Erro ao abir a nota no editor: %s","Note has been saved.":"Nota gravada.","Exits the application.":"Sai da aplicação.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exporta os dados do Joplin para o diretório informado. Por padrão, ele exportará o banco de dados completo, incluindo cadernos, notas, tags e recursos.","Destination format: %s":"Formato do destino: %s","Exports only the given note.":"Exporta apenas a nota fornecida.","Exports only the given notebook.":"Exporta apenas o caderno fornecido.","Displays a geolocation URL for the note.":"Exibe uma URL de geolocalização para a nota.","Displays usage information.":"Exibe informações de uso.","For information on how to customise the shortcuts please visit %s":"Para informações sobre como customizar os atalhos, por favor visite %s","Shortcuts are not available in CLI mode.":"Os atalhos não estão disponíveis no modo CLI.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Digite `help [comando]` para obter mais informações sobre um comando; ou digite `help all` para informações completas de uso.","The possible commands are:":"Os comandos possíveis são:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"Em qualquer comando, uma nota ou caderno pode ser referenciado por título ou ID, ou usando os atalhos `$n` ou` $b` para, respectivamente, a nota ou caderno selecionado. `$c` pode ser usado para se referenciar ao item atualmente selecionado.","To move from one pane to another, press Tab or Shift+Tab.":"Para mover de um painel para outro, pressione Tab ou Shift + Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Use as setas e a Page Up/Page Down para rolar as listas e áreas de texto (incluindo este console).","To maximise/minimise the console, press \"TC\".":"Para maximizar / minimizar o console, pressione \"TC\".","To enter command line mode, press \":\"":"Para entrar no modo de linha de comando, pressione \":\"","To exit command line mode, press ESCAPE":"Para sair do modo de linha de comando, pressione o ESC","For the list of keyboard shortcuts and config options, type `help keymap`":"Para a lista completa de atalhos de teclado disponíveis, digite `help keymap`","Imports data into Joplin.":"Importa dados para o Joplin.","Source format: %s":"Formato da origem: \"%s\"","Do not ask for confirmation.":"Não pedir confirmação.","Found: %d.":"Encontrado: %d.","Created: %d.":"Criado: %d.","Updated: %d.":"Atualizado: %d.","Skipped: %d.":"Ignorado: %d.","Resources: %d.":"Recursos: %d.","Tagged: %d.":"Tag adicionada: %d.","Importing notes...":"Importando notas ...","The notes have been imported: %s":"As notas foram importadas: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Exibe as notas no caderno atual. Use `ls /` para exibir a lista de cadernos.","Displays only the first top  notes.":"Exibe apenas as primeiras notas.","Sorts the item by  (eg. title, updated_time, created_time).":"Classifica o item por  (ex.: title, update_time, created_time).","Reverses the sorting order.":"Inverte a ordem de classificação.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Exibe apenas os itens do(s) tipo(s) específico(s). Pode ser `n` para notas,` t` para tarefas, ou `nt` para notas e tarefas (por exemplo.` -tt` exibiria apenas os itens pendentes, enquanto `-ttd` exibiria notas e tarefas .","Either \"text\" or \"json\"":"Ou \"text\" ou \"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Use o formato da lista longa. O formato é ID, NOTE_COUNT (para caderno), DATE, TODO_CHECKED (para tarefas), TITLE","Please select a notebook first.":"Por favor, selecione um caderno primeiro.","Creates a new notebook.":"Cria um novo caderno.","Creates a new note.":"Cria uma nova nota.","Notes can only be created within a notebook.":"As notas só podem ser criadas dentro de um caderno.","Creates a new to-do.":"Cria uma nova tarefa.","Moves the notes matching  to [notebook].":"Move as notas correspondentes  para [caderno].","Renames the given  (note or notebook) to .":"Renomeia o  dado (nota ou caderno) para .","Deletes the given notebook.":"Exclui o caderno informado.","Deletes the notebook without asking for confirmation.":"Exclui o caderno sem pedir confirmação.","Delete notebook? All notes within this notebook will also be deleted.":"Excluir o caderno? Todas as notas deste caderno notebook também serão excluídas.","Deletes the notes matching .":"Exclui as notas correspondentes ao padrão .","Deletes the notes without asking for confirmation.":"Exclui as notas sem pedir confirmação.","%d notes match this pattern. Delete them?":"%d notas correspondem a este padrão. Apagar todos?","Delete note?":"Apagar nota?","Searches for the given  in all the notes.":"Procura o padrão em todas as notas.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Define a propriedade  da  para o valor [value]. As propriedades possíveis são:\n\n%s","Displays summary about the notes and notebooks.":"Exibe sumário sobre as notas e cadernos.","Synchronises with remote storage.":"Sincroniza com o armazenamento remoto.","Sync to provided target (defaults to sync.target config value)":"Sincronizar para destino fornecido (p padrão é o valor de configuração sync.target)","Authentication was not completed (did not receive an authentication token).":"A autenticação não foi concluída (não recebeu um token de autenticação).","Not authentified with %s. Please provide any missing credentials.":"Não autenticado com %s. Por favor, complete as credenciais que estiverem faltando.","Synchronisation is already in progress.":"A sincronização já está em andamento.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"O arquivo de bloqueio já está ativo. Se você sabe que nenhuma sincronização está ocorrendo, você pode excluir o arquivo de bloqueio em \"%s\" e retomar a operação.","Synchronisation target: %s (%s)":"Alvo de sincronização: %s (%s)","Cannot initialize synchroniser.":"Não é possível inicializar o sincronizador.","Starting synchronisation...":"Iniciando sincronização...","Cancelling... Please wait.":"Cancelando... Aguarde."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" pode ser \"add\", \"remove\" ou \"list\" para atribuir ou remover [tag] de [nota], ou para listar as notas associadas a [tag]. O comando `taglist` pode ser usado para listar todas as tags.","Invalid command: \"%s\"":"Comando inválido: \"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" pode ser \"toggle\" ou \"clear\". Use \"toggle\" para alternar entre as tarefas entre o estado completo e incompleto (se o alvo for uma nota comum, ele será convertido em uma tarefa a fazer). Use \"clear\" para converter a tarefa em uma nota normal.","Marks a to-do as non-completed.":"Marca uma tarefa como não completada.","Switches to [notebook] - all further operations will happen within this notebook.":"Alterna para [caderno] - todas as operações adicionais acontecerão dentro deste caderno.","Displays version information":"Exibe informações da versão","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Tipo: %s.","Possible values: %s.":"Valores possíveis: %s.","Default: %s":"Padrão: %s","Possible keys/values:":"Possíveis chaves/valores:","Type `joplin help` for usage information.":"Digite 'joplin help' para informações de uso.","Fatal error:":"Erro fatal:","The application has been authorised - you may now close this browser tab.":"O aplicativo foi autorizado - agora você pode fechar esta guia do navegador.","The application has been successfully authorised.":"O aplicativo foi autorizado com sucesso.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Abra a seguinte URL no seu navegador para autenticar o aplicativo. O aplicativo criará um diretório em \"Apps/Joplin\" e somente lerá e gravará arquivos neste diretório. Não terá acesso a nenhum arquivo fora deste diretório nem a nenhum outro dado pessoal. Nenhum dado será compartilhado com terceiros.","Search:":"Procurar:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Bem-vindo ao Joplin!\n\nDigite `:help shortcuts` para obter a lista de atalhos de teclado, ou apenas `:help` para informações de utilização.\n\nPor exemplo, para criar um caderno digite `mb`; para criar uma nota, digite `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Um ou mais itens estão criptografados, e você pode precisar de informar uma senha master. Para fazer isso, por favor digite `e2ee decrypt`. Se você já forneceu a senha, os itens criptografados estão sendo decriptados em background e logo estarão disponíveis.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Exportando para \"%s\" com o formato \"%s\". Por favor, aguarde...","Importing from \"%s\" as \"%s\" format. Please wait...":"Importando de \"%s\" com o formato \"%s\". Por favor, aguarde...","PDF File":"PDF File","File":"Arquivo","New note":"Nova nota","New to-do":"Nova tarefa","New notebook":"Novo caderno","Import":"Importar","Export":"Exportar","Print":"","Hide %s":"Ocultar %s","Quit":"Sair","Edit":"Editar","Copy":"Copiar","Cut":"Cortar","Paste":"Colar","Search in all the notes":"Pesquisar em todas as notas","View":"Visualizar","Toggle editor layout":"Alternar layout do editor","Tools":"Ferramentas","Synchronisation status":"Status de sincronização","Encryption options":"Opções de Encriptação","General Options":"Opções Gerais","Help":"Ajuda","Website and documentation":"Website e documentação","Make a donation":"Fazer uma doação","Check for updates...":"Verificar atualizações...","About Joplin":"Sobre o Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Abrir %s","Exit":"Sair","OK":"OK","Cancel":"Cancelar","Current version is up-to-date.":"A versão atual está atualizada.","An update is available, do you want to download it now?":"Uma atualização está disponível, você quer baixar agora?","Yes":"Sim","No":"Não","Check synchronisation configuration":"Verificar a configuração da sincronização","Notes and settings are stored in: %s":"Notas e configurações estão armazenadas em: %s","Save":"Salvar","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Desabilitar a encriptação significa que *todas* as suas notas e anexos serão re-sincronizados e enviados sem encriptação. Você quer continuar?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Habilitar a encriptação significa que *todas* as suas notas e anexos serão re-sincronizados e re-enviados com encriptação. Não perca sua senha, pois, por medidas de segurança, esse será o *único* modo de decriptar seus dados! Para habilitar a encriptação, por favor entre sua senha abaixo.","Disable encryption":"Desabilitar encriptação","Enable encryption":"Habilitar encriptação","Master Keys":"Chaves mestras","Active":"Ativar","ID":"ID","Source":"Origem","Created":"Criado","Updated":"Atualizado","Password":"Senha","Password OK":"Senha OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Noto: Apenas uma chave máster será usada para encriptação (a que estiver marcada como \"ativa\"). Qualquer uma das chaves pode ser usada para decriptação, dependendo de como as notas ou os cadernos foram encriptados originalmente.","Missing Master Keys":"Chaves Master faltando","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"As chaves master com essas IDs são usadas para encriptar alguns de seus itens, contudo a aplicação atualmente não tem acesso a elas. Provavelmente, elas serão baixadas via sincronização.","Status":"Status","Encryption is:":"Encriptação está:","Back":"Voltar","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"O novo caderno \"%s\" será criado e o arquivo \"%s\" será importado para ele","Please create a notebook first.":"Primeiro, crie um caderno.","Please create a notebook first":"Primeiro, crie um caderno","Notebook title:":"Título do caderno:","Add or remove tags:":"Adicionar ou remover tags:","Separate each tag by a comma.":"Separe cada tag por vírgula.","Rename notebook:":"Renomear caderno:","Set alarm:":"Definir alarme:","Search":"Procurar","Layout":"Layout","Some items cannot be synchronised.":"Alguns itens não podem ser sincronizados.","View them now":"Visualizar agora","Some items cannot be decrypted.":"Alguns itens não podem ser decriptados.","Set the password":"Configurar a senha","Add or remove tags":"Adicionar ou remover tags","Switch between note and to-do type":"Alternar entre os tipos Nota e Tarefa","Delete":"Excluir","Delete notes?":"Excluir notas?","No notes in here. Create one by clicking on \"New note\".":"Não há notas aqui. Crie uma, clicando em \"Nova nota\".","There is currently no notebook. Create one by clicking on \"New notebook\".":"Atualmente, não há cadernos. Crie um, clicando em \"Novo caderno\".","Open...":"Abrir...","Save as...":"Salvar como...","Unsupported link or message: %s":"Link ou mensagem não suportada: %s","Attach file":"Anexar arquivo","Tags":"Tags","Set alarm":"Definir alarme","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Esta nota não possui conteúdo. Clique em \"%s\" para alternar para o editor, e edite a nota.","to-do":"tarefa","note":"nota","Creating new %s...":"Criando novo %s...","Refresh":"Atualizar","Clear":"Limpar (clear)","OneDrive Login":"Login no OneDrive","Options":"Opções","Synchronisation Status":"Status de sincronização","Encryption Options":"Opções de Encriptação","Remove this tag from all the notes?":"Remover esta tag de todas as notas?","Remove this search from the sidebar?":"Remover essa pesquisa da barra lateral?","Rename":"Renomear","Synchronise":"Sincronizar","Notebooks":"Cadernos","Searches":"Pesquisas","Please select where the sync status should be exported to":"Favor selecionar o local para onde o status de sincronia deveria ser exportado","Usage: %s":"Uso: %s","Unknown flag: %s":"Flag desconhecido: %s","File system":"Sistema de arquivos","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (apenas para testes)","WebDAV":"WebDAV","Unknown log level: %s":"Nível de log desconhecido: %s","Unknown level ID: %s":"Nível ID desconhecido: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Não é possível atualizar token: faltam dados de autenticação. Iniciar a sincronização novamente pode corrigir o problema.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Não foi possível sincronizar com o OneDrive.\n\nEste erro geralmente acontece ao usar o OneDrive for Business, que infelizmente não pode ser suportado.\n\nConsidere usar uma conta regular do OneDrive.","Cannot access %s":"Não é possível acessar %s","Created local items: %d.":"Itens locais criados: %d.","Updated local items: %d.":"Itens locais atualizados: %d.","Created remote items: %d.":"Itens remotos criados: %d.","Updated remote items: %d.":"Itens remotos atualizados: %d.","Deleted local items: %d.":"Itens locais excluídos: %d.","Deleted remote items: %d.":"Itens remotos excluídos: %d.","Fetched items: %d/%d.":"Itens pesquisados: %d/%d.","State: %s.":"State: %s.","Cancelling...":"Cancelando...","Completed: %s":"Completado: %s","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"Sincronização já em andamento. Estado: %s","Encrypted":"Encriptado","Encrypted items cannot be modified":"Itens encriptados não podem ser modificados","Conflicts":"Conflitos","A notebook with this title already exists: \"%s\"":"Já existe caderno com este título: \"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"Os cadernos não podem ser nomeados como\"%s\", que é um título reservado.","Untitled":"Sem título","This note does not have geolocation information.":"Esta nota não possui informações de geolocalização.","Cannot copy note to \"%s\" notebook":"Não é possível copiar a nota para o caderno \"%s\"","Cannot move note to \"%s\" notebook":"Não é possível mover a nota para o caderno \"%s\"","Text editor":"Editor de texto","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"O editor que será usado para abrir uma nota. Se nenhum for indicado, ele tentará detectar automaticamente o editor padrão.","Language":"Idioma","Date format":"Formato de data","Time format":"Formato de hora","Theme":"Tema","Light":"Light","Dark":"Dark","Uncompleted to-dos on top":"Mostrar tarefas incompletas no topo","Sort notes by":"Ordenar notas por","Reverse sort order":"Inverter ordem de classificação.","Save geo-location with notes":"Salvar  geolocalização com notas","When creating a new to-do:":"Quando criar uma nova tarefa:","Focus title":"Foco no título","Focus body":"Focar no corpo","When creating a new note:":"Quando criar uma nota nova:","Show tray icon":"Exibir tray icon","Global zoom percentage":"Porcentagem global do zoom","Editor font family":"Família de fontes do editor","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"O nomes da fonte não será verificado. Se estiver incorreto ou vazio, será usado por default uma fonte genérica monospace.","Automatically update the application":"Atualizar automaticamente o aplicativo","Synchronisation interval":"Intervalo de sincronização","%d minutes":"%d minutos","%d hour":"%d hora","%d hours":"%d horas","Show advanced options":"Mostrar opções avançadas","Synchronisation target":"Alvo de sincronização","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"O alvo para onde sincronizar. Cada alvo pode ter parâmetros adicionais que são nomeados como `sync.NUM.NAME` (todos documentados abaixo).","Directory to synchronise with (absolute path)":"Diretório para sincronizar (caminho absoluto)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"O caminho para sincronizar, quando a sincronização do sistema de arquivos está habilitada. Veja `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Usuário da Nextcloud","Nextcloud password":"Senha da Nextcloud","WebDAV URL":"WebDAV URL","WebDAV username":"Usuário do WebDAV","WebDAV password":"Senha do WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Valor da opção inválida: \"%s\". Os valores possíveis são: %s.","Joplin Export File":"Arquivo de Exportação do Joplin","Markdown":"Markdown","Joplin Export Directory":"Diretório de Exportação do Joplin","Evernote Export File":"Arquivo de Exportação do Evernote","Directory":"DIretório","Cannot load \"%s\" module for format \"%s\"":"Não é possível carregar o módulo \"%s\" para o formato \"%s\"","Please specify import format for %s":"Favor especificar o formato de importação para %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Este item atualmente está encriptado: %s \"%s\". Favor aguardar que todos os itens sejam decriptados e tente novamente.","There is no data to export.":"Não há dados a exportar.","Please specify the notebook where the notes should be imported to.":"Por favor, especifique o caderno para onde as notas deveriam ser importadas.","Items that cannot be synchronised":"Os itens não podem ser sincronizados","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Estes itens continuarão no dispositivo mas não serão enviados ao alvo de sincronização. Para encontrar esses itens, ou pesquise pelo título ou pelo ID (que é exibido nos colchetes acima)","Sync status (synced items / total items)":"Status de sincronização (sincronizados / totais)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Total: %d/%d","Conflicted: %d":"Em conflito: %d","To delete: %d":"Para excluir: %d","Folders":"Pastas","%s: %d notes":"%s: %d notas","Coming alarms":"Próximos alarmes","On %s: %s":"Em %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Atualmente, não há notas. Crie uma, clicando no botão (+).","Delete these notes?":"Excluir estas notas?","Log":"Log","Export Debug Report":"Exportar Relatório de Debug","Encryption Config":"Configuração de Encriptação","Configuration":"Configuração","Move to notebook...":"Mover para o caderno...","Move %d notes to notebook \"%s\"?":"Mover %d notas para o caderno \"%s\"?","Press to set the decryption password.":"Pressione para configurar a senha de decriptação.","Select date":"Selecionar data","Confirm":"Confirmar","Cancel synchronisation":"Cancelar sincronização","Joplin website":"Site do Joplin","Master Key %s":"Chave Master %s","Created: %s":"Criado: %s","Password:":"Senha:","Password cannot be empty":"Senha não pode ser vazia","Enable":"Habilitar","The notebook could not be saved: %s":"O caderno não pôde ser salvo: %s","Edit notebook":"Editar caderno","Show all":"Exibir tudo","Errors only":"Somente erros","This note has been modified:":"Esta nota foi modificada:","Save changes":"Gravar alterações","Discard changes":"Descartar alterações","Unsupported image type: %s":"Tipo de imagem não suportada: %s","Attach photo":"Anexar foto","Attach any file":"Anexar qualquer arquivo","Convert to note":"Converter para nota","Convert to todo":"Converter para tarefa","Hide metadata":"Ocultar metadados","Show metadata":"Exibir metadados","View on map":"Ver no mapa","Delete notebook":"Excluir caderno","Login with OneDrive":"Login com OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Clique no botão (+) para criar uma nova nota ou caderno. Clique no menu lateral para acessar seus cadernos existentes.","You currently have no notebook. Create one by clicking on (+) button.":"Você não possui cadernos. Crie um clicando no botão (+).","Welcome":"Bem-vindo"}
        \ No newline at end of file
        diff --git a/ReactNativeClient/locales/ru_RU.json b/ReactNativeClient/locales/ru_RU.json
        index 29f9ce14bd..98571ae50e 100644
        --- a/ReactNativeClient/locales/ru_RU.json
        +++ b/ReactNativeClient/locales/ru_RU.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"Чтобы удалить тег, уберите его с ассоциированных с ним заметок.","Please select the note or notebook to be deleted first.":"Сначала выберите заметку или блокнот, которые должны быть удалены.","Press Ctrl+D or type \"exit\" to exit the application":"Для выхода из приложения нажмите Ctrl+D или введите «exit»","More than one item match \"%s\". Please narrow down your query.":"Более одного элемента соответствуют «%s». Уточните ваш запрос, пожалуйста.","No notebook selected.":"Не выбран блокнот.","No notebook has been specified.":"Не был указан блокнот.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Отмена фоновой синхронизации... Пожалуйста, ожидайте.","No such command: %s":"Нет такой команды: %s","The command \"%s\" is only available in GUI mode":"Команда «%s» доступна только в режиме GUI","Cannot change encrypted item":"Не удалось изменить зашифрованный элемент","Missing required argument: %s":"Отсутствует требуемый аргумент: %s","%s: %s":"%s: %s","Your choice: ":"Ваш выбор: ","Invalid answer: %s":"Неверный ответ: %s","Attaches the given file to the note.":"Прикрепляет заданный файл к заметке.","Cannot find \"%s\".":"Не удалось найти «%s».","Displays the given note.":"Отображает заданную заметку.","Displays the complete information about note.":"Отображает полную информацию о заметке.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Выводит или задаёт параметр конфигурации. Если [value] не указано, выведет значение [name]. Если не указаны ни [name], ни [value], выведет текущую конфигурацию.","Also displays unset and hidden config variables.":"Также выводит неустановленные или скрытые переменные конфигурации.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Дублирует заметки, содержащие , в [notebook]. Если блокнот не указан, заметки продублируются в текущем.","Marks a to-do as done.":"Отмечает задачу как завершённую.","Note is not a to-do: \"%s\"":"Заметка не является задачей: «%s»","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Управляет конфигурацией E2EE. Команды: `enable`, `disable`, `decrypt`, `status` и `target-status`.","Enter master password:":"Введите мастер-пароль:","Operation cancelled":"Операция отменена","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Запуск расшифровки... Пожалуйста, ожидайте. Время расшифровки зависит от объёма расшифровываемых данных.","Completed decryption.":"Расшифровка завершена.","Enabled":"Включено","Disabled":"Отключено","Encryption is: %s":"Шифрование: %s","Edit note.":"Редактировать заметку.","No text editor is defined. Please set it using `config editor `":"Текстовый редактор не определён. Задайте его, используя `config editor `","No active notebook.":"Нет активного блокнота.","Note does not exist: \"%s\". Create it?":"Заметки не существует: «%s». Создать?","Starting to edit note. Close the editor to get back to the prompt.":"Запуск редактирования заметки. Закройте редактор, чтобы вернуться к командной строке.","Error opening note in editor: %s":"Ошибка при открытии заметки в редакторе: %s","Note has been saved.":"Заметка сохранена.","Exits the application.":"Выход из приложения.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Экспортирует данные Joplin по заданному пути. По умолчанию экспортируется полная база данных, включая блокноты, заметки, теги и ресурсы.","Destination format: %s":"Целевой формат: %s","Exports only the given note.":"Экспортирует только заданную заметку.","Exports only the given notebook.":"Экспортирует только заданный блокнот.","Displays a geolocation URL for the note.":"Выводит URL геолокации для заметки.","Displays usage information.":"Выводит информацию об использовании.","For information on how to customise the shortcuts please visit %s":"Информацию по настройке сочетаний можно получить, посетив %s","Shortcuts are not available in CLI mode.":"Ярлыки недоступны в режиме командной строки.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Введите `help [команда]` для получения информации о команде или `help all` для получения полной информации по использованию.","The possible commands are:":"Доступные команды:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"В любой команде можно ссылаться на заметку или блокнот по названию или ID, либо используя ярлыки `$n` или `$b`, указывающие на текущую заметку или блокнот соответственно. С помощью `$c` можно ссылаться на текущий выбранный элемент.","To move from one pane to another, press Tab or Shift+Tab.":"Чтобы переключаться между панелями, нажимайте Tab или Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Используйте стрелки и клавиши перелистывания страницы вверх/вниз для прокрутки списков и текстовых областей (включая эту консоль).","To maximise/minimise the console, press \"TC\".":"Чтобы развернуть/свернуть консоль, нажимайте «TC».","To enter command line mode, press \":\"":"Чтобы войти в режим командной строки, нажмите «:»","To exit command line mode, press ESCAPE":"Чтобы выйти из режима командной строки, нажмите ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Для просмотра списка клавиатурных сочетаний и настроек конфигурации введите `help keymap`","Imports data into Joplin.":"Импортирует данные в Joplin.","Source format: %s":"Исходный формат: %s","Do not ask for confirmation.":"Не запрашивать подтверждение.","Found: %d.":"Найдено: %d.","Created: %d.":"Создано: %d.","Updated: %d.":"Обновлено: %d.","Skipped: %d.":"Пропущено: %d.","Resources: %d.":"Ресурсов: %d.","Tagged: %d.":"С тегами: %d.","Importing notes...":"Импорт заметок...","The notes have been imported: %s":"Импортировано заметок: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Выводит заметки текущего блокнота. Используйте `ls /` для вывода списка блокнотов.","Displays only the first top  notes.":"Выводит только первые  заметок.","Sorts the item by  (eg. title, updated_time, created_time).":"Сортирует элементы по  (например, title, updated_time, created_time).","Reverses the sorting order.":"Обращает порядок сортировки.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Выводит только элементы указанного типа. Может быть `n` для заметок, `t` для задач или `nt` для заметок и задач (например, `-tt` выведет только задачи, в то время как `-ttd` выведет заметки и задачи).","Either \"text\" or \"json\"":"«text» или «json»","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Использовать формат длинного списка. Форматом является ID, NOTE_COUNT (для блокнотов), DATE, TODO_CHECKED (для задач), TITLE","Please select a notebook first.":"Сначала выберите блокнот.","Creates a new notebook.":"Создаёт новый блокнот.","Creates a new note.":"Создаёт новую заметку.","Notes can only be created within a notebook.":"Заметки могут быть созданы только в блокноте.","Creates a new to-do.":"Создаёт новую задачу.","Moves the notes matching  to [notebook].":"Перемещает заметки, содержащие  в [notebook].","Renames the given  (note or notebook) to .":"Переименовывает заданный  (заметку или блокнот) в .","Deletes the given notebook.":"Удаляет заданный блокнот.","Deletes the notebook without asking for confirmation.":"Удаляет блокнот без запроса подтверждения.","Delete notebook? All notes within this notebook will also be deleted.":"Удалить блокнот? Все заметки в этом блокноте также будут удалены.","Deletes the notes matching .":"Удаляет заметки, соответствующие .","Deletes the notes without asking for confirmation.":"Удаляет заметки без запроса подтверждения.","%d notes match this pattern. Delete them?":"%d заметок соответствуют этому шаблону. Удалить их?","Delete note?":"Удалить заметку?","Searches for the given  in all the notes.":"Запросы для заданного  во всех заметках.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Устанавливает для свойства  заданной  заданное [value]. Возможные свойства:\n\n%s","Displays summary about the notes and notebooks.":"Выводит общую информацию о заметках и блокнотах.","Synchronises with remote storage.":"Синхронизирует с удалённым хранилищем.","Sync to provided target (defaults to sync.target config value)":"Синхронизация с заданной целью (по умолчанию — значение конфигурации sync.target)","Authentication was not completed (did not receive an authentication token).":"Аутентификация не была завершена (не получен токен аутентификации).","Not authentified with %s. Please provide any missing credentials.":"Не аутентифицировано с %s. Пожалуйста, предоставьте все недостающие данные.","Synchronisation is already in progress.":"Синхронизация уже выполняется.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Файл блокировки уже установлен. Если вам известно, что синхронизация не производится, вы можете удалить файл блокировки в «%s» и возобновить операцию.","Synchronisation target: %s (%s)":"Цель синхронизации: %s (%s)","Cannot initialize synchroniser.":"Не удалось инициировать синхронизацию.","Starting synchronisation...":"Начало синхронизации...","Cancelling... Please wait.":"Отмена... Пожалуйста, ожидайте."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" может быть «add», «remove» или «list», чтобы назначить или убрать [tag] с [note], или чтобы вывести список заметок, ассоциированых с [tag]. Команда `tag list` может быть использована для вывода списка всех тегов.","Invalid command: \"%s\"":"Неверная команда: «%s»"," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" может быть «toggle» или «clear». «toggle» используется для переключения статуса заданной задачи на завершённую или незавершённую (если применить к обычной заметке, она будет преобразована в задачу). «clear» используется для преобразования задачи обратно в обычную заметку.","Marks a to-do as non-completed.":"Отмечает задачу как незавершённую.","Switches to [notebook] - all further operations will happen within this notebook.":"Переключает на [блокнот] — все дальнейшие операции будут происходить в этом блокноте.","Displays version information":"Выводит информацию о версии","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Тип: %s.","Possible values: %s.":"Возможные значения: %s.","Default: %s":"По умолчанию: %s","Possible keys/values:":"Возможные ключи/значения:","Type `joplin help` for usage information.":"Введите `joplin help` для получения информации об использовании.","Fatal error:":"Фатальная ошибка:","The application has been authorised - you may now close this browser tab.":"Приложение авторизовано — можно закрыть вкладку браузера.","The application has been successfully authorised.":"Приложение успешно авторизовано.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Откройте следующую ссылку в вашем браузере для аутентификации приложения. Приложением будет создан каталог «Apps/Joplin». Чтение и запись файлов будет осуществляться только в его пределах. У приложения не будет доступа к каким-либо файлам за пределами этого каталога и другим личным данным. Никакая информация не будет передана третьим лицам.","Search:":"Поиск:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Добро пожаловать в Joplin!\n\nВведите `:help shortcuts` для просмотра списка клавиатурных сочетаний или просто `:help` для просмотра информации об использовании.\n\nНапример, для создания блокнота нужно ввести `mb`, для создания заметки — `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Один или несколько элементов сейчас зашифрованы и может потребоваться, чтобы вы предоставили мастер-пароль. Для этого введите, пожалуйста, «e2ee decrypt». Если пароль уже был вами предоставлен, зашифрованные элементы расшифруются в фоновом режиме и вскоре станут доступны.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Экспорт в «%s» в формате «%s». Пожалуйста, ожидайте...","Importing from \"%s\" as \"%s\" format. Please wait...":"Импорт из «%s» в формате «%s». Пожалуйста, ожидайте...","PDF File":"PDF-файл","File":"Файл","New note":"Новая заметка","New to-do":"Новая задача","New notebook":"Новый блокнот","Import":"Импорт","Export":"Экспорт","Print":"Печать","Hide %s":"Скрыть %s","Quit":"Выход","Edit":"Правка","Copy":"Копировать","Cut":"Вырезать","Paste":"Вставить","Search in all the notes":"Поиск во всех заметках","View":"Вид","Toggle editor layout":"Переключить вид редактора","Tools":"Инструменты","Synchronisation status":"Статус синхронизации","Encryption options":"Настройки шифрования","General Options":"Основные настройки","Help":"Помощь","Website and documentation":"Сайт и документация","Make a donation":"Сделать пожертвование","Check for updates...":"Проверить обновления...","About Joplin":"О Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Открыть %s","Exit":"Выход","OK":"OK","Cancel":"Отмена","Current version is up-to-date.":"Вы используете самую свежую версию.","An update is available, do you want to download it now?":"Доступно обновление. Желаете скачать его сейчас?","Yes":"Да","No":"Нет","Check synchronisation configuration":"Проверить настройки синхронизации","Notes and settings are stored in: %s":"Заметки и настройки сохранены в: %s","Save":"Сохранить","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Отключение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в расшифрованном виде к цели синхронизации. Желаете продолжить?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Включение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в зашифрованном виде к цели синхронизации. Не теряйте пароль, так как в целях безопасности *только* с его помощью можно будет расшифровать данные! Чтобы включить шифрование, введите ваш пароль ниже.","Disable encryption":"Отключить шифрование","Enable encryption":"Включить шифрование","Master Keys":"Мастер-ключи","Active":"Активен","ID":"ID","Source":"Источник","Created":"Создан","Updated":"Обновлён","Password":"Пароль","Password OK":"Пароль OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Внимание: Для шифрования может быть использован только один мастер-ключ (отмеченный как «активный»). Для расшифровки может использоваться любой из ключей, в зависимости от того, как изначально были зашифрованы заметки или блокноты.","Missing Master Keys":"Недостающие мастер-ключи","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"Мастер-ключи с такими ID используются для шифрования некоторых из ваших элементов, однако у приложения сейчас нет к ним доступа. Скорее всего, они загрузятся при синхронизации.","Status":"Статус","Encryption is:":"Шифрование:","Back":"Назад","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Будет создан новый блокнот «%s» и в него будет импортирован файл «%s»","Please create a notebook first.":"Сначала создайте блокнот.","Please create a notebook first":"Сначала создайте блокнот","Notebook title:":"Название блокнота:","Add or remove tags:":"Добавить или удалить теги:","Separate each tag by a comma.":"Каждый тег отделяется запятой.","Rename notebook:":"Переименовать блокнот:","Set alarm:":"Установить напоминание:","Search":"Поиск","Layout":"Вид","Some items cannot be synchronised.":"Некоторые элементы не могут быть синхронизированы.","View them now":"Просмотреть их сейчас","Some items cannot be decrypted.":"Некоторые элементы не могут быть расшифрованы.","Set the password":"Установить пароль","Add or remove tags":"Добавить или удалить теги","Switch between note and to-do type":"Переключить тип между заметкой и задачей","Delete":"Удалить","Delete notes?":"Удалить заметки?","No notes in here. Create one by clicking on \"New note\".":"Здесь нет заметок. Создайте новую нажатием на «Новая заметка».","There is currently no notebook. Create one by clicking on \"New notebook\".":"Сейчас здесь нет блокнотов. Создайте новый нажав «Новый блокнот».","Open...":"Открыть...","Save as...":"Сохранить как...","Unsupported link or message: %s":"Неподдерживаемая ссыка или сообщение: %s","Attach file":"Прикрепить файл","Tags":"Теги","Set alarm":"Установить напоминание","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Заметка пуста. Нажмите на «%s», чтобы переключиться в редактор и отредактировать её.","to-do":"задача","note":"заметка","Creating new %s...":"Создание новой %s...","Refresh":"Обновить","Clear":"Очистить","OneDrive Login":"Вход в OneDrive","Options":"Настройки","Synchronisation Status":"Статус синхронизации","Encryption Options":"Настройки шифрования","Remove this tag from all the notes?":"Убрать этот тег со всех заметок?","Remove this search from the sidebar?":"Убрать этот запрос с боковой панели?","Rename":"Переименовать","Synchronise":"Синхронизировать","Notebooks":"Блокноты","Searches":"Запросы","Please select where the sync status should be exported to":"Выберите, куда должен быть экспортирован статус синхронизации","Usage: %s":"Использование: %s","Unknown flag: %s":"Неизвестный флаг: %s","File system":"Файловая система","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (только для тестирования)","WebDAV":"WebDAV","Unknown log level: %s":"Неизвестный уровень лога: %s","Unknown level ID: %s":"Неизвестный ID уровня: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Не удалось обновить токен: отсутствуют данные аутентификации. Повторный запуск синхронизации может решить проблему.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Не удалось синхронизироваться с OneDrive.\n\nТакая ошибка часто возникает при использовании OneDrive для бизнеса, который, к сожалению, не поддерживается.\n\nПожалуйста, рассмотрите возможность использования обычного аккаунта OneDrive.","Cannot access %s":"Не удалось получить доступ %s","Created local items: %d.":"Создано локальных элементов: %d.","Updated local items: %d.":"Обновлено локальных элементов: %d.","Created remote items: %d.":"Создано удалённых элементов: %d.","Updated remote items: %d.":"Обновлено удалённых элементов: %d.","Deleted local items: %d.":"Удалено локальных элементов: %d.","Deleted remote items: %d.":"Удалено удалённых элементов: %d.","Fetched items: %d/%d.":"Получено элементов: %d/%d.","State: \"%s\".":"Статус: «%s».","Cancelling...":"Отмена...","Completed: %s":"Завершено: %s","Last error: %s":"Последняя ошибка: %s","Idle":"Простой","In progress":"Выполнение","Synchronisation is already in progress. State: %s":"Синхронизация уже выполняется. Статус: %s","Encrypted":"Зашифровано","Encrypted items cannot be modified":"Зашифрованные элементы не могут быть изменены","Conflicts":"Конфликты","A notebook with this title already exists: \"%s\"":"Блокнот с таким названием уже существует: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"Блокнот не может быть назван «%s», это зарезервированное название.","Untitled":"Без имени","This note does not have geolocation information.":"Эта заметка не содержит информации о геолокации.","Cannot copy note to \"%s\" notebook":"Не удалось скопировать заметку в блокнот «%s»","Cannot move note to \"%s\" notebook":"Не удалось переместить заметку в блокнот «%s»","Text editor":"Текстовый редактор","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Редактор, в котором будут открываться заметки. Если не задан, будет произведена попытка автоматического определения редактора по умолчанию.","Language":"Язык","Date format":"Формат даты","Time format":"Формат времени","Theme":"Тема","Light":"Светлая","Dark":"Тёмная","Uncompleted to-dos on top":"Незавершённые задачи сверху","Sort notes by":"Сортировать заметки по","Reverse sort order":"Обратный порядок сортировки","Save geo-location with notes":"Сохранять информацию о геолокации в заметках","When creating a new to-do:":"При создании новой задачи:","Focus title":"Фокус на названии","Focus body":"Фокус на содержимом","When creating a new note:":"При создании новой заметки:","Show tray icon":"Показывать иконку в панели задач","Global zoom percentage":"Глобальный масштаб в процентах","Editor font family":"Семейство шрифтов редактора","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"Название шрифта не проверяется. Если оно указано некорректно или не задано, будет использоваться стандартный моноширинный шрифт.","Automatically update the application":"Автоматически обновлять приложение","Synchronisation interval":"Интервал синхронизации","%d minutes":"%d минут","%d hour":"%d час","%d hours":"%d часов","Show advanced options":"Показывать расширенные настройки","Synchronisation target":"Цель синхронизации","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Цель синхронизации. Каждая цель синхронизации может иметь дополнительные параметры, именованные как «sync.NUM.NAME» (все описаны ниже).","Directory to synchronise with (absolute path)":"Каталог синхронизации (абсолютный путь)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Путь для синхронизации при включённой синхронизации с файловой системой. См. `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Имя пользователя Nextcloud","Nextcloud password":"Пароль Nextcloud","WebDAV URL":"URL WebDAV","WebDAV username":"Имя пользователя WebDAV","WebDAV password":"Пароль WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Неверное значение параметра: «%s». Доступные значения: %s.","Joplin Export File":"Файл экспорта Joplin","Markdown":"Markdown","Joplin Export Directory":"Папка экспорта Joplin","Evernote Export File":"Файл экспорта Evernote","Directory":"Директория","Cannot load \"%s\" module for format \"%s\"":"Не удалось загрузить модуль «%s» для формата «%s»","Please specify import format for %s":"Пожалуйста, укажите формат импорта для %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Этот элемент сейчас зашифрован: %s «%s». Пожалуйста, дождитесь расшифровки всех элементов и попробуйте снова.","There is no data to export.":"Нет данных для экспорта.","Please specify the notebook where the notes should be imported to.":"Пожалуйста, укажите блокнот, в который должны быть импортированы заметки.","Items that cannot be synchronised":"Элементы, которые не могут быть синхронизированы","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Эти элементы будут оставаться на устройстве, но не будут загружены в целевой объект синхронизации. Чтобы найти эти элементы, воспользуйтесь поиском по названию или ID (который указывается в скобках выше).","Sync status (synced items / total items)":"Статус синхронизации (элементов синхронизировано/всего)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Всего: %d/%d","Conflicted: %d":"Конфликтующих: %d","To delete: %d":"К удалению: %d","Folders":"Папки","%s: %d notes":"%s: %d заметок","Coming alarms":"Грядущие напоминания","On %s: %s":"В %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Сейчас здесь нет заметок. Создаёте новую, нажав кнопку (+).","Delete these notes?":"Удалить эти заметки?","Log":"Лог","Export Debug Report":"Экспортировать отладочный отчёт","Encryption Config":"Конфигурация шифрования","Configuration":"Конфигурация","Move to notebook...":"Переместить в блокнот...","Move %d notes to notebook \"%s\"?":"Переместить %d заметок в блокнот «%s»?","Press to set the decryption password.":"Нажмите, чтобы установить пароль для расшифровки.","Select date":"Выбрать дату","Confirm":"Подтвердить","Cancel synchronisation":"Отменить синхронизацию","Joplin website":"Сайт Joplin","Master Key %s":"Мастер-ключ %s","Created: %s":"Создано: %s","Password:":"Пароль:","Password cannot be empty":"Пароль не может быть пустым","Enable":"Включено","The notebook could not be saved: %s":"Не удалось сохранить блокнот: %s","Edit notebook":"Редактировать блокнот","Show all":"Показать всё","Errors only":"Только ошибки","This note has been modified:":"Эта заметка была изменена:","Save changes":"Сохранить изменения","Discard changes":"Отменить изменения","Unsupported image type: %s":"Неподдерживаемый формат изображения: %s","Attach photo":"Прикрепить фото","Attach any file":"Прикрепить любой файл","Convert to note":"Преобразовать в заметку","Convert to todo":"Преобразовать в задачу","Hide metadata":"Скрыть метаданные","Show metadata":"Показать метаданные","View on map":"Посмотреть на карте","Delete notebook":"Удалить блокнот","Login with OneDrive":"Войти в OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Нажмите на кнопку (+) для создания новой заметки или нового блокнота. Нажмите на боковое меню для доступа к вашим существующим блокнотам.","You currently have no notebook. Create one by clicking on (+) button.":"У вас сейчас нет блокнота. Создайте его нажатием на кнопку (+).","Welcome":"Добро пожаловать"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"Чтобы удалить тег, уберите его с ассоциированных с ним заметок.","Please select the note or notebook to be deleted first.":"Сначала выберите заметку или блокнот, которые должны быть удалены.","Press Ctrl+D or type \"exit\" to exit the application":"Для выхода из приложения нажмите Ctrl+D или введите «exit»","More than one item match \"%s\". Please narrow down your query.":"Более одного элемента соответствуют «%s». Уточните ваш запрос, пожалуйста.","No notebook selected.":"Не выбран блокнот.","No notebook has been specified.":"Не был указан блокнот.","Y":"Y","n":"n","N":"N","y":"y","Cancelling background synchronisation... Please wait.":"Отмена фоновой синхронизации... Пожалуйста, ожидайте.","No such command: %s":"Нет такой команды: %s","The command \"%s\" is only available in GUI mode":"Команда «%s» доступна только в режиме GUI","Cannot change encrypted item":"Не удалось изменить зашифрованный элемент","Missing required argument: %s":"Отсутствует требуемый аргумент: %s","%s: %s":"%s: %s","Your choice: ":"Ваш выбор: ","Invalid answer: %s":"Неверный ответ: %s","Attaches the given file to the note.":"Прикрепляет заданный файл к заметке.","Cannot find \"%s\".":"Не удалось найти «%s».","Displays the given note.":"Отображает заданную заметку.","Displays the complete information about note.":"Отображает полную информацию о заметке.","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"Выводит или задаёт параметр конфигурации. Если [value] не указано, выведет значение [name]. Если не указаны ни [name], ни [value], выведет текущую конфигурацию.","Also displays unset and hidden config variables.":"Также выводит неустановленные или скрытые переменные конфигурации.","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"Дублирует заметки, содержащие , в [notebook]. Если блокнот не указан, заметки продублируются в текущем.","Marks a to-do as done.":"Отмечает задачу как завершённую.","Note is not a to-do: \"%s\"":"Заметка не является задачей: «%s»","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"Управляет конфигурацией E2EE. Команды: `enable`, `disable`, `decrypt`, `status` и `target-status`.","Enter master password:":"Введите мастер-пароль:","Operation cancelled":"Операция отменена","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"Запуск расшифровки... Пожалуйста, ожидайте. Время расшифровки зависит от объёма расшифровываемых данных.","Completed decryption.":"Расшифровка завершена.","Enabled":"Включено","Disabled":"Отключено","Encryption is: %s":"Шифрование: %s","Edit note.":"Редактировать заметку.","No text editor is defined. Please set it using `config editor `":"Текстовый редактор не определён. Задайте его, используя `config editor `","No active notebook.":"Нет активного блокнота.","Note does not exist: \"%s\". Create it?":"Заметки не существует: «%s». Создать?","Starting to edit note. Close the editor to get back to the prompt.":"Запуск редактирования заметки. Закройте редактор, чтобы вернуться к командной строке.","Error opening note in editor: %s":"Ошибка при открытии заметки в редакторе: %s","Note has been saved.":"Заметка сохранена.","Exits the application.":"Выход из приложения.","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Экспортирует данные Joplin по заданному пути. По умолчанию экспортируется полная база данных, включая блокноты, заметки, теги и ресурсы.","Destination format: %s":"Целевой формат: %s","Exports only the given note.":"Экспортирует только заданную заметку.","Exports only the given notebook.":"Экспортирует только заданный блокнот.","Displays a geolocation URL for the note.":"Выводит URL геолокации для заметки.","Displays usage information.":"Выводит информацию об использовании.","For information on how to customise the shortcuts please visit %s":"Информацию по настройке сочетаний можно получить, посетив %s","Shortcuts are not available in CLI mode.":"Ярлыки недоступны в режиме командной строки.","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Введите `help [команда]` для получения информации о команде или `help all` для получения полной информации по использованию.","The possible commands are:":"Доступные команды:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"В любой команде можно ссылаться на заметку или блокнот по названию или ID, либо используя ярлыки `$n` или `$b`, указывающие на текущую заметку или блокнот соответственно. С помощью `$c` можно ссылаться на текущий выбранный элемент.","To move from one pane to another, press Tab or Shift+Tab.":"Чтобы переключаться между панелями, нажимайте Tab или Shift+Tab.","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"Используйте стрелки и клавиши перелистывания страницы вверх/вниз для прокрутки списков и текстовых областей (включая эту консоль).","To maximise/minimise the console, press \"TC\".":"Чтобы развернуть/свернуть консоль, нажимайте «TC».","To enter command line mode, press \":\"":"Чтобы войти в режим командной строки, нажмите «:»","To exit command line mode, press ESCAPE":"Чтобы выйти из режима командной строки, нажмите ESCAPE","For the list of keyboard shortcuts and config options, type `help keymap`":"Для просмотра списка клавиатурных сочетаний и настроек конфигурации введите `help keymap`","Imports data into Joplin.":"Импортирует данные в Joplin.","Source format: %s":"Исходный формат: %s","Do not ask for confirmation.":"Не запрашивать подтверждение.","Found: %d.":"Найдено: %d.","Created: %d.":"Создано: %d.","Updated: %d.":"Обновлено: %d.","Skipped: %d.":"Пропущено: %d.","Resources: %d.":"Ресурсов: %d.","Tagged: %d.":"С тегами: %d.","Importing notes...":"Импорт заметок...","The notes have been imported: %s":"Импортировано заметок: %s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"Выводит заметки текущего блокнота. Используйте `ls /` для вывода списка блокнотов.","Displays only the first top  notes.":"Выводит только первые  заметок.","Sorts the item by  (eg. title, updated_time, created_time).":"Сортирует элементы по  (например, title, updated_time, created_time).","Reverses the sorting order.":"Обращает порядок сортировки.","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"Выводит только элементы указанного типа. Может быть `n` для заметок, `t` для задач или `nt` для заметок и задач (например, `-tt` выведет только задачи, в то время как `-ttd` выведет заметки и задачи).","Either \"text\" or \"json\"":"«text» или «json»","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"Использовать формат длинного списка. Форматом является ID, NOTE_COUNT (для блокнотов), DATE, TODO_CHECKED (для задач), TITLE","Please select a notebook first.":"Сначала выберите блокнот.","Creates a new notebook.":"Создаёт новый блокнот.","Creates a new note.":"Создаёт новую заметку.","Notes can only be created within a notebook.":"Заметки могут быть созданы только в блокноте.","Creates a new to-do.":"Создаёт новую задачу.","Moves the notes matching  to [notebook].":"Перемещает заметки, содержащие  в [notebook].","Renames the given  (note or notebook) to .":"Переименовывает заданный  (заметку или блокнот) в .","Deletes the given notebook.":"Удаляет заданный блокнот.","Deletes the notebook without asking for confirmation.":"Удаляет блокнот без запроса подтверждения.","Delete notebook? All notes within this notebook will also be deleted.":"Удалить блокнот? Все заметки в этом блокноте также будут удалены.","Deletes the notes matching .":"Удаляет заметки, соответствующие .","Deletes the notes without asking for confirmation.":"Удаляет заметки без запроса подтверждения.","%d notes match this pattern. Delete them?":"%d заметок соответствуют этому шаблону. Удалить их?","Delete note?":"Удалить заметку?","Searches for the given  in all the notes.":"Запросы для заданного  во всех заметках.","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Устанавливает для свойства  заданной  заданное [value]. Возможные свойства:\n\n%s","Displays summary about the notes and notebooks.":"Выводит общую информацию о заметках и блокнотах.","Synchronises with remote storage.":"Синхронизирует с удалённым хранилищем.","Sync to provided target (defaults to sync.target config value)":"Синхронизация с заданной целью (по умолчанию — значение конфигурации sync.target)","Authentication was not completed (did not receive an authentication token).":"Аутентификация не была завершена (не получен токен аутентификации).","Not authentified with %s. Please provide any missing credentials.":"Не аутентифицировано с %s. Пожалуйста, предоставьте все недостающие данные.","Synchronisation is already in progress.":"Синхронизация уже выполняется.","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"Файл блокировки уже установлен. Если вам известно, что синхронизация не производится, вы можете удалить файл блокировки в «%s» и возобновить операцию.","Synchronisation target: %s (%s)":"Цель синхронизации: %s (%s)","Cannot initialize synchroniser.":"Не удалось инициировать синхронизацию.","Starting synchronisation...":"Начало синхронизации...","Cancelling... Please wait.":"Отмена... Пожалуйста, ожидайте."," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":" может быть «add», «remove» или «list», чтобы назначить или убрать [tag] с [note], или чтобы вывести список заметок, ассоциированых с [tag]. Команда `tag list` может быть использована для вывода списка всех тегов.","Invalid command: \"%s\"":"Неверная команда: «%s»"," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":" может быть «toggle» или «clear». «toggle» используется для переключения статуса заданной задачи на завершённую или незавершённую (если применить к обычной заметке, она будет преобразована в задачу). «clear» используется для преобразования задачи обратно в обычную заметку.","Marks a to-do as non-completed.":"Отмечает задачу как незавершённую.","Switches to [notebook] - all further operations will happen within this notebook.":"Переключает на [блокнот] — все дальнейшие операции будут происходить в этом блокноте.","Displays version information":"Выводит информацию о версии","%s %s (%s)":"%s %s (%s)","Enum":"Enum","Type: %s.":"Тип: %s.","Possible values: %s.":"Возможные значения: %s.","Default: %s":"По умолчанию: %s","Possible keys/values:":"Возможные ключи/значения:","Type `joplin help` for usage information.":"Введите `joplin help` для получения информации об использовании.","Fatal error:":"Фатальная ошибка:","The application has been authorised - you may now close this browser tab.":"Приложение авторизовано — можно закрыть вкладку браузера.","The application has been successfully authorised.":"Приложение успешно авторизовано.","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"Откройте следующую ссылку в вашем браузере для аутентификации приложения. Приложением будет создан каталог «Apps/Joplin». Чтение и запись файлов будет осуществляться только в его пределах. У приложения не будет доступа к каким-либо файлам за пределами этого каталога и другим личным данным. Никакая информация не будет передана третьим лицам.","Search:":"Поиск:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"Добро пожаловать в Joplin!\n\nВведите `:help shortcuts` для просмотра списка клавиатурных сочетаний или просто `:help` для просмотра информации об использовании.\n\nНапример, для создания блокнота нужно ввести `mb`, для создания заметки — `mn`.","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"Один или несколько элементов сейчас зашифрованы и может потребоваться, чтобы вы предоставили мастер-пароль. Для этого введите, пожалуйста, «e2ee decrypt». Если пароль уже был вами предоставлен, зашифрованные элементы расшифруются в фоновом режиме и вскоре станут доступны.","Exporting to \"%s\" as \"%s\" format. Please wait...":"Экспорт в «%s» в формате «%s». Пожалуйста, ожидайте...","Importing from \"%s\" as \"%s\" format. Please wait...":"Импорт из «%s» в формате «%s». Пожалуйста, ожидайте...","PDF File":"PDF-файл","File":"Файл","New note":"Новая заметка","New to-do":"Новая задача","New notebook":"Новый блокнот","Import":"Импорт","Export":"Экспорт","Print":"Печать","Hide %s":"Скрыть %s","Quit":"Выход","Edit":"Правка","Copy":"Копировать","Cut":"Вырезать","Paste":"Вставить","Search in all the notes":"Поиск во всех заметках","View":"Вид","Toggle editor layout":"Переключить вид редактора","Tools":"Инструменты","Synchronisation status":"Статус синхронизации","Encryption options":"Настройки шифрования","General Options":"Основные настройки","Help":"Помощь","Website and documentation":"Сайт и документация","Make a donation":"Сделать пожертвование","Check for updates...":"Проверить обновления...","About Joplin":"О Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Открыть %s","Exit":"Выход","OK":"OK","Cancel":"Отмена","Current version is up-to-date.":"Вы используете самую свежую версию.","An update is available, do you want to download it now?":"Доступно обновление. Желаете скачать его сейчас?","Yes":"Да","No":"Нет","Check synchronisation configuration":"Проверить настройки синхронизации","Notes and settings are stored in: %s":"Заметки и настройки сохранены в: %s","Save":"Сохранить","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"Отключение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в расшифрованном виде к цели синхронизации. Желаете продолжить?","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"Включение шифрования означает, что *все* ваши заметки и вложения будут пересинхронизированы и отправлены в зашифрованном виде к цели синхронизации. Не теряйте пароль, так как в целях безопасности *только* с его помощью можно будет расшифровать данные! Чтобы включить шифрование, введите ваш пароль ниже.","Disable encryption":"Отключить шифрование","Enable encryption":"Включить шифрование","Master Keys":"Мастер-ключи","Active":"Активен","ID":"ID","Source":"Источник","Created":"Создан","Updated":"Обновлён","Password":"Пароль","Password OK":"Пароль OK","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"Внимание: Для шифрования может быть использован только один мастер-ключ (отмеченный как «активный»). Для расшифровки может использоваться любой из ключей, в зависимости от того, как изначально были зашифрованы заметки или блокноты.","Missing Master Keys":"Недостающие мастер-ключи","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"Мастер-ключи с такими ID используются для шифрования некоторых из ваших элементов, однако у приложения сейчас нет к ним доступа. Скорее всего, они загрузятся при синхронизации.","Status":"Статус","Encryption is:":"Шифрование:","Back":"Назад","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"Будет создан новый блокнот «%s» и в него будет импортирован файл «%s»","Please create a notebook first.":"Сначала создайте блокнот.","Please create a notebook first":"Сначала создайте блокнот","Notebook title:":"Название блокнота:","Add or remove tags:":"Добавить или удалить теги:","Separate each tag by a comma.":"Каждый тег отделяется запятой.","Rename notebook:":"Переименовать блокнот:","Set alarm:":"Установить напоминание:","Search":"Поиск","Layout":"Вид","Some items cannot be synchronised.":"Некоторые элементы не могут быть синхронизированы.","View them now":"Просмотреть их сейчас","Some items cannot be decrypted.":"Некоторые элементы не могут быть расшифрованы.","Set the password":"Установить пароль","Add or remove tags":"Добавить или удалить теги","Switch between note and to-do type":"Переключить тип между заметкой и задачей","Delete":"Удалить","Delete notes?":"Удалить заметки?","No notes in here. Create one by clicking on \"New note\".":"Здесь нет заметок. Создайте новую нажатием на «Новая заметка».","There is currently no notebook. Create one by clicking on \"New notebook\".":"Сейчас здесь нет блокнотов. Создайте новый нажав «Новый блокнот».","Open...":"Открыть...","Save as...":"Сохранить как...","Unsupported link or message: %s":"Неподдерживаемая ссыка или сообщение: %s","Attach file":"Прикрепить файл","Tags":"Теги","Set alarm":"Установить напоминание","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"Заметка пуста. Нажмите на «%s», чтобы переключиться в редактор и отредактировать её.","to-do":"задача","note":"заметка","Creating new %s...":"Создание новой %s...","Refresh":"Обновить","Clear":"Очистить","OneDrive Login":"Вход в OneDrive","Options":"Настройки","Synchronisation Status":"Статус синхронизации","Encryption Options":"Настройки шифрования","Remove this tag from all the notes?":"Убрать этот тег со всех заметок?","Remove this search from the sidebar?":"Убрать этот запрос с боковой панели?","Rename":"Переименовать","Synchronise":"Синхронизировать","Notebooks":"Блокноты","Searches":"Запросы","Please select where the sync status should be exported to":"Выберите, куда должен быть экспортирован статус синхронизации","Usage: %s":"Использование: %s","Unknown flag: %s":"Неизвестный флаг: %s","File system":"Файловая система","Nextcloud":"Nextcloud","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive Dev (только для тестирования)","WebDAV":"WebDAV","Unknown log level: %s":"Неизвестный уровень лога: %s","Unknown level ID: %s":"Неизвестный ID уровня: %s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"Не удалось обновить токен: отсутствуют данные аутентификации. Повторный запуск синхронизации может решить проблему.","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"Не удалось синхронизироваться с OneDrive.\n\nТакая ошибка часто возникает при использовании OneDrive для бизнеса, который, к сожалению, не поддерживается.\n\nПожалуйста, рассмотрите возможность использования обычного аккаунта OneDrive.","Cannot access %s":"Не удалось получить доступ %s","Created local items: %d.":"Создано локальных элементов: %d.","Updated local items: %d.":"Обновлено локальных элементов: %d.","Created remote items: %d.":"Создано удалённых элементов: %d.","Updated remote items: %d.":"Обновлено удалённых элементов: %d.","Deleted local items: %d.":"Удалено локальных элементов: %d.","Deleted remote items: %d.":"Удалено удалённых элементов: %d.","Fetched items: %d/%d.":"Получено элементов: %d/%d.","State: %s.":"State: %s.","Cancelling...":"Отмена...","Completed: %s":"Завершено: %s","Last error: %s":"Последняя ошибка: %s","Idle":"Простой","In progress":"Выполнение","Synchronisation is already in progress. State: %s":"Синхронизация уже выполняется. Статус: %s","Encrypted":"Зашифровано","Encrypted items cannot be modified":"Зашифрованные элементы не могут быть изменены","Conflicts":"Конфликты","A notebook with this title already exists: \"%s\"":"Блокнот с таким названием уже существует: «%s»","Notebooks cannot be named \"%s\", which is a reserved title.":"Блокнот не может быть назван «%s», это зарезервированное название.","Untitled":"Без имени","This note does not have geolocation information.":"Эта заметка не содержит информации о геолокации.","Cannot copy note to \"%s\" notebook":"Не удалось скопировать заметку в блокнот «%s»","Cannot move note to \"%s\" notebook":"Не удалось переместить заметку в блокнот «%s»","Text editor":"Текстовый редактор","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"Редактор, в котором будут открываться заметки. Если не задан, будет произведена попытка автоматического определения редактора по умолчанию.","Language":"Язык","Date format":"Формат даты","Time format":"Формат времени","Theme":"Тема","Light":"Светлая","Dark":"Тёмная","Uncompleted to-dos on top":"Незавершённые задачи сверху","Sort notes by":"Сортировать заметки по","Reverse sort order":"Обратный порядок сортировки","Save geo-location with notes":"Сохранять информацию о геолокации в заметках","When creating a new to-do:":"При создании новой задачи:","Focus title":"Фокус на названии","Focus body":"Фокус на содержимом","When creating a new note:":"При создании новой заметки:","Show tray icon":"Показывать иконку в панели задач","Global zoom percentage":"Глобальный масштаб в процентах","Editor font family":"Семейство шрифтов редактора","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"Название шрифта не проверяется. Если оно указано некорректно или не задано, будет использоваться стандартный моноширинный шрифт.","Automatically update the application":"Автоматически обновлять приложение","Synchronisation interval":"Интервал синхронизации","%d minutes":"%d минут","%d hour":"%d час","%d hours":"%d часов","Show advanced options":"Показывать расширенные настройки","Synchronisation target":"Цель синхронизации","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"Цель синхронизации. Каждая цель синхронизации может иметь дополнительные параметры, именованные как «sync.NUM.NAME» (все описаны ниже).","Directory to synchronise with (absolute path)":"Каталог синхронизации (абсолютный путь)","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"Путь для синхронизации при включённой синхронизации с файловой системой. См. `sync.target`.","Nextcloud WebDAV URL":"Nextcloud WebDAV URL","Nextcloud username":"Имя пользователя Nextcloud","Nextcloud password":"Пароль Nextcloud","WebDAV URL":"URL WebDAV","WebDAV username":"Имя пользователя WebDAV","WebDAV password":"Пароль WebDAV","Invalid option value: \"%s\". Possible values are: %s.":"Неверное значение параметра: «%s». Доступные значения: %s.","Joplin Export File":"Файл экспорта Joplin","Markdown":"Markdown","Joplin Export Directory":"Папка экспорта Joplin","Evernote Export File":"Файл экспорта Evernote","Directory":"Директория","Cannot load \"%s\" module for format \"%s\"":"Не удалось загрузить модуль «%s» для формата «%s»","Please specify import format for %s":"Пожалуйста, укажите формат импорта для %s","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"Этот элемент сейчас зашифрован: %s «%s». Пожалуйста, дождитесь расшифровки всех элементов и попробуйте снова.","There is no data to export.":"Нет данных для экспорта.","Please specify the notebook where the notes should be imported to.":"Пожалуйста, укажите блокнот, в который должны быть импортированы заметки.","Items that cannot be synchronised":"Элементы, которые не могут быть синхронизированы","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"Эти элементы будут оставаться на устройстве, но не будут загружены в целевой объект синхронизации. Чтобы найти эти элементы, воспользуйтесь поиском по названию или ID (который указывается в скобках выше).","Sync status (synced items / total items)":"Статус синхронизации (элементов синхронизировано/всего)","%s: %d/%d":"%s: %d/%d","Total: %d/%d":"Всего: %d/%d","Conflicted: %d":"Конфликтующих: %d","To delete: %d":"К удалению: %d","Folders":"Папки","%s: %d notes":"%s: %d заметок","Coming alarms":"Грядущие напоминания","On %s: %s":"В %s: %s","There are currently no notes. Create one by clicking on the (+) button.":"Сейчас здесь нет заметок. Создаёте новую, нажав кнопку (+).","Delete these notes?":"Удалить эти заметки?","Log":"Лог","Export Debug Report":"Экспортировать отладочный отчёт","Encryption Config":"Конфигурация шифрования","Configuration":"Конфигурация","Move to notebook...":"Переместить в блокнот...","Move %d notes to notebook \"%s\"?":"Переместить %d заметок в блокнот «%s»?","Press to set the decryption password.":"Нажмите, чтобы установить пароль для расшифровки.","Select date":"Выбрать дату","Confirm":"Подтвердить","Cancel synchronisation":"Отменить синхронизацию","Joplin website":"Сайт Joplin","Master Key %s":"Мастер-ключ %s","Created: %s":"Создано: %s","Password:":"Пароль:","Password cannot be empty":"Пароль не может быть пустым","Enable":"Включено","The notebook could not be saved: %s":"Не удалось сохранить блокнот: %s","Edit notebook":"Редактировать блокнот","Show all":"Показать всё","Errors only":"Только ошибки","This note has been modified:":"Эта заметка была изменена:","Save changes":"Сохранить изменения","Discard changes":"Отменить изменения","Unsupported image type: %s":"Неподдерживаемый формат изображения: %s","Attach photo":"Прикрепить фото","Attach any file":"Прикрепить любой файл","Convert to note":"Преобразовать в заметку","Convert to todo":"Преобразовать в задачу","Hide metadata":"Скрыть метаданные","Show metadata":"Показать метаданные","View on map":"Посмотреть на карте","Delete notebook":"Удалить блокнот","Login with OneDrive":"Войти в OneDrive","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"Нажмите на кнопку (+) для создания новой заметки или нового блокнота. Нажмите на боковое меню для доступа к вашим существующим блокнотам.","You currently have no notebook. Create one by clicking on (+) button.":"У вас сейчас нет блокнота. Создайте его нажатием на кнопку (+).","Welcome":"Добро пожаловать"}
        \ No newline at end of file
        diff --git a/ReactNativeClient/locales/zh_CN.json b/ReactNativeClient/locales/zh_CN.json
        index 9e28df4c59..7ff9c6c407 100644
        --- a/ReactNativeClient/locales/zh_CN.json
        +++ b/ReactNativeClient/locales/zh_CN.json
        @@ -1 +1 @@
        -{"To delete a tag, untag the associated notes.":"移除相关笔记的标签后才可删除此标签。","Please select the note or notebook to be deleted first.":"请选择最先删除的笔记或笔记本。","Press Ctrl+D or type \"exit\" to exit the application":"按Ctrl+D或输入\"exit\"退出程序","More than one item match \"%s\". Please narrow down your query.":"有多个项目与\"%s\"匹配,请缩小您的查询范围。","No notebook selected.":"未选择笔记本。","No notebook has been specified.":"无指定笔记本。","Y":"是","n":"否","N":"否","y":"是","Cancelling background synchronisation... Please wait.":"正在取消背景同步...请稍后。","No such command: %s":"无以下命令:%s","The command \"%s\" is only available in GUI mode":"命令\"%s\"仅在GUI模式下可用","Cannot change encrypted item":"","Missing required argument: %s":"缺失所需参数:%s","%s: %s":"%s: %s","Your choice: ":"您的选择: ","Invalid answer: %s":"此答案无效:%s","Attaches the given file to the note.":"给笔记附加给定文件。","Cannot find \"%s\".":"无法找到 \"%s\"。","Displays the given note.":"显示给定笔记。","Displays the complete information about note.":"显示关于笔记的全部信息。","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"获取或设置配置变量。若未提供[value],则会显示[name]的值。若[name]及[value]都未提供,则列出当前配置。","Also displays unset and hidden config variables.":"同时显示未设置的与隐藏的配置变量。","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"复制符合的笔记至[notebook]。若无指定笔记本则在当前笔记本内复制该笔记。","Marks a to-do as done.":"标记待办事项为完成。","Note is not a to-do: \"%s\"":"笔记非待办事项:\"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"已禁止","Encryption is: %s":"","Edit note.":"编辑笔记。","No text editor is defined. Please set it using `config editor `":"未定义文本编辑器。请通过 `config editor `设置。","No active notebook.":"无活动笔记本。","Note does not exist: \"%s\". Create it?":"此笔记不存在:\"%s\"。是否创建?","Starting to edit note. Close the editor to get back to the prompt.":"开始编辑笔记。关闭编辑器则返回提示。","Error opening note in editor: %s":"","Note has been saved.":"笔记已被保存。","Exits the application.":"退出程序。","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"仅导出给定笔记。","Exports only the given notebook.":"仅导出给定笔记本。","Displays a geolocation URL for the note.":"显示此笔记的地理定位URL地址。","Displays usage information.":"显示使用信息。","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"快捷键在CLI模式下不可用。","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"可用命令为:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"在任意命令中,笔记或笔记本可通过其标题或ID来引用,也可使用代表当前所选笔记或笔记本的变量`$n`与`$b`。`$c`可用于引用当前所选项目。","To move from one pane to another, press Tab or Shift+Tab.":"按Tab或Shift+Tab切换面板。","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"通过上下左右与page up/down键来滚动列表与文本区域(包含此控制台)。","To maximise/minimise the console, press \"TC\".":"按\"TC\"最大化/最小化控制台。","To enter command line mode, press \":\"":"按\":\"键进入命令行模式","To exit command line mode, press ESCAPE":"按ESC键退出命令行模式","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"不再要求确认。","Found: %d.":"已找到:%d条。","Created: %d.":"已创建:%d条。","Updated: %d.":"已更新:%d条。","Skipped: %d.":"已跳过:%d条。","Resources: %d.":"资源:%d。","Tagged: %d.":"已标签:%d条。","Importing notes...":"正在导入笔记...","The notes have been imported: %s":"以下笔记已被导入:%s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"显示当前笔记本的笔记。使用`ls /`显示笔记本列表。","Displays only the first top  notes.":"只显示最上方的条笔记。","Sorts the item by  (eg. title, updated_time, created_time).":"使用排序项目(例标题、更新日期、创建日期)。","Reverses the sorting order.":"反转排序顺序。","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"仅显示指定格式的项目。`n`代表笔记,`t`代表待办事项,`nt`代表笔记和待办事项(例,`-tt`则会仅显示待办事项,`-ttd`则会显示笔记和待办事项)。","Either \"text\" or \"json\"":"\"文本\"或\"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"使用长列表格式。格式为ID, NOTE_COUNT(笔记本), DATE, TODO_CHECKED(待办事项),TITLE","Please select a notebook first.":"请先选择笔记本。","Creates a new notebook.":"创建新笔记本。","Creates a new note.":"创建新笔记。","Notes can only be created within a notebook.":"笔记只能创建于笔记本内。","Creates a new to-do.":"创建新待办事项。","Moves the notes matching  to [notebook].":"移动符合的笔记至[notebook]。","Renames the given  (note or notebook) to .":"重命名给定的(笔记或笔记本)至。","Deletes the given notebook.":"删除给定笔记本。","Deletes the notebook without asking for confirmation.":"删除笔记本(不要求确认)。","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"删除符合的笔记。","Deletes the notes without asking for confirmation.":"删除笔记(不要求确认)。","%d notes match this pattern. Delete them?":"%d条笔记符合此模式。是否删除它们?","Delete note?":"是否删除笔记?","Searches for the given  in all the notes.":"在所有笔记内搜索给定的。","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"显示关于笔记与笔记本的概况。","Synchronises with remote storage.":"与远程储存空间同步。","Sync to provided target (defaults to sync.target config value)":"同步至所提供的目标(默认为同步目标配置值)","Authentication was not completed (did not receive an authentication token).":"认证未完成(未收到认证令牌)。","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"同步正在进行中。","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"锁定文件已被保留。若当前没有任何正在进行的同步,您可以在\"%s\"删除锁定文件并继续操作。","Synchronisation target: %s (%s)":"同步目标:%s (%s)","Cannot initialize synchroniser.":"无法初始化同步。","Starting synchronisation...":"开始同步...","Cancelling... Please wait.":"正在取消...请稍后。"," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":"可添加\"add\"、删除\"remove\",或列出\"list\"于[note],用来指定或移除[tag],也可以列出于[tag]相关的笔记。`tag list`命令可用于列出所有标签。","Invalid command: \"%s\"":"无效命令:\"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"可被切换\"toggle\"或清除\"clear\"。用\"toggle\"可使给定待办事项在已完成与未完成两个状态下切换(若目标为常规笔记,它将被转换成待办事项)。用\"clear\"可把该待办事项转换回常规笔记。","Marks a to-do as non-completed.":"标记待办事项为未完成。","Switches to [notebook] - all further operations will happen within this notebook.":"切换至[notebook] - 所有进一步处理将在此笔记本中进行。","Displays version information":"显示版本信息。","%s %s (%s)":"%s %s (%s)","Enum":"枚举","Type: %s.":"格式:%s。","Possible values: %s.":"可用值: %s。","Default: %s":"默认值: %s","Possible keys/values:":"可用键/值:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"严重错误:","The application has been authorised - you may now close this browser tab.":"此程序已被授权 - 您可以关闭此浏览页面了。","The application has been successfully authorised.":"此程序已被成功授权。","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"请用网页浏览器打开以下URL来认证此程序。此程序将创建\"Apps/Joplin\"目录,并仅在此目录内写入及读取文件。程序对于在该目录外的文件或任何个人数据没有任何访问权限。同时也不会与第三方共享任何数据。","Search:":"搜索:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"文件","New note":"新笔记","New to-do":"新待办事项","New notebook":"新笔记本","Import":"导入","Export":"Export","Print":"","Hide %s":"","Quit":"退出","Edit":"编辑","Copy":"复制","Cut":"剪切","Paste":"粘贴","Search in all the notes":"在所有笔记内搜索","View":"","Toggle editor layout":"","Tools":"工具","Synchronisation status":"同步状态","Encryption options":"","General Options":"General Options","Help":"帮助","Website and documentation":"网站与文档","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"关于Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"确认","Cancel":"取消","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"状态","Encryption is:":"","Back":"返回","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"将创建新笔记本\"%s\"并将文件\"%s\"导入至其中","Please create a notebook first.":"请先创建笔记本。","Please create a notebook first":"请先创建笔记本","Notebook title:":"笔记本标题:","Add or remove tags:":"添加或删除标签:","Separate each tag by a comma.":"用逗号\",\"分开每个标签。","Rename notebook:":"重命名笔记本:","Set alarm:":"设置提醒:","Search":"搜索","Layout":"布局","Some items cannot be synchronised.":"一些项目无法被同步。","View them now":"马上查看","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"添加或删除标签","Switch between note and to-do type":"在笔记和待办事项类型之间切换","Delete":"删除","Delete notes?":"是否删除笔记?","No notes in here. Create one by clicking on \"New note\".":"此处无笔记。点击\"新笔记\"创建新笔记。","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"不支持的链接或信息:%s","Attach file":"附加文件","Tags":"标签","Set alarm":"设置提醒","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"刷新","Clear":"清除","OneDrive Login":"登陆OneDrive","Options":"选项","Synchronisation Status":"同步状态","Encryption Options":"","Remove this tag from all the notes?":"从所有笔记中删除此标签?","Remove this search from the sidebar?":"从侧栏中删除此项搜索历史?","Rename":"重命名","Synchronise":"同步","Notebooks":"笔记本","Searches":"搜索历史","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"使用:%s","Unknown flag: %s":"未知标记:%s","File system":"文件系统","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive开发员(仅测试用)","WebDAV":"","Unknown log level: %s":"未知日志level:%s","Unknown level ID: %s":"未知 level ID:%s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"无法刷新令牌:缺失认证数据。请尝试重新启动同步。","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"无法与OneDrive同步。\n\n此错误经常在使用OneDrive for Business时出现。很可惜我们无法支持此服务。\n\n请您考虑使用常规的OneDrive账号。","Cannot access %s":"无法访问%s","Created local items: %d.":"已新建本地项目: %d。","Updated local items: %d.":"已更新本地项目: %d。","Created remote items: %d.":"已新建远程项目: %d。","Updated remote items: %d.":"已更新远程项目: %d。","Deleted local items: %d.":"已删除本地项目: %d。","Deleted remote items: %d.":"已删除远程项目: %d。","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: \"%s\".":"状态:\"%s\"。","Cancelling...":"正在取消...","Completed: %s":"已完成:\"%s\"","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"同步正在进行中。状态:%s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"冲突","A notebook with this title already exists: \"%s\"":"以此标题命名的笔记本已存在:\"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"笔记本无法被命名为\"%s\",此标题为保留标题。","Untitled":"无标题","This note does not have geolocation information.":"此笔记不包含地理定位信息。","Cannot copy note to \"%s\" notebook":"无法复制笔记至\"%s\"笔记本","Cannot move note to \"%s\" notebook":"无法移动笔记至\"%s\"笔记本","Text editor":"文本编辑器","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"将用于打开笔记的编辑器。若未提供,将自动尝试检测默认编辑器。","Language":"语言","Date format":"日期格式","Time format":"时间格式","Theme":"主题","Light":"浅色","Dark":"深色","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"保存笔记时同时保存地理定位信息","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"自动更新此程序","Synchronisation interval":"同步间隔","%d minutes":"%d分","%d hour":"%d小时","%d hours":"%d小时","Show advanced options":"显示高级选项","Synchronisation target":"同步目标","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"当文件系统同步开启时的同步路径。参考`sync.target`。","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"无效的选项值:\"%s\"。可用值为:%s。","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"项目无法被同步。","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"同步状态(已同步项目/项目总数)","%s: %d/%d":"%s:%d/%d条","Total: %d/%d":"总数:%d/%d条","Conflicted: %d":"有冲突的:%d条","To delete: %d":"将删除:%d条","Folders":"文件夹","%s: %d notes":"%s: %d条笔记","Coming alarms":"临近提醒","On %s: %s":"%s:%s","There are currently no notes. Create one by clicking on the (+) button.":"当前无笔记。点击(+)创建新笔记。","Delete these notes?":"是否删除这些笔记?","Log":"日志","Export Debug Report":"导出调试报告","Encryption Config":"","Configuration":"配置","Move to notebook...":"移动至笔记本...","Move %d notes to notebook \"%s\"?":"移动%d条笔记至笔记本\"%s\"?","Press to set the decryption password.":"","Select date":"选择日期","Confirm":"确认","Cancel synchronisation":"取消同步","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"此笔记本无法保存:%s","Edit notebook":"编辑笔记本","Show all":"","Errors only":"","This note has been modified:":"此笔记已被修改:","Save changes":"保存更改","Discard changes":"放弃更改","Unsupported image type: %s":"不支持的图片格式:%s","Attach photo":"附加照片","Attach any file":"附加任何文件","Convert to note":"转换至笔记","Convert to todo":"转换至待办事项","Hide metadata":"隐藏元数据","Show metadata":"显示元数据","View on map":"查看地图","Delete notebook":"删除笔记本","Login with OneDrive":"用OneDrive登陆","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"点击(+)按钮创建新笔记或笔记本。点击侧边菜单来访问您现有的笔记本。","You currently have no notebook. Create one by clicking on (+) button.":"您当前没有任何笔记本。点击(+)按钮创建新笔记本。","Welcome":"欢迎"}
        \ No newline at end of file
        +{"To delete a tag, untag the associated notes.":"移除相关笔记的标签后才可删除此标签。","Please select the note or notebook to be deleted first.":"请选择最先删除的笔记或笔记本。","Press Ctrl+D or type \"exit\" to exit the application":"按Ctrl+D或输入\"exit\"退出程序","More than one item match \"%s\". Please narrow down your query.":"有多个项目与\"%s\"匹配,请缩小您的查询范围。","No notebook selected.":"未选择笔记本。","No notebook has been specified.":"无指定笔记本。","Y":"是","n":"否","N":"否","y":"是","Cancelling background synchronisation... Please wait.":"正在取消背景同步...请稍后。","No such command: %s":"无以下命令:%s","The command \"%s\" is only available in GUI mode":"命令\"%s\"仅在GUI模式下可用","Cannot change encrypted item":"","Missing required argument: %s":"缺失所需参数:%s","%s: %s":"%s: %s","Your choice: ":"您的选择: ","Invalid answer: %s":"此答案无效:%s","Attaches the given file to the note.":"给笔记附加给定文件。","Cannot find \"%s\".":"无法找到 \"%s\"。","Displays the given note.":"显示给定笔记。","Displays the complete information about note.":"显示关于笔记的全部信息。","Gets or sets a config value. If [value] is not provided, it will show the value of [name]. If neither [name] nor [value] is provided, it will list the current configuration.":"获取或设置配置变量。若未提供[value],则会显示[name]的值。若[name]及[value]都未提供,则列出当前配置。","Also displays unset and hidden config variables.":"同时显示未设置的与隐藏的配置变量。","%s = %s (%s)":"%s = %s (%s)","%s = %s":"%s = %s","Duplicates the notes matching  to [notebook]. If no notebook is specified the note is duplicated in the current notebook.":"复制符合的笔记至[notebook]。若无指定笔记本则在当前笔记本内复制该笔记。","Marks a to-do as done.":"标记待办事项为完成。","Note is not a to-do: \"%s\"":"笔记非待办事项:\"%s\"","Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.":"","Enter master password:":"","Operation cancelled":"","Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.":"","Completed decryption.":"","Enabled":"Enabled","Disabled":"已禁止","Encryption is: %s":"","Edit note.":"编辑笔记。","No text editor is defined. Please set it using `config editor `":"未定义文本编辑器。请通过 `config editor `设置。","No active notebook.":"无活动笔记本。","Note does not exist: \"%s\". Create it?":"此笔记不存在:\"%s\"。是否创建?","Starting to edit note. Close the editor to get back to the prompt.":"开始编辑笔记。关闭编辑器则返回提示。","Error opening note in editor: %s":"","Note has been saved.":"笔记已被保存。","Exits the application.":"退出程序。","Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.":"Exports Joplin data to the given path. By default, it will export the complete database including notebooks, notes, tags and resources.","Destination format: %s":"Destination format: %s","Exports only the given note.":"仅导出给定笔记。","Exports only the given notebook.":"仅导出给定笔记本。","Displays a geolocation URL for the note.":"显示此笔记的地理定位URL地址。","Displays usage information.":"显示使用信息。","For information on how to customise the shortcuts please visit %s":"","Shortcuts are not available in CLI mode.":"快捷键在CLI模式下不可用。","Type `help [command]` for more information about a command; or type `help all` for the complete usage information.":"Type `help [command]` for more information about a command; or type `help all` for the complete usage information.","The possible commands are:":"可用命令为:","In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.":"在任意命令中,笔记或笔记本可通过其标题或ID来引用,也可使用代表当前所选笔记或笔记本的变量`$n`与`$b`。`$c`可用于引用当前所选项目。","To move from one pane to another, press Tab or Shift+Tab.":"按Tab或Shift+Tab切换面板。","Use the arrows and page up/down to scroll the lists and text areas (including this console).":"通过上下左右与page up/down键来滚动列表与文本区域(包含此控制台)。","To maximise/minimise the console, press \"TC\".":"按\"TC\"最大化/最小化控制台。","To enter command line mode, press \":\"":"按\":\"键进入命令行模式","To exit command line mode, press ESCAPE":"按ESC键退出命令行模式","For the list of keyboard shortcuts and config options, type `help keymap`":"For the list of keyboard shortcuts and config options, type `help keymap`","Imports data into Joplin.":"","Source format: %s":"Source format: %s","Do not ask for confirmation.":"不再要求确认。","Found: %d.":"已找到:%d条。","Created: %d.":"已创建:%d条。","Updated: %d.":"已更新:%d条。","Skipped: %d.":"已跳过:%d条。","Resources: %d.":"资源:%d。","Tagged: %d.":"已标签:%d条。","Importing notes...":"正在导入笔记...","The notes have been imported: %s":"以下笔记已被导入:%s","Displays the notes in the current notebook. Use `ls /` to display the list of notebooks.":"显示当前笔记本的笔记。使用`ls /`显示笔记本列表。","Displays only the first top  notes.":"只显示最上方的条笔记。","Sorts the item by  (eg. title, updated_time, created_time).":"使用排序项目(例标题、更新日期、创建日期)。","Reverses the sorting order.":"反转排序顺序。","Displays only the items of the specific type(s). Can be `n` for notes, `t` for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the to-dos, while `-ttd` would display notes and to-dos.":"仅显示指定格式的项目。`n`代表笔记,`t`代表待办事项,`nt`代表笔记和待办事项(例,`-tt`则会仅显示待办事项,`-ttd`则会显示笔记和待办事项)。","Either \"text\" or \"json\"":"\"文本\"或\"json\"","Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE":"使用长列表格式。格式为ID, NOTE_COUNT(笔记本), DATE, TODO_CHECKED(待办事项),TITLE","Please select a notebook first.":"请先选择笔记本。","Creates a new notebook.":"创建新笔记本。","Creates a new note.":"创建新笔记。","Notes can only be created within a notebook.":"笔记只能创建于笔记本内。","Creates a new to-do.":"创建新待办事项。","Moves the notes matching  to [notebook].":"移动符合的笔记至[notebook]。","Renames the given  (note or notebook) to .":"重命名给定的(笔记或笔记本)至。","Deletes the given notebook.":"删除给定笔记本。","Deletes the notebook without asking for confirmation.":"删除笔记本(不要求确认)。","Delete notebook? All notes within this notebook will also be deleted.":"","Deletes the notes matching .":"删除符合的笔记。","Deletes the notes without asking for confirmation.":"删除笔记(不要求确认)。","%d notes match this pattern. Delete them?":"%d条笔记符合此模式。是否删除它们?","Delete note?":"是否删除笔记?","Searches for the given  in all the notes.":"在所有笔记内搜索给定的。","Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s":"Sets the property  of the given  to the given [value]. Possible properties are:\n\n%s","Displays summary about the notes and notebooks.":"显示关于笔记与笔记本的概况。","Synchronises with remote storage.":"与远程储存空间同步。","Sync to provided target (defaults to sync.target config value)":"同步至所提供的目标(默认为同步目标配置值)","Authentication was not completed (did not receive an authentication token).":"认证未完成(未收到认证令牌)。","Not authentified with %s. Please provide any missing credentials.":"","Synchronisation is already in progress.":"同步正在进行中。","Lock file is already being hold. If you know that no synchronisation is taking place, you may delete the lock file at \"%s\" and resume the operation.":"锁定文件已被保留。若当前没有任何正在进行的同步,您可以在\"%s\"删除锁定文件并继续操作。","Synchronisation target: %s (%s)":"同步目标:%s (%s)","Cannot initialize synchroniser.":"无法初始化同步。","Starting synchronisation...":"开始同步...","Cancelling... Please wait.":"正在取消...请稍后。"," can be \"add\", \"remove\" or \"list\" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.":"可添加\"add\"、删除\"remove\",或列出\"list\"于[note],用来指定或移除[tag],也可以列出于[tag]相关的笔记。`tag list`命令可用于列出所有标签。","Invalid command: \"%s\"":"无效命令:\"%s\""," can either be \"toggle\" or \"clear\". Use \"toggle\" to toggle the given to-do between completed and uncompleted state (If the target is a regular note it will be converted to a to-do). Use \"clear\" to convert the to-do back to a regular note.":"可被切换\"toggle\"或清除\"clear\"。用\"toggle\"可使给定待办事项在已完成与未完成两个状态下切换(若目标为常规笔记,它将被转换成待办事项)。用\"clear\"可把该待办事项转换回常规笔记。","Marks a to-do as non-completed.":"标记待办事项为未完成。","Switches to [notebook] - all further operations will happen within this notebook.":"切换至[notebook] - 所有进一步处理将在此笔记本中进行。","Displays version information":"显示版本信息。","%s %s (%s)":"%s %s (%s)","Enum":"枚举","Type: %s.":"格式:%s。","Possible values: %s.":"可用值: %s。","Default: %s":"默认值: %s","Possible keys/values:":"可用键/值:","Type `joplin help` for usage information.":"Type `joplin help` for usage information.","Fatal error:":"严重错误:","The application has been authorised - you may now close this browser tab.":"此程序已被授权 - 您可以关闭此浏览页面了。","The application has been successfully authorised.":"此程序已被成功授权。","Please open the following URL in your browser to authenticate the application. The application will create a directory in \"Apps/Joplin\" and will only read and write files in this directory. It will have no access to any files outside this directory nor to any other personal data. No data will be shared with any third party.":"请用网页浏览器打开以下URL来认证此程序。此程序将创建\"Apps/Joplin\"目录,并仅在此目录内写入及读取文件。程序对于在该目录外的文件或任何个人数据没有任何访问权限。同时也不会与第三方共享任何数据。","Search:":"搜索:","Welcome to Joplin!\n\nType `:help shortcuts` for the list of keyboard shortcuts, or just `:help` for usage information.\n\nFor example, to create a notebook press `mb`; to create a note press `mn`.":"","One or more items are currently encrypted and you may need to supply a master password. To do so please type `e2ee decrypt`. If you have already supplied the password, the encrypted items are being decrypted in the background and will be available soon.":"","Exporting to \"%s\" as \"%s\" format. Please wait...":"","Importing from \"%s\" as \"%s\" format. Please wait...":"","PDF File":"PDF File","File":"文件","New note":"新笔记","New to-do":"新待办事项","New notebook":"新笔记本","Import":"导入","Export":"Export","Print":"","Hide %s":"","Quit":"退出","Edit":"编辑","Copy":"复制","Cut":"剪切","Paste":"粘贴","Search in all the notes":"在所有笔记内搜索","View":"","Toggle editor layout":"","Tools":"工具","Synchronisation status":"同步状态","Encryption options":"","General Options":"General Options","Help":"帮助","Website and documentation":"网站与文档","Make a donation":"Make a donation","Check for updates...":"","About Joplin":"关于Joplin","%s %s (%s, %s)":"%s %s (%s, %s)","Open %s":"Open %s","Exit":"","OK":"确认","Cancel":"取消","Current version is up-to-date.":"","An update is available, do you want to download it now?":"","Yes":"","No":"No","Check synchronisation configuration":"Check synchronisation configuration","Notes and settings are stored in: %s":"","Save":"","Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?":"","Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.":"","Disable encryption":"","Enable encryption":"","Master Keys":"","Active":"","ID":"","Source":"","Created":"Created","Updated":"Updated","Password":"","Password OK":"","Note: Only one master key is going to be used for encryption (the one marked as \"active\"). Any of the keys might be used for decryption, depending on how the notes or notebooks were originally encrypted.":"","Missing Master Keys":"","The master keys with these IDs are used to encrypt some of your items, however the application does not currently have access to them. It is likely they will eventually be downloaded via synchronisation.":"","Status":"状态","Encryption is:":"","Back":"返回","New notebook \"%s\" will be created and file \"%s\" will be imported into it":"将创建新笔记本\"%s\"并将文件\"%s\"导入至其中","Please create a notebook first.":"请先创建笔记本。","Please create a notebook first":"请先创建笔记本","Notebook title:":"笔记本标题:","Add or remove tags:":"添加或删除标签:","Separate each tag by a comma.":"用逗号\",\"分开每个标签。","Rename notebook:":"重命名笔记本:","Set alarm:":"设置提醒:","Search":"搜索","Layout":"布局","Some items cannot be synchronised.":"一些项目无法被同步。","View them now":"马上查看","Some items cannot be decrypted.":"Some items cannot be decrypted.","Set the password":"","Add or remove tags":"添加或删除标签","Switch between note and to-do type":"在笔记和待办事项类型之间切换","Delete":"删除","Delete notes?":"是否删除笔记?","No notes in here. Create one by clicking on \"New note\".":"此处无笔记。点击\"新笔记\"创建新笔记。","There is currently no notebook. Create one by clicking on \"New notebook\".":"There is currently no notebook. Create one by clicking on \"New notebook\".","Open...":"","Save as...":"Save as...","Unsupported link or message: %s":"不支持的链接或信息:%s","Attach file":"附加文件","Tags":"标签","Set alarm":"设置提醒","This note has no content. Click on \"%s\" to toggle the editor and edit the note.":"","to-do":"to-do","note":"note","Creating new %s...":"Creating new %s...","Refresh":"刷新","Clear":"清除","OneDrive Login":"登陆OneDrive","Options":"选项","Synchronisation Status":"同步状态","Encryption Options":"","Remove this tag from all the notes?":"从所有笔记中删除此标签?","Remove this search from the sidebar?":"从侧栏中删除此项搜索历史?","Rename":"重命名","Synchronise":"同步","Notebooks":"笔记本","Searches":"搜索历史","Please select where the sync status should be exported to":"Please select where the sync status should be exported to","Usage: %s":"使用:%s","Unknown flag: %s":"未知标记:%s","File system":"文件系统","Nextcloud":"","OneDrive":"OneDrive","OneDrive Dev (For testing only)":"OneDrive开发员(仅测试用)","WebDAV":"","Unknown log level: %s":"未知日志level:%s","Unknown level ID: %s":"未知 level ID:%s","Cannot refresh token: authentication data is missing. Starting the synchronisation again may fix the problem.":"无法刷新令牌:缺失认证数据。请尝试重新启动同步。","Could not synchronize with OneDrive.\n\nThis error often happens when using OneDrive for Business, which unfortunately cannot be supported.\n\nPlease consider using a regular OneDrive account.":"无法与OneDrive同步。\n\n此错误经常在使用OneDrive for Business时出现。很可惜我们无法支持此服务。\n\n请您考虑使用常规的OneDrive账号。","Cannot access %s":"无法访问%s","Created local items: %d.":"已新建本地项目: %d。","Updated local items: %d.":"已更新本地项目: %d。","Created remote items: %d.":"已新建远程项目: %d。","Updated remote items: %d.":"已更新远程项目: %d。","Deleted local items: %d.":"已删除本地项目: %d。","Deleted remote items: %d.":"已删除远程项目: %d。","Fetched items: %d/%d.":"Fetched items: %d/%d.","State: %s.":"State: %s.","Cancelling...":"正在取消...","Completed: %s":"已完成:\"%s\"","Last error: %s":"Last error: %s","Idle":"","In progress":"","Synchronisation is already in progress. State: %s":"同步正在进行中。状态:%s","Encrypted":"","Encrypted items cannot be modified":"Encrypted items cannot be modified","Conflicts":"冲突","A notebook with this title already exists: \"%s\"":"以此标题命名的笔记本已存在:\"%s\"","Notebooks cannot be named \"%s\", which is a reserved title.":"笔记本无法被命名为\"%s\",此标题为保留标题。","Untitled":"无标题","This note does not have geolocation information.":"此笔记不包含地理定位信息。","Cannot copy note to \"%s\" notebook":"无法复制笔记至\"%s\"笔记本","Cannot move note to \"%s\" notebook":"无法移动笔记至\"%s\"笔记本","Text editor":"文本编辑器","The editor that will be used to open a note. If none is provided it will try to auto-detect the default editor.":"将用于打开笔记的编辑器。若未提供,将自动尝试检测默认编辑器。","Language":"语言","Date format":"日期格式","Time format":"时间格式","Theme":"主题","Light":"浅色","Dark":"深色","Uncompleted to-dos on top":"Uncompleted to-dos on top","Sort notes by":"","Reverse sort order":"Reverse sort order","Save geo-location with notes":"保存笔记时同时保存地理定位信息","When creating a new to-do:":"When creating a new to-do:","Focus title":"Focus title","Focus body":"","When creating a new note:":"When creating a new note:","Show tray icon":"","Global zoom percentage":"","Editor font family":"","The font name will not be checked. If incorrect or empty, it will default to a generic monospace font.":"","Automatically update the application":"自动更新此程序","Synchronisation interval":"同步间隔","%d minutes":"%d分","%d hour":"%d小时","%d hours":"%d小时","Show advanced options":"显示高级选项","Synchronisation target":"同步目标","The target to synchonise to. Each sync target may have additional parameters which are named as `sync.NUM.NAME` (all documented below).":"","Directory to synchronise with (absolute path)":"","The path to synchronise with when file system synchronisation is enabled. See `sync.target`.":"当文件系统同步开启时的同步路径。参考`sync.target`。","Nextcloud WebDAV URL":"","Nextcloud username":"","Nextcloud password":"","WebDAV URL":"","WebDAV username":"","WebDAV password":"","Invalid option value: \"%s\". Possible values are: %s.":"无效的选项值:\"%s\"。可用值为:%s。","Joplin Export File":"Joplin Export File","Markdown":"","Joplin Export Directory":"","Evernote Export File":"Evernote Export File","Directory":"","Cannot load \"%s\" module for format \"%s\"":"","Please specify import format for %s":"","This item is currently encrypted: %s \"%s\". Please wait for all items to be decrypted and try again.":"","There is no data to export.":"","Please specify the notebook where the notes should be imported to.":"Please specify the notebook where the notes should be imported to.","Items that cannot be synchronised":"项目无法被同步。","%s (%s): %s":"%s (%s): %s","These items will remain on the device but will not be uploaded to the sync target. In order to find these items, either search for the title or the ID (which is displayed in brackets above).":"","Sync status (synced items / total items)":"同步状态(已同步项目/项目总数)","%s: %d/%d":"%s:%d/%d条","Total: %d/%d":"总数:%d/%d条","Conflicted: %d":"有冲突的:%d条","To delete: %d":"将删除:%d条","Folders":"文件夹","%s: %d notes":"%s: %d条笔记","Coming alarms":"临近提醒","On %s: %s":"%s:%s","There are currently no notes. Create one by clicking on the (+) button.":"当前无笔记。点击(+)创建新笔记。","Delete these notes?":"是否删除这些笔记?","Log":"日志","Export Debug Report":"导出调试报告","Encryption Config":"","Configuration":"配置","Move to notebook...":"移动至笔记本...","Move %d notes to notebook \"%s\"?":"移动%d条笔记至笔记本\"%s\"?","Press to set the decryption password.":"","Select date":"选择日期","Confirm":"确认","Cancel synchronisation":"取消同步","Joplin website":"","Master Key %s":"","Created: %s":"Created: %s","Password:":"","Password cannot be empty":"","Enable":"Enable","The notebook could not be saved: %s":"此笔记本无法保存:%s","Edit notebook":"编辑笔记本","Show all":"","Errors only":"","This note has been modified:":"此笔记已被修改:","Save changes":"保存更改","Discard changes":"放弃更改","Unsupported image type: %s":"不支持的图片格式:%s","Attach photo":"附加照片","Attach any file":"附加任何文件","Convert to note":"转换至笔记","Convert to todo":"转换至待办事项","Hide metadata":"隐藏元数据","Show metadata":"显示元数据","View on map":"查看地图","Delete notebook":"删除笔记本","Login with OneDrive":"用OneDrive登陆","Click on the (+) button to create a new note or notebook. Click on the side menu to access your existing notebooks.":"点击(+)按钮创建新笔记或笔记本。点击侧边菜单来访问您现有的笔记本。","You currently have no notebook. Create one by clicking on (+) button.":"您当前没有任何笔记本。点击(+)按钮创建新笔记本。","Welcome":"欢迎"}
        \ No newline at end of file
        diff --git a/docs/index.html b/docs/index.html
        index 0a60260740..b2f7d3fe69 100644
        --- a/docs/index.html
        +++ b/docs/index.html
        @@ -403,21 +403,21 @@ $$
         Basque
         eu
         juan.abasolo@ehu.eus
        -80%
        +79%
         
         
         
         Croatian
         hr_HR
        -Hrvoje Mandić trbuhom@net.hr
        -65%
        +Hrvoje Mandić trbuhom@net.hr
        +64%
         
         
         
         Deutsch
         de_DE
        -Tobias Strobel git@strobeltobias.de
        -97%
        +Tobias Grasse mail@tobias-grasse.net
        +99%
         
         
         
        @@ -430,15 +430,15 @@ $$
         
         Español
         es_ES
        -Fernando Martín f@mrtn.es
        -100%
        +Fernando Martín f@mrtn.es
        +99%
         
         
         
         Français
         fr_FR
         Laurent Cozic
        -100%
        +99%
         
         
         
        @@ -458,21 +458,21 @@ $$
         
         Português (Brasil)
         pt_BR
        -Renato Nunes Bastos rnbastos@gmail.com
        +Renato Nunes Bastos rnbastos@gmail.com
         98%
         
         
         
         Русский
         ru_RU
        -Artyom Karlov artyom.karlov@gmail.com
        -100%
        +Artyom Karlov artyom.karlov@gmail.com
        +99%
         
         
         
         中文 (简体)
         zh_CN
        -RCJacH RCJacH@outlook.com
        +RCJacH RCJacH@outlook.com
         66%
         
         
        @@ -480,7 +480,7 @@ $$
         日本語
         ja_JP
         
        -65%
        +64%
         
         
         
        
        From fbec8263a340d037c3373b5df49305ec3b3a86c1 Mon Sep 17 00:00:00 2001
        From: Laurent Cozic 
        Date: Fri, 16 Mar 2018 14:34:10 +0000
        Subject: [PATCH 63/86] Electron release v1.0.77
        
        ---
         ElectronClient/app/package-lock.json | 2 +-
         ElectronClient/app/package.json      | 2 +-
         2 files changed, 2 insertions(+), 2 deletions(-)
        
        diff --git a/ElectronClient/app/package-lock.json b/ElectronClient/app/package-lock.json
        index 1428e36e98..9971b40326 100644
        --- a/ElectronClient/app/package-lock.json
        +++ b/ElectronClient/app/package-lock.json
        @@ -1,6 +1,6 @@
         {
           "name": "Joplin",
        -  "version": "1.0.76",
        +  "version": "1.0.77",
           "lockfileVersion": 1,
           "requires": true,
           "dependencies": {
        diff --git a/ElectronClient/app/package.json b/ElectronClient/app/package.json
        index ce500d2910..ce36287af5 100644
        --- a/ElectronClient/app/package.json
        +++ b/ElectronClient/app/package.json
        @@ -1,6 +1,6 @@
         {
           "name": "Joplin",
        -  "version": "1.0.76",
        +  "version": "1.0.77",
           "description": "Joplin for Desktop",
           "main": "main.js",
           "scripts": {
        
        From f81dbf4a4c163272ec32a488643833de49e5b02f Mon Sep 17 00:00:00 2001
        From: Laurent Cozic 
        Date: Fri, 16 Mar 2018 14:36:09 +0000
        Subject: [PATCH 64/86] CLI v1.0.103
        
        ---
         CliClient/package-lock.json | 2 +-
         CliClient/package.json      | 2 +-
         2 files changed, 2 insertions(+), 2 deletions(-)
        
        diff --git a/CliClient/package-lock.json b/CliClient/package-lock.json
        index f78da66569..3bf247dd15 100644
        --- a/CliClient/package-lock.json
        +++ b/CliClient/package-lock.json
        @@ -1,6 +1,6 @@
         {
           "name": "joplin",
        -  "version": "1.0.101",
        +  "version": "1.0.103",
           "lockfileVersion": 1,
           "requires": true,
           "dependencies": {
        diff --git a/CliClient/package.json b/CliClient/package.json
        index 685ee55454..31a66c4f8d 100644
        --- a/CliClient/package.json
        +++ b/CliClient/package.json
        @@ -19,7 +19,7 @@
             ],
             "owner": "Laurent Cozic"
           },
        -  "version": "1.0.101",
        +  "version": "1.0.103",
           "bin": {
             "joplin": "./main.js"
           },
        
        From 544f93bf2249c846dbfc1b182b1fbb652b6feb7c Mon Sep 17 00:00:00 2001
        From: Laurent Cozic 
        Date: Fri, 16 Mar 2018 17:39:44 +0000
        Subject: [PATCH 65/86] All: Handle deletion of resources that are not linked
         to any note
        
        ---
         CliClient/tests/services_ResourceService.js   | 27 +++++++++++++
         README.md                                     |  2 +-
         ReactNativeClient/lib/database.js             | 38 ++++++++-----------
         ReactNativeClient/lib/joplin-database.js      |  3 ++
         ReactNativeClient/lib/models/NoteResource.js  | 24 +++++++++++-
         ReactNativeClient/lib/models/Resource.js      |  4 +-
         .../lib/services/ResourceService.js           |  2 +
         docs/index.html                               | 14 +++----
         8 files changed, 80 insertions(+), 34 deletions(-)
        
        diff --git a/CliClient/tests/services_ResourceService.js b/CliClient/tests/services_ResourceService.js
        index 8a99298291..163230292a 100644
        --- a/CliClient/tests/services_ResourceService.js
        +++ b/CliClient/tests/services_ResourceService.js
        @@ -8,6 +8,7 @@ const Note = require('lib/models/Note.js');
         const Tag = require('lib/models/Tag.js');
         const NoteTag = require('lib/models/NoteTag.js');
         const Resource = require('lib/models/Resource.js');
        +const NoteResource = require('lib/models/NoteResource.js');
         const ResourceService = require('lib/services/ResourceService.js');
         const fs = require('fs-extra');
         const ArrayUtils = require('lib/ArrayUtils');
        @@ -67,6 +68,32 @@ describe('services_ResourceService', function() {
         
         		expect(!!(await Resource.load(resource1.id))).toBe(false);
         		expect(await shim.fsDriver().exists(resourcePath)).toBe(false);
        +		expect(!(await NoteResource.all()).length).toBe(true);
        +	}));
        +
        +	it('should not delete resource if still associated with at least one note', asyncTest(async () => {
        +		const service = new ResourceService();
        +
        +		let folder1 = await Folder.save({ title: "folder1" });
        +		let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
        +		let note2 = await Note.save({ title: 'ma deuxième note', parent_id: folder1.id });
        +		note1 = await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg');
        +		let resource1 = (await Resource.all())[0];
        +		const resourcePath = Resource.fullPath(resource1);
        +
        +		await service.indexNoteResources();
        +
        +		await Note.delete(note1.id);
        +		
        +		await service.indexNoteResources();
        +		
        +		await Note.save({ id: note2.id, body: Resource.markdownTag(resource1) });
        +
        +		await service.indexNoteResources();
        +
        +		await service.deleteOrphanResources(0);
        +
        +		expect(!!(await Resource.load(resource1.id))).toBe(true);
         	}));
         
         });
        \ No newline at end of file
        diff --git a/README.md b/README.md
        index 91cb007c0f..3964f2e256 100644
        --- a/README.md
        +++ b/README.md
        @@ -4,7 +4,7 @@ Joplin is a free, open source note taking and to-do application, which can handl
         
         Notes exported from Evernote via .enex files [can be imported](#importing) into Joplin, including the formatted content (which is converted to Markdown), resources (images, attachments, etc.) and complete metadata (geolocation, updated time, created time, etc.). Plain Markdown files can also be imported.
         
        -The notes can be [synchronised](#synchronisation) with various targets including [Nextcloud](https://nextcloud.com/), the file system (for example with a network directory) or with Microsoft OneDrive. When synchronising the notes, notebooks, tags and other metadata are saved to plain text files which can be easily inspected, backed up and moved around.
        +The notes can be [synchronised](#synchronisation) with various cloud services including [Nextcloud](https://nextcloud.com/), the file system (for example with a network directory) or with Microsoft OneDrive. When synchronising the notes, notebooks, tags and other metadata are saved to plain text files which can be easily inspected, backed up and moved around.
         
         The UI of the terminal client is built on top of the great [terminal-kit](https://github.com/cronvel/terminal-kit) library, the desktop client using [Electron](https://electronjs.org/), and the Android client front end is done using [React Native](https://facebook.github.io/react-native/).
         
        diff --git a/ReactNativeClient/lib/database.js b/ReactNativeClient/lib/database.js
        index 10567a0d2f..b671180064 100644
        --- a/ReactNativeClient/lib/database.js
        +++ b/ReactNativeClient/lib/database.js
        @@ -3,14 +3,13 @@ const { promiseChain } = require('lib/promise-utils.js');
         const { Logger } = require('lib/logger.js');
         const { time } = require('lib/time-utils.js');
         const { sprintf } = require('sprintf-js');
        +const Mutex = require('async-mutex').Mutex;
         
         class Database {
         
         	constructor(driver) {
         		this.debugMode_ = false;
         		this.driver_ = driver;
        -		this.inTransaction_ = false;
        -
         		this.logger_ = new Logger();
         		this.logExcludedQueryTypes_ = [];
         	}
        @@ -113,29 +112,20 @@ class Database {
         			return;
         		}
         
        -		// There can be only one transaction running at a time so queue
        -		// any new transaction here.
        -		if (this.inTransaction_) {
        -			while (true) {
        -				await time.msleep(100);
        -				if (!this.inTransaction_) {
        -					this.inTransaction_ = true;
        -					break;
        -				}
        +		// There can be only one transaction running at a time so use a	mutex
        +		const release = await Database.batchTransactionMutex_.acquire();
        +
        +		try {
        +			queries.splice(0, 0, 'BEGIN TRANSACTION');
        +			queries.push('COMMIT'); // Note: ROLLBACK is currently not supported
        +
        +			for (let i = 0; i < queries.length; i++) {
        +				let query = this.wrapQuery(queries[i]);
        +				await this.exec(query.sql, query.params);
         			}
        +		} finally {
        +			release();
         		}
        -
        -		this.inTransaction_ = true;
        -
        -		queries.splice(0, 0, 'BEGIN TRANSACTION');
        -		queries.push('COMMIT'); // Note: ROLLBACK is currently not supported
        -
        -		for (let i = 0; i < queries.length; i++) {
        -			let query = this.wrapQuery(queries[i]);
        -			await this.exec(query.sql, query.params);
        -		}
        -
        -		this.inTransaction_ = false;
         	}
         
         	static enumId(type, s) {
        @@ -310,6 +300,8 @@ class Database {
         
         }
         
        +Database.batchTransactionMutex_ = new Mutex();
        +
         Database.TYPE_UNKNOWN = 0;
         Database.TYPE_INT = 1;
         Database.TYPE_TEXT = 2;
        diff --git a/ReactNativeClient/lib/joplin-database.js b/ReactNativeClient/lib/joplin-database.js
        index 4a13347cf7..227e1d0d23 100644
        --- a/ReactNativeClient/lib/joplin-database.js
        +++ b/ReactNativeClient/lib/joplin-database.js
        @@ -336,6 +336,9 @@ class JoplinDatabase extends Database {
         			}
         
         			if (targetVersion == 11) {
        +				// This trick was needed because Electron Builder incorrectly released a dev branch containing v10 as it was
        +				// still being developed, and the db schema was not final at that time. So this v11 was created to
        +				// make sure any invalid db schema that was accidentally created was deleted and recreated.
         				queries.push('DROP TABLE item_changes');
         				queries.push('DROP TABLE note_resources');
         				upgradeVersion10();
        diff --git a/ReactNativeClient/lib/models/NoteResource.js b/ReactNativeClient/lib/models/NoteResource.js
        index 2ac92e74fd..47938b64cf 100644
        --- a/ReactNativeClient/lib/models/NoteResource.js
        +++ b/ReactNativeClient/lib/models/NoteResource.js
        @@ -31,7 +31,17 @@ class NoteResource extends BaseModel {
         			queries.push({ sql: 'INSERT INTO note_resources (note_id, resource_id, is_associated, last_seen_time) VALUES (?, ?, ?, ?)', params: [noteId, notProcessedResourceIds[i], 1, Date.now()] });
         		}
         
        -		await this.db().transactionExecBatch(queries);		
        +		await this.db().transactionExecBatch(queries);
        +	}
        +
        +	static async addOrphanedResources() {
        +		const missingResources = await this.db().selectAll('SELECT id FROM resources WHERE id NOT IN (SELECT DISTINCT resource_id FROM note_resources)');
        +		const queries = [];
        +		for (let i = 0; i < missingResources.length; i++) {
        +			const id = missingResources[i];
        +			queries.push({ sql: 'INSERT INTO note_resources (note_id, resource_id, is_associated, last_seen_time) VALUES (?, ?, ?, ?)', params: ["", id, 0, Date.now()] });			
        +		}
        +		await this.db().transactionExecBatch(queries);
         	}
         
         	static async remove(noteId) {
        @@ -41,10 +51,20 @@ class NoteResource extends BaseModel {
         	static async orphanResources(expiryDelay = null) {
         		if (expiryDelay === null) expiryDelay = 1000 * 60 * 60 * 24;
         		const cutOffTime = Date.now() - expiryDelay;
        -		const output = await this.modelSelectAll('SELECT DISTINCT resource_id FROM note_resources WHERE is_associated = 0 AND last_seen_time < ?', [cutOffTime]);
        +		const output = await this.modelSelectAll(`
        +			SELECT resource_id, sum(is_associated)
        +			FROM note_resources
        +			GROUP BY resource_id
        +			HAVING sum(is_associated) <= 0
        +			AND last_seen_time < ?
        +		`, [cutOffTime]);
         		return output.map(r => r.resource_id);
         	}
         
        +	static async deleteByResource(resourceId) {
        +		await this.db().exec('DELETE FROM note_resources WHERE resource_id = ?', [resourceId]);
        +	}
        +
         }
         
         module.exports = NoteResource;
        \ No newline at end of file
        diff --git a/ReactNativeClient/lib/models/Resource.js b/ReactNativeClient/lib/models/Resource.js
        index 303b91791c..bb11ba6153 100644
        --- a/ReactNativeClient/lib/models/Resource.js
        +++ b/ReactNativeClient/lib/models/Resource.js
        @@ -1,5 +1,6 @@
         const BaseModel = require('lib/BaseModel.js');
         const BaseItem = require('lib/models/BaseItem.js');
        +const NoteResource = require('lib/models/NoteResource.js');
         const Setting = require('lib/models/Setting.js');
         const ArrayUtils = require('lib/ArrayUtils.js');
         const pathUtils = require('lib/path-utils.js');
        @@ -152,7 +153,8 @@ class Resource extends BaseItem {
         			const resource = await Resource.load(id);
         			const path = Resource.fullPath(resource);
         			await this.fsDriver().remove(path);
        -			await super.batchDelete([id], options)
        +			await super.batchDelete([id], options);
        +			await NoteResource.deleteByResource(id); // Clean up note/resource relationships
         		}
         	}
         
        diff --git a/ReactNativeClient/lib/services/ResourceService.js b/ReactNativeClient/lib/services/ResourceService.js
        index 3caf9495ff..042853a0c9 100644
        --- a/ReactNativeClient/lib/services/ResourceService.js
        +++ b/ReactNativeClient/lib/services/ResourceService.js
        @@ -62,6 +62,8 @@ class ResourceService extends BaseService {
         			await ItemChange.db().exec('DELETE FROM item_changes WHERE id <= ?', [lastId]);
         		}
         
        +		await NoteResource.addOrphanedResources();
        +
         		this.logger().info('ResourceService::indexNoteResources: Completed');
         	}
         
        diff --git a/docs/index.html b/docs/index.html
        index b2f7d3fe69..182cebbde5 100644
        --- a/docs/index.html
        +++ b/docs/index.html
        @@ -205,7 +205,7 @@
         

        Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified either from the applications directly or from your own text editor. The notes are in Markdown format.

        Notes exported from Evernote via .enex files can be imported into Joplin, including the formatted content (which is converted to Markdown), resources (images, attachments, etc.) and complete metadata (geolocation, updated time, created time, etc.). Plain Markdown files can also be imported.

        -

        The notes can be synchronised with various targets including Nextcloud, the file system (for example with a network directory) or with Microsoft OneDrive. When synchronising the notes, notebooks, tags and other metadata are saved to plain text files which can be easily inspected, backed up and moved around.

        +

        The notes can be synchronised with various cloud services including Nextcloud, the file system (for example with a network directory) or with Microsoft OneDrive. When synchronising the notes, notebooks, tags and other metadata are saved to plain text files which can be easily inspected, backed up and moved around.

        The UI of the terminal client is built on top of the great terminal-kit library, the desktop client using Electron, and the Android client front end is done using React Native.

        @@ -409,14 +409,14 @@ $$ Croatian hr_HR -Hrvoje Mandić trbuhom@net.hr +Hrvoje Mandić trbuhom@net.hr 64% Deutsch de_DE -Tobias Grasse mail@tobias-grasse.net +Tobias Grasse mail@tobias-grasse.net 99% @@ -430,7 +430,7 @@ $$ Español es_ES -Fernando Martín f@mrtn.es +Fernando Martín f@mrtn.es 99% @@ -458,21 +458,21 @@ $$ Português (Brasil) pt_BR -Renato Nunes Bastos rnbastos@gmail.com +Renato Nunes Bastos rnbastos@gmail.com 98% Русский ru_RU -Artyom Karlov artyom.karlov@gmail.com +Artyom Karlov artyom.karlov@gmail.com 99% 中文 (简体) zh_CN -RCJacH RCJacH@outlook.com +RCJacH RCJacH@outlook.com 66% From aabb9be7de5cb9041905642bc4b5dca1f9b15407 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Fri, 16 Mar 2018 20:17:52 +0000 Subject: [PATCH 66/86] Mobile: Resolves #285: Create, edit and remove tags from notes --- ReactNativeClient/lib/BaseModel.js | 7 +- .../lib/components/global-style.js | 7 + .../lib/components/screen-header.js | 12 +- .../lib/components/screens/note-tags.js | 201 ++++++++++++++++++ .../lib/components/screens/note.js | 12 ++ ReactNativeClient/lib/database.js | 13 +- ReactNativeClient/lib/models/NoteResource.js | 2 +- ReactNativeClient/lib/models/Tag.js | 23 ++ ReactNativeClient/root.js | 10 +- 9 files changed, 270 insertions(+), 17 deletions(-) create mode 100644 ReactNativeClient/lib/components/screens/note-tags.js diff --git a/ReactNativeClient/lib/BaseModel.js b/ReactNativeClient/lib/BaseModel.js index 44324e2795..f84021beee 100644 --- a/ReactNativeClient/lib/BaseModel.js +++ b/ReactNativeClient/lib/BaseModel.js @@ -398,11 +398,10 @@ class BaseModel { } output = this.filter(o); - } catch (error) { - this.logger().error('Cannot save model', error); + } finally { + this.releaseSaveMutex(o, mutexRelease); } - - this.releaseSaveMutex(o, mutexRelease); + return output; } diff --git a/ReactNativeClient/lib/components/global-style.js b/ReactNativeClient/lib/components/global-style.js index c407c99b5e..c329796cd1 100644 --- a/ReactNativeClient/lib/components/global-style.js +++ b/ReactNativeClient/lib/components/global-style.js @@ -46,6 +46,13 @@ globalStyle.lineInput = { backgroundColor: globalStyle.backgroundColor, }; +globalStyle.buttonRow = { + flexDirection: 'row', + borderTopWidth: 1, + borderTopColor: globalStyle.dividerColor, + paddingTop: 10, +}; + let themeCache_ = {}; function themeStyle(theme) { diff --git a/ReactNativeClient/lib/components/screen-header.js b/ReactNativeClient/lib/components/screen-header.js index 7f531d4205..209a0955ea 100644 --- a/ReactNativeClient/lib/components/screen-header.js +++ b/ReactNativeClient/lib/components/screen-header.js @@ -128,6 +128,8 @@ class ScreenHeaderComponent extends Component { color: theme.raisedHighlightedColor, fontWeight: 'bold', fontSize: theme.fontSize, + paddingTop: 15, + paddingBottom: 15, }, warningBox: { backgroundColor: "#ff9900", @@ -428,15 +430,19 @@ class ScreenHeaderComponent extends Component { ) : null; + const showSideMenuButton = this.props.showSideMenuButton !== false && !this.props.noteSelectionEnabled; + const showSearchButton = this.props.showSearchButton !== false && !this.props.noteSelectionEnabled; + const showContextMenuButton = this.props.showContextMenuButton !== false; + const titleComp = createTitleComponent(); - const sideMenuComp = this.props.noteSelectionEnabled ? null : sideMenuButton(this.styles(), () => this.sideMenuButton_press()); + const sideMenuComp = !showSideMenuButton ? null : sideMenuButton(this.styles(), () => this.sideMenuButton_press()); const backButtonComp = backButton(this.styles(), () => this.backButton_press(), !this.props.historyCanGoBack); - const searchButtonComp = this.props.noteSelectionEnabled ? null : searchButton(this.styles(), () => this.searchButton_press()); + const searchButtonComp = !showSearchButton ? null : searchButton(this.styles(), () => this.searchButton_press()); const deleteButtonComp = this.props.noteSelectionEnabled ? deleteButton(this.styles(), () => this.deleteButton_press()) : null; const sortButtonComp = this.props.sortButton_press ? sortButton(this.styles(), () => this.props.sortButton_press()) : null; const windowHeight = Dimensions.get('window').height - 50; - const menuComp = ( + const menuComp = !showContextMenuButton ? null : ( this.menu_select(value)} style={this.styles().contextMenu}> diff --git a/ReactNativeClient/lib/components/screens/note-tags.js b/ReactNativeClient/lib/components/screens/note-tags.js new file mode 100644 index 0000000000..c34caad4ec --- /dev/null +++ b/ReactNativeClient/lib/components/screens/note-tags.js @@ -0,0 +1,201 @@ +const React = require('react'); const Component = React.Component; +const { ListView, StyleSheet, View, Text, Button, FlatList, TouchableOpacity, TextInput } = require('react-native'); +const Setting = require('lib/models/Setting.js'); +const { connect } = require('react-redux'); +const { reg } = require('lib/registry.js'); +const { ScreenHeader } = require('lib/components/screen-header.js'); +const { time } = require('lib/time-utils'); +const { Logger } = require('lib/logger.js'); +const BaseItem = require('lib/models/BaseItem.js'); +const Tag = require('lib/models/Tag.js'); +const { Database } = require('lib/database.js'); +const Folder = require('lib/models/Folder.js'); +const { ReportService } = require('lib/services/report.js'); +const { _ } = require('lib/locale.js'); +const { BaseScreenComponent } = require('lib/components/base-screen.js'); +const { globalStyle, themeStyle } = require('lib/components/global-style.js'); +const Icon = require('react-native-vector-icons/Ionicons').default; + +const styles = StyleSheet.create({ + body: { + flex: 1, + margin: globalStyle.margin, + }, +}); + +class NoteTagsScreenComponent extends BaseScreenComponent { + + constructor() { + super(); + this.styles_ = {}; + this.state = { + noteTagIds: [], + noteId: null, + tagListData: [], + newTags: '', + savingTags: false, + }; + + const noteHasTag = (tagId) => { + for (let i = 0; i < this.state.tagListData.length; i++) { + if (this.state.tagListData[i].id === tagId) return this.state.tagListData[i].selected; + } + return false; + } + + const newTagTitles = () => { + return this.state.newTags + .split(',') + .map(t => t.trim().toLowerCase()) + .filter(t => !!t); + } + + this.tag_press = (tagId) => { + const newData = this.state.tagListData.slice(); + for (let i = 0; i < newData.length; i++) { + const t = newData[i]; + if (t.id === tagId) { + const newTag = Object.assign({}, t); + newTag.selected = !newTag.selected; + newData[i] = newTag; + break; + } + } + + this.setState({ tagListData: newData }); + } + + this.renderTag = (data) => { + const tag = data.item; + const iconName = noteHasTag(tag.id) ? 'md-checkbox-outline' : 'md-square-outline'; + return ( + this.tag_press(tag.id)} style={this.styles().tag}> + + {tag.title} + + + ); + } + + this.tagKeyExtractor = (tag, index) => tag.id; + + this.okButton_press = async () => { + this.setState({ savingTags: true }); + + try { + const tagIds = this.state.tagListData.filter(t => t.selected).map(t => t.id); + await Tag.setNoteTagsByIds(this.state.noteId, tagIds); + + const extraTitles = newTagTitles(); + for (let i = 0; i < extraTitles.length; i++) { + await Tag.addNoteTagByTitle(this.state.noteId, extraTitles[i]); + } + } finally { + this.setState({ savingTags: false }); + } + + this.props.dispatch({ + type: 'NAV_BACK', + }); + } + + this.cancelButton_press = () => { + this.props.dispatch({ + type: 'NAV_BACK', + }); + } + } + + componentWillMount() { + const noteId = this.props.noteId; + this.setState({ noteId: noteId }); + this.loadNoteTags(noteId); + } + + async loadNoteTags(noteId) { + const tags = await Tag.tagsByNoteId(noteId); + const tagIds = tags.map(t => t.id); + + const tagListData = this.props.tags.map(tag => { return { + id: tag.id, + title: tag.title, + selected: tagIds.indexOf(tag.id) >= 0, + }}); + + this.setState({ tagListData: tagListData }); + } + + styles() { + const themeId = this.props.theme; + const theme = themeStyle(themeId); + + if (this.styles_[themeId]) return this.styles_[themeId]; + this.styles_ = {}; + + let styles = { + tag: { + padding: 10, + borderBottomWidth: 1, + borderBottomColor: theme.dividerColor, + }, + tagIconText: { + flexDirection: 'row', + alignItems: 'center', + }, + tagCheckbox: { + marginRight: 5, + fontSize: 20, + }, + newTagBox: { + flexDirection:'row', + alignItems: 'center', + paddingLeft: theme.marginLeft, + paddingRight: theme.marginRight, + borderTopWidth: 1, + borderTopColor: theme.dividerColor + }, + }; + + this.styles_[themeId] = StyleSheet.create(styles); + return this.styles_[themeId]; + } + + render() { + const theme = themeStyle(this.props.theme); + + return ( + + + + + {_('Or type tags:')} { this.setState({ newTags: value }) }} style={{flex:1}}/> + + + + + + + + + + + ); + } + +} + +const NoteTagsScreen = connect( + (state) => { + return { + theme: state.settings.theme, + tags: state.tags, + noteId: state.selectedNoteIds.length ? state.selectedNoteIds[0] : null, + }; + } +)(NoteTagsScreenComponent) + +module.exports = { NoteTagsScreen }; \ No newline at end of file diff --git a/ReactNativeClient/lib/components/screens/note.js b/ReactNativeClient/lib/components/screens/note.js index 56ed5ab990..9b9a53b426 100644 --- a/ReactNativeClient/lib/components/screens/note.js +++ b/ReactNativeClient/lib/components/screens/note.js @@ -357,6 +357,16 @@ class NoteScreenComponent extends BaseScreenComponent { shared.toggleIsTodo_onPress(this); } + tags_onPress() { + if (!this.state.note || !this.state.note.id) return; + + this.props.dispatch({ + type: 'NAV_GO', + routeName: 'NoteTags', + noteId: this.state.note.id, + }); + } + setAlarm_onPress() { this.setState({ alarmDialogShown: true }); } @@ -393,6 +403,7 @@ class NoteScreenComponent extends BaseScreenComponent { menuOptions() { const note = this.state.note; const isTodo = note && !!note.is_todo; + const isSaved = note && note.id; let output = []; @@ -410,6 +421,7 @@ class NoteScreenComponent extends BaseScreenComponent { output.push({ title: _('Set alarm'), onPress: () => { this.setState({ alarmDialogShown: true }) }});; } + if (isSaved) output.push({ title: _('Tags'), onPress: () => { this.tags_onPress(); } }); output.push({ title: isTodo ? _('Convert to note') : _('Convert to todo'), onPress: () => { this.toggleIsTodo_onPress(); } }); output.push({ isDivider: true }); if (this.props.showAdvancedOptions) output.push({ title: this.state.showNoteMetadata ? _('Hide metadata') : _('Show metadata'), onPress: () => { this.showMetadata_onPress(); } }); diff --git a/ReactNativeClient/lib/database.js b/ReactNativeClient/lib/database.js index b671180064..2359c0f838 100644 --- a/ReactNativeClient/lib/database.js +++ b/ReactNativeClient/lib/database.js @@ -12,6 +12,7 @@ class Database { this.driver_ = driver; this.logger_ = new Logger(); this.logExcludedQueryTypes_ = []; + this.batchTransactionMutex_ = new Mutex(); } setLogExcludedQueryTypes(v) { @@ -113,16 +114,20 @@ class Database { } // There can be only one transaction running at a time so use a mutex - const release = await Database.batchTransactionMutex_.acquire(); + const release = await this.batchTransactionMutex_.acquire(); try { - queries.splice(0, 0, 'BEGIN TRANSACTION'); - queries.push('COMMIT'); // Note: ROLLBACK is currently not supported + await this.exec('BEGIN TRANSACTION'); for (let i = 0; i < queries.length; i++) { let query = this.wrapQuery(queries[i]); await this.exec(query.sql, query.params); } + + await this.exec('COMMIT'); + } catch (error) { + await this.exec('ROLLBACK'); + throw error; } finally { release(); } @@ -300,8 +305,6 @@ class Database { } -Database.batchTransactionMutex_ = new Mutex(); - Database.TYPE_UNKNOWN = 0; Database.TYPE_INT = 1; Database.TYPE_TEXT = 2; diff --git a/ReactNativeClient/lib/models/NoteResource.js b/ReactNativeClient/lib/models/NoteResource.js index 47938b64cf..10dfbb955d 100644 --- a/ReactNativeClient/lib/models/NoteResource.js +++ b/ReactNativeClient/lib/models/NoteResource.js @@ -38,7 +38,7 @@ class NoteResource extends BaseModel { const missingResources = await this.db().selectAll('SELECT id FROM resources WHERE id NOT IN (SELECT DISTINCT resource_id FROM note_resources)'); const queries = []; for (let i = 0; i < missingResources.length; i++) { - const id = missingResources[i]; + const id = missingResources[i].id; queries.push({ sql: 'INSERT INTO note_resources (note_id, resource_id, is_associated, last_seen_time) VALUES (?, ?, ?, ?)', params: ["", id, 0, Date.now()] }); } await this.db().transactionExecBatch(queries); diff --git a/ReactNativeClient/lib/models/Tag.js b/ReactNativeClient/lib/models/Tag.js index 67f17c51a0..a581da413a 100644 --- a/ReactNativeClient/lib/models/Tag.js +++ b/ReactNativeClient/lib/models/Tag.js @@ -106,6 +106,12 @@ class Tag extends BaseItem { return this.loadByField('title', title, { caseInsensitive: true }); } + static async addNoteTagByTitle(noteId, tagTitle) { + let tag = await this.loadByTitle(tagTitle); + if (!tag) tag = await Tag.save({ title: tagTitle }, { userSideValidation: true }); + return await this.addNote(tag.id, noteId); + } + static async setNoteTagsByTitles(noteId, tagTitles) { const previousTags = await this.tagsByNoteId(noteId); const addedTitles = []; @@ -126,6 +132,23 @@ class Tag extends BaseItem { } } + static async setNoteTagsByIds(noteId, tagIds) { + const previousTags = await this.tagsByNoteId(noteId); + const addedIds = []; + + for (let i = 0; i < tagIds.length; i++) { + const tagId = tagIds[i]; + await this.addNote(tagId, noteId); + addedIds.push(tagId); + } + + for (let i = 0; i < previousTags.length; i++) { + if (addedIds.indexOf(previousTags[i].id) < 0) { + await this.removeNote(previousTags[i].id, noteId); + } + } + } + static async save(o, options = null) { if (options && options.userSideValidation) { if ('title' in o) { diff --git a/ReactNativeClient/root.js b/ReactNativeClient/root.js index d4fbec9954..79475b3588 100644 --- a/ReactNativeClient/root.js +++ b/ReactNativeClient/root.js @@ -32,6 +32,7 @@ const { ConfigScreen } = require('lib/components/screens/config.js'); const { FolderScreen } = require('lib/components/screens/folder.js'); const { LogScreen } = require('lib/components/screens/log.js'); const { StatusScreen } = require('lib/components/screens/status.js'); +const { NoteTagsScreen } = require('lib/components/screens/note-tags.js'); const { WelcomeScreen } = require('lib/components/screens/welcome.js'); const { SearchScreen } = require('lib/components/screens/search.js'); const { OneDriveLoginScreen } = require('lib/components/screens/onedrive-login.js'); @@ -127,9 +128,9 @@ const generalMiddleware = store => next => async (action) => { let navHistory = []; -function historyCanGoBackTo(route) { - if (route.routeName == 'Note') return false; - if (route.routeName == 'Folder') return false; +function historyCanGoBackTo(route, nextRoute) { + if (route.routeName === 'Note' && nextRoute.routeName !== 'NoteTags') return false; + if (route.routeName === 'Folder') return false; return true; } @@ -172,7 +173,7 @@ const appReducer = (state = appDefaultState, action) => { const currentRoute = state.route; const currentRouteName = currentRoute ? currentRoute.routeName : ''; - if (!historyGoingBack && historyCanGoBackTo(currentRoute)) { + if (!historyGoingBack && historyCanGoBackTo(currentRoute, action)) { // If the route *name* is the same (even if the other parameters are different), we // overwrite the last route in the history with the current one. If the route name // is different, we push a new history entry. @@ -564,6 +565,7 @@ class AppComponent extends React.Component { Status: { screen: StatusScreen }, Search: { screen: SearchScreen }, Config: { screen: ConfigScreen }, + NoteTags: { screen: NoteTagsScreen }, }; return ( From 8c65a7cc3183668354d71c725ef7dc5ee2873e9d Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Sat, 17 Mar 2018 15:13:00 +0000 Subject: [PATCH 67/86] Electron release v1.0.78 --- ElectronClient/app/package-lock.json | 2 +- ElectronClient/app/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ElectronClient/app/package-lock.json b/ElectronClient/app/package-lock.json index 9971b40326..d8fc5f0f21 100644 --- a/ElectronClient/app/package-lock.json +++ b/ElectronClient/app/package-lock.json @@ -1,6 +1,6 @@ { "name": "Joplin", - "version": "1.0.77", + "version": "1.0.78", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/ElectronClient/app/package.json b/ElectronClient/app/package.json index ce36287af5..11eae148fc 100644 --- a/ElectronClient/app/package.json +++ b/ElectronClient/app/package.json @@ -1,6 +1,6 @@ { "name": "Joplin", - "version": "1.0.77", + "version": "1.0.78", "description": "Joplin for Desktop", "main": "main.js", "scripts": { From d6f7893c562640c60993e8f92bd875917f71eb04 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Sat, 17 Mar 2018 15:28:56 +0000 Subject: [PATCH 68/86] Update readme downloads --- README.md | 6 +++--- docs/index.html | 18 +++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 3964f2e256..f00c2c082d 100644 --- a/README.md +++ b/README.md @@ -18,9 +18,9 @@ Three types of applications are available: for the **desktop** (Windows, macOS a Operating System | Download -----------------|-------- -Windows | Get it on Windows -macOS | Get it on macOS -Linux | Get it on Linux +Windows | Get it on Windows +macOS | Get it on macOS +Linux | Get it on Linux ## Mobile applications diff --git a/docs/index.html b/docs/index.html index 182cebbde5..a504a8a431 100644 --- a/docs/index.html +++ b/docs/index.html @@ -222,15 +222,15 @@ Windows -Get it on Windows +Get it on Windows macOS -Get it on macOS +Get it on macOS Linux -Get it on Linux +Get it on Linux @@ -409,14 +409,14 @@ $$ Croatian hr_HR -Hrvoje Mandić trbuhom@net.hr +Hrvoje Mandić trbuhom@net.hr 64% Deutsch de_DE -Tobias Grasse mail@tobias-grasse.net +Tobias Grasse mail@tobias-grasse.net 99% @@ -430,7 +430,7 @@ $$ Español es_ES -Fernando Martín f@mrtn.es +Fernando Martín f@mrtn.es 99% @@ -458,21 +458,21 @@ $$ Português (Brasil) pt_BR -Renato Nunes Bastos rnbastos@gmail.com +Renato Nunes Bastos rnbastos@gmail.com 98% Русский ru_RU -Artyom Karlov artyom.karlov@gmail.com +Artyom Karlov artyom.karlov@gmail.com 99% 中文 (简体) zh_CN -RCJacH RCJacH@outlook.com +RCJacH RCJacH@outlook.com 66% From e2ad2dfcaae965e548ed31687a10e02192bceeb8 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Sat, 17 Mar 2018 22:23:50 +0000 Subject: [PATCH 69/86] Update CONTRIBUTING.md --- CONTRIBUTING.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index df6568a0f5..7cf4a103c4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,10 +10,6 @@ Again, please check that it has not already been requested. If it has, simply ** # Adding new features -If you want to add a new feature, consider asking about it before implementing it to make sure it is within the scope of the project. Of course you are free to create the pull request directly but it is not guaranteed it is going to be accepted. +If you want to add a new feature, consider asking about it before implementing it or checking existing discussions to make sure it is within the scope of the project. Of course you are free to create the pull request directly but it is not guaranteed it is going to be accepted. Building the apps is relatively easy - please [see the build instructions](https://github.com/laurent22/joplin/blob/master/BUILD.md) for more details. - -# Coding style - -See the [prettier config](https://github.com/laurent22/joplin/blob/master/prettier.config.js). From ca3946689a68fbfac577b1fc662874c0a66d782c Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Sat, 17 Mar 2018 23:00:01 +0000 Subject: [PATCH 70/86] Mobile: Made tag UI a dialog --- .../lib/components/ModalDialog.js | 13 ++-- .../{note-tags.js => NoteTagsDialog.js} | 63 +++++++++---------- .../lib/components/screens/note.js | 17 +++-- ReactNativeClient/lib/fs-driver-rn.js | 2 +- ReactNativeClient/package-lock.json | 5 ++ ReactNativeClient/package.json | 1 + ReactNativeClient/root.js | 4 +- 7 files changed, 55 insertions(+), 50 deletions(-) rename ReactNativeClient/lib/components/screens/{note-tags.js => NoteTagsDialog.js} (78%) diff --git a/ReactNativeClient/lib/components/ModalDialog.js b/ReactNativeClient/lib/components/ModalDialog.js index 2ecc2c3e31..92ea99902c 100644 --- a/ReactNativeClient/lib/components/ModalDialog.js +++ b/ReactNativeClient/lib/components/ModalDialog.js @@ -30,21 +30,21 @@ class ModalDialog extends React.Component { borderColor:theme.dividerColor, margin: 20, padding: 10, + borderRadius: 5, }, modalContentWrapper2: { - paddingTop: 10, flex:1, }, title: { borderBottomWidth: 1, borderBottomColor: theme.dividerColor, paddingBottom: 10, + fontWeight: 'bold', }, buttonRow: { flexDirection: 'row', borderTopWidth: 1, borderTopColor: theme.dividerColor, - paddingTop: 10, }, }; @@ -54,21 +54,22 @@ class ModalDialog extends React.Component { render() { const ContentComponent = this.props.ContentComponent; + const buttonBarEnabled = this.props.buttonBarEnabled !== false; return ( { }} > - - Title + + {this.props.title} {ContentComponent} - + - + diff --git a/ReactNativeClient/lib/components/screens/note-tags.js b/ReactNativeClient/lib/components/screens/NoteTagsDialog.js similarity index 78% rename from ReactNativeClient/lib/components/screens/note-tags.js rename to ReactNativeClient/lib/components/screens/NoteTagsDialog.js index c34caad4ec..c768e57241 100644 --- a/ReactNativeClient/lib/components/screens/note-tags.js +++ b/ReactNativeClient/lib/components/screens/NoteTagsDialog.js @@ -12,18 +12,12 @@ const { Database } = require('lib/database.js'); const Folder = require('lib/models/Folder.js'); const { ReportService } = require('lib/services/report.js'); const { _ } = require('lib/locale.js'); -const { BaseScreenComponent } = require('lib/components/base-screen.js'); const { globalStyle, themeStyle } = require('lib/components/global-style.js'); const Icon = require('react-native-vector-icons/Ionicons').default; +const ModalDialog = require('lib/components/ModalDialog'); +const naturalCompare = require('string-natural-compare'); -const styles = StyleSheet.create({ - body: { - flex: 1, - margin: globalStyle.margin, - }, -}); - -class NoteTagsScreenComponent extends BaseScreenComponent { +class NoteTagsDialogComponent extends React.Component { constructor() { super(); @@ -94,15 +88,11 @@ class NoteTagsScreenComponent extends BaseScreenComponent { this.setState({ savingTags: false }); } - this.props.dispatch({ - type: 'NAV_BACK', - }); + if (this.props.onCloseRequested) this.props.onCloseRequested(); } this.cancelButton_press = () => { - this.props.dispatch({ - type: 'NAV_BACK', - }); + if (this.props.onCloseRequested) this.props.onCloseRequested(); } } @@ -122,6 +112,11 @@ class NoteTagsScreenComponent extends BaseScreenComponent { selected: tagIds.indexOf(tag.id) >= 0, }}); + tagListData.sort((a, b) => { + return naturalCompare.caseInsensitive(a.title, b.title); + //return a.title.toLowerCase() < b.title.toLowerCase() ? -1 : +1; + }); + this.setState({ tagListData: tagListData }); } @@ -151,8 +146,8 @@ class NoteTagsScreenComponent extends BaseScreenComponent { alignItems: 'center', paddingLeft: theme.marginLeft, paddingRight: theme.marginRight, - borderTopWidth: 1, - borderTopColor: theme.dividerColor + borderBottomWidth: 1, + borderBottomColor: theme.dividerColor }, }; @@ -163,32 +158,32 @@ class NoteTagsScreenComponent extends BaseScreenComponent { render() { const theme = themeStyle(this.props.theme); - return ( - - + const dialogContent = ( + + + {_('New tags:')} { this.setState({ newTags: value }) }} style={{flex:1}}/> + - - {_('Or type tags:')} { this.setState({ newTags: value }) }} style={{flex:1}}/> - - - - - - - - - ); + + return } } -const NoteTagsScreen = connect( +const NoteTagsDialog = connect( (state) => { return { theme: state.settings.theme, @@ -196,6 +191,6 @@ const NoteTagsScreen = connect( noteId: state.selectedNoteIds.length ? state.selectedNoteIds[0] : null, }; } -)(NoteTagsScreenComponent) +)(NoteTagsDialogComponent) -module.exports = { NoteTagsScreen }; \ No newline at end of file +module.exports = NoteTagsDialog; \ No newline at end of file diff --git a/ReactNativeClient/lib/components/screens/note.js b/ReactNativeClient/lib/components/screens/note.js index 9b9a53b426..fd9b9116be 100644 --- a/ReactNativeClient/lib/components/screens/note.js +++ b/ReactNativeClient/lib/components/screens/note.js @@ -15,6 +15,7 @@ const Icon = require('react-native-vector-icons/Ionicons').default; const { fileExtension, basename, safeFileExtension } = require('lib/path-utils.js'); const mimeUtils = require('lib/mime-utils.js').mime; const { ScreenHeader } = require('lib/components/screen-header.js'); +const NoteTagsDialog = require('lib/components/screens/NoteTagsDialog'); const { time } = require('lib/time-utils.js'); const { Checkbox } = require('lib/components/checkbox.js'); const { _ } = require('lib/locale.js'); @@ -51,7 +52,8 @@ class NoteScreenComponent extends BaseScreenComponent { isLoading: true, titleTextInputHeight: 20, alarmDialogShown: false, - heightBumpView:0 + heightBumpView:0, + noteTagDialogShown: false, }; // iOS doesn't support multiline text fields properly so disable it @@ -101,6 +103,10 @@ class NoteScreenComponent extends BaseScreenComponent { return false; }; + + this.noteTagDialog_closeRequested = () => { + this.setState({ noteTagDialogShown: false }); + } } styles() { @@ -360,11 +366,7 @@ class NoteScreenComponent extends BaseScreenComponent { tags_onPress() { if (!this.state.note || !this.state.note.id) return; - this.props.dispatch({ - type: 'NAV_GO', - routeName: 'NoteTags', - noteId: this.state.note.id, - }); + this.setState({ noteTagDialogShown: true }); } setAlarm_onPress() { @@ -547,6 +549,8 @@ class NoteScreenComponent extends BaseScreenComponent { ); + const noteTagDialog = !this.state.noteTagDialogShown ? null : ; + return ( { this.dialogbox = dialogbox }}/> + { noteTagDialog } ); } diff --git a/ReactNativeClient/lib/fs-driver-rn.js b/ReactNativeClient/lib/fs-driver-rn.js index 53b486fdca..4cbb2a2ca2 100644 --- a/ReactNativeClient/lib/fs-driver-rn.js +++ b/ReactNativeClient/lib/fs-driver-rn.js @@ -17,7 +17,7 @@ class FsDriverRN extends FsDriverBase { // same as rm -rf async remove(path) { - throw new Error('Not implemented'); + return await this.unlink(path); } writeBinaryFile(path, content) { diff --git a/ReactNativeClient/package-lock.json b/ReactNativeClient/package-lock.json index 34659157b7..0f1a559475 100644 --- a/ReactNativeClient/package-lock.json +++ b/ReactNativeClient/package-lock.json @@ -6533,6 +6533,11 @@ "strip-ansi": "3.0.1" } }, + "string-natural-compare": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-2.0.2.tgz", + "integrity": "sha1-xc5OJ4q10SZa5vxVQ1rre3b8sAE=" + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", diff --git a/ReactNativeClient/package.json b/ReactNativeClient/package.json index b7357bd344..1c8ee0b96b 100644 --- a/ReactNativeClient/package.json +++ b/ReactNativeClient/package.json @@ -46,6 +46,7 @@ "react-redux": "4.4.8", "redux": "3.6.0", "stream": "0.0.2", + "string-natural-compare": "^2.0.2", "timers": "^0.1.1", "url-parse": "^1.2.0", "uuid": "^3.0.1", diff --git a/ReactNativeClient/root.js b/ReactNativeClient/root.js index 79475b3588..89abe22ad1 100644 --- a/ReactNativeClient/root.js +++ b/ReactNativeClient/root.js @@ -32,7 +32,6 @@ const { ConfigScreen } = require('lib/components/screens/config.js'); const { FolderScreen } = require('lib/components/screens/folder.js'); const { LogScreen } = require('lib/components/screens/log.js'); const { StatusScreen } = require('lib/components/screens/status.js'); -const { NoteTagsScreen } = require('lib/components/screens/note-tags.js'); const { WelcomeScreen } = require('lib/components/screens/welcome.js'); const { SearchScreen } = require('lib/components/screens/search.js'); const { OneDriveLoginScreen } = require('lib/components/screens/onedrive-login.js'); @@ -129,7 +128,7 @@ const generalMiddleware = store => next => async (action) => { let navHistory = []; function historyCanGoBackTo(route, nextRoute) { - if (route.routeName === 'Note' && nextRoute.routeName !== 'NoteTags') return false; + if (route.routeName === 'Note') return false; if (route.routeName === 'Folder') return false; return true; @@ -565,7 +564,6 @@ class AppComponent extends React.Component { Status: { screen: StatusScreen }, Search: { screen: SearchScreen }, Config: { screen: ConfigScreen }, - NoteTags: { screen: NoteTagsScreen }, }; return ( From 32c47a96f13b9b72ea9ed59678ad69cbc9e4cd38 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Sat, 17 Mar 2018 23:51:15 +0000 Subject: [PATCH 71/86] Electron: Resolves #73: Show modified date next to note in editor --- ElectronClient/app/gui/NoteStatusBar.jsx | 47 ++++++++++++++++++++++++ ElectronClient/app/gui/NoteText.jsx | 6 ++- README.md | 2 +- docs/index.html | 14 +++---- 4 files changed, 60 insertions(+), 9 deletions(-) create mode 100644 ElectronClient/app/gui/NoteStatusBar.jsx diff --git a/ElectronClient/app/gui/NoteStatusBar.jsx b/ElectronClient/app/gui/NoteStatusBar.jsx new file mode 100644 index 0000000000..fe5ce30d8c --- /dev/null +++ b/ElectronClient/app/gui/NoteStatusBar.jsx @@ -0,0 +1,47 @@ +const React = require('react'); +const { connect } = require('react-redux'); +const { time } = require('lib/time-utils.js'); +const { themeStyle } = require('../theme.js'); +const { _ } = require('lib/locale.js'); + +class NoteStatusBarComponent extends React.Component { + + style() { + const theme = themeStyle(this.props.theme); + + const itemHeight = 34; + + let style = { + root: Object.assign({}, theme.textStyle, { + backgroundColor: theme.backgroundColor, + color: theme.colorFaded, + }), + }; + + return style; + } + + render() { + const theme = themeStyle(this.props.theme); + const style = this.props.style; + const note = this.props.note; + + return ( +
        {time.formatMsToLocal(note.user_updated_time)}
        + ); + } + +} + +const mapStateToProps = (state) => { + return { + // notes: state.notes, + // folders: state.folders, + // selectedNoteIds: state.selectedNoteIds, + theme: state.settings.theme, + }; +}; + +const NoteStatusBar = connect(mapStateToProps)(NoteStatusBarComponent); + +module.exports = { NoteStatusBar }; \ No newline at end of file diff --git a/ElectronClient/app/gui/NoteText.jsx b/ElectronClient/app/gui/NoteText.jsx index 05d190c911..c28c9a0d18 100644 --- a/ElectronClient/app/gui/NoteText.jsx +++ b/ElectronClient/app/gui/NoteText.jsx @@ -566,6 +566,7 @@ class NoteTextComponent extends React.Component { marginBottom: 0, display: 'flex', flexDirection: 'row', + alignItems: 'center', }; const titleEditorStyle = { @@ -685,6 +686,8 @@ class NoteTextComponent extends React.Component { display: 'flex', }} iconName="fa-caret-down" theme={this.props.theme} onClick={() => { this.itemContextMenu() }} /> + const titleBarDate = {time.formatMsToLocal(note.user_updated_time)} + const viewer =
        { titleEditor } - { titleBarMenuButton } + { titleBarDate } + { false ? titleBarMenuButton : null }
        { toolbar } { editor } diff --git a/README.md b/README.md index f00c2c082d..24bb91be44 100644 --- a/README.md +++ b/README.md @@ -245,7 +245,7 @@ Current translations: # Known bugs - Non-alphabetical characters such as Chinese or Arabic might create glitches in the terminal on Windows. This is a limitation of the current Windows console. -- While the mobile can sync and load tags, it is not currently possible to create new ones. The desktop and terminal apps can create, delete and edit tags. +- It is only possible to upload files of up to 4MB to OneDrive due to a limitation of [the API](https://docs.microsoft.com/en-gb/onedrive/developer/rest-api/api/driveitem_put_content) being currently used. There is currently no plan to support OneDrive "large file" API. # License diff --git a/docs/index.html b/docs/index.html index a504a8a431..eeeedd6219 100644 --- a/docs/index.html +++ b/docs/index.html @@ -409,14 +409,14 @@ $$ Croatian hr_HR -Hrvoje Mandić trbuhom@net.hr +Hrvoje Mandić trbuhom@net.hr 64% Deutsch de_DE -Tobias Grasse mail@tobias-grasse.net +Tobias Grasse mail@tobias-grasse.net 99% @@ -430,7 +430,7 @@ $$ Español es_ES -Fernando Martín f@mrtn.es +Fernando Martín f@mrtn.es 99% @@ -458,21 +458,21 @@ $$ Português (Brasil) pt_BR -Renato Nunes Bastos rnbastos@gmail.com +Renato Nunes Bastos rnbastos@gmail.com 98% Русский ru_RU -Artyom Karlov artyom.karlov@gmail.com +Artyom Karlov artyom.karlov@gmail.com 99% 中文 (简体) zh_CN -RCJacH RCJacH@outlook.com +RCJacH RCJacH@outlook.com 66% @@ -488,7 +488,7 @@ $$

        Known bugs

        • Non-alphabetical characters such as Chinese or Arabic might create glitches in the terminal on Windows. This is a limitation of the current Windows console.
        • -
        • While the mobile can sync and load tags, it is not currently possible to create new ones. The desktop and terminal apps can create, delete and edit tags.
        • +
        • It is only possible to upload files of up to 4MB to OneDrive due to a limitation of the API being currently used. There is currently no plan to support OneDrive "large file" API.

        License

        MIT License

        From cb824f7dd7f0c91821dbf98521369a76efa7d896 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Sat, 17 Mar 2018 23:55:09 +0000 Subject: [PATCH 72/86] Android release v1.0.110 --- README.md | 2 +- ReactNativeClient/android/app/build.gradle | 4 ++-- docs/index.html | 14 +++++++------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 24bb91be44..ad642756da 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Linux | Get it on Google Play | or [Download APK File](https://github.com/laurent22/joplin-android/releases/download/android-v1.0.107/joplin-v1.0.107.apk) +Android | Get it on Google Play | or [Download APK File](https://github.com/laurent22/joplin-android/releases/download/android-v1.0.110/joplin-v1.0.110.apk) iOS | Get it on the App Store | - ## Terminal application diff --git a/ReactNativeClient/android/app/build.gradle b/ReactNativeClient/android/app/build.gradle index 8aedd92ce7..0f68ef11e7 100644 --- a/ReactNativeClient/android/app/build.gradle +++ b/ReactNativeClient/android/app/build.gradle @@ -90,8 +90,8 @@ android { applicationId "net.cozic.joplin" minSdkVersion 16 targetSdkVersion 22 - versionCode 2097285 - versionName "1.0.107" + versionCode 2097288 + versionName "1.0.110" ndk { abiFilters "armeabi-v7a", "x86" } diff --git a/docs/index.html b/docs/index.html index eeeedd6219..1219a1eded 100644 --- a/docs/index.html +++ b/docs/index.html @@ -247,7 +247,7 @@ Android Get it on Google Play -or Download APK File +or Download APK File iOS @@ -409,14 +409,14 @@ $$ Croatian hr_HR -Hrvoje Mandić trbuhom@net.hr +Hrvoje Mandić trbuhom@net.hr 64% Deutsch de_DE -Tobias Grasse mail@tobias-grasse.net +Tobias Grasse mail@tobias-grasse.net 99% @@ -430,7 +430,7 @@ $$ Español es_ES -Fernando Martín f@mrtn.es +Fernando Martín f@mrtn.es 99% @@ -458,21 +458,21 @@ $$ Português (Brasil) pt_BR -Renato Nunes Bastos rnbastos@gmail.com +Renato Nunes Bastos rnbastos@gmail.com 98% Русский ru_RU -Artyom Karlov artyom.karlov@gmail.com +Artyom Karlov artyom.karlov@gmail.com 99% 中文 (简体) zh_CN -RCJacH RCJacH@outlook.com +RCJacH RCJacH@outlook.com 66% From bc7c82e3daa1357e77534978022ca648da4ef947 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Sun, 18 Mar 2018 10:16:08 +0000 Subject: [PATCH 73/86] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ad642756da..5a55859dce 100644 --- a/README.md +++ b/README.md @@ -123,10 +123,11 @@ If synchronisation does not work, please consult the logs in the app profile dir Select the "WebDAV" synchronisation target and follow the same instructions as for Nextcloud above. -WebDAV-compatible services that are known to work with Joplin: +WebDAV-compatible services that are known to work with Joplin. - [Box.com](https://www.box.com/) - [DriveHQ](https://www.drivehq.com) +- [HiDrive](https://www.strato.fr/stockage-en-ligne/) from Strato. [Setup help](https://github.com/laurent22/joplin/issues/309) - [OwnCloud](https://owncloud.org/) - [Seafile](https://www.seafile.com/) - [Stack](https://www.transip.nl/stack/) From 90fad2a3ab4340c0934bcd24f1bef09352fa6426 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Sun, 18 Mar 2018 12:45:39 +0000 Subject: [PATCH 74/86] Electron: Resolves #307: Use blue colour for sidebar, to be consistent with mobile app and logo --- ElectronClient/app/style.css | 6 ++++-- ElectronClient/app/theme.js | 8 +++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/ElectronClient/app/style.css b/ElectronClient/app/style.css index a54281d279..8f0655ffd2 100644 --- a/ElectronClient/app/style.css +++ b/ElectronClient/app/style.css @@ -36,12 +36,14 @@ table td, table th { .side-bar .list-item:hover, .side-bar .synchronize-button:hover { - background-color: #453E53; + /*background-color: #453E53;*/ + background-color: #01427B; } .side-bar .list-item:active, .side-bar .synchronize-button:active { - background-color: #564B6C; + /*background-color: #564B6C;*/ + background-color: #0465BB; } .editor-toolbar .button:not(.disabled):hover, diff --git a/ElectronClient/app/theme.js b/ElectronClient/app/theme.js index 53df659d8e..93d8f62de9 100644 --- a/ElectronClient/app/theme.js +++ b/ElectronClient/app/theme.js @@ -1,7 +1,7 @@ const Setting = require('lib/models/Setting.js'); const globalStyle = { - fontSize: 12 * Setting.value('style.zoom')/100, + fontSize: 12 * Setting.value('style.zoom') / 100, fontFamily: 'sans-serif', margin: 15, // No text and no interactive component should be within this margin itemMarginTop: 10, @@ -21,9 +21,11 @@ const globalStyle = { buttonMinHeight: 30, textAreaLineHeight: 17, - backgroundColor2: "#2B2634", + //backgroundColor2: "#2B2634", + backgroundColor2: "#162B3D", color2: "#ffffff", - selectedColor2: "#5A4D70", + //selectedColor2: "#5A4D70", + selectedColor2: "#0269C2", colorError2: "#ff6c6c", warningBackgroundColor: "#FFD08D", From 67608e29c8cac70e55df43c2b51c4e283ed99ec8 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Mon, 19 Mar 2018 23:04:48 +0000 Subject: [PATCH 75/86] Electron: Resolves #144, Resolves #311: Highlight search results and search in real time. Associated Ctrl+F with searching. --- ElectronClient/app/app.js | 4 +- ElectronClient/app/gui/Header.jsx | 136 ++++++++++++++++-- ElectronClient/app/gui/MainScreen.jsx | 65 ++++----- ElectronClient/app/gui/NoteList.jsx | 38 ++++- ElectronClient/app/gui/NoteText.jsx | 47 +++++- ElectronClient/app/gui/SideBar.jsx | 18 +-- ElectronClient/app/gui/note-viewer/index.html | 40 +++++- ElectronClient/app/index.html | 4 + ElectronClient/app/package-lock.json | 5 + ElectronClient/app/package.json | 1 + ReactNativeClient/lib/BaseApplication.js | 2 +- ReactNativeClient/lib/MdToHtml.js | 17 ++- ReactNativeClient/lib/ObjectUtils.js | 5 + ReactNativeClient/lib/models/Search.js | 23 +++ ReactNativeClient/lib/reducer.js | 26 +++- 15 files changed, 360 insertions(+), 71 deletions(-) create mode 100644 ReactNativeClient/lib/models/Search.js diff --git a/ElectronClient/app/app.js b/ElectronClient/app/app.js index 3fe37fd8c5..7a0c0cdae0 100644 --- a/ElectronClient/app/app.js +++ b/ElectronClient/app/app.js @@ -368,11 +368,11 @@ class Application extends BaseApplication { }, { label: _('Search in all the notes'), screens: ['Main'], - accelerator: 'F6', + accelerator: 'CommandOrControl+F', click: () => { this.dispatch({ type: 'WINDOW_COMMAND', - name: 'search', + name: 'focus_search', }); }, }], diff --git a/ElectronClient/app/gui/Header.jsx b/ElectronClient/app/gui/Header.jsx index bb0a2dbcfb..72b0c7bb70 100644 --- a/ElectronClient/app/gui/Header.jsx +++ b/ElectronClient/app/gui/Header.jsx @@ -6,6 +6,63 @@ const { _ } = require('lib/locale.js'); class HeaderComponent extends React.Component { + constructor() { + super(); + this.state = { + searchQuery: '', + }; + + this.scheduleSearchChangeEventIid_ = null; + this.searchOnQuery_ = null; + this.searchElement_ = null; + + const triggerOnQuery = (query) => { + clearTimeout(this.scheduleSearchChangeEventIid_); + if (this.searchOnQuery_) this.searchOnQuery_(query); + this.scheduleSearchChangeEventIid_ = null; + } + + this.search_onChange = (event) => { + this.setState({ searchQuery: event.target.value }); + + if (this.scheduleSearchChangeEventIid_) clearTimeout(this.scheduleSearchChangeEventIid_); + + this.scheduleSearchChangeEventIid_ = setTimeout(() => { + triggerOnQuery(this.state.searchQuery); + }, 500); + }; + + this.search_onClear = (event) => { + this.setState({ searchQuery: '' }); + triggerOnQuery(''); + } + } + + async componentWillReceiveProps(nextProps) { + if (nextProps.windowCommand) { + this.doCommand(nextProps.windowCommand); + } + } + + async doCommand(command) { + if (!command) return; + + let commandProcessed = true; + + if (command.name === 'focus_search' && this.searchElement_) { + this.searchElement_.focus(); + } else { + commandProcessed = false; + } + + if (commandProcessed) { + this.props.dispatch({ + type: 'WINDOW_COMMAND', + name: null, + }); + } + } + back_click() { this.props.dispatch({ type: 'NAV_BACK' }); } @@ -40,6 +97,59 @@ class HeaderComponent extends React.Component { } + makeSearch(key, style, options, state) { + const inputStyle = { + display: 'flex', + flex: 1, + paddingLeft: 4, + paddingRight: 4, + color: style.color, + fontSize: style.fontSize, + fontFamily: style.fontFamily, + }; + + const searchButton = { + paddingLeft: 4, + paddingRight: 4, + paddingTop: 2, + paddingBottom: 2, + textDecoration: 'none', + }; + + const iconStyle = { + display: 'flex', + fontSize: Math.round(style.fontSize) * 1.2, + color: style.color, + }; + + const containerStyle = { + display: 'flex', + flexDirection: 'row', + alignItems: 'center', + }; + + const iconName = state.searchQuery ? 'fa-times' : 'fa-search'; + const icon = + if (options.onQuery) this.searchOnQuery_ = options.onQuery; + + return ( +
        + this.searchElement_ = elem} + /> + {icon} +
        ); + } + render() { const style = Object.assign({}, this.props.style); const theme = themeStyle(this.props.theme); @@ -50,9 +160,9 @@ class HeaderComponent extends React.Component { style.borderBottom = '1px solid ' + theme.dividerColor; style.boxSizing = 'border-box'; - const buttons = []; + const items = []; - const buttonStyle = { + const itemStyle = { height: theme.headerHeight, display: 'flex', alignItems: 'center', @@ -67,19 +177,24 @@ class HeaderComponent extends React.Component { }; if (showBackButton) { - buttons.push(this.makeButton('back', buttonStyle, { title: _('Back'), onClick: () => this.back_click(), iconName: 'fa-chevron-left ' })); + items.push(this.makeButton('back', itemStyle, { title: _('Back'), onClick: () => this.back_click(), iconName: 'fa-chevron-left ' })); } - if (this.props.buttons) { - for (let i = 0; i < this.props.buttons.length; i++) { - const o = this.props.buttons[i]; - buttons.push(this.makeButton('btn_' + i + '_' + o.title, buttonStyle, o)); + if (this.props.items) { + for (let i = 0; i < this.props.items.length; i++) { + const item = this.props.items[i]; + + if (item.type === 'search') { + items.push(this.makeSearch('item_' + i + '_search', itemStyle, item, this.state)); + } else { + items.push(this.makeButton('item_' + i + '_' + item.title, itemStyle, item)); + } } } return (
        - { buttons } + { items }
        ); } @@ -87,7 +202,10 @@ class HeaderComponent extends React.Component { } const mapStateToProps = (state) => { - return { theme: state.settings.theme }; + return { + theme: state.settings.theme, + windowCommand: state.windowCommand, + }; }; const Header = connect(mapStateToProps)(HeaderComponent); diff --git a/ElectronClient/app/gui/MainScreen.jsx b/ElectronClient/app/gui/MainScreen.jsx index f74c579a3d..ffefd5e6b1 100644 --- a/ElectronClient/app/gui/MainScreen.jsx +++ b/ElectronClient/app/gui/MainScreen.jsx @@ -140,33 +140,27 @@ class MainScreenComponent extends React.Component { }, }); } else if (command.name === 'search') { - this.setState({ - promptOptions: { - label: _('Search:'), - onClose: async (answer) => { - if (answer !== null) { - const searchId = uuid.create(); - this.props.dispatch({ - type: 'SEARCH_ADD', - search: { - id: searchId, - title: answer, - query_pattern: answer, - query_folder_id: null, - type_: BaseModel.TYPE_SEARCH, - }, - }); + if (!this.searchId_) this.searchId_ = uuid.create(); - this.props.dispatch({ - type: 'SEARCH_SELECT', - id: searchId, - }); - } - this.setState({ promptOptions: null }); - } + this.props.dispatch({ + type: 'SEARCH_UPDATE', + search: { + id: this.searchId_, + title: command.query, + query_pattern: command.query, + query_folder_id: null, + type_: BaseModel.TYPE_SEARCH, }, }); + + if (command.query) { + this.props.dispatch({ + type: 'SEARCH_SELECT', + id: this.searchId_, + }); + } + } else if (command.name === 'toggleVisiblePanes') { this.toggleVisiblePanes(); } else if (command.name === 'showModalMessage') { @@ -298,41 +292,42 @@ class MainScreenComponent extends React.Component { const selectedFolderId = this.props.selectedFolderId; const onConflictFolder = this.props.selectedFolderId === Folder.conflictFolderId(); - const headerButtons = []; + const headerItems = []; - headerButtons.push({ + headerItems.push({ title: _('New note'), iconName: 'fa-file-o', enabled: !!folders.length && !onConflictFolder, onClick: () => { this.doCommand({ name: 'newNote' }) }, }); - headerButtons.push({ + headerItems.push({ title: _('New to-do'), iconName: 'fa-check-square-o', enabled: !!folders.length && !onConflictFolder, onClick: () => { this.doCommand({ name: 'newTodo' }) }, }); - headerButtons.push({ + headerItems.push({ title: _('New notebook'), iconName: 'fa-folder-o', onClick: () => { this.doCommand({ name: 'newNotebook' }) }, }); - headerButtons.push({ - title: _('Search'), - iconName: 'fa-search', - onClick: () => { this.doCommand({ name: 'search' }) }, - }); - - headerButtons.push({ + headerItems.push({ title: _('Layout'), iconName: 'fa-columns', enabled: !!notes.length, onClick: () => { this.doCommand({ name: 'toggleVisiblePanes' }) }, }); + headerItems.push({ + title: _('Search...'), + iconName: 'fa-search', + onQuery: (query) => { this.doCommand({ name: 'search', query: query }) }, + type: 'search', + }); + if (!this.promptOnClose_) { this.promptOnClose_ = (answer, buttonType) => { return this.state.promptOptions.onClose(answer, buttonType); @@ -389,7 +384,7 @@ class MainScreenComponent extends React.Component { visible={!!this.state.promptOptions} buttons={promptOptions && ('buttons' in promptOptions) ? promptOptions.buttons : null} inputType={promptOptions && ('inputType' in promptOptions) ? promptOptions.inputType : null} /> -
        +
        {messageComp} diff --git a/ElectronClient/app/gui/NoteList.jsx b/ElectronClient/app/gui/NoteList.jsx index e2fa53d00e..d63bc72f1d 100644 --- a/ElectronClient/app/gui/NoteList.jsx +++ b/ElectronClient/app/gui/NoteList.jsx @@ -11,6 +11,8 @@ const MenuItem = bridge().MenuItem; const eventManager = require('../eventManager'); const InteropService = require('lib/services/InteropService'); const InteropServiceHelper = require('../InteropServiceHelper.js'); +const Search = require('lib/models/Search'); +const Mark = require('mark.js/dist/mark.min.js'); class NoteListComponent extends React.Component { @@ -164,6 +166,12 @@ class NoteListComponent extends React.Component { const hPadding = 10; + let highlightedWords = []; + if (this.props.notesParentType === 'Search') { + const search = BaseModel.byId(this.props.searches, this.props.selectedSearchId); + highlightedWords = search ? Search.keywords(search.query_pattern) : []; + } + let style = Object.assign({ width: width }, this.style().listItem); if (this.props.selectedNoteIds.indexOf(item.id) >= 0) { @@ -182,8 +190,30 @@ class NoteListComponent extends React.Component { listItemTitleStyle.paddingLeft = !checkbox ? hPadding : 4; if (item.is_todo && !!item.todo_completed) listItemTitleStyle = Object.assign(listItemTitleStyle, this.style().listItemTitleCompleted); + let displayTitle = Note.displayTitle(item); + let titleComp = null; + + if (highlightedWords.length) { + const titleElement = document.createElement('span'); + titleElement.textContent = displayTitle; + const mark = new Mark(titleElement, { + exclude: ['img'], + acrossElements: true, + }); + mark.mark(highlightedWords); + + // Note: in this case it is safe to use dangerouslySetInnerHTML because titleElement + // is a span tag that we created and that contains data that's been inserted as plain text + // with `textContent` so it cannot contain any XSS attacks. We use this feature because + // mark.js can only deal with DOM elements. + // https://reactjs.org/docs/dom-elements.html#dangerouslysetinnerhtml + titleComp = + } else { + titleComp = {displayTitle} + } + // Need to include "todo_completed" in key so that checkbox is updated when - // item is changed via sync. + // item is changed via sync. return } @@ -239,7 +269,9 @@ const mapStateToProps = (state) => { folders: state.folders, selectedNoteIds: state.selectedNoteIds, theme: state.settings.theme, - // uncompletedTodosOnTop: state.settings.uncompletedTodosOnTop, + notesParentType: state.notesParentType, + searches: state.searches, + selectedSearchId: state.selectedSearchId, }; }; diff --git a/ElectronClient/app/gui/NoteText.jsx b/ElectronClient/app/gui/NoteText.jsx index c28c9a0d18..8b4cfa886d 100644 --- a/ElectronClient/app/gui/NoteText.jsx +++ b/ElectronClient/app/gui/NoteText.jsx @@ -1,5 +1,7 @@ const React = require('react'); const Note = require('lib/models/Note.js'); +const BaseModel = require('lib/BaseModel.js'); +const Search = require('lib/models/Search.js'); const { time } = require('lib/time-utils.js'); const Setting = require('lib/models/Setting.js'); const { IconButton } = require('./IconButton.min.js'); @@ -195,7 +197,9 @@ class NoteTextComponent extends React.Component { this.editorSetScrollTop(1); this.restoreScrollTop_ = 0; - if (note) { + // If a search is in progress we don't focus any field otherwise it will + // take the focus out of the search box. + if (note && this.props.notesParentType !== 'Search') { const focusSettingName = !!note.is_todo ? 'newTodoFocus' : 'newNoteFocus'; if (Setting.value(focusSettingName) === 'title') { @@ -366,7 +370,7 @@ class NoteTextComponent extends React.Component { webviewReady: true, }); - // if (Setting.value('env') === 'dev') this.webview_.openDevTools(); + if (Setting.value('env') === 'dev') this.webview_.openDevTools(); } webview_ref(element) { @@ -393,6 +397,18 @@ class NoteTextComponent extends React.Component { if (this.editor_) { this.editor_.editor.renderer.on('afterRender', this.onAfterEditorRender_); + + const cancelledKeys = ['Ctrl+F', 'Ctrl+T', 'Ctrl+P', 'Ctrl+Q', 'Ctrl+L', 'Ctrl+,']; + for (let i = 0; i < cancelledKeys.length; i++) { + const k = cancelledKeys[i]; + this.editor_.editor.commands.bindKey(k, () => { + // HACK: Ace doesn't seem to provide a way to override its shortcuts, but throwing + // an exception from this undocumented function seems to cancel it without any + // side effect. + // https://stackoverflow.com/questions/36075846 + throw new Error('HACK: Overriding Ace Editor shortcut: ' + k); + }); + } } } @@ -643,6 +659,10 @@ class NoteTextComponent extends React.Component { const html = this.mdToHtml().render(bodyToRender, theme, mdOptions); this.webview_.send('setHtml', html); + + const search = BaseModel.byId(this.props.searches, this.props.selectedSearchId); + const keywords = search ? Search.keywords(search.query_pattern) : []; + this.webview_.send('setMarkers', keywords); } const toolbarItems = []; @@ -695,6 +715,24 @@ class NoteTextComponent extends React.Component { ref={(elem) => { this.webview_ref(elem); } } /> + // const markers = [{ + // startRow: 2, + // startCol: 3, + // endRow: 2, + // endCol: 6, + // type: 'text', + // className: 'test-marker' + // }]; + + // markers={markers} + // editorProps={{$useWorker: false}} + + // #note-editor .test-marker { + // background-color: red; + // color: yellow; + // position: absolute; + // } + const editorRootStyle = Object.assign({}, editorStyle); delete editorRootStyle.width; delete editorRootStyle.height; @@ -721,7 +759,7 @@ class NoteTextComponent extends React.Component { editorProps={{$blockScrolling: true}} // This is buggy (gets outside the container) - highlightActiveLine={false} + highlightActiveLine={false} /> return ( @@ -751,6 +789,9 @@ const mapStateToProps = (state) => { syncStarted: state.syncStarted, newNote: state.newNote, windowCommand: state.windowCommand, + notesParentType: state.notesParentType, + searches: state.searches, + selectedSearchId: state.selectedSearchId, }; }; diff --git a/ElectronClient/app/gui/SideBar.jsx b/ElectronClient/app/gui/SideBar.jsx index fd182cc933..5edbda218e 100644 --- a/ElectronClient/app/gui/SideBar.jsx +++ b/ElectronClient/app/gui/SideBar.jsx @@ -345,17 +345,17 @@ class SideBarComponent extends React.Component { ); } - if (this.props.searches.length) { - items.push(this.makeHeader("searchHeader", _("Searches"), "fa-search")); + // if (this.props.searches.length) { + // items.push(this.makeHeader("searchHeader", _("Searches"), "fa-search")); - const searchItems = shared.renderSearches(this.props, this.searchItem.bind(this)); + // const searchItems = shared.renderSearches(this.props, this.searchItem.bind(this)); - items.push( -
        - {searchItems} -
        - ); - } + // items.push( + //
        + // {searchItems} + //
        + // ); + // } let lines = Synchronizer.reportToLines(this.props.syncReport); const syncReportText = []; diff --git a/ElectronClient/app/gui/note-viewer/index.html b/ElectronClient/app/gui/note-viewer/index.html index b5931529d7..7325604bbf 100644 --- a/ElectronClient/app/gui/note-viewer/index.html +++ b/ElectronClient/app/gui/note-viewer/index.html @@ -1,6 +1,8 @@ + +
        +