You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-08-27 20:29:45 +02:00
Compare commits
104 Commits
android-v1
...
android-v1
Author | SHA1 | Date | |
---|---|---|---|
|
f07bb5c275 | ||
|
0e2cc418e2 | ||
|
0340456d55 | ||
|
7aea2cec69 | ||
|
fa83107840 | ||
|
bb0bf46f81 | ||
|
694c3fed2d | ||
|
772e39b710 | ||
|
05e0a2c29d | ||
|
78e0efb95f | ||
|
a5f749cfd2 | ||
|
3d6c932e1b | ||
|
4488a1b95f | ||
|
e2808a90c6 | ||
|
755a972e02 | ||
|
8b1de22049 | ||
|
a9735123b7 | ||
|
5ccafa2838 | ||
|
e2926a4f82 | ||
|
09df315639 | ||
|
5a9b3b6c7c | ||
|
6da6f35ddd | ||
|
dcb5590842 | ||
|
5135c8a782 | ||
|
1b2f4fb036 | ||
|
76a4a445f0 | ||
|
20abb125a5 | ||
|
be9e50b4a1 | ||
|
02bfcf577d | ||
|
038efa10f2 | ||
|
dfa692569b | ||
|
9abc6a2e44 | ||
|
11f23f4e00 | ||
|
6a7d40d171 | ||
|
bf5601429e | ||
|
73ae8aaf2f | ||
|
7eb7bd98f3 | ||
|
10e22654ea | ||
|
ccfc80ad04 | ||
|
5e95278084 | ||
|
d69ba6bc75 | ||
|
d28fbe2d3b | ||
|
415e7b84da | ||
|
ac4986b620 | ||
|
9a4f4cbb65 | ||
|
8e32957111 | ||
|
91aa3703d4 | ||
|
a889762056 | ||
|
6478d6c9c9 | ||
|
7a681d0a4a | ||
|
83b6eba8bd | ||
|
2766ded5f6 | ||
|
ca0d966ed9 | ||
|
386c583b0e | ||
|
b3d34ad7e9 | ||
|
ba5c636dda | ||
|
ea16f6e0b1 | ||
|
0dd0dc5489 | ||
|
f3ab21ff43 | ||
|
5ac6b46efd | ||
|
6548f30a4b | ||
|
849d7983f6 | ||
|
e32e4423db | ||
|
7f5bf131a8 | ||
|
87a639df2b | ||
|
bdd8eab87e | ||
|
b9e5c8a387 | ||
|
d646a2dd01 | ||
|
71a3a0176e | ||
|
a363d119cf | ||
|
ff08bdbc0b | ||
|
71efff6827 | ||
|
7595fe4a8c | ||
|
7697e75466 | ||
|
b8fbaa2029 | ||
|
38bc750ecf | ||
|
6cfacb1a48 | ||
|
0b9078d034 | ||
|
86dc72b204 | ||
|
64b7bc3d62 | ||
|
086f9e1123 | ||
|
4fe70fe8ee | ||
|
95a1f40404 | ||
|
88f04509ee | ||
|
7eebd544d6 | ||
|
e369a8decf | ||
|
ad8054ba4b | ||
|
b47cb4e29a | ||
|
8c42ddf6c3 | ||
|
f7fcabbf41 | ||
|
38a51070fc | ||
|
44fa099a77 | ||
|
af6f3999df | ||
|
6fbeb35951 | ||
|
b2eadffde0 | ||
|
200ba2775f | ||
|
39ba021a79 | ||
|
2c6b291b9b | ||
|
770846be2e | ||
|
af4aa01b75 | ||
|
1bf2bec805 | ||
|
3a41ac9be0 | ||
|
f2c9cdd7f1 | ||
|
058f418cc7 |
41
.eslintignore
Normal file
41
.eslintignore
Normal file
@@ -0,0 +1,41 @@
|
||||
*.min.js
|
||||
.git/
|
||||
.github/
|
||||
_mydocs/
|
||||
_releases/
|
||||
Assets/
|
||||
CliClient/build
|
||||
CliClient/locales
|
||||
CliClient/node_modules
|
||||
CliClient/tests-build
|
||||
CliClient/tests/enex_to_md
|
||||
CliClient/tests/html_to_md
|
||||
CliClient/tests/logs
|
||||
CliClient/tests/support
|
||||
CliClient/tests/sync
|
||||
CliClient/tests/tmp
|
||||
Clipper/joplin-webclipper/content_scripts/JSDOMParser.js
|
||||
Clipper/joplin-webclipper/content_scripts/Readability-readerable.js
|
||||
Clipper/joplin-webclipper/content_scripts/Readability.js
|
||||
Clipper/joplin-webclipper/dist
|
||||
Clipper/joplin-webclipper/icons
|
||||
Clipper/joplin-webclipper/popup/build
|
||||
Clipper/joplin-webclipper/popup/node_modules
|
||||
docs/
|
||||
ElectronClient/app/dist
|
||||
ElectronClient/app/lib
|
||||
ElectronClient/app/lib/vendor/sjcl-rn.js
|
||||
ElectronClient/app/lib/vendor/sjcl.js
|
||||
ElectronClient/app/locales
|
||||
ElectronClient/app/node_modules
|
||||
highlight.pack.js
|
||||
node_modules/
|
||||
ReactNativeClient/android
|
||||
ReactNativeClient/ios
|
||||
ReactNativeClient/lib/vendor/
|
||||
ReactNativeClient/lib/welcomeAssets.js
|
||||
ReactNativeClient/locales
|
||||
ReactNativeClient/node_modules
|
||||
readme/
|
||||
Tools/node_modules
|
||||
Tools/PortableAppsLauncher
|
53
.eslintrc.js
Normal file
53
.eslintrc.js
Normal file
@@ -0,0 +1,53 @@
|
||||
module.exports = {
|
||||
'env': {
|
||||
'browser': true,
|
||||
'es6': true,
|
||||
'node': true,
|
||||
},
|
||||
'extends': ['eslint:recommended'],
|
||||
'globals': {
|
||||
'Atomics': 'readonly',
|
||||
'SharedArrayBuffer': 'readonly',
|
||||
|
||||
// Jasmine variables
|
||||
'expect': 'readonly',
|
||||
'describe': 'readonly',
|
||||
'it': 'readonly',
|
||||
'beforeEach': 'readonly',
|
||||
'jasmine': 'readonly',
|
||||
|
||||
// React Native variables
|
||||
'__DEV__': 'readonly',
|
||||
|
||||
// Clipper variables
|
||||
'browserSupportsPromises_': true,
|
||||
'chrome': 'readonly',
|
||||
'browser': 'readonly',
|
||||
},
|
||||
'parserOptions': {
|
||||
'ecmaVersion': 2018,
|
||||
"ecmaFeatures": {
|
||||
"jsx": true,
|
||||
},
|
||||
"sourceType": "module",
|
||||
},
|
||||
'rules': {
|
||||
"react/jsx-uses-react": "error",
|
||||
"react/jsx-uses-vars": "error",
|
||||
// Ignore all unused function arguments, because in some
|
||||
// case they are kept to indicate the function signature.
|
||||
"no-unused-vars": ["error", { "argsIgnorePattern": ".*" }],
|
||||
"no-constant-condition": 0,
|
||||
"no-prototype-builtins": 0,
|
||||
"space-in-parens": ["error", "never"],
|
||||
"semi": ["error", "always"],
|
||||
"eol-last": ["error", "always"],
|
||||
"quotes": ["error", "single"],
|
||||
"indent": ["error", "tab"],
|
||||
"comma-dangle": ["error", "always-multiline"],
|
||||
"no-trailing-spaces": "error",
|
||||
},
|
||||
"plugins": [
|
||||
"react",
|
||||
],
|
||||
};
|
1
.github/FUNDING.yml
vendored
1
.github/FUNDING.yml
vendored
@@ -1,4 +1,5 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
patreon: joplin
|
||||
github: laurent22
|
||||
custom: https://joplinapp.org/donate/
|
||||
|
5
.github/ISSUE_TEMPLATE/bug_report.md
vendored
5
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -12,6 +12,11 @@ labels: 'bug'
|
||||
Please test using the latest Joplin release to make sure your issue has not already been fixed.
|
||||
-->
|
||||
|
||||
<!--
|
||||
IMPORTANT: If you are reporting a clipper bug, please include an example URL that shows the issue.
|
||||
Without the URL the issue is likely to be closed.
|
||||
-->
|
||||
|
||||
## Environment
|
||||
|
||||
Joplin version:
|
||||
|
53
.github/ISSUE_TEMPLATE/feature_request.md
vendored
53
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -1,33 +1,20 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest a feature for Joplin.
|
||||
title: '[Feature request] '
|
||||
labels: 'feature request'
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
Please search open issues first - many features have already been requested!
|
||||
-->
|
||||
|
||||
## Has it been discussed in the forum? Link to topic.
|
||||
<!--
|
||||
Feature requests should be discussed in the forum first. https://discourse.joplinapp.org
|
||||
Please provide a link to the topic.
|
||||
-->
|
||||
|
||||
|
||||
## Is your feature request related to a problem? Please describe.
|
||||
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
|
||||
|
||||
|
||||
## Describe the solution you'd like
|
||||
<!-- A clear and concise description of what you want to happen. -->
|
||||
|
||||
|
||||
## Describe alternatives you've considered
|
||||
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
|
||||
|
||||
|
||||
## Additional context
|
||||
<!-- Add any other context or screenshots about the feature request here. -->
|
||||
---
|
||||
name: Feature request
|
||||
about: Report an accepted feature request.
|
||||
title: '[Feature request] '
|
||||
labels: 'feature request'
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
Please search open issues first - many features have already been requested!
|
||||
-->
|
||||
|
||||
🚨 A feature request that has not been accepted on the forum will be closed! 🚨
|
||||
|
||||
## Has it been discussed in the forum? Link to topic.
|
||||
<!--
|
||||
Feature requests must be discussed and accepted in the forum first. https://discourse.joplinapp.org
|
||||
Please provide a link to the topic.
|
||||
Feature requests without a link to the discussion/topic on the forum will be closed.
|
||||
-->
|
||||
|
@@ -58,4 +58,4 @@ script:
|
||||
npm install
|
||||
cd ../ElectronClient/app
|
||||
rsync -aP --delete ../../ReactNativeClient/lib/ lib/
|
||||
npm install && yarn dist
|
||||
npm install && USE_HARD_LINKS=false yarn dist
|
||||
|
@@ -40,10 +40,7 @@ Building the apps is relatively easy - please [see the build instructions](https
|
||||
|
||||
## Coding style
|
||||
|
||||
There are only two rules, but not following them means the pull request will not be accepted (it can be accepted once the issues are fixed):
|
||||
|
||||
- **Please use tabs, NOT spaces.**
|
||||
- **Please do not add or remove optional characters, such as spaces or colons.** Please setup your editor so that it only changes what you are working on and is not making automated changes elsewhere. The reason for this is that small white space changes make diff hard to read and can cause needless conflicts.
|
||||
Coding style is enforced by a pre-commit hook that runs eslint. This hook is installed whenever running `npm install` on any of the application directory. If for some reason the pre-commit hook didn't get installed, you can manually install it by running `npm install` at the root of the repository.
|
||||
|
||||
## Unit tests
|
||||
|
||||
@@ -54,7 +51,20 @@ The tests are under CliClient/tests. To get them running, you first need to buil
|
||||
cd CliClient
|
||||
npm i
|
||||
|
||||
Then to run all the test units:
|
||||
To run the test units, you must have an instance of the cli app running. In a first window navigate into `CliClient` and run:
|
||||
|
||||
```sh
|
||||
./run.sh
|
||||
```
|
||||
|
||||
> If you get an error like `Error: Cannot find module '../locales/index.js'`, this means you must (a) rebuild translations or (b) take > them from one of the other apps. To do option b, you can run the following command to copy them from the `ReactNativeClient` directory:>
|
||||
>
|
||||
> ```sh
|
||||
> cd .. # Return to the root of the project
|
||||
> rsync -aP ./ReactNativeClient/locales/ ./CliClient/build/locales/
|
||||
> ```
|
||||
|
||||
Then run the tests in a second window. To run all the test units:
|
||||
|
||||
./run_test.sh
|
||||
|
||||
|
@@ -1,14 +1,11 @@
|
||||
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 http = require('http');
|
||||
const urlParser = require('url');
|
||||
const enableServerDestroy = require('server-destroy');
|
||||
|
||||
class ResourceServer {
|
||||
|
||||
constructor() {
|
||||
this.server_ = null;
|
||||
this.logger_ = new Logger();
|
||||
@@ -40,7 +37,7 @@ class ResourceServer {
|
||||
|
||||
async start() {
|
||||
this.port_ = await netUtils.findAvailablePort([9167, 9267, 8167, 8267]);
|
||||
if (!this.port_) {
|
||||
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;
|
||||
}
|
||||
@@ -48,11 +45,10 @@ class ResourceServer {
|
||||
this.server_ = http.createServer();
|
||||
|
||||
this.server_.on('request', async (request, response) => {
|
||||
|
||||
const writeResponse = (message) => {
|
||||
const writeResponse = message => {
|
||||
response.write(message);
|
||||
response.end();
|
||||
}
|
||||
};
|
||||
|
||||
const url = urlParser.parse(request.url, true);
|
||||
let resourceId = url.pathname.split('/');
|
||||
@@ -69,6 +65,7 @@ class ResourceServer {
|
||||
if (!done) throw new Error('Unhandled resource: ' + resourceId);
|
||||
} catch (error) {
|
||||
response.setHeader('Content-Type', 'text/plain');
|
||||
// eslint-disable-next-line require-atomic-updates
|
||||
response.statusCode = 400;
|
||||
response.write(error.message);
|
||||
}
|
||||
@@ -76,7 +73,7 @@ class ResourceServer {
|
||||
response.end();
|
||||
});
|
||||
|
||||
this.server_.on('error', (error) => {
|
||||
this.server_.on('error', error => {
|
||||
this.logger().error('Resource server:', error);
|
||||
});
|
||||
|
||||
@@ -91,7 +88,6 @@ class ResourceServer {
|
||||
if (this.server_) this.server_.destroy();
|
||||
this.server_ = null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = ResourceServer;
|
||||
module.exports = ResourceServer;
|
||||
|
@@ -5,13 +5,12 @@ 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 Entities = require('html-entities').AllHtmlEntities;
|
||||
const htmlentities = (new Entities()).encode;
|
||||
const htmlentities = new Entities().encode;
|
||||
|
||||
const chalk = require('chalk');
|
||||
const tk = require('terminal-kit');
|
||||
@@ -20,12 +19,10 @@ 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 NoteWidget = require('./gui/NoteWidget.js');
|
||||
@@ -37,7 +34,6 @@ const StatusBarWidget = require('./gui/StatusBarWidget.js');
|
||||
const ConsoleWidget = require('./gui/ConsoleWidget.js');
|
||||
|
||||
class AppGui {
|
||||
|
||||
constructor(app, store, keymap) {
|
||||
try {
|
||||
this.app_ = app;
|
||||
@@ -50,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;
|
||||
@@ -64,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);
|
||||
});
|
||||
|
||||
@@ -83,7 +79,7 @@ class AppGui {
|
||||
reg.setupRecurrentSync();
|
||||
DecryptionWorker.instance().scheduleStart();
|
||||
} catch (error) {
|
||||
this.fullScreen(false);
|
||||
if (this.term_) { this.fullScreen(false); }
|
||||
console.error(error);
|
||||
process.exit(1);
|
||||
}
|
||||
@@ -134,7 +130,7 @@ class AppGui {
|
||||
};
|
||||
folderList.name = 'folderList';
|
||||
folderList.vStretch = true;
|
||||
folderList.on('currentItemChange', async (event) => {
|
||||
folderList.on('currentItemChange', async event => {
|
||||
const item = folderList.currentItem;
|
||||
|
||||
if (item === '-') {
|
||||
@@ -169,7 +165,7 @@ class AppGui {
|
||||
});
|
||||
}
|
||||
});
|
||||
this.rootWidget_.connect(folderList, (state) => {
|
||||
this.rootWidget_.connect(folderList, state => {
|
||||
return {
|
||||
selectedFolderId: state.selectedFolderId,
|
||||
selectedTagId: state.selectedTagId,
|
||||
@@ -196,7 +192,7 @@ class AppGui {
|
||||
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,
|
||||
@@ -210,7 +206,7 @@ class AppGui {
|
||||
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,
|
||||
@@ -225,7 +221,7 @@ class AppGui {
|
||||
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();
|
||||
@@ -292,7 +288,7 @@ class AppGui {
|
||||
if (!cmd) return;
|
||||
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) {
|
||||
@@ -408,7 +404,7 @@ class AppGui {
|
||||
activeListItem() {
|
||||
const widget = this.widget('mainWindow').focusedWidget;
|
||||
if (!widget) return null;
|
||||
|
||||
|
||||
if (widget.name == 'noteList' || widget.name == 'folderList') {
|
||||
return widget.currentItem;
|
||||
}
|
||||
@@ -430,18 +426,14 @@ class AppGui {
|
||||
}
|
||||
|
||||
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');
|
||||
}
|
||||
|
||||
} else if (cmd === 'delete') {
|
||||
|
||||
if (this.widget('folderList').hasFocus) {
|
||||
const item = this.widget('folderList').selectedJoplinItem;
|
||||
|
||||
@@ -462,9 +454,7 @@ class AppGui {
|
||||
} else {
|
||||
this.stdout(_('Please select the note or notebook to be deleted first.'));
|
||||
}
|
||||
|
||||
} else if (cmd === 'toggle_console') {
|
||||
|
||||
if (!this.consoleIsShown()) {
|
||||
this.showConsole();
|
||||
this.minimizeConsole();
|
||||
@@ -475,22 +465,15 @@ class AppGui {
|
||||
this.maximizeConsole();
|
||||
}
|
||||
}
|
||||
|
||||
} else if (cmd === 'toggle_metadata') {
|
||||
|
||||
this.toggleNoteMetadata();
|
||||
|
||||
} 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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -501,7 +484,7 @@ class AppGui {
|
||||
|
||||
// this.logger().debug('Got command: ' + cmd);
|
||||
|
||||
try {
|
||||
try {
|
||||
let note = this.widget('noteList').currentItem;
|
||||
let folder = this.widget('folderList').currentItem;
|
||||
let args = splitCommandString(cmd);
|
||||
@@ -511,7 +494,7 @@ class AppGui {
|
||||
args[i] = note ? note.id : '';
|
||||
} else if (args[i] == '$b') {
|
||||
args[i] = folder ? folder.id : '';
|
||||
} else if (args[i] == '$c') {
|
||||
} else if (args[i] == '$c') {
|
||||
const item = this.activeListItem();
|
||||
args[i] = item ? item.id : '';
|
||||
}
|
||||
@@ -523,7 +506,7 @@ class AppGui {
|
||||
}
|
||||
|
||||
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();
|
||||
@@ -603,7 +586,7 @@ class AppGui {
|
||||
async setupResourceServer() {
|
||||
const linkStyle = chalk.blue.underline;
|
||||
const noteTextWidget = this.widget('noteText');
|
||||
const resourceIdRegex = /^:\/[a-f0-9]+$/i
|
||||
const resourceIdRegex = /^:\/[a-f0-9]+$/i;
|
||||
const noteLinks = {};
|
||||
|
||||
const hasProtocol = function(s, protocols) {
|
||||
@@ -613,7 +596,7 @@ class AppGui {
|
||||
if (s.indexOf(protocols[i] + '://') === 0) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
// By default, before the server is started, only the regular
|
||||
// URLs appear in blue.
|
||||
@@ -637,7 +620,7 @@ class AppGui {
|
||||
const link = noteLinks[path];
|
||||
|
||||
if (link.type === 'url') {
|
||||
response.writeHead(302, { 'Location': link.url });
|
||||
response.writeHead(302, { Location: link.url });
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -650,11 +633,13 @@ class AppGui {
|
||||
if (item.mime) response.setHeader('Content-Type', item.mime);
|
||||
response.write(await Resource.content(item));
|
||||
} else if (item.type_ === BaseModel.TYPE_NOTE) {
|
||||
const html = [`
|
||||
const html = [
|
||||
`
|
||||
<!DOCTYPE html>
|
||||
<html class="client-nojs" lang="en" dir="ltr">
|
||||
<head><meta charset="UTF-8"/></head><body>
|
||||
`];
|
||||
`,
|
||||
];
|
||||
html.push('<pre>' + htmlentities(item.title) + '\n\n' + htmlentities(item.body) + '</pre>');
|
||||
html.push('</body></html>');
|
||||
response.write(html.join(''));
|
||||
@@ -679,7 +664,7 @@ class AppGui {
|
||||
noteLinks[index] = {
|
||||
type: 'item',
|
||||
id: url.substr(2),
|
||||
};
|
||||
};
|
||||
} else if (hasProtocol(url, ['http', 'https', 'file', 'ftp'])) {
|
||||
noteLinks[index] = {
|
||||
type: 'url',
|
||||
@@ -711,7 +696,6 @@ class AppGui {
|
||||
term.grabInput();
|
||||
|
||||
term.on('key', async (name, matches, data) => {
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Handle special shortcuts
|
||||
// -------------------------------------------------------------------------
|
||||
@@ -729,13 +713,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;
|
||||
@@ -744,8 +728,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];
|
||||
@@ -813,7 +797,6 @@ class AppGui {
|
||||
process.exit(1);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
AppGui.INPUT_MODE_NORMAL = 1;
|
||||
|
@@ -1,10 +1,5 @@
|
||||
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 ResourceService = require('lib/services/ResourceService');
|
||||
const BaseModel = require('lib/BaseModel.js');
|
||||
const Folder = require('lib/models/Folder.js');
|
||||
@@ -12,21 +7,15 @@ 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 { _ } = require('lib/locale.js');
|
||||
const fs = require('fs-extra');
|
||||
const { cliUtils } = require('./cli-utils.js');
|
||||
const Cache = require('lib/Cache');
|
||||
const WelcomeUtils = require('lib/WelcomeUtils');
|
||||
const RevisionService = require('lib/services/RevisionService');
|
||||
|
||||
class Application extends BaseApplication {
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
@@ -75,7 +64,7 @@ class Application extends BaseApplication {
|
||||
// const response = await cliUtils.promptMcq(msg, answers);
|
||||
// if (!response) return null;
|
||||
|
||||
return output[response - 1];
|
||||
// return output[response - 1];
|
||||
} else {
|
||||
return output.length ? output[0] : null;
|
||||
}
|
||||
@@ -97,10 +86,12 @@ 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 (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.'));
|
||||
@@ -126,15 +117,15 @@ 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 => {};
|
||||
}
|
||||
});
|
||||
|
||||
@@ -185,9 +176,9 @@ class Application extends BaseApplication {
|
||||
|
||||
commands(uiType = null) {
|
||||
if (!this.allCommandsLoaded_) {
|
||||
fs.readdirSync(__dirname).forEach((path) => {
|
||||
fs.readdirSync(__dirname).forEach(path => {
|
||||
if (path.indexOf('command-') !== 0) return;
|
||||
const ext = fileExtension(path)
|
||||
const ext = fileExtension(path);
|
||||
if (ext != 'js') return;
|
||||
|
||||
let CommandClass = require('./' + path);
|
||||
@@ -276,19 +267,27 @@ 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 => {},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -300,7 +299,7 @@ class Application extends BaseApplication {
|
||||
|
||||
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) {
|
||||
@@ -316,24 +315,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
|
||||
@@ -341,7 +340,7 @@ 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';
|
||||
@@ -374,7 +373,7 @@ class Application extends BaseApplication {
|
||||
async start(argv) {
|
||||
argv = await super.start(argv);
|
||||
|
||||
cliUtils.setStdout((object) => {
|
||||
cliUtils.setStdout(object => {
|
||||
return this.stdout(object);
|
||||
});
|
||||
|
||||
@@ -385,6 +384,8 @@ class Application extends BaseApplication {
|
||||
|
||||
this.currentFolder_ = await Folder.load(Setting.value('activeFolderId'));
|
||||
|
||||
await this.applySettingsSideEffects();
|
||||
|
||||
try {
|
||||
await this.execCommand(argv);
|
||||
} catch (error) {
|
||||
@@ -401,7 +402,8 @@ class Application extends BaseApplication {
|
||||
// Need to call exit() explicitely, otherwise Node wait for any timeout to complete
|
||||
// https://stackoverflow.com/questions/18050095
|
||||
process.exit(0);
|
||||
} else { // Otherwise open the GUI
|
||||
} else {
|
||||
// Otherwise open the GUI
|
||||
this.initRedux();
|
||||
|
||||
const keymap = await this.loadKeymaps();
|
||||
@@ -421,7 +423,7 @@ class Application extends BaseApplication {
|
||||
const tags = await Tag.allWithNotes();
|
||||
|
||||
ResourceService.runInBackground();
|
||||
|
||||
|
||||
RevisionService.instance().runInBackground();
|
||||
|
||||
this.dispatch({
|
||||
@@ -435,7 +437,6 @@ class Application extends BaseApplication {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
let application_ = null;
|
||||
@@ -446,4 +447,4 @@ function app() {
|
||||
return application_;
|
||||
}
|
||||
|
||||
module.exports = { app };
|
||||
module.exports = { app };
|
||||
|
@@ -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.length > 0 ? x.map((a) => a + ' ') : line;
|
||||
return x.length > 0 ? x.map(a => a + ' ') : line;
|
||||
} else {
|
||||
return line;
|
||||
}
|
||||
@@ -34,9 +34,9 @@ async function handleAutocompletionPromise(line) {
|
||||
let next = words.length > 1 ? words[words.length - 1] : '';
|
||||
let l = [];
|
||||
if (next[0] === '-') {
|
||||
for (let i = 0; i<metadata.options.length; i++) {
|
||||
for (let i = 0; i < metadata.options.length; i++) {
|
||||
const options = metadata.options[i][0].split(' ');
|
||||
//if there are multiple options then they will be separated by comma and
|
||||
//if there are multiple options then they will be separated by comma and
|
||||
//space. The comma should be removed
|
||||
if (options[0][options[0].length - 1] === ',') {
|
||||
options[0] = options[0].slice(0, -1);
|
||||
@@ -55,20 +55,19 @@ async function handleAutocompletionPromise(line) {
|
||||
if (l.length === 0) {
|
||||
return line;
|
||||
}
|
||||
let ret = l.map(a=>toCommandLine(a));
|
||||
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)['_'];
|
||||
cmdUsage.splice(0, 1);
|
||||
|
||||
if (cmdUsage.length >= positionalArgs) {
|
||||
|
||||
let argName = cmdUsage[positionalArgs - 1];
|
||||
argName = cliUtils.parseCommandArg(argName).name;
|
||||
|
||||
@@ -76,23 +75,23 @@ async function handleAutocompletionPromise(line) {
|
||||
|
||||
if (argName == 'note' || argName == 'note-pattern') {
|
||||
const notes = currentFolder ? await Note.previews(currentFolder.id, { titlePattern: next + '*' }) : [];
|
||||
l.push(...notes.map((n) => n.title));
|
||||
l.push(...notes.map(n => n.title));
|
||||
}
|
||||
|
||||
if (argName == 'notebook') {
|
||||
const folders = await Folder.search({ titlePattern: next + '*' });
|
||||
l.push(...folders.map((n) => n.title));
|
||||
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));
|
||||
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));
|
||||
l.push(...tags.map(n => n.title));
|
||||
}
|
||||
|
||||
if (argName == 'file') {
|
||||
@@ -113,12 +112,11 @@ async function handleAutocompletionPromise(line) {
|
||||
if (l.length === 1) {
|
||||
return toCommandLine([...words.slice(0, -1), l[0]]);
|
||||
} else if (l.length > 1) {
|
||||
let ret = l.map(a=>toCommandLine(a));
|
||||
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,19 +125,21 @@ 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) {
|
||||
return "'" + args + "' ";
|
||||
} else if (args.indexOf("'") !== -1) {
|
||||
if (args.indexOf('"') !== -1 || args.indexOf(' ') !== -1) {
|
||||
return '\'' + args + '\' ';
|
||||
} else if (args.indexOf('\'') !== -1) {
|
||||
return '"' + args + '" ';
|
||||
} else {
|
||||
return args + ' ';
|
||||
@@ -151,9 +151,9 @@ function getArguments(line) {
|
||||
let inDoubleQuotes = false;
|
||||
let currentWord = '';
|
||||
let parsed = [];
|
||||
for(let i = 0; i<line.length; i++) {
|
||||
if(line[i] === '"') {
|
||||
if(inDoubleQuotes) {
|
||||
for (let i = 0; i < line.length; i++) {
|
||||
if (line[i] === '"') {
|
||||
if (inDoubleQuotes) {
|
||||
inDoubleQuotes = false;
|
||||
//maybe push word to parsed?
|
||||
//currentWord += '"';
|
||||
@@ -161,8 +161,8 @@ function getArguments(line) {
|
||||
inDoubleQuotes = true;
|
||||
//currentWord += '"';
|
||||
}
|
||||
} else if(line[i] === "'") {
|
||||
if(inSingleQuotes) {
|
||||
} else if (line[i] === '\'') {
|
||||
if (inSingleQuotes) {
|
||||
inSingleQuotes = false;
|
||||
//maybe push word to parsed?
|
||||
//currentWord += "'";
|
||||
@@ -170,8 +170,7 @@ function getArguments(line) {
|
||||
inSingleQuotes = true;
|
||||
//currentWord += "'";
|
||||
}
|
||||
} else if (/\s/.test(line[i]) &&
|
||||
!(inDoubleQuotes || inSingleQuotes)) {
|
||||
} else if (/\s/.test(line[i]) && !(inDoubleQuotes || inSingleQuotes)) {
|
||||
if (currentWord !== '') {
|
||||
parsed.push(currentWord);
|
||||
currentWord = '';
|
||||
|
@@ -2,7 +2,6 @@ const { _ } = require('lib/locale.js');
|
||||
const { reg } = require('lib/registry.js');
|
||||
|
||||
class BaseCommand {
|
||||
|
||||
constructor() {
|
||||
this.stdout_ = null;
|
||||
this.prompt_ = null;
|
||||
@@ -93,7 +92,6 @@ class BaseCommand {
|
||||
logger() {
|
||||
return reg.logger();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = { BaseCommand };
|
||||
module.exports = { BaseCommand };
|
||||
|
@@ -1,7 +1,7 @@
|
||||
const fs = require('fs-extra');
|
||||
const { fileExtension, basename, dirname } = require('lib/path-utils.js');
|
||||
const { fileExtension, dirname } = require('lib/path-utils.js');
|
||||
const wrap_ = require('word-wrap');
|
||||
const { _, setLocale, languageCode } = require('lib/locale.js');
|
||||
const { languageCode } = require('lib/locale.js');
|
||||
|
||||
const rootDir = dirname(dirname(__dirname));
|
||||
const MAX_WIDTH = 78;
|
||||
@@ -22,14 +22,14 @@ function renderOptions(options) {
|
||||
let option = options[i];
|
||||
const flag = option[0];
|
||||
const indent = INDENT + INDENT + ' '.repeat(optionColWidth + 2);
|
||||
|
||||
|
||||
let r = wrap(option[1], indent);
|
||||
r = r.substr(flag.length + (INDENT + INDENT).length);
|
||||
r = INDENT + INDENT + flag + r;
|
||||
output.push(r);
|
||||
}
|
||||
|
||||
return output.join("\n");
|
||||
return output.join('\n');
|
||||
}
|
||||
|
||||
function renderCommand(cmd) {
|
||||
@@ -44,14 +44,14 @@ function renderCommand(cmd) {
|
||||
output.push('');
|
||||
output.push(optionString);
|
||||
}
|
||||
return output.join("\n");
|
||||
return output.join('\n');
|
||||
}
|
||||
|
||||
function getCommands() {
|
||||
let output = [];
|
||||
fs.readdirSync(__dirname).forEach((path) => {
|
||||
fs.readdirSync(__dirname).forEach(path => {
|
||||
if (path.indexOf('command-') !== 0) return;
|
||||
const ext = fileExtension(path)
|
||||
const ext = fileExtension(path);
|
||||
if (ext != 'js') return;
|
||||
|
||||
let CommandClass = require('./' + path);
|
||||
@@ -87,14 +87,14 @@ function getHeader() {
|
||||
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("\n\n");
|
||||
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("\n\n");
|
||||
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.).');
|
||||
|
||||
output.push(wrap(description.join(''), INDENT));
|
||||
|
||||
return output.join("\n");
|
||||
return output.join('\n');
|
||||
}
|
||||
|
||||
function getFooter() {
|
||||
@@ -113,7 +113,7 @@ function getFooter() {
|
||||
const licenseText = fs.readFileSync(filePath, 'utf8');
|
||||
output.push(wrap(licenseText, INDENT));
|
||||
|
||||
return output.join("\n");
|
||||
return output.join('\n');
|
||||
}
|
||||
|
||||
async function main() {
|
||||
@@ -128,12 +128,12 @@ async function main() {
|
||||
}
|
||||
|
||||
const headerText = getHeader();
|
||||
const commandsText = commandBlocks.join("\n\n");
|
||||
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);
|
||||
});
|
||||
});
|
||||
|
@@ -1,4 +1,4 @@
|
||||
"use strict"
|
||||
'use strict';
|
||||
|
||||
const fs = require('fs-extra');
|
||||
const { Logger } = require('lib/logger.js');
|
||||
@@ -10,7 +10,7 @@ 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 exec = require('child_process').exec;
|
||||
|
||||
process.on('unhandledRejection', (reason, p) => {
|
||||
console.error('Unhandled promise rejection', p, 'reason:', reason);
|
||||
@@ -32,8 +32,8 @@ db.setLogger(dbLogger);
|
||||
|
||||
function createClient(id) {
|
||||
return {
|
||||
'id': id,
|
||||
'profileDir': baseDir + '/client' + id,
|
||||
id: id,
|
||||
profileDir: baseDir + '/client' + id,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -72,14 +72,7 @@ function assertEquals(expected, real) {
|
||||
}
|
||||
|
||||
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 = {};
|
||||
@@ -101,7 +94,7 @@ testUnits.testFolders = async () => {
|
||||
|
||||
folders = await Folder.all();
|
||||
assertEquals(0, folders.length);
|
||||
}
|
||||
};
|
||||
|
||||
testUnits.testNotes = async () => {
|
||||
await execCommand(client, 'mkbook nb1');
|
||||
@@ -121,16 +114,16 @@ testUnits.testNotes = async () => {
|
||||
notes = await Note.all();
|
||||
assertEquals(2, notes.length);
|
||||
|
||||
await execCommand(client, "rm -f 'blabla*'");
|
||||
await execCommand(client, 'rm -f \'blabla*\'');
|
||||
|
||||
notes = await Note.all();
|
||||
assertEquals(2, notes.length);
|
||||
|
||||
await execCommand(client, "rm -f 'n*'");
|
||||
await execCommand(client, 'rm -f \'n*\'');
|
||||
|
||||
notes = await Note.all();
|
||||
assertEquals(0, notes.length);
|
||||
}
|
||||
};
|
||||
|
||||
testUnits.testCat = async () => {
|
||||
await execCommand(client, 'mkbook nb1');
|
||||
@@ -145,7 +138,7 @@ testUnits.testCat = async () => {
|
||||
|
||||
r = await execCommand(client, 'cat -v mynote');
|
||||
assertTrue(r.indexOf(note.id) >= 0);
|
||||
}
|
||||
};
|
||||
|
||||
testUnits.testConfig = async () => {
|
||||
await execCommand(client, 'config editor vim');
|
||||
@@ -159,7 +152,7 @@ testUnits.testConfig = async () => {
|
||||
let r = await execCommand(client, 'config');
|
||||
assertTrue(r.indexOf('editor') >= 0);
|
||||
assertTrue(r.indexOf('subl') >= 0);
|
||||
}
|
||||
};
|
||||
|
||||
testUnits.testCp = async () => {
|
||||
await execCommand(client, 'mkbook nb2');
|
||||
@@ -180,7 +173,7 @@ testUnits.testCp = async () => {
|
||||
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');
|
||||
@@ -190,7 +183,7 @@ testUnits.testLs = async () => {
|
||||
|
||||
assertTrue(r.indexOf('note1') >= 0);
|
||||
assertTrue(r.indexOf('note2') >= 0);
|
||||
}
|
||||
};
|
||||
|
||||
testUnits.testMv = async () => {
|
||||
await execCommand(client, 'mkbook nb2');
|
||||
@@ -210,14 +203,14 @@ testUnits.testMv = async () => {
|
||||
await execCommand(client, 'mknote note2');
|
||||
await execCommand(client, 'mknote note3');
|
||||
await execCommand(client, 'mknote blabla');
|
||||
await execCommand(client, "mv 'note*' nb2");
|
||||
await execCommand(client, 'mv \'note*\' nb2');
|
||||
|
||||
notes1 = await Note.previews(f1.id);
|
||||
notes2 = await Note.previews(f2.id);
|
||||
|
||||
assertEquals(1, notes1.length);
|
||||
assertEquals(4, notes2.length);
|
||||
}
|
||||
};
|
||||
|
||||
async function main(argv) {
|
||||
await fs.remove(baseDir);
|
||||
@@ -243,7 +236,7 @@ async function main(argv) {
|
||||
}
|
||||
}
|
||||
|
||||
main(process.argv).catch((error) => {
|
||||
main(process.argv).catch(error => {
|
||||
console.info('');
|
||||
logger.error(error);
|
||||
});
|
||||
});
|
||||
|
@@ -16,7 +16,7 @@ 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;
|
||||
@@ -26,7 +26,6 @@ cliUtils.printArray = function(logFunction, rows, headers = null) {
|
||||
}
|
||||
}
|
||||
|
||||
let lines = [];
|
||||
for (let row = 0; row < rows.length; row++) {
|
||||
let line = [];
|
||||
for (let col = 0; col < colWidths.length; col++) {
|
||||
@@ -37,7 +36,7 @@ cliUtils.printArray = function(logFunction, rows, headers = null) {
|
||||
}
|
||||
logFunction(line.join(' '));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
cliUtils.parseFlags = function(flags) {
|
||||
let output = {};
|
||||
@@ -56,7 +55,7 @@ cliUtils.parseFlags = function(flags) {
|
||||
}
|
||||
}
|
||||
return output;
|
||||
}
|
||||
};
|
||||
|
||||
cliUtils.parseCommandArg = function(arg) {
|
||||
if (arg.length <= 2) throw new Error('Invalid command arg: ' + arg);
|
||||
@@ -72,7 +71,7 @@ cliUtils.parseCommandArg = function(arg) {
|
||||
} else {
|
||||
throw new Error('Invalid command arg: ' + arg);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
cliUtils.makeCommandArgs = function(cmd, argv) {
|
||||
let cmdUsage = cmd.usage();
|
||||
@@ -85,7 +84,6 @@ cliUtils.makeCommandArgs = function(cmd, argv) {
|
||||
for (let i = 0; i < options.length; i++) {
|
||||
if (options[i].length != 2) throw new Error('Invalid options: ' + options[i]);
|
||||
let flags = options[i][0];
|
||||
let text = options[i][1];
|
||||
|
||||
flags = cliUtils.parseFlags(flags);
|
||||
|
||||
@@ -125,27 +123,27 @@ cliUtils.makeCommandArgs = function(cmd, argv) {
|
||||
output.options = argOptions;
|
||||
|
||||
return output;
|
||||
}
|
||||
};
|
||||
|
||||
cliUtils.promptMcq = function(message, answers) {
|
||||
const readline = require('readline');
|
||||
|
||||
const rl = readline.createInterface({
|
||||
input: process.stdin,
|
||||
output: process.stdout
|
||||
output: process.stdout,
|
||||
});
|
||||
|
||||
message += "\n\n";
|
||||
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 += '\n';
|
||||
message += _('Your choice: ');
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
rl.question(message, (answer) => {
|
||||
rl.question(message, answer => {
|
||||
rl.close();
|
||||
|
||||
if (!(answer in answers)) {
|
||||
@@ -156,7 +154,7 @@ cliUtils.promptMcq = function(message, answers) {
|
||||
resolve(answer);
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
cliUtils.promptConfirm = function(message, answers = null) {
|
||||
if (!answers) answers = [_('Y'), _('n')];
|
||||
@@ -164,19 +162,19 @@ cliUtils.promptConfirm = function(message, answers = null) {
|
||||
|
||||
const rl = readline.createInterface({
|
||||
input: process.stdin,
|
||||
output: process.stdout
|
||||
output: process.stdout,
|
||||
});
|
||||
|
||||
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
|
||||
@@ -189,10 +187,9 @@ cliUtils.prompt = function(initialText = '', promptString = ':', options = null)
|
||||
|
||||
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 +201,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 +217,7 @@ let redrawLastUpdateTime_ = 0;
|
||||
|
||||
cliUtils.setStdout = function(v) {
|
||||
this.stdout_ = v;
|
||||
}
|
||||
};
|
||||
|
||||
cliUtils.redraw = function(s) {
|
||||
const now = time.unixMs();
|
||||
@@ -233,8 +230,8 @@ cliUtils.redraw = function(s) {
|
||||
redrawLastLog_ = s;
|
||||
}
|
||||
|
||||
redrawStarted_ = true;
|
||||
}
|
||||
redrawStarted_ = true;
|
||||
};
|
||||
|
||||
cliUtils.redrawDone = function() {
|
||||
if (!redrawStarted_) return;
|
||||
@@ -245,6 +242,6 @@ cliUtils.redrawDone = function() {
|
||||
|
||||
redrawLastLog_ = null;
|
||||
redrawStarted_ = false;
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = { cliUtils };
|
||||
module.exports = { cliUtils };
|
||||
|
@@ -1,19 +1,12 @@
|
||||
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 BaseModel = require('lib/BaseModel');
|
||||
const Setting = require('lib/models/Setting.js');
|
||||
const { toTitleCase } = require('lib/string-utils.js');
|
||||
const { reg } = require('lib/registry.js');
|
||||
const markdownUtils = require('lib/markdownUtils');
|
||||
const { Database } = require('lib/database.js');
|
||||
|
||||
class Command extends BaseCommand {
|
||||
|
||||
usage() {
|
||||
return 'apidoc';
|
||||
}
|
||||
@@ -23,15 +16,19 @@ class Command extends BaseCommand {
|
||||
}
|
||||
|
||||
createPropertiesTable(tableFields) {
|
||||
const headers = [
|
||||
{ name: 'name', label: 'Name' },
|
||||
{ name: 'type', label: 'Type', filter: (value) => {
|
||||
return Database.enumName('fieldType', value);
|
||||
}},
|
||||
{ name: 'description', label: 'Description' },
|
||||
];
|
||||
|
||||
return markdownUtils.createMarkdownTable(headers, tableFields);
|
||||
const headers = [
|
||||
{ name: 'name', label: 'Name' },
|
||||
{
|
||||
name: 'type',
|
||||
label: 'Type',
|
||||
filter: value => {
|
||||
return Database.enumName('fieldType', value);
|
||||
},
|
||||
},
|
||||
{ name: 'description', label: 'Description' },
|
||||
];
|
||||
|
||||
return markdownUtils.createMarkdownTable(headers, tableFields);
|
||||
}
|
||||
|
||||
async action(args) {
|
||||
@@ -70,8 +67,8 @@ class Command extends BaseCommand {
|
||||
lines.push('}');
|
||||
lines.push('```');
|
||||
lines.push('');
|
||||
|
||||
lines.push('# Authorisation')
|
||||
|
||||
lines.push('# Authorisation');
|
||||
lines.push('');
|
||||
lines.push('To prevent unauthorised applications from accessing the API, the calls must be authentified. To do so, you must provide a token as a query parameter for each API call. You can get this token from the Joplin desktop application, on the Web Clipper Options screen.');
|
||||
lines.push('');
|
||||
@@ -293,7 +290,6 @@ class Command extends BaseCommand {
|
||||
|
||||
this.stdout(lines.join('\n'));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
|
@@ -3,10 +3,8 @@ 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 <note> <file>';
|
||||
}
|
||||
@@ -26,7 +24,6 @@ class Command extends BaseCommand {
|
||||
|
||||
await shim.attachFileToNote(note, localFilePath);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -2,11 +2,9 @@ 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 <note>';
|
||||
}
|
||||
@@ -16,9 +14,7 @@ class Command extends BaseCommand {
|
||||
}
|
||||
|
||||
options() {
|
||||
return [
|
||||
['-v, --verbose', _('Displays the complete information about note.')],
|
||||
];
|
||||
return [['-v, --verbose', _('Displays the complete information about note.')]];
|
||||
}
|
||||
|
||||
async action(args) {
|
||||
@@ -30,10 +26,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;
|
||||
module.exports = Command;
|
||||
|
@@ -4,25 +4,22 @@ const { app } = require('./app.js');
|
||||
const Setting = require('lib/models/Setting.js');
|
||||
|
||||
class Command extends BaseCommand {
|
||||
|
||||
usage() {
|
||||
return 'config [name] [value]';
|
||||
}
|
||||
|
||||
description() {
|
||||
return _("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.");
|
||||
return _('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.');
|
||||
}
|
||||
|
||||
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);
|
||||
@@ -33,7 +30,7 @@ class Command extends BaseCommand {
|
||||
} else {
|
||||
return _('%s = %s', name, value);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
if (!args.name && !args.value) {
|
||||
let keys = Setting.keys(!verbose, 'cli');
|
||||
@@ -43,15 +40,23 @@ class Command extends BaseCommand {
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -64,7 +69,6 @@ class Command extends BaseCommand {
|
||||
|
||||
await Setting.saveAll();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -2,11 +2,9 @@ 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 <note> [notebook]';
|
||||
}
|
||||
@@ -33,7 +31,6 @@ class Command extends BaseCommand {
|
||||
Note.updateGeolocation(newNote.id);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -2,12 +2,10 @@ 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 <note>';
|
||||
}
|
||||
@@ -35,7 +33,6 @@ class Command extends BaseCommand {
|
||||
async action(args) {
|
||||
await Command.handleAction(this, args, true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -1,12 +1,9 @@
|
||||
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';
|
||||
}
|
||||
@@ -35,10 +32,9 @@ class Command extends BaseCommand {
|
||||
}
|
||||
|
||||
items = items.concat(tags);
|
||||
|
||||
|
||||
this.stdout(JSON.stringify(items));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -1,9 +1,7 @@
|
||||
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 { shim } = require('lib/shim');
|
||||
@@ -12,7 +10,6 @@ const imageType = require('image-type');
|
||||
const readChunk = require('read-chunk');
|
||||
|
||||
class Command extends BaseCommand {
|
||||
|
||||
usage() {
|
||||
return 'e2ee <command> [path]';
|
||||
}
|
||||
@@ -35,7 +32,7 @@ class Command extends BaseCommand {
|
||||
|
||||
const options = args.options;
|
||||
|
||||
const askForMasterKey = async (error) => {
|
||||
const askForMasterKey = async error => {
|
||||
const masterKeyId = error.masterKeyId;
|
||||
const password = await this.prompt(_('Enter master password:'), { type: 'string', secure: true });
|
||||
if (!password) {
|
||||
@@ -45,7 +42,7 @@ class Command extends BaseCommand {
|
||||
Setting.setObjectKey('encryption.passwordCache', masterKeyId, password);
|
||||
await EncryptionService.instance().loadMasterKeysFromSettings();
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
if (args.command === 'enable') {
|
||||
const password = options.password ? options.password.toString() : await this.prompt(_('Enter master password:'), { type: 'string', secure: true });
|
||||
@@ -100,7 +97,7 @@ class Command extends BaseCommand {
|
||||
while (true) {
|
||||
try {
|
||||
const outputDir = options.output ? options.output : require('os').tmpdir();
|
||||
let outFile = outputDir + '/' + pathUtils.filename(args.path) + '.' + Date.now() + '.bin';
|
||||
let outFile = outputDir + '/' + pathUtils.filename(args.path) + '.' + Date.now() + '.bin';
|
||||
await EncryptionService.instance().decryptFile(args.path, outFile);
|
||||
const buffer = await readChunk(outFile, 0, 64);
|
||||
const detectedType = imageType(buffer);
|
||||
@@ -128,19 +125,17 @@ class Command extends BaseCommand {
|
||||
|
||||
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.');
|
||||
|
||||
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;
|
||||
@@ -224,7 +219,6 @@ class Command extends BaseCommand {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -3,15 +3,11 @@ 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 <note>';
|
||||
}
|
||||
@@ -21,20 +17,19 @@ class Command extends BaseCommand {
|
||||
}
|
||||
|
||||
async action(args) {
|
||||
let watcher = null;
|
||||
let tempFilePath = null;
|
||||
|
||||
const onFinishedEditing = async () => {
|
||||
if (tempFilePath) fs.removeSync(tempFilePath);
|
||||
}
|
||||
};
|
||||
|
||||
const textEditorPath = () => {
|
||||
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 <editor-path>`'));
|
||||
}
|
||||
};
|
||||
|
||||
try {
|
||||
try {
|
||||
// -------------------------------------------------------------------------
|
||||
// Load note or create it if it doesn't exist
|
||||
// -------------------------------------------------------------------------
|
||||
@@ -76,18 +71,30 @@ class Command extends BaseCommand {
|
||||
|
||||
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 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));
|
||||
|
||||
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
|
||||
@@ -107,13 +114,11 @@ class Command extends BaseCommand {
|
||||
});
|
||||
|
||||
await onFinishedEditing();
|
||||
|
||||
} catch(error) {
|
||||
} catch (error) {
|
||||
await onFinishedEditing();
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -3,7 +3,6 @@ const { app } = require('./app.js');
|
||||
const { _ } = require('lib/locale.js');
|
||||
|
||||
class Command extends BaseCommand {
|
||||
|
||||
usage() {
|
||||
return 'exit';
|
||||
}
|
||||
@@ -19,7 +18,6 @@ class Command extends BaseCommand {
|
||||
async action(args) {
|
||||
await app().exit();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -1,13 +1,10 @@
|
||||
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';
|
||||
}
|
||||
@@ -23,14 +20,17 @@ 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 filePath = Setting.value('profileDir') + '/syncReport-' + new Date().getTime() + '.csv';
|
||||
await fs.writeFileSync(filePath, csv);
|
||||
this.stdout('Sync status exported to ' + filePath);
|
||||
|
||||
app().gui().showConsole();
|
||||
app().gui().maximizeConsole();
|
||||
app()
|
||||
.gui()
|
||||
.showConsole();
|
||||
app()
|
||||
.gui()
|
||||
.maximizeConsole();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -1,14 +1,10 @@
|
||||
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 <path>';
|
||||
}
|
||||
@@ -19,17 +15,14 @@ class Command extends BaseCommand {
|
||||
|
||||
options() {
|
||||
const service = new InteropService();
|
||||
const formats = service.modules()
|
||||
const formats = service
|
||||
.modules()
|
||||
.filter(m => m.type === 'exporter')
|
||||
.map(m => m.format + (m.description ? ' (' + m.description + ')' : ''));
|
||||
|
||||
return [
|
||||
['--format <format>', _('Destination format: %s', formats.join(', '))],
|
||||
['--note <note>', _('Exports only the given note.')],
|
||||
['--notebook <notebook>', _('Exports only the given notebook.')],
|
||||
];
|
||||
return [['--format <format>', _('Destination format: %s', formats.join(', '))], ['--note <note>', _('Exports only the given note.')], ['--notebook <notebook>', _('Exports only the given notebook.')]];
|
||||
}
|
||||
|
||||
|
||||
async action(args) {
|
||||
let exportOptions = {};
|
||||
exportOptions.path = args.path;
|
||||
@@ -37,25 +30,20 @@ class Command extends BaseCommand {
|
||||
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;
|
||||
module.exports = Command;
|
||||
|
@@ -2,11 +2,9 @@ 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 <note>';
|
||||
}
|
||||
@@ -23,9 +21,10 @@ class Command extends BaseCommand {
|
||||
const url = Note.geolocationUrl(item);
|
||||
this.stdout(url);
|
||||
|
||||
app().gui().showConsole();
|
||||
app()
|
||||
.gui()
|
||||
.showConsole();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -1,14 +1,10 @@
|
||||
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]';
|
||||
}
|
||||
@@ -28,7 +24,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;
|
||||
}
|
||||
@@ -40,31 +36,37 @@ class Command extends BaseCommand {
|
||||
this.stdout(_('For information on how to customise the shortcuts please visit %s', 'https://joplinapp.org/terminal/#shortcuts'));
|
||||
this.stdout('');
|
||||
|
||||
if (app().gui().isDummy()) {
|
||||
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);
|
||||
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') {
|
||||
const commands = this.allCommands();
|
||||
const output = commands.map((c) => renderCommandHelp(c));
|
||||
const output = commands.map(c => renderCommandHelp(c));
|
||||
this.stdout(output.join('\n\n'));
|
||||
} else if (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('');
|
||||
@@ -82,10 +84,13 @@ class Command extends BaseCommand {
|
||||
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;
|
||||
module.exports = Command;
|
||||
|
@@ -1,17 +1,11 @@
|
||||
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 <path> [notebook]';
|
||||
}
|
||||
@@ -22,14 +16,14 @@ class Command extends BaseCommand {
|
||||
|
||||
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 <format>', _('Source format: %s', (['auto'].concat(formats)).join(', '))],
|
||||
['-f, --force', _('Do not ask for confirmation.')],
|
||||
];
|
||||
return [['--format <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);
|
||||
|
||||
@@ -44,7 +38,7 @@ class Command extends BaseCommand {
|
||||
|
||||
// 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));
|
||||
@@ -56,20 +50,21 @@ class Command extends BaseCommand {
|
||||
cliUtils.redraw(lastProgress);
|
||||
};
|
||||
|
||||
importOptions.onError = (error) => {
|
||||
importOptions.onError = error => {
|
||||
let s = error.trace ? error.trace : error.toString();
|
||||
this.stdout(s);
|
||||
};
|
||||
|
||||
app().gui().showConsole();
|
||||
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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -10,7 +10,6 @@ const { time } = require('lib/time-utils.js');
|
||||
const { cliUtils } = require('./cli-utils.js');
|
||||
|
||||
class Command extends BaseCommand {
|
||||
|
||||
usage() {
|
||||
return 'ls [note-pattern]';
|
||||
}
|
||||
@@ -24,14 +23,7 @@ class Command extends BaseCommand {
|
||||
}
|
||||
|
||||
options() {
|
||||
return [
|
||||
['-n, --limit <num>', _('Displays only the first top <num> notes.')],
|
||||
['-s, --sort <field>', _('Sorts the item by <field> (eg. title, updated_time, created_time).')],
|
||||
['-r, --reverse', _('Reverses the sorting order.')],
|
||||
['-t, --type <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 <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')],
|
||||
];
|
||||
return [['-n, --limit <num>', _('Displays only the first top <num> notes.')], ['-s, --sort <field>', _('Sorts the item by <field> (eg. title, updated_time, created_time).')], ['-r, --reverse', _('Reverses the sorting order.')], ['-t, --type <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 <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) {
|
||||
@@ -105,7 +97,7 @@ class Command extends BaseCommand {
|
||||
|
||||
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(' ');
|
||||
}
|
||||
@@ -118,9 +110,7 @@ class Command extends BaseCommand {
|
||||
|
||||
cliUtils.printArray(this.stdout.bind(this), rows);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
|
@@ -2,10 +2,8 @@ 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 <new-notebook>';
|
||||
}
|
||||
@@ -15,10 +13,9 @@ class Command extends BaseCommand {
|
||||
}
|
||||
|
||||
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;
|
||||
module.exports = Command;
|
||||
|
@@ -4,7 +4,6 @@ const { _ } = require('lib/locale.js');
|
||||
const Note = require('lib/models/Note.js');
|
||||
|
||||
class Command extends BaseCommand {
|
||||
|
||||
usage() {
|
||||
return 'mknote <new-note>';
|
||||
}
|
||||
@@ -26,7 +25,6 @@ class Command extends BaseCommand {
|
||||
|
||||
app().switchCurrentFolder(app().currentFolder());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -4,7 +4,6 @@ const { _ } = require('lib/locale.js');
|
||||
const Note = require('lib/models/Note.js');
|
||||
|
||||
class Command extends BaseCommand {
|
||||
|
||||
usage() {
|
||||
return 'mktodo <new-todo>';
|
||||
}
|
||||
@@ -27,7 +26,6 @@ class Command extends BaseCommand {
|
||||
|
||||
app().switchCurrentFolder(app().currentFolder());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -6,7 +6,6 @@ const Folder = require('lib/models/Folder.js');
|
||||
const Note = require('lib/models/Note.js');
|
||||
|
||||
class Command extends BaseCommand {
|
||||
|
||||
usage() {
|
||||
return 'mv <note> [notebook]';
|
||||
}
|
||||
@@ -18,7 +17,7 @@ class Command extends BaseCommand {
|
||||
async action(args) {
|
||||
const pattern = args['note'];
|
||||
const destination = args['notebook'];
|
||||
|
||||
|
||||
const folder = await Folder.loadByField('title', destination);
|
||||
if (!folder) throw new Error(_('Cannot find "%s".', destination));
|
||||
|
||||
@@ -29,7 +28,6 @@ class Command extends BaseCommand {
|
||||
await Note.moveToFolder(notes[i].id, folder.id);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -6,7 +6,6 @@ const Folder = require('lib/models/Folder.js');
|
||||
const Note = require('lib/models/Note.js');
|
||||
|
||||
class Command extends BaseCommand {
|
||||
|
||||
usage() {
|
||||
return 'ren <item> <name>';
|
||||
}
|
||||
@@ -35,7 +34,6 @@ class Command extends BaseCommand {
|
||||
await Note.save(newItem);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -1,14 +1,10 @@
|
||||
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 <notebook>';
|
||||
}
|
||||
@@ -18,9 +14,7 @@ class Command extends BaseCommand {
|
||||
}
|
||||
|
||||
options() {
|
||||
return [
|
||||
['-f, --force', _('Deletes the notebook without asking for confirmation.')],
|
||||
];
|
||||
return [['-f, --force', _('Deletes the notebook without asking for confirmation.')]];
|
||||
}
|
||||
|
||||
async action(args) {
|
||||
@@ -34,7 +28,6 @@ class Command extends BaseCommand {
|
||||
|
||||
await Folder.delete(folder.id);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -1,14 +1,10 @@
|
||||
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 <note-pattern>';
|
||||
}
|
||||
@@ -18,9 +14,7 @@ class Command extends BaseCommand {
|
||||
}
|
||||
|
||||
options() {
|
||||
return [
|
||||
['-f, --force', _('Deletes the notes without asking for confirmation.')],
|
||||
];
|
||||
return [['-f, --force', _('Deletes the notes without asking for confirmation.')]];
|
||||
}
|
||||
|
||||
async action(args) {
|
||||
@@ -32,10 +26,9 @@ class Command extends BaseCommand {
|
||||
|
||||
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;
|
||||
module.exports = Command;
|
||||
|
@@ -1,15 +1,10 @@
|
||||
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 <pattern> [notebook]';
|
||||
}
|
||||
@@ -50,7 +45,6 @@ class Command extends BaseCommand {
|
||||
id: searchId,
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
57
CliClient/app/command-server.js
Normal file
57
CliClient/app/command-server.js
Normal file
@@ -0,0 +1,57 @@
|
||||
const { BaseCommand } = require('./base-command.js');
|
||||
const { _ } = require('lib/locale.js');
|
||||
const Setting = require('lib/models/Setting.js');
|
||||
const { Logger } = require('lib/logger.js');
|
||||
const { shim } = require('lib/shim');
|
||||
|
||||
class Command extends BaseCommand {
|
||||
|
||||
usage() {
|
||||
return 'server <command>';
|
||||
}
|
||||
|
||||
description() {
|
||||
return _('Start, stop or check the API server. To specify on which port it should run, set the api.port config variable. Commands are (%s).', ['start', 'stop', 'status'].join('|')) + ' This is an experimental feature - use at your own risks! It is recommended that the server runs off its own separate profile so that no two CLI instances access that profile at the same time. Use --profile to specify the profile path.';
|
||||
}
|
||||
|
||||
async action(args) {
|
||||
const command = args.command;
|
||||
|
||||
const ClipperServer = require('lib/ClipperServer');
|
||||
const stdoutFn = (s) => this.stdout(s);
|
||||
const clipperLogger = new Logger();
|
||||
clipperLogger.addTarget('file', { path: Setting.value('profileDir') + '/log-clipper.txt' });
|
||||
clipperLogger.addTarget('console', { console: {
|
||||
info: stdoutFn,
|
||||
warn: stdoutFn,
|
||||
error: stdoutFn,
|
||||
}});
|
||||
ClipperServer.instance().setDispatch(action => {});
|
||||
ClipperServer.instance().setLogger(clipperLogger);
|
||||
|
||||
const pidPath = Setting.value('profileDir') + '/clipper-pid.txt';
|
||||
const runningOnPort = await ClipperServer.instance().isRunning();
|
||||
|
||||
if (command === 'start') {
|
||||
if (runningOnPort) {
|
||||
this.stdout(_('Server is already running on port %d', runningOnPort));
|
||||
} else {
|
||||
await shim.fsDriver().writeFile(pidPath, process.pid.toString(), 'utf-8');
|
||||
await ClipperServer.instance().start(); // Never exit
|
||||
}
|
||||
} else if (command === 'status') {
|
||||
this.stdout(runningOnPort ? _('Server is running on port %d', runningOnPort) : _('Server is not running.'));
|
||||
} else if (command === 'stop') {
|
||||
if (!runningOnPort) {
|
||||
this.stdout(_('Server is not running.'));
|
||||
return;
|
||||
}
|
||||
const pid = await shim.fsDriver().readFile(pidPath);
|
||||
if (!pid) return;
|
||||
process.kill(pid, 'SIGTERM');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
@@ -3,12 +3,9 @@ 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 <note> <name> [value]';
|
||||
}
|
||||
@@ -45,7 +42,6 @@ class Command extends BaseCommand {
|
||||
await Note.save(newNote);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -1,12 +1,10 @@
|
||||
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';
|
||||
}
|
||||
@@ -34,10 +32,13 @@ class Command extends BaseCommand {
|
||||
}
|
||||
}
|
||||
|
||||
app().gui().showConsole();
|
||||
app().gui().maximizeConsole();
|
||||
app()
|
||||
.gui()
|
||||
.showConsole();
|
||||
app()
|
||||
.gui()
|
||||
.maximizeConsole();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -3,7 +3,6 @@ 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 ResourceFetcher = require('lib/services/ResourceFetcher');
|
||||
const { Synchronizer } = require('lib/synchronizer.js');
|
||||
const { reg } = require('lib/registry.js');
|
||||
@@ -14,7 +13,6 @@ const fs = require('fs-extra');
|
||||
const SyncTargetRegistry = require('lib/SyncTargetRegistry');
|
||||
|
||||
class Command extends BaseCommand {
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
this.syncTargetId_ = null;
|
||||
@@ -31,9 +29,7 @@ class Command extends BaseCommand {
|
||||
}
|
||||
|
||||
options() {
|
||||
return [
|
||||
['--target <target>', _('Sync to provided target (defaults to sync.target config value)')],
|
||||
];
|
||||
return [['--target <target>', _('Sync to provided target (defaults to sync.target config value)')]];
|
||||
}
|
||||
|
||||
static lockFile(filePath) {
|
||||
@@ -66,13 +62,16 @@ 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);
|
||||
if (!auth) {
|
||||
this.stdout(_('Authentication was not completed (did not receive an authentication token).'));
|
||||
@@ -80,7 +79,8 @@ class Command extends BaseCommand {
|
||||
}
|
||||
|
||||
return true;
|
||||
} else if (syncTargetMd.name === 'dropbox') { // Dropbox
|
||||
} else if (syncTargetMd.name === 'dropbox') {
|
||||
// Dropbox
|
||||
const api = await syncTarget.api();
|
||||
const loginUrl = api.loginUrl();
|
||||
this.stdout(_('To allow Joplin to synchronise with Dropbox, please follow the steps below:'));
|
||||
@@ -118,7 +118,7 @@ class Command extends BaseCommand {
|
||||
|
||||
// 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');
|
||||
if (!(await fs.pathExists(lockFilePath))) await fs.writeFile(lockFilePath, 'synclock');
|
||||
|
||||
try {
|
||||
if (await Command.isLocked(lockFilePath)) throw new Error(_('Synchronisation is already in progress.'));
|
||||
@@ -147,22 +147,26 @@ class Command extends BaseCommand {
|
||||
|
||||
const syncTarget = reg.syncTarget(this.syncTargetId_);
|
||||
|
||||
if (!await syncTarget.isAuthenticated()) {
|
||||
app().gui().showConsole();
|
||||
app().gui().maximizeConsole();
|
||||
if (!(await syncTarget.isAuthenticated())) {
|
||||
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(' '));
|
||||
},
|
||||
onMessage: (msg) => {
|
||||
onMessage: msg => {
|
||||
cliUtils.redrawDone();
|
||||
this.stdout(msg);
|
||||
},
|
||||
@@ -237,7 +241,6 @@ class Command extends BaseCommand {
|
||||
cancellable() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -6,7 +6,6 @@ const BaseModel = require('lib/BaseModel.js');
|
||||
const { time } = require('lib/time-utils.js');
|
||||
|
||||
class Command extends BaseCommand {
|
||||
|
||||
usage() {
|
||||
return 'tag <tag-command> [tag] [note]';
|
||||
}
|
||||
@@ -16,9 +15,7 @@ class Command extends BaseCommand {
|
||||
}
|
||||
|
||||
options() {
|
||||
return [
|
||||
['-l, --long', _('Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE')],
|
||||
];
|
||||
return [['-l, --long', _('Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE')]];
|
||||
}
|
||||
|
||||
async action(args) {
|
||||
@@ -50,7 +47,7 @@ class Command extends BaseCommand {
|
||||
} else if (command == 'list') {
|
||||
if (tag) {
|
||||
let notes = await Tag.notes(tag.id);
|
||||
notes.map((note) => {
|
||||
notes.map(note => {
|
||||
let line = '';
|
||||
if (options.long) {
|
||||
line += BaseModel.shortId(note.id);
|
||||
@@ -61,7 +58,7 @@ class Command extends BaseCommand {
|
||||
if (note.is_todo) {
|
||||
line += '[';
|
||||
if (note.todo_completed) {
|
||||
line += 'X';
|
||||
line += 'X';
|
||||
} else {
|
||||
line += ' ';
|
||||
}
|
||||
@@ -74,13 +71,14 @@ class Command extends BaseCommand {
|
||||
});
|
||||
} 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;
|
||||
module.exports = Command;
|
||||
|
@@ -2,12 +2,10 @@ 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 <todo-command> <note-pattern>';
|
||||
}
|
||||
@@ -39,12 +37,11 @@ class Command extends BaseCommand {
|
||||
}
|
||||
} else if (action == 'clear') {
|
||||
toSave.is_todo = 0;
|
||||
}
|
||||
}
|
||||
|
||||
await Note.save(toSave);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -1,15 +1,9 @@
|
||||
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');
|
||||
|
||||
class Command extends BaseCommand {
|
||||
|
||||
usage() {
|
||||
return 'undone <note>';
|
||||
}
|
||||
@@ -21,7 +15,6 @@ class Command extends BaseCommand {
|
||||
async action(args) {
|
||||
await CommandDone.handleAction(this, args, false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -2,10 +2,8 @@ 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 <notebook>';
|
||||
}
|
||||
@@ -14,10 +12,6 @@ class Command extends BaseCommand {
|
||||
return _('Switches to [notebook] - all further operations will happen within this notebook.');
|
||||
}
|
||||
|
||||
autocomplete() {
|
||||
return { data: autocompleteFolders };
|
||||
}
|
||||
|
||||
compatibleUis() {
|
||||
return ['cli'];
|
||||
}
|
||||
@@ -27,7 +21,6 @@ class Command extends BaseCommand {
|
||||
if (!folder) throw new Error(_('Cannot find "%s".', args['notebook']));
|
||||
app().switchCurrentFolder(folder);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
@@ -3,7 +3,6 @@ const Setting = require('lib/models/Setting.js');
|
||||
const { _ } = require('lib/locale.js');
|
||||
|
||||
class Command extends BaseCommand {
|
||||
|
||||
usage() {
|
||||
return 'version';
|
||||
}
|
||||
@@ -16,7 +15,6 @@ class Command extends BaseCommand {
|
||||
const p = require('./package.json');
|
||||
this.stdout(_('%s %s (%s)', p.name, p.version, Setting.value('env')));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Command;
|
||||
module.exports = Command;
|
||||
|
File diff suppressed because one or more lines are too long
@@ -1,7 +1,6 @@
|
||||
const TextWidget = require('tkwidgets/TextWidget.js');
|
||||
|
||||
class ConsoleWidget extends TextWidget {
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
this.lines_ = [];
|
||||
@@ -16,7 +15,7 @@ class ConsoleWidget extends TextWidget {
|
||||
}
|
||||
|
||||
get lastLine() {
|
||||
return this.lines_.length ? this.lines_[this.lines_.length-1] : '';
|
||||
return this.lines_.length ? this.lines_[this.lines_.length - 1] : '';
|
||||
}
|
||||
|
||||
addLine(line) {
|
||||
@@ -40,13 +39,12 @@ class ConsoleWidget extends TextWidget {
|
||||
if (this.lines_.length > this.maxLines_) {
|
||||
this.lines_.splice(0, this.lines_.length - this.maxLines_);
|
||||
}
|
||||
this.text = this.lines_.join("\n");
|
||||
this.text = this.lines_.join('\n');
|
||||
this.updateText_ = false;
|
||||
}
|
||||
|
||||
super.render();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = ConsoleWidget;
|
||||
module.exports = ConsoleWidget;
|
||||
|
@@ -5,7 +5,6 @@ const ListWidget = require('tkwidgets/ListWidget.js');
|
||||
const _ = require('lib/locale.js')._;
|
||||
|
||||
class FolderListWidget extends ListWidget {
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
@@ -20,7 +19,7 @@ class FolderListWidget extends ListWidget {
|
||||
this.updateItems_ = false;
|
||||
this.trimItemTitle = false;
|
||||
|
||||
this.itemRenderer = (item) => {
|
||||
this.itemRenderer = item => {
|
||||
let output = [];
|
||||
if (item === '-') {
|
||||
output.push('-'.repeat(this.innerWidth));
|
||||
@@ -32,7 +31,7 @@ class FolderListWidget extends ListWidget {
|
||||
output.push(_('Search:'));
|
||||
output.push(item.title);
|
||||
}
|
||||
|
||||
|
||||
return output.join(' ');
|
||||
};
|
||||
}
|
||||
@@ -45,7 +44,6 @@ class FolderListWidget extends ListWidget {
|
||||
output++;
|
||||
folderId = folder.parent_id;
|
||||
}
|
||||
throw new Error('unreachable');
|
||||
}
|
||||
|
||||
get selectedFolderId() {
|
||||
@@ -54,7 +52,7 @@ class FolderListWidget extends ListWidget {
|
||||
|
||||
set selectedFolderId(v) {
|
||||
this.selectedFolderId_ = v;
|
||||
this.updateIndexFromSelectedItemId()
|
||||
this.updateIndexFromSelectedItemId();
|
||||
this.invalidate();
|
||||
}
|
||||
|
||||
@@ -64,7 +62,7 @@ class FolderListWidget extends ListWidget {
|
||||
|
||||
set selectedSearchId(v) {
|
||||
this.selectedSearchId_ = v;
|
||||
this.updateIndexFromSelectedItemId()
|
||||
this.updateIndexFromSelectedItemId();
|
||||
this.invalidate();
|
||||
}
|
||||
|
||||
@@ -74,7 +72,7 @@ class FolderListWidget extends ListWidget {
|
||||
|
||||
set selectedTagId(v) {
|
||||
this.selectedTagId_ = v;
|
||||
this.updateIndexFromSelectedItemId()
|
||||
this.updateIndexFromSelectedItemId();
|
||||
this.invalidate();
|
||||
}
|
||||
|
||||
@@ -84,7 +82,7 @@ class FolderListWidget extends ListWidget {
|
||||
|
||||
set notesParentType(v) {
|
||||
this.notesParentType_ = v;
|
||||
this.updateIndexFromSelectedItemId()
|
||||
this.updateIndexFromSelectedItemId();
|
||||
this.invalidate();
|
||||
}
|
||||
|
||||
@@ -95,7 +93,7 @@ class FolderListWidget extends ListWidget {
|
||||
set searches(v) {
|
||||
this.searches_ = v;
|
||||
this.updateItems_ = true;
|
||||
this.updateIndexFromSelectedItemId()
|
||||
this.updateIndexFromSelectedItemId();
|
||||
this.invalidate();
|
||||
}
|
||||
|
||||
@@ -106,7 +104,7 @@ class FolderListWidget extends ListWidget {
|
||||
set tags(v) {
|
||||
this.tags_ = v;
|
||||
this.updateItems_ = true;
|
||||
this.updateIndexFromSelectedItemId()
|
||||
this.updateIndexFromSelectedItemId();
|
||||
this.invalidate();
|
||||
}
|
||||
|
||||
@@ -117,7 +115,7 @@ class FolderListWidget extends ListWidget {
|
||||
set folders(v) {
|
||||
this.folders_ = v;
|
||||
this.updateItems_ = true;
|
||||
this.updateIndexFromSelectedItemId()
|
||||
this.updateIndexFromSelectedItemId();
|
||||
this.invalidate();
|
||||
}
|
||||
|
||||
@@ -128,7 +126,7 @@ class FolderListWidget extends ListWidget {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
render() {
|
||||
if (this.updateItems_) {
|
||||
this.logger().debug('Rebuilding items...', this.notesParentType, this.selectedJoplinItemId, this.selectedSearchId);
|
||||
@@ -136,7 +134,7 @@ class FolderListWidget extends ListWidget {
|
||||
const previousParentType = this.notesParentType;
|
||||
|
||||
let newItems = [];
|
||||
const orderFolders = (parentId) => {
|
||||
const orderFolders = parentId => {
|
||||
for (let i = 0; i < this.folders.length; i++) {
|
||||
const f = this.folders[i];
|
||||
const folderParentId = f.parent_id ? f.parent_id : '';
|
||||
@@ -145,7 +143,7 @@ class FolderListWidget extends ListWidget {
|
||||
if (this.folderHasChildren_(this.folders, f.id)) orderFolders(f.id);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
orderFolders('');
|
||||
|
||||
@@ -162,7 +160,7 @@ class FolderListWidget extends ListWidget {
|
||||
this.items = newItems;
|
||||
|
||||
this.notesParentType = previousParentType;
|
||||
this.updateIndexFromSelectedItemId(wasSelectedItemId)
|
||||
this.updateIndexFromSelectedItemId(wasSelectedItemId);
|
||||
this.updateItems_ = false;
|
||||
}
|
||||
|
||||
@@ -188,7 +186,6 @@ class FolderListWidget extends ListWidget {
|
||||
const index = this.itemIndexByKey('id', itemId);
|
||||
this.currentIndex = index >= 0 ? index : 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = FolderListWidget;
|
||||
module.exports = FolderListWidget;
|
||||
|
@@ -2,14 +2,13 @@ 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;
|
||||
@@ -32,7 +31,6 @@ class NoteListWidget extends ListWidget {
|
||||
|
||||
super.render();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = NoteListWidget;
|
||||
module.exports = NoteListWidget;
|
||||
|
@@ -2,7 +2,6 @@ const Note = require('lib/models/Note.js');
|
||||
const TextWidget = require('tkwidgets/TextWidget.js');
|
||||
|
||||
class NoteMetadataWidget extends TextWidget {
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
this.noteId_ = 0;
|
||||
@@ -30,7 +29,6 @@ class NoteMetadataWidget extends TextWidget {
|
||||
this.text = this.note_ ? await Note.minimalSerializeForDisplay(this.note_) : '';
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = NoteMetadataWidget;
|
||||
module.exports = NoteMetadataWidget;
|
||||
|
@@ -3,7 +3,6 @@ const TextWidget = require('tkwidgets/TextWidget.js');
|
||||
const { _ } = require('lib/locale.js');
|
||||
|
||||
class NoteWidget extends TextWidget {
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
this.noteId_ = 0;
|
||||
@@ -44,11 +43,11 @@ class NoteWidget extends TextWidget {
|
||||
} else if (this.noteId_) {
|
||||
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.');
|
||||
} 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;
|
||||
@@ -59,7 +58,6 @@ class NoteWidget extends TextWidget {
|
||||
this.scrollTop = 0;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = NoteWidget;
|
||||
module.exports = NoteWidget;
|
||||
|
@@ -5,7 +5,6 @@ const stripAnsi = require('strip-ansi');
|
||||
const { handleAutocompletion } = require('../autocompletion.js');
|
||||
|
||||
class StatusBarWidget extends BaseWidget {
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
@@ -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.moveTo(this.absoluteInnerX, this.absoluteInnerY);
|
||||
|
||||
if (this.promptActive) {
|
||||
|
||||
this.term.write(textStyle(this.promptState_.promptString));
|
||||
|
||||
if (this.inputEventEmitter_) {
|
||||
@@ -113,8 +111,8 @@ 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;
|
||||
@@ -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;
|
||||
|
@@ -1,10 +1,7 @@
|
||||
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 { _ } = require('lib/locale.js');
|
||||
|
||||
const rootDir = dirname(dirname(__dirname));
|
||||
const MAX_WIDTH = 78;
|
||||
const INDENT = ' ';
|
||||
|
||||
@@ -16,14 +13,14 @@ function renderTwoColumnData(options, baseIndent, width) {
|
||||
let option = options[i];
|
||||
const flag = option[0];
|
||||
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;
|
||||
output.push(r);
|
||||
}
|
||||
|
||||
return output.join("\n");
|
||||
return output.join('\n');
|
||||
}
|
||||
|
||||
function renderCommandHelp(cmd, width = null) {
|
||||
@@ -44,7 +41,7 @@ function renderCommandHelp(cmd, width = null) {
|
||||
}
|
||||
|
||||
if (cmd.name() === 'config') {
|
||||
const renderMetadata = (md) => {
|
||||
const renderMetadata = md => {
|
||||
let desc = [];
|
||||
|
||||
if (md.label) {
|
||||
@@ -67,13 +64,13 @@ function renderCommandHelp(cmd, width = 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));
|
||||
|
||||
return [md.key, desc.join("\n")];
|
||||
return [md.key, desc.join('\n')];
|
||||
};
|
||||
|
||||
output.push('');
|
||||
@@ -83,7 +80,7 @@ function renderCommandHelp(cmd, width = null) {
|
||||
let keysValues = [];
|
||||
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,8 +88,8 @@ function renderCommandHelp(cmd, width = null) {
|
||||
|
||||
output.push(renderTwoColumnData(keysValues, baseIndent, width));
|
||||
}
|
||||
|
||||
return output.join("\n");
|
||||
|
||||
return output.join('\n');
|
||||
}
|
||||
|
||||
function getOptionColWidth(options) {
|
||||
@@ -104,4 +101,4 @@ function getOptionColWidth(options) {
|
||||
return output;
|
||||
}
|
||||
|
||||
module.exports = { renderCommandHelp };
|
||||
module.exports = { renderCommandHelp };
|
||||
|
@@ -53,25 +53,25 @@ shimInit();
|
||||
|
||||
const application = app();
|
||||
|
||||
if (process.platform === "win32") {
|
||||
var rl = require("readline").createInterface({
|
||||
if (process.platform === 'win32') {
|
||||
var rl = require('readline').createInterface({
|
||||
input: process.stdin,
|
||||
output: process.stdout
|
||||
output: process.stdout,
|
||||
});
|
||||
|
||||
rl.on("SIGINT", function () {
|
||||
process.emit("SIGINT");
|
||||
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") {
|
||||
if (err.code == 'EPIPE') {
|
||||
process.exit(0);
|
||||
}
|
||||
});
|
||||
|
||||
application.start(process.argv).catch((error) => {
|
||||
application.start(process.argv).catch(error => {
|
||||
if (error.code == 'flagError') {
|
||||
console.error(error.message);
|
||||
console.error(_('Type `joplin help` for usage information.'));
|
||||
@@ -81,4 +81,4 @@ application.start(process.argv).catch((error) => {
|
||||
}
|
||||
|
||||
process.exit(1);
|
||||
});
|
||||
});
|
||||
|
@@ -1,13 +1,11 @@
|
||||
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 http = require('http');
|
||||
const urlParser = require('url');
|
||||
const enableServerDestroy = require('server-destroy');
|
||||
|
||||
class OneDriveApiNodeUtils {
|
||||
|
||||
constructor(api) {
|
||||
this.api_ = api;
|
||||
this.oauthServer_ = null;
|
||||
@@ -48,7 +46,7 @@ class OneDriveApiNodeUtils {
|
||||
|
||||
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;
|
||||
|
||||
@@ -56,7 +54,7 @@ class OneDriveApiNodeUtils {
|
||||
const url = urlParser.parse(request.url, true);
|
||||
|
||||
if (url.pathname === '/auth') {
|
||||
response.writeHead(302, { 'Location': authCodeUrl });
|
||||
response.writeHead(302, { Location: authCodeUrl });
|
||||
response.end();
|
||||
return;
|
||||
}
|
||||
@@ -64,10 +62,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,21 +75,24 @@ 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', () => {
|
||||
@@ -116,7 +117,6 @@ class OneDriveApiNodeUtils {
|
||||
targetConsole.log('http://127.0.0.1:' + port + '/auth');
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = { OneDriveApiNodeUtils };
|
||||
module.exports = { OneDriveApiNodeUtils };
|
||||
|
@@ -385,6 +385,23 @@ msgstr "حذف الملاحظة؟"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "يبحث عن الـ <pattern> (نمط) المعطى في كل الملاحظات."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -737,6 +754,10 @@ msgstr "م&ساعدة"
|
||||
msgid "Website and documentation"
|
||||
msgstr "موقع الويب و التوثيق"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Joplin نسخة %s"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "تبرَّع"
|
||||
|
||||
@@ -935,8 +956,8 @@ msgstr ""
|
||||
"فيما بعد عبر المزامنة."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
"يرجى الرجوع إلى التوثيق للمزيد من المعلومات عن التشفير من الطرف للطرف (E2EE) "
|
||||
"و طرق تفعيله."
|
||||
@@ -1456,10 +1477,10 @@ msgstr "فاتحة"
|
||||
msgid "Dark"
|
||||
msgstr "غامقة"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1530,6 +1551,9 @@ msgstr ""
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "إظهار أيقونة لوحة النظام"
|
||||
|
||||
@@ -1615,6 +1639,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "تجاهل أخطاء شهادات TLS"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable note history"
|
||||
msgstr "تفعيل التشفير"
|
||||
@@ -1770,6 +1799,14 @@ msgstr "الإذن باستخدام الكاميرا"
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr "إذنك باستخدام كاميرا الجوال مطلوب."
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "لا يوجد دفتر ملاحظات نشط."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "ينشئ دفتر ملاحظات جديد."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "لا توجد ملاحظات حالياً. أنشئ واحدة بالضغط على زر (+)."
|
||||
|
||||
@@ -2110,6 +2147,3 @@ msgstr "بحث"
|
||||
|
||||
#~ msgid "Remove?"
|
||||
#~ msgstr "إزالة ؟"
|
||||
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "Joplin نسخة %s"
|
||||
|
@@ -392,6 +392,23 @@ msgstr "Да изтрия ли бележката?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Търси всред всички бележки за зададения <шаблон>."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -754,6 +771,10 @@ msgstr "Помощ (&H)"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Уебсайт и документация"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Joplin експорт файл"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "Искам да направя дарение"
|
||||
|
||||
@@ -958,8 +979,8 @@ msgstr ""
|
||||
"ще бъдат свалени тепърва чрез синхронизация."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
"За повече информация относно криптирането от край до край (E2EE) и за съвети "
|
||||
"относно как да го пуснете, вижте документацията:"
|
||||
@@ -1492,10 +1513,10 @@ msgstr "Светла"
|
||||
msgid "Dark"
|
||||
msgstr "Тъмна"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1564,6 +1585,10 @@ msgstr "Пусни синтаксис ++вметка++"
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr "Пусни разширението за multimarkdown таблици"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr "Пусни синтаксис ~ниско~"
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "Покажи иконка до часовника"
|
||||
|
||||
@@ -1654,6 +1679,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "Игнорирай грешки в TLS сертификати"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable note history"
|
||||
msgstr "Пусни история за бележките"
|
||||
|
||||
@@ -1812,6 +1842,14 @@ msgstr "Разрешение за употреба на камерата"
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr "Трябва да разрешените употребата на камерата."
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Няма активна тетрадка."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Създава нова тетрадка."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "В момента няма бележки. Натиснете бутон (+) за да създадете бележка."
|
||||
|
||||
|
@@ -1,14 +1,17 @@
|
||||
# Catalan Joplin Translation.
|
||||
# Copyright (C) 2018 Joan Montané
|
||||
# Copyright (C) 2019 Joan Montané, Josep Maria Planell
|
||||
# This file is distributed under the same license as the Joplin-CLI package.
|
||||
# Joan Montané <jmontane@softcatala.org>, 2018.
|
||||
#
|
||||
# Translators:
|
||||
# Josep Maria Planell <planell.josep@gmail.com>, 2019
|
||||
# Joan Montané <jmontane@softcatala.org>, 2019
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Joplin-CLI 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"Last-Translator: jmontane, 2018\n"
|
||||
"Last-Translator: jmontane, 2019\n"
|
||||
"Language-Team: jmontane@softcatala.org\n"
|
||||
"Language: ca\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -65,7 +68,7 @@ msgstr "No es pot canviar l'element xifrat"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Missing required argument: %s"
|
||||
msgstr "Manca un argument requerit: 1%s"
|
||||
msgstr "Manca un argument requerit: %s"
|
||||
|
||||
#, javascript-format
|
||||
msgid "%s: %s"
|
||||
@@ -287,7 +290,7 @@ msgstr "Creades: %d."
|
||||
|
||||
#, javascript-format
|
||||
msgid "Updated: %d."
|
||||
msgstr "Acualitzades: %d."
|
||||
msgstr "Actualitzades: %d."
|
||||
|
||||
#, javascript-format
|
||||
msgid "Skipped: %d."
|
||||
@@ -394,6 +397,23 @@ msgstr "Voleu suprimir la nota?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Cerca el patró <pattern> en totes les notes."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -474,8 +494,9 @@ msgid ""
|
||||
"`tag list` can be used to list all the tags (use -l for long option)."
|
||||
msgstr ""
|
||||
"<tag-command>pot ser «add», «remove» o «list» per a assignar o suprimir "
|
||||
"[tag] de la [nota], o per a llistar les notes associades amb [tag]. L'ordre "
|
||||
"«tag list» es pot usar per a llistar totes les etiquetes."
|
||||
"l'[etiqueta] de la [nota], o per a llistar les notes associades amb "
|
||||
"l'[etiqueta]. L'ordre «tag list» es pot usar per a llistar totes les "
|
||||
"etiquetes."
|
||||
|
||||
#, javascript-format
|
||||
msgid "Invalid command: \"%s\""
|
||||
@@ -645,8 +666,9 @@ msgstr ""
|
||||
msgid "Create to-do from template"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Insert template"
|
||||
msgstr ""
|
||||
msgstr "Insereix la data i hora"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Open template directory"
|
||||
@@ -716,22 +738,22 @@ msgid "Select all"
|
||||
msgstr "Seleccioneu una data"
|
||||
|
||||
msgid "Bold"
|
||||
msgstr ""
|
||||
msgstr "Negreta"
|
||||
|
||||
msgid "Italic"
|
||||
msgstr ""
|
||||
msgstr "Cursiva"
|
||||
|
||||
msgid "Link"
|
||||
msgstr ""
|
||||
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
msgstr "Codi"
|
||||
|
||||
msgid "Insert Date Time"
|
||||
msgstr ""
|
||||
msgstr "Insereix la data i hora"
|
||||
|
||||
msgid "Edit in external editor"
|
||||
msgstr ""
|
||||
msgstr "Edita en un editor extern"
|
||||
|
||||
msgid "Tags"
|
||||
msgstr "Etiquetes"
|
||||
@@ -768,6 +790,10 @@ msgstr "Ajuda"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Lloc web i documentació"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Fitxer d'exportació del Joplin"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "Donatius"
|
||||
|
||||
@@ -890,7 +916,7 @@ msgid "Browse..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Apply"
|
||||
msgstr ""
|
||||
msgstr "Aplica"
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Tramet"
|
||||
@@ -971,8 +997,8 @@ msgstr ""
|
||||
"sincrontizació."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
"Per a més informació sobre el xifratge d'extrem a extrem (E2EE) i consells "
|
||||
"sobre com activar-lo, llegiu la documentació:"
|
||||
@@ -1053,9 +1079,8 @@ msgstr ""
|
||||
msgid "URL"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Note History"
|
||||
msgstr "Blocs de notes"
|
||||
msgstr ""
|
||||
|
||||
msgid "Markup"
|
||||
msgstr ""
|
||||
@@ -1086,9 +1111,9 @@ msgstr ""
|
||||
msgid "Open..."
|
||||
msgstr "Obre..."
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "This file could not be opened: %s"
|
||||
msgstr "No s'ha pogut desar el bloc de notes: %s"
|
||||
msgstr "Aquest fitxer no s'ha pogut obrir: %s"
|
||||
|
||||
msgid "Save as..."
|
||||
msgstr "Anomena i desa..."
|
||||
@@ -1097,7 +1122,7 @@ msgid "Copy path to clipboard"
|
||||
msgstr "Copia el camí al porta-retalls"
|
||||
|
||||
msgid "Copy Link Address"
|
||||
msgstr ""
|
||||
msgstr "Copia l'adreça de l'enllaç"
|
||||
|
||||
msgid "This attachment is not downloaded or not decrypted yet."
|
||||
msgstr ""
|
||||
@@ -1118,16 +1143,16 @@ msgid "Only one note can be printed or exported to PDF at a time."
|
||||
msgstr ""
|
||||
|
||||
msgid "strong text"
|
||||
msgstr ""
|
||||
msgstr "text en negreta"
|
||||
|
||||
msgid "emphasized text"
|
||||
msgstr ""
|
||||
msgstr "text amb èmfasi"
|
||||
|
||||
msgid "List item"
|
||||
msgstr ""
|
||||
msgstr "Element de llista"
|
||||
|
||||
msgid "Insert Hyperlink"
|
||||
msgstr ""
|
||||
msgstr "insereix un enllaç"
|
||||
|
||||
msgid "Attach file"
|
||||
msgstr "Adjunta un fitxer"
|
||||
@@ -1140,29 +1165,28 @@ msgid "In: %s"
|
||||
msgstr "A: %s"
|
||||
|
||||
msgid "Hyperlink"
|
||||
msgstr ""
|
||||
msgstr "Enllaç"
|
||||
|
||||
msgid "Numbered List"
|
||||
msgstr ""
|
||||
msgstr "Llista numerada"
|
||||
|
||||
msgid "Bulleted List"
|
||||
msgstr ""
|
||||
msgstr "Llista de pics"
|
||||
|
||||
msgid "Checkbox"
|
||||
msgstr ""
|
||||
msgstr "Casella de verificació"
|
||||
|
||||
msgid "Heading"
|
||||
msgstr ""
|
||||
msgstr "Capçalera"
|
||||
|
||||
msgid "Horizontal Rule"
|
||||
msgstr ""
|
||||
msgstr "Línia horitzontal"
|
||||
|
||||
msgid "Click to stop external editing"
|
||||
msgstr ""
|
||||
msgstr "Feu-hi clic per a aturar l'edició externa"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Watching..."
|
||||
msgstr "S'està cancel·lant..."
|
||||
msgstr "S'està vigilant..."
|
||||
|
||||
msgid "to-do"
|
||||
msgstr "Tasques pendents"
|
||||
@@ -1229,13 +1253,12 @@ msgstr ""
|
||||
msgid "Add or remove tags"
|
||||
msgstr "Afegeix o suprimeix etiquetes"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Duplicate"
|
||||
msgstr "Surt de l'aplicació"
|
||||
msgstr "Duplica"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "%s - Copy"
|
||||
msgstr "Copia"
|
||||
msgstr "%s - Còpia"
|
||||
|
||||
msgid "Switch between note and to-do type"
|
||||
msgstr "Alterna entre el tipus nota i tasques pendents"
|
||||
@@ -1496,10 +1519,10 @@ msgstr "Clar"
|
||||
msgid "Dark"
|
||||
msgstr "Fosc"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1570,6 +1593,9 @@ msgstr ""
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "Mostra la icona a la safata"
|
||||
|
||||
@@ -1628,20 +1654,19 @@ msgstr "%d hora"
|
||||
msgid "%d hours"
|
||||
msgstr "%d hores"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Text editor command"
|
||||
msgstr "Editor de text"
|
||||
msgstr "Ordre de l'editor de text"
|
||||
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"The editor command (may include arguments) that will be used to open a note. "
|
||||
"If none is provided it will try to auto-detect the default editor."
|
||||
msgstr ""
|
||||
"L'editor que s'usarà per a obrir una nota. Si no s'indica cap, intentarà "
|
||||
"detectar automàticament l'editor predeterminat."
|
||||
"L'ordre de l'editor (que pot incloure arguments) que s'usarà per a obrir una "
|
||||
"nota. Si no se'n proporciona cap, l'editor predeterminat es detectarà "
|
||||
"automàticament."
|
||||
|
||||
msgid "Custom TLS certificates"
|
||||
msgstr ""
|
||||
msgstr "Certificats TLS personalitzats"
|
||||
|
||||
msgid ""
|
||||
"Comma-separated list of paths to directories to load the certificates from, "
|
||||
@@ -1649,8 +1674,18 @@ msgid ""
|
||||
"pem. Note that if you make changes to the TLS settings, you must save your "
|
||||
"changes before clicking on \"Check synchronisation configuration\"."
|
||||
msgstr ""
|
||||
"Una llista separada per comes de camins a directoris d'on carregar els "
|
||||
"certificats, o el camí a fitxers de certificats concrets. Per exemple, "
|
||||
"el_meu/dir_cert, /altres/personalitzat.pem. Tingueu en compte que si feu "
|
||||
"canvis en la configuració TLS, cal que els deseu abans de fer clic a "
|
||||
"«Comprova la configuració de la sincronització»."
|
||||
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "Ignora els errors de certificat TLS"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
@@ -1758,11 +1793,11 @@ msgstr ""
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
msgid "%s (%s) could not be uploaded: %s"
|
||||
msgstr "No s'ha pogut desar el bloc de notes: %s"
|
||||
msgstr "Aquest fitxer no s'ha pogut obrir: %s"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
msgid "Item \"%s\" could not be downloaded: %s"
|
||||
msgstr "No s'ha pogut desar el bloc de notes: %s"
|
||||
msgstr "Aquest fitxer no s'ha pogut obrir: %s"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Items that cannot be decrypted"
|
||||
@@ -1813,6 +1848,14 @@ msgstr ""
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "No hi ha cap bloc de notes actiu."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Crea un bloc de notes nou."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "Ara mateix no hi ha cap nota. Creeu-ne una fent clic en el botó (+)."
|
||||
|
||||
@@ -1857,17 +1900,17 @@ msgstr "Bloc de notes nou"
|
||||
msgid "Configuration"
|
||||
msgstr "Configuració"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Decrypting items: %d/%d"
|
||||
msgstr "Elements obtinguts: %d/%d"
|
||||
msgstr "S'estan desxifrant els elements: %d/%d"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
msgid "Fetching resources: %d/%d"
|
||||
msgstr "Recursos: %d/%d"
|
||||
msgstr "Elements obtinguts: %d/%d."
|
||||
|
||||
#, fuzzy
|
||||
msgid "All notes"
|
||||
msgstr "nota"
|
||||
msgstr "Voleu suprimir les notes?"
|
||||
|
||||
msgid "Notebooks"
|
||||
msgstr "Blocs de notes"
|
||||
@@ -1900,7 +1943,7 @@ msgstr ""
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
msgid "Decrypted items: %s / %s"
|
||||
msgstr "Elements obtinguts: %d/%d."
|
||||
msgstr "S'estan desxifrant els elements: %d/%d"
|
||||
|
||||
msgid "New tags:"
|
||||
msgstr "Etiquetes noves:"
|
||||
@@ -1923,7 +1966,6 @@ msgstr "Configuració"
|
||||
msgid "Encryption Config"
|
||||
msgstr "Configuració del xifratge"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Tools"
|
||||
msgstr "Eines"
|
||||
|
||||
@@ -2058,7 +2100,7 @@ msgstr "Tipus d'imatge no admesa: %s"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
msgid "Updated: %s"
|
||||
msgstr "Acualitzades: %d."
|
||||
msgstr "Actualitzades: %d."
|
||||
|
||||
msgid "View on map"
|
||||
msgstr "Mostra-ho al mapa"
|
||||
@@ -2112,6 +2154,31 @@ msgstr "Inicia sessió amb OneDrive"
|
||||
msgid "Search"
|
||||
msgstr "Cerca"
|
||||
|
||||
#~ msgid "Separate each tag by a comma."
|
||||
#~ msgstr "Separeu les etiquetes amb comes."
|
||||
|
||||
#~ msgid "Some items cannot be decrypted."
|
||||
#~ msgstr "Alguns elements no s'han pogut desxifrar."
|
||||
|
||||
#, javascript-format
|
||||
#~ msgid "State: %s."
|
||||
#~ msgstr "Estat: %s."
|
||||
|
||||
#, javascript-format
|
||||
#~ msgid "A notebook with this title already exists: \"%s\""
|
||||
#~ msgstr "Ja existeix un bloc de notes amb aquest títol: «%s»"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||
#~ "See `sync.target`."
|
||||
#~ msgstr ""
|
||||
#~ "El camí on sincronitzar en activar la sincronització del sistema. Vegeu "
|
||||
#~ "«sync.target»."
|
||||
|
||||
#, javascript-format
|
||||
#~ msgid "%s (%s): %s"
|
||||
#~ msgstr "%s (%s): %s"
|
||||
|
||||
#~ msgid "Cancel synchronisation"
|
||||
#~ msgstr "Cancel·la la sincronització"
|
||||
|
||||
@@ -2138,29 +2205,3 @@ msgstr "Cerca"
|
||||
|
||||
#~ msgid "Welcome"
|
||||
#~ msgstr "Benvingut"
|
||||
|
||||
#~ msgid "Separate each tag by a comma."
|
||||
#~ msgstr "Separeu les etiquetes amb comes."
|
||||
|
||||
#~ msgid "Some items cannot be decrypted."
|
||||
#~ msgstr "Alguns elements no s'han pogut desxifrar."
|
||||
|
||||
#~ msgid "%s (%s): %s"
|
||||
#~ msgstr "%s (%s): %s"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||
#~ "See `sync.target`."
|
||||
#~ msgstr ""
|
||||
#~ "El camí on sincronitzar en activar la sincronització del sistema. Vegeu "
|
||||
#~ "«sync.target»."
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "Lloc web del Joplin"
|
||||
|
||||
#~ msgid "State: %s."
|
||||
#~ msgstr "Estat: %s"
|
||||
|
||||
#~ msgid "A notebook with this title already exists: \"%s\""
|
||||
#~ msgstr "Ja existeix un bloc de notes amb aquest títol: «%s»"
|
||||
|
@@ -385,6 +385,23 @@ msgstr "Smazat poznámku?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Hledá <zadání> ve všech poznámkách."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -750,6 +767,10 @@ msgstr "Nápověda"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Web a dokumentace"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Web Joplinu"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "Přispět"
|
||||
|
||||
@@ -950,8 +971,8 @@ msgstr ""
|
||||
"staženy při synchronizaci."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
"Pro více informací o End-To-End šifrování (E2EE) a návod jak je povolit "
|
||||
"náhledněte do dokumentace:"
|
||||
@@ -1475,10 +1496,10 @@ msgstr "Světlý"
|
||||
msgid "Dark"
|
||||
msgstr "Tmavý"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1547,6 +1568,10 @@ msgstr "Povolit ++insert++ syntaxi"
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr "Povolit rozšíření multimarkdown tabulky"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr "Povolit ~sub~ syntaxi"
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "Zobrazovat ikonu v panelu"
|
||||
|
||||
@@ -1633,6 +1658,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "Ignorovat chyby TLS certifikátu"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable note history"
|
||||
msgstr "Povolit poznámky pod čarou"
|
||||
@@ -1788,6 +1818,14 @@ msgstr "Oprávnění použít kameru"
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr "Je vyžadováno oprávnění použít vaši kameru."
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Není vybrán žádný zápisník."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Vytvoří nový zápisník."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "Nemáte žádné poznámky. Vytvořte jednu kliknutím na tlačítko (+)."
|
||||
|
||||
@@ -2134,10 +2172,6 @@ msgstr "Hledání"
|
||||
#~ "Cesta ke složce, se kterou synchronizovat, pokud je cílem synchronizace "
|
||||
#~ "místní souborový systém. Viz `sync.target`."
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "Web Joplinu"
|
||||
|
||||
#~ msgid "State: %s."
|
||||
#~ msgstr "Stav: %s."
|
||||
|
||||
|
@@ -390,6 +390,23 @@ msgstr "Slet note?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Søger efter <pattern> mønster i alle noter."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -755,6 +772,10 @@ msgstr "Hjælp"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Joplins hjemmeside og dokumentation"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Joplin hjemmeside"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "Giv en donation"
|
||||
|
||||
@@ -950,8 +971,8 @@ msgstr ""
|
||||
"(på et eller andet tidspunkt) via synkroniseringen."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
"Se dokumentationen for nærmere oplysninger om End-To-End-kryptering (E2EE) "
|
||||
"og vejledning om hvordan det skal opsættes_"
|
||||
@@ -1477,10 +1498,10 @@ msgstr "Lyst"
|
||||
msgid "Dark"
|
||||
msgstr "Mørkt"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1552,6 +1573,9 @@ msgstr ""
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "Vis ikon på bundbjælke"
|
||||
|
||||
@@ -1635,6 +1659,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable note history"
|
||||
msgstr "Start kryptering"
|
||||
@@ -1795,6 +1824,14 @@ msgstr ""
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Ingen aktiv notesbog."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Opretter en ny notesbog."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "Der er ingen noter. Opret note ved at klikke på (+) knappen."
|
||||
|
||||
@@ -2130,10 +2167,6 @@ msgstr "Søg"
|
||||
#~ "Sti til synkronisering, når filsystem synkronisering er slået til. Se "
|
||||
#~ "`sync.target`."
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "Joplin hjemmeside"
|
||||
|
||||
#~ msgid "State: %s."
|
||||
#~ msgstr "Tilstand: %s."
|
||||
|
||||
|
@@ -403,6 +403,23 @@ msgstr "Notiz löschen?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Sucht nach dem angegebenen <pattern> in allen Notizen."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -768,6 +785,10 @@ msgstr "&Hilfe"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Webseite und Dokumentation"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Joplin v%s"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "Spenden"
|
||||
|
||||
@@ -973,8 +994,8 @@ msgstr ""
|
||||
"Die Hauptschlüssel dieser IDs werden für die Verschlüsselung einiger ..."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
"Weitere Informationen zur Ende-zu-Ende-Verschlüsselung (E2EE) und Hinweise "
|
||||
"zur Aktivierung findest du in der Dokumentation (auf Englisch):"
|
||||
@@ -1513,11 +1534,11 @@ msgstr "Hell"
|
||||
msgid "Dark"
|
||||
msgstr "Dunkel"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr "Solarized Hell"
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgstr "Solarized Dunkel"
|
||||
msgid "Solarised Dark"
|
||||
msgstr "Solarised Dark"
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
msgstr "Zeige unvollständige To-Dos an oberster Stelle"
|
||||
@@ -1585,6 +1606,10 @@ msgstr "Aktiviere ++insert++ Syntax"
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr "Aktiviere multimarkdown Tabellen Erweiterung"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr "Aktiviere ~sub~ Syntax"
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "Zeige Tray-Icon"
|
||||
|
||||
@@ -1673,6 +1698,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "Ignoriere TLS-Zertifikatfehler"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable note history"
|
||||
msgstr "Aktiviere Notizen-Verlauf"
|
||||
|
||||
@@ -1833,6 +1863,14 @@ msgstr "Berechtigung zur Verwendung der Kamera"
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr "Deine Zustimmung zur Verwendung deiner Kamera ist erforderlich."
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Die/das momentan ausgewählte Notiz(-buch) löschen."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Erstellt ein neues Notizbuch."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr ""
|
||||
"Momentan existieren noch keine Notizen. Erstelle eine, indem du auf den (+) "
|
||||
@@ -2181,9 +2219,6 @@ msgstr "Suchen"
|
||||
#~ "Der Pfad, mit dem synchronisiert werden soll, wenn die Dateisystem-"
|
||||
#~ "Synchronisation aktiviert ist. Siehe `sync.target`."
|
||||
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "Joplin v%s"
|
||||
|
||||
#~ msgid "Remove?"
|
||||
#~ msgstr "Löschen?"
|
||||
|
||||
@@ -2242,9 +2277,6 @@ msgstr "Suchen"
|
||||
#~ msgid "Exit the application."
|
||||
#~ msgstr "Das Programm verlassen."
|
||||
|
||||
#~ msgid "Delete the currently selected note or notebook."
|
||||
#~ msgstr "Die/das momentan ausgewählte Notiz(-buch) löschen."
|
||||
|
||||
#~ msgid "Set a to-do as completed / not completed"
|
||||
#~ msgstr "Ein To-Do als abgeschlossen / nicht abgeschlossen markieren"
|
||||
|
||||
|
@@ -353,6 +353,23 @@ msgstr ""
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -675,6 +692,9 @@ msgstr ""
|
||||
msgid "Website and documentation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Joplin Forum"
|
||||
msgstr ""
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr ""
|
||||
|
||||
@@ -856,8 +876,8 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Status"
|
||||
@@ -1355,10 +1375,10 @@ msgstr ""
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1427,6 +1447,9 @@ msgstr ""
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr ""
|
||||
|
||||
@@ -1502,6 +1525,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable note history"
|
||||
msgstr ""
|
||||
|
||||
@@ -1650,6 +1678,12 @@ msgstr ""
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr ""
|
||||
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr ""
|
||||
|
||||
msgid "Create a notebook"
|
||||
msgstr ""
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr ""
|
||||
|
||||
|
@@ -354,6 +354,23 @@ msgstr ""
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -681,6 +698,9 @@ msgstr ""
|
||||
msgid "Website and documentation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Joplin Forum"
|
||||
msgstr ""
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr ""
|
||||
|
||||
@@ -874,8 +894,8 @@ msgstr ""
|
||||
"they will eventually be downloaded via synchronization."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Status"
|
||||
@@ -1377,11 +1397,11 @@ msgstr ""
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgstr ""
|
||||
msgid "Solarised Light"
|
||||
msgstr "Solarized Light"
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgstr ""
|
||||
msgid "Solarised Dark"
|
||||
msgstr "Solarized Dark"
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
msgstr ""
|
||||
@@ -1449,6 +1469,9 @@ msgstr ""
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr ""
|
||||
|
||||
@@ -1527,6 +1550,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable note history"
|
||||
msgstr ""
|
||||
|
||||
@@ -1675,6 +1703,12 @@ msgstr ""
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr ""
|
||||
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr ""
|
||||
|
||||
msgid "Create a notebook"
|
||||
msgstr ""
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr ""
|
||||
|
||||
|
@@ -396,6 +396,23 @@ msgstr "¿Eliminar nota?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Buscar el patrón <pattern> en todas las notas."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -758,6 +775,10 @@ msgstr "&Ayuda"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Sitio web y documentación"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Joplin v%s"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "Hacer una donación"
|
||||
|
||||
@@ -961,8 +982,8 @@ msgstr ""
|
||||
"través de la sincronización."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
"Para más información acerca del cifrado extremo a extremo (E2EE) y "
|
||||
"advertencias de como habilitarlo por favor revise la documentación:"
|
||||
@@ -1495,10 +1516,10 @@ msgstr "Claro"
|
||||
msgid "Dark"
|
||||
msgstr "Oscuro"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1567,6 +1588,10 @@ msgstr "Activar sintaxis ++insert++"
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr "Activar extensión de tablas multimarkdown"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr "Activar sintaxis ~sub~"
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "Mostrar icono en la bandeja"
|
||||
|
||||
@@ -1656,6 +1681,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "Ignorar errores en certificados TLS"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable note history"
|
||||
msgstr "Habilitar historial de notas"
|
||||
|
||||
@@ -1810,6 +1840,14 @@ msgstr "Permiso para usar tu cámara"
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr "El permiso para usar tu cámara es necesario."
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Eliminar la nota o libreta seleccionada."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Crea una nueva libreta."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "No hay notas. Cree una pulsando en el botón (+)."
|
||||
|
||||
@@ -2159,9 +2197,6 @@ msgstr "Buscar"
|
||||
#~ "La ruta a la que sincronizar cuando se activa la sincronización con "
|
||||
#~ "sistema de archivos. Vea «sync.target»."
|
||||
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "Joplin v%s"
|
||||
|
||||
#~ msgid "Remove?"
|
||||
#~ msgstr "¿Borrar?"
|
||||
|
||||
@@ -2224,9 +2259,6 @@ msgstr "Buscar"
|
||||
#~ msgid "Cancel the current command."
|
||||
#~ msgstr "Cancelar el comando actual."
|
||||
|
||||
#~ msgid "Delete the currently selected note or notebook."
|
||||
#~ msgstr "Eliminar la nota o libreta seleccionada."
|
||||
|
||||
#~ msgid "Set a to-do as completed / not completed"
|
||||
#~ msgstr "Marca una tarea como completada/no completada"
|
||||
|
||||
|
@@ -391,6 +391,23 @@ msgstr "Oharra ezabatu?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Emandako <pattern> bilatzen du ohar guztietan."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -760,6 +777,10 @@ msgstr "Laguntza"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Web orria eta dokumentazioa (en)"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Evernotetik esportatutako fitxategiak"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Make a donation"
|
||||
msgstr "Web orria eta dokumentazioa (en)"
|
||||
@@ -957,8 +978,8 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Status"
|
||||
@@ -1494,10 +1515,10 @@ msgstr "Argia"
|
||||
msgid "Dark"
|
||||
msgstr "Iluna"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
@@ -1573,6 +1594,9 @@ msgstr ""
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr ""
|
||||
|
||||
@@ -1654,6 +1678,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable note history"
|
||||
msgstr "Zifratua gaitu"
|
||||
@@ -1814,6 +1843,14 @@ msgstr ""
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Ezabatu aukeratutako oharra edo koadernoa"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Koaderno berria sortzen du."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "Ez dago oharrik. Sortu bat (+) botoian klik eginaz."
|
||||
|
||||
@@ -2200,9 +2237,6 @@ msgstr "Bilatu"
|
||||
#~ msgid "Cancel the current command."
|
||||
#~ msgstr "Utzi uneko komandoa"
|
||||
|
||||
#~ msgid "Delete the currently selected note or notebook."
|
||||
#~ msgstr "Ezabatu aukeratutako oharra edo koadernoa"
|
||||
|
||||
#~ msgid "Set a to-do as completed / not completed"
|
||||
#~ msgstr "Zeregina eginda / ez-eginda markatu"
|
||||
|
||||
|
@@ -356,6 +356,23 @@ msgstr "پاک کردن یادداشت؟"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -684,6 +701,10 @@ msgstr "&کمک"
|
||||
msgid "Website and documentation"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "فایل خروجی Joplin"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr ""
|
||||
|
||||
@@ -866,8 +887,8 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Status"
|
||||
@@ -1376,10 +1397,10 @@ msgstr "روشن"
|
||||
msgid "Dark"
|
||||
msgstr "تیره"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1448,6 +1469,9 @@ msgstr ""
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr ""
|
||||
|
||||
@@ -1524,6 +1548,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable note history"
|
||||
msgstr "فعال سایز ثبت تاریخچه ی یادداشت"
|
||||
|
||||
@@ -1672,6 +1701,14 @@ msgstr "اجازه برای استفاده از دوربین"
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr "اجازه ی شما برای استفاده از دوربین شما نیاز است."
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "دفترچهی فعالی وجود ندارد."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "ایجاد دفترچه جدید."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr ""
|
||||
|
||||
|
@@ -13,7 +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.3\n"
|
||||
"X-Generator: Poedit 2.2.1\n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
|
||||
msgid "To delete a tag, untag the associated notes."
|
||||
msgstr "Pour supprimer une vignette, enlever là des notes associées."
|
||||
@@ -389,6 +391,26 @@ msgstr "Supprimer la note ?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Chercher le motif <pattern> dans toutes les notes."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
"Démarre, stop ou vérifie l'état du serveur API. Pour spécifier sur quel port "
|
||||
"il doit tourner, veuillez utiliser la variable de config api.port. Les "
|
||||
"commandes sont (%s)."
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr "Le serveur tourne déjà sur le port %d"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr "Le serveur tourne sur le port %d"
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr "Le serveur est arrêté."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -753,6 +775,9 @@ msgstr "&Aide"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Documentation en ligne"
|
||||
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Forum Joplin"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "Faire un don"
|
||||
|
||||
@@ -959,8 +984,8 @@ msgstr ""
|
||||
"probable qu'elle vont être prochainement disponible via la synchronisation."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
"Pour plus d'informations sur le chiffrement de bout en bout, ainsi que des "
|
||||
"conseils pour l'activer, veuillez consulter la documentation :"
|
||||
@@ -1005,9 +1030,8 @@ msgstr "Renommer étiquette :"
|
||||
msgid "Set alarm:"
|
||||
msgstr "Régler alarme :"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Template file:"
|
||||
msgstr "Modèles"
|
||||
msgstr "Fichier de modèle :"
|
||||
|
||||
msgid "Layout"
|
||||
msgstr "Disposition"
|
||||
@@ -1047,7 +1071,7 @@ msgid "Note History"
|
||||
msgstr "Historique des notes"
|
||||
|
||||
msgid "Markup"
|
||||
msgstr ""
|
||||
msgstr "Langage de balisage"
|
||||
|
||||
msgid "Previous versions of this note"
|
||||
msgstr "Versions précédentes de cette note"
|
||||
@@ -1497,11 +1521,11 @@ msgstr "Clair"
|
||||
msgid "Dark"
|
||||
msgstr "Sombre"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgstr ""
|
||||
msgid "Solarised Light"
|
||||
msgstr "Solarisé clair"
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgstr ""
|
||||
msgid "Solarised Dark"
|
||||
msgstr "Solarisé sombre"
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
msgstr "Tâches non-terminées en haut"
|
||||
@@ -1569,6 +1593,9 @@ msgstr "Activer la syntaxe ++insertion++"
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr "Activer les tables multi-markdown"
|
||||
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr "Activer la syntaxe \"Fountain\""
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "Afficher l'icône dans la zone de notifications"
|
||||
|
||||
@@ -1657,6 +1684,13 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "Ignorer les erreurs de certificats TLS"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
"Détermine quel port sera utilisé par le serveur API. Si aucun n'est "
|
||||
"spécifié, un port par défaut sera utilisé."
|
||||
|
||||
msgid "Enable note history"
|
||||
msgstr "Activer l'historique des notes"
|
||||
|
||||
@@ -1813,6 +1847,12 @@ msgstr "Permission d'utiliser l'appareil photo"
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr "Votre permission est requise pour utiliser l'appareil photo."
|
||||
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Vous n'avez pour l'instant pas de carnets."
|
||||
|
||||
msgid "Create a notebook"
|
||||
msgstr "Créer un carnet"
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr ""
|
||||
"Ce carnet ne contient aucune note. Créez-en une en appuyant sur le bouton "
|
||||
@@ -1913,7 +1953,6 @@ msgstr "Entrez de nouvelles étiquettes ou sélectionnez de la liste"
|
||||
msgid "Warning"
|
||||
msgstr "Avertissement"
|
||||
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"In order to use file system synchronisation your permission to write to "
|
||||
"external storage is required."
|
||||
@@ -1948,13 +1987,12 @@ msgstr "Correction de l'index..."
|
||||
msgid "Fix search index"
|
||||
msgstr "Corriger index de recherche"
|
||||
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Use this to rebuild the search index if there is a problem with search. It "
|
||||
"may take a long time depending on the number of notes."
|
||||
msgstr ""
|
||||
"Utilisez ceci pour corriger l'index du moteur de recherche en cas de "
|
||||
"problème. Cela peut prendre assez longtemps selon le nombre de notes."
|
||||
"problème. Cela peut prendre longtemps selon le nombre de notes."
|
||||
|
||||
msgid "More information"
|
||||
msgstr "Plus d'information"
|
||||
@@ -2166,9 +2204,6 @@ msgstr "Chercher"
|
||||
#~ "Le chemin du répertoire avec lequel synchroniser lorsque la "
|
||||
#~ "synchronisation par système de fichier est activée. Voir `sync.target`."
|
||||
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "Joplin v%s"
|
||||
|
||||
#~ msgid "Remove?"
|
||||
#~ msgstr "Supprimer ?"
|
||||
|
||||
@@ -2234,9 +2269,6 @@ msgstr "Chercher"
|
||||
#~ msgid "Exit the application."
|
||||
#~ msgstr "Quitter le logiciel."
|
||||
|
||||
#~ msgid "Delete the currently selected note or notebook."
|
||||
#~ msgstr "Supprimer la note ou carnet sélectionné."
|
||||
|
||||
#~ msgid "Set a to-do as completed / not completed"
|
||||
#~ msgstr "Marquer une tâches comme complétée / non-complétée"
|
||||
|
||||
|
@@ -388,6 +388,23 @@ msgstr "Eliminar nota?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Busca o patrón <pattern> en todas as notas."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -755,6 +772,10 @@ msgstr "Axuda"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Sitio web e documentación"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Sitio web de Joplin"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "Doar"
|
||||
|
||||
@@ -950,8 +971,8 @@ msgstr ""
|
||||
"descargados pola sincronización."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Status"
|
||||
@@ -1477,10 +1498,10 @@ msgstr "Claro"
|
||||
msgid "Dark"
|
||||
msgstr "Escuro"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1552,6 +1573,9 @@ msgstr ""
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "Mostrar a icona na bandexa"
|
||||
|
||||
@@ -1635,6 +1659,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable note history"
|
||||
msgstr "Activar cifrado"
|
||||
@@ -1795,6 +1824,14 @@ msgstr ""
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Ningún caderno activo."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Crea un caderno novo."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "Non ten notas actualmente. Cree unha premendo no botón (+)."
|
||||
|
||||
@@ -2130,10 +2167,6 @@ msgstr "Buscar"
|
||||
#~ "Ruta para sincronizar cando estea activada a sincronización do sistema de "
|
||||
#~ "ficheiros. Vexa «sync.target»."
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "Sitio web de Joplin"
|
||||
|
||||
#~ msgid "State: %s."
|
||||
#~ msgstr "Estado: %s."
|
||||
|
||||
|
@@ -393,6 +393,23 @@ msgstr "Obrisati bilješku?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Pretražuje dati <pattern> u svim bilješkama."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -758,6 +775,10 @@ msgstr "Pomoć"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Website i dokumentacija"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Evernote izvozne datoteke"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Make a donation"
|
||||
msgstr "Website i dokumentacija"
|
||||
@@ -943,8 +964,8 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Status"
|
||||
@@ -1469,10 +1490,10 @@ msgstr "Svijetla"
|
||||
msgid "Dark"
|
||||
msgstr "Tamna"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
@@ -1548,6 +1569,9 @@ msgstr ""
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr ""
|
||||
|
||||
@@ -1628,6 +1652,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable note history"
|
||||
msgstr "Bilješka je promijenjena:"
|
||||
@@ -1786,6 +1815,14 @@ msgstr ""
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Obriši odabranu bilješku ili bilježnicu."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Stvara novu bilježnicu."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "Trenutno nema bilješki. Stvori novu klikom na (+) gumb."
|
||||
|
||||
@@ -2175,9 +2212,6 @@ msgstr "Traži"
|
||||
#~ msgid "Cancel the current command."
|
||||
#~ msgstr "Prekini trenutnu naredbu."
|
||||
|
||||
#~ msgid "Delete the currently selected note or notebook."
|
||||
#~ msgstr "Obriši odabranu bilješku ili bilježnicu."
|
||||
|
||||
#~ msgid "Set a to-do as completed / not completed"
|
||||
#~ msgstr "Postavi zadatak kao završen/nezavršen"
|
||||
|
||||
|
@@ -17,7 +17,8 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "To delete a tag, untag the associated notes."
|
||||
msgstr "Per eliminare un'etichetta, togli l'etichetta dalle note a cui è associata."
|
||||
msgstr ""
|
||||
"Per eliminare un'etichetta, togli l'etichetta dalle note a cui è associata."
|
||||
|
||||
msgid "Please select the note or notebook to be deleted first."
|
||||
msgstr "Per favore seleziona la nota o il taccuino da eliminare."
|
||||
@@ -393,6 +394,23 @@ msgstr "Eliminare la nota?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Cerca <pattern> in tutte le note."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -537,6 +555,7 @@ msgstr "Errore fatale:"
|
||||
#, javascript-format
|
||||
msgid "All potential ports are in use - please report the issue at %s"
|
||||
msgstr ""
|
||||
"Tutte le potenziali porte sono in uso - prego riportare il problema a %s"
|
||||
|
||||
msgid ""
|
||||
"The application has been authorised - you may now close this browser tab."
|
||||
@@ -638,25 +657,23 @@ msgid "Web clipper options"
|
||||
msgstr "Opzioni Web Clipper"
|
||||
|
||||
msgid "Create note from template"
|
||||
msgstr ""
|
||||
msgstr "Crea nota da modello"
|
||||
|
||||
msgid "Create to-do from template"
|
||||
msgstr ""
|
||||
msgstr "Nuovo \"Cose-da-fare\" da modello"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Insert template"
|
||||
msgstr "Inserisci data e ora"
|
||||
msgstr "Inserisci modello"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Open template directory"
|
||||
msgstr "Cartella di esportazione di Joplin"
|
||||
msgstr "Apri cartella modelli"
|
||||
|
||||
msgid "Refresh templates"
|
||||
msgstr ""
|
||||
msgstr "Aggiorna modelli"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Revision: %s (%s)"
|
||||
msgstr "%s %s (%s)"
|
||||
msgstr "Revisione: %s (%s)"
|
||||
|
||||
#, javascript-format
|
||||
msgid "%s %s (%s, %s)"
|
||||
@@ -675,7 +692,7 @@ msgid "Check for updates..."
|
||||
msgstr "Controlla aggiornamenti..."
|
||||
|
||||
msgid "Templates"
|
||||
msgstr ""
|
||||
msgstr "Modelli"
|
||||
|
||||
msgid "Import"
|
||||
msgstr "Importa"
|
||||
@@ -759,6 +776,10 @@ msgstr "&Aiuto"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Sito web e documentazione"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Joplin v%s"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "Fai una donazione"
|
||||
|
||||
@@ -963,8 +984,8 @@ msgstr ""
|
||||
"ad essi. È probabile che verranno scaricati tramite la sincronizzazione."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
"Per ulteriori informazioni sulla crittografia end-to-end (E2EE) e consigli "
|
||||
"su come abilitarlo, consultare la documentazione:"
|
||||
@@ -996,7 +1017,7 @@ msgid "Notebook title:"
|
||||
msgstr "Titolo del Taccuino:"
|
||||
|
||||
msgid "Add or remove tags:"
|
||||
msgstr "Aggiungi or rimuovi etichetta:"
|
||||
msgstr "Aggiungi o rimuovi etichetta:"
|
||||
|
||||
msgid "Rename notebook:"
|
||||
msgstr "Rinomina il Taccuino:"
|
||||
@@ -1008,7 +1029,7 @@ msgid "Set alarm:"
|
||||
msgstr "Imposta allarme:"
|
||||
|
||||
msgid "Template file:"
|
||||
msgstr ""
|
||||
msgstr "File del modello:"
|
||||
|
||||
msgid "Layout"
|
||||
msgstr "Disposizione"
|
||||
@@ -1495,17 +1516,17 @@ msgstr "Chiaro"
|
||||
msgid "Dark"
|
||||
msgstr "Scuro"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
msgstr "Cose da fare incomplete in cima alla lista"
|
||||
msgstr "\"Cose-da-fare\" incomplete in cima alla lista"
|
||||
|
||||
msgid "Show completed to-dos"
|
||||
msgstr "Mostra le cose da fare completate"
|
||||
msgstr "Mostra le \"Cose-da-fare\" completate"
|
||||
|
||||
msgid "Sort notes by"
|
||||
msgstr "Ordina le note per"
|
||||
@@ -1567,6 +1588,10 @@ msgstr "Attiva sintassi ++insert++"
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr "Attiva sintassi ~sub~"
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "Visualizza tray icon"
|
||||
|
||||
@@ -1656,6 +1681,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "Ignora gli errori del certificato TLS"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable note history"
|
||||
msgstr "Attiva cronologia della nota"
|
||||
|
||||
@@ -1812,6 +1842,14 @@ msgstr "Permesso di usare la fotocamera"
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr "E’ richiesto il permesso di usare la fotocamera."
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Elimina la nota o il taccuino selezionato."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Crea un nuovo Taccuino."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "Al momento non ci sono note. Creane una cliccando sul bottone (+)."
|
||||
|
||||
@@ -1840,17 +1878,15 @@ msgstr "Seleziona la data"
|
||||
msgid "Confirm"
|
||||
msgstr "Conferma"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Notebook: %s"
|
||||
msgstr "Taccuini"
|
||||
msgstr "Taccuini: %s"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Encrypted notebooks cannot be renamed"
|
||||
msgstr "Gli elementi crittografati non possono essere modificati"
|
||||
msgstr "I Taccuini crittografati non possono essere rinominati"
|
||||
|
||||
#, fuzzy
|
||||
msgid "New Notebook"
|
||||
msgstr "Nuovo taccuino"
|
||||
msgstr "Nuovo Taccuino"
|
||||
|
||||
msgid "Configuration"
|
||||
msgstr "Configurazione"
|
||||
@@ -1863,9 +1899,8 @@ msgstr "Decrittografia Elementi: %d/%d"
|
||||
msgid "Fetching resources: %d/%d"
|
||||
msgstr "Recupero risorse: %d/%d"
|
||||
|
||||
#, fuzzy
|
||||
msgid "All notes"
|
||||
msgstr "Eliminare le note?"
|
||||
msgstr "Tutte le note"
|
||||
|
||||
msgid "Notebooks"
|
||||
msgstr "Taccuini"
|
||||
@@ -1913,48 +1948,46 @@ msgid "Type new tags or select from list"
|
||||
msgstr "Digita nuovi tag o seleziona dalla lista"
|
||||
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
msgstr "Attenzione"
|
||||
|
||||
msgid ""
|
||||
"In order to use file system synchronisation your permission to write to "
|
||||
"external storage is required."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Information"
|
||||
msgstr "Maggiori informazioni"
|
||||
msgstr "Informazioni"
|
||||
|
||||
msgid "Encryption Config"
|
||||
msgstr "Configurazione Crittografia"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Tools"
|
||||
msgstr "&Strumenti"
|
||||
msgstr "Strumenti"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Sync Status"
|
||||
msgstr "Stato"
|
||||
msgstr "Stato sincronizzazione"
|
||||
|
||||
msgid "Log"
|
||||
msgstr "Log"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Creating report..."
|
||||
msgstr "Creare nuovo %s..."
|
||||
msgstr "Creazione report..."
|
||||
|
||||
msgid "Export Debug Report"
|
||||
msgstr "Esporta il Report di Debug"
|
||||
|
||||
msgid "Fixing search index..."
|
||||
msgstr ""
|
||||
msgstr "Correzione indice di ricerca..."
|
||||
|
||||
msgid "Fix search index"
|
||||
msgstr ""
|
||||
msgstr "Correggi indice di ricerca"
|
||||
|
||||
msgid ""
|
||||
"Use this to rebuild the search index if there is a problem with search. It "
|
||||
"may take a long time depending on the number of notes."
|
||||
msgstr ""
|
||||
"Usa questo per ricostruire l’indice di ricerca se c’è un problema con la "
|
||||
"ricerca. Potrebbe richiedere molto tempo, dipende dal numero di note."
|
||||
|
||||
msgid "More information"
|
||||
msgstr "Maggiori informazioni"
|
||||
@@ -2024,9 +2057,8 @@ msgstr "Il Taccuino non può essere salvato: %s"
|
||||
msgid "Edit notebook"
|
||||
msgstr "Modifica Taccuino"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enter notebook title"
|
||||
msgstr "Titolo del Taccuino:"
|
||||
msgstr "Inserisci titolo del Taccuino"
|
||||
|
||||
msgid "Show all"
|
||||
msgstr "Mostra tutto"
|
||||
@@ -2060,9 +2092,9 @@ msgstr "Collegamenti con protocollo \"%s\" non sono supportati"
|
||||
msgid "Unsupported image type: %s"
|
||||
msgstr "Tipo di immagine non supportata: %s"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Updated: %s"
|
||||
msgstr "Aggiornato: %d."
|
||||
msgstr "Aggiornato: %s"
|
||||
|
||||
msgid "View on map"
|
||||
msgstr "Guarda sulla mappa"
|
||||
@@ -2070,13 +2102,11 @@ msgstr "Guarda sulla mappa"
|
||||
msgid "Go to source URL"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Attach..."
|
||||
msgstr "Cerca..."
|
||||
msgstr "Allega..."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Choose an option"
|
||||
msgstr "Mostra opzioni avanzate"
|
||||
msgstr "Scegli un’opzione"
|
||||
|
||||
msgid "Take photo"
|
||||
msgstr "Scatta foto"
|
||||
@@ -2096,19 +2126,17 @@ msgstr "Converti in nota"
|
||||
msgid "Convert to todo"
|
||||
msgstr "Converti in Todo"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Properties"
|
||||
msgstr "Proprietà della nota"
|
||||
msgstr "Proprietà"
|
||||
|
||||
msgid "Add body"
|
||||
msgstr ""
|
||||
msgstr "Aggiungi corpo"
|
||||
|
||||
msgid "Edit"
|
||||
msgstr "Modifica"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Add title"
|
||||
msgstr "titolo"
|
||||
msgstr "Aggiungi titolo"
|
||||
|
||||
msgid "Login with OneDrive"
|
||||
msgstr "Accedi a OneDrive"
|
||||
@@ -2164,9 +2192,6 @@ msgstr "Cerca"
|
||||
#~ "Il percorso di sincronizzazione quando la sincronizzazione è abilitata. "
|
||||
#~ "Vedi `sync.target`."
|
||||
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "Joplin v%s"
|
||||
|
||||
#~ msgid "State: %s."
|
||||
#~ msgstr "Stato: %s."
|
||||
|
||||
@@ -2233,9 +2258,6 @@ msgstr "Cerca"
|
||||
#~ msgid "Cancel the current command."
|
||||
#~ msgstr "Annulla il comando corrente."
|
||||
|
||||
#~ msgid "Delete the currently selected note or notebook."
|
||||
#~ msgstr "Elimina la nota o il taccuino selezionato."
|
||||
|
||||
#~ msgid "Set a to-do as completed / not completed"
|
||||
#~ msgstr "Imposta un \"Cose-da-fare\" come completato / non completato"
|
||||
|
||||
|
@@ -13,7 +13,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 2.0.6\n"
|
||||
"X-Generator: Poedit 2.2.3\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
msgid "To delete a tag, untag the associated notes."
|
||||
@@ -385,6 +385,23 @@ msgstr "ノートを削除しますか?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "指定された<pattern>をすべてのノートから検索する。"
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -519,7 +536,7 @@ msgstr "致命的なエラー:"
|
||||
|
||||
#, javascript-format
|
||||
msgid "All potential ports are in use - please report the issue at %s"
|
||||
msgstr ""
|
||||
msgstr "すべての潜在ポートは利用中です - 問題を %s に報告してください"
|
||||
|
||||
msgid ""
|
||||
"The application has been authorised - you may now close this browser tab."
|
||||
@@ -576,18 +593,16 @@ msgstr ""
|
||||
"\"%s\" を \"%s\" フォーマットにエクスポート中。しばらくお待ちください..."
|
||||
|
||||
msgid "Sidebar"
|
||||
msgstr ""
|
||||
msgstr "サイドバー"
|
||||
|
||||
msgid "Note list"
|
||||
msgstr ""
|
||||
msgstr "ノートの一覧"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Note title"
|
||||
msgstr "ノートブックの題名:"
|
||||
msgstr "ノートの題名:"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Note body"
|
||||
msgstr "ノートブック"
|
||||
msgstr "ノートの本文"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||
@@ -622,45 +637,43 @@ msgid "Web clipper options"
|
||||
msgstr "Webクリッパーのオプション"
|
||||
|
||||
msgid "Create note from template"
|
||||
msgstr ""
|
||||
msgstr "テンプレートからノートを作成"
|
||||
|
||||
msgid "Create to-do from template"
|
||||
msgstr ""
|
||||
msgstr "テンプレートからto-doを作成"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Insert template"
|
||||
msgstr "日付の入力"
|
||||
msgstr "テンプレートを挿入"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Open template directory"
|
||||
msgstr "Joplin エクスポートディレクトリ"
|
||||
msgstr "テンプレートディレクトリを開く"
|
||||
|
||||
msgid "Refresh templates"
|
||||
msgstr ""
|
||||
msgstr "テンプレートの更新"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Revision: %s (%s)"
|
||||
msgstr "%s %s (%s)"
|
||||
msgstr "リビジョン: %s (%s)"
|
||||
|
||||
#, javascript-format
|
||||
msgid "%s %s (%s, %s)"
|
||||
msgstr "%s %s (%s, %s)"
|
||||
|
||||
#, fuzzy
|
||||
msgid "&File"
|
||||
msgstr "ファイル"
|
||||
msgstr "&ファイル"
|
||||
|
||||
msgid "About Joplin"
|
||||
msgstr "Joplinについて"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Preferences..."
|
||||
msgstr ""
|
||||
msgstr "環境設定"
|
||||
|
||||
msgid "Check for updates..."
|
||||
msgstr "アップデートのチェック..."
|
||||
|
||||
msgid "Templates"
|
||||
msgstr ""
|
||||
msgstr "テンプレート"
|
||||
|
||||
msgid "Import"
|
||||
msgstr "インポート"
|
||||
@@ -679,11 +692,10 @@ msgid "Quit"
|
||||
msgstr "終了"
|
||||
|
||||
msgid "Close Window"
|
||||
msgstr ""
|
||||
msgstr "ウィンドウを閉じる"
|
||||
|
||||
#, fuzzy
|
||||
msgid "&Edit"
|
||||
msgstr "編集"
|
||||
msgstr "&編集"
|
||||
|
||||
msgid "Copy"
|
||||
msgstr "コピー"
|
||||
@@ -704,7 +716,7 @@ msgid "Italic"
|
||||
msgstr "斜体"
|
||||
|
||||
msgid "Link"
|
||||
msgstr ""
|
||||
msgstr "リンク"
|
||||
|
||||
msgid "Code"
|
||||
msgstr "コード"
|
||||
@@ -724,9 +736,8 @@ msgstr "すべてのノートを検索"
|
||||
msgid "Search in current note"
|
||||
msgstr "現在のノートを検索"
|
||||
|
||||
#, fuzzy
|
||||
msgid "&View"
|
||||
msgstr "表示"
|
||||
msgstr "&表示"
|
||||
|
||||
msgid "Toggle sidebar"
|
||||
msgstr "サイドバーの表示切り替え"
|
||||
@@ -734,26 +745,27 @@ msgstr "サイドバーの表示切り替え"
|
||||
msgid "Toggle editor layout"
|
||||
msgstr "エディターレイアウトの表示切り替え"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Focus"
|
||||
msgstr "本文にフォーカス"
|
||||
msgstr "フォーカス"
|
||||
|
||||
#, fuzzy
|
||||
msgid "&Tools"
|
||||
msgstr "ツール"
|
||||
msgstr "&ツール"
|
||||
|
||||
#, fuzzy
|
||||
msgid "&Help"
|
||||
msgstr "ヘルプ"
|
||||
msgstr "&ヘルプ"
|
||||
|
||||
msgid "Website and documentation"
|
||||
msgstr "Webサイトとドキュメント"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "JoplinのWebサイト"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "寄付する"
|
||||
|
||||
msgid "Toggle development tools"
|
||||
msgstr ""
|
||||
msgstr "開発者ツールのオンオフを切り替える"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Open %s"
|
||||
@@ -773,18 +785,18 @@ msgstr "現在のバージョンは最新版です。"
|
||||
|
||||
#, javascript-format
|
||||
msgid "%s (pre-release)"
|
||||
msgstr ""
|
||||
msgstr "%s (プレリリース)"
|
||||
|
||||
msgid "An update is available, do you want to download it now?"
|
||||
msgstr "アップデートがあります。すぐにダウンロードしますか?"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Your version: %s"
|
||||
msgstr ""
|
||||
msgstr "あなたのバージョン: %s"
|
||||
|
||||
#, javascript-format
|
||||
msgid "New version: %s"
|
||||
msgstr ""
|
||||
msgstr "新バージョン: %s"
|
||||
|
||||
msgid "Yes"
|
||||
msgstr "Yes"
|
||||
@@ -867,7 +879,7 @@ msgid "Check synchronisation configuration"
|
||||
msgstr "同期の設定を確認する"
|
||||
|
||||
msgid "Browse..."
|
||||
msgstr ""
|
||||
msgstr "参照..."
|
||||
|
||||
msgid "Apply"
|
||||
msgstr "適用"
|
||||
@@ -948,8 +960,8 @@ msgstr ""
|
||||
"ロードしてきたのでしょう。"
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
"エンドツーエンド暗号化(E2EE)に関する詳細な情報とどのように有効化するのかのア"
|
||||
"ドバイスは、次のドキュメントをご覧ください:"
|
||||
@@ -960,9 +972,8 @@ msgstr "状態"
|
||||
msgid "Encryption is:"
|
||||
msgstr "暗号化の状態:"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Usage"
|
||||
msgstr "使用方法: %s"
|
||||
msgstr "使い方"
|
||||
|
||||
msgid "Back"
|
||||
msgstr "戻る"
|
||||
@@ -996,7 +1007,7 @@ msgid "Set alarm:"
|
||||
msgstr "アラームをセット:"
|
||||
|
||||
msgid "Template file:"
|
||||
msgstr ""
|
||||
msgstr "テンプレートファイル:"
|
||||
|
||||
msgid "Layout"
|
||||
msgstr "レイアウト"
|
||||
@@ -1010,9 +1021,8 @@ msgstr "いくつかの項目は同期されませんでした。"
|
||||
msgid "View them now"
|
||||
msgstr "今すぐ表示"
|
||||
|
||||
#, fuzzy
|
||||
msgid "One or more master keys need a password."
|
||||
msgstr "マスターパスワードを入力してください:"
|
||||
msgstr "パスワードに1つ以上のマスターキーが必要です"
|
||||
|
||||
msgid "Set the password"
|
||||
msgstr "パスワードの設定"
|
||||
@@ -1030,35 +1040,35 @@ msgstr "場所"
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Note History"
|
||||
msgstr "ノートブック"
|
||||
msgstr "ノートの履歴"
|
||||
|
||||
msgid "Markup"
|
||||
msgstr ""
|
||||
msgstr "マークアップ"
|
||||
|
||||
msgid "Previous versions of this note"
|
||||
msgstr ""
|
||||
msgstr "このノートの以前のバージョン"
|
||||
|
||||
msgid "Note properties"
|
||||
msgstr "ノートのプロパティ"
|
||||
|
||||
#, javascript-format
|
||||
msgid "The note \"%s\" has been successfully restored to the notebook \"%s\"."
|
||||
msgstr ""
|
||||
msgstr "ノート \"%s\" のノートブック \"%s\"への復元は成功しました。"
|
||||
|
||||
#, fuzzy
|
||||
msgid "This note has no history"
|
||||
msgstr "ノートは変更されています:"
|
||||
msgstr "こののーとに履歴はありません"
|
||||
|
||||
msgid "Restore"
|
||||
msgstr ""
|
||||
msgstr "復元"
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Click \"%s\" to restore the note. It will be copied in the notebook named "
|
||||
"\"%s\". The current version of the note will not be replaced or modified."
|
||||
msgstr ""
|
||||
"\"%s\"をクリックすると復元を行います。復元されるノートは\"%s\"というノート"
|
||||
"ブックにコピーされます。現在のバージョンのノートの置換や変更は行われません。"
|
||||
|
||||
msgid "Open..."
|
||||
msgstr "開く..."
|
||||
@@ -1092,7 +1102,7 @@ msgstr ""
|
||||
"ノートを編集してください。"
|
||||
|
||||
msgid "Only one note can be printed or exported to PDF at a time."
|
||||
msgstr ""
|
||||
msgstr "一度に一つのノートだけPDFに印刷もしくはエクスポートができます。"
|
||||
|
||||
msgid "strong text"
|
||||
msgstr "文字を太字に"
|
||||
@@ -1174,18 +1184,19 @@ msgstr "暗号化のオプション"
|
||||
msgid "Clipper Options"
|
||||
msgstr "Clipperのオプション"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Delete notebook \"%s\"?\n"
|
||||
"\n"
|
||||
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||
msgstr ""
|
||||
"ノートブックを削除しますか? このノートブックにあるノートとサブノートはすべ"
|
||||
"て消えてしまいます。"
|
||||
"ノートブック \"%s\" を削除しますか?\n"
|
||||
"\n"
|
||||
"このノートブックにあるノートとサブノートはすべて消えてしまいます。"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Remove tag \"%s\" from all notes?"
|
||||
msgstr "すべてのノートからこのタグを削除しますか?"
|
||||
msgstr "すべてのノートからタグ \"%s\" を削除しますか?"
|
||||
|
||||
msgid "Remove this search from the sidebar?"
|
||||
msgstr "サイドバーからこの検索を削除しますか?"
|
||||
@@ -1200,7 +1211,7 @@ msgid "Please select where the sync status should be exported to"
|
||||
msgstr "同期状況の出力先を選択してください"
|
||||
|
||||
msgid "Retry"
|
||||
msgstr ""
|
||||
msgstr "再実行"
|
||||
|
||||
msgid "Add or remove tags"
|
||||
msgstr "タグの追加と削除"
|
||||
@@ -1224,21 +1235,23 @@ msgstr "ToDoに切り替え"
|
||||
msgid "Copy Markdown link"
|
||||
msgstr "Markdownのリンクをコピー"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Delete note \"%s\"?"
|
||||
msgstr "ノートを削除しますか?"
|
||||
msgstr "ノート \"%s\" を削除しますか?"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Delete these %d notes?"
|
||||
msgstr "ノートを削除しますか?"
|
||||
msgstr "ノート \"%d\" を削除しますか?"
|
||||
|
||||
msgid ""
|
||||
"Type a note title to jump to it. Or type # followed by a tag name, or @ "
|
||||
"followed by a notebook name."
|
||||
msgstr ""
|
||||
"ノートタイトルを入力すると、そのノートに移動します。または#につづいてタグ名も"
|
||||
"しくは@につづいてノートブック名を使うこともできます。"
|
||||
|
||||
msgid "Goto Anything..."
|
||||
msgstr ""
|
||||
msgstr "Goto Anything..."
|
||||
|
||||
#, javascript-format
|
||||
msgid "Usage: %s"
|
||||
@@ -1355,6 +1368,8 @@ msgstr "同期作業はすでに実行中です。状態: %s"
|
||||
msgid ""
|
||||
"Unknown item type downloaded - please upgrade Joplin to the latest version"
|
||||
msgstr ""
|
||||
"不明なアイテムタイプをダウンロードしました - 最新のJoplinにアップデートしてく"
|
||||
"ださい"
|
||||
|
||||
msgid "Encrypted"
|
||||
msgstr "暗号化済"
|
||||
@@ -1436,25 +1451,28 @@ msgid "WebDAV password"
|
||||
msgstr "WevDAV パスワード"
|
||||
|
||||
msgid "Attachment download behaviour"
|
||||
msgstr ""
|
||||
msgstr "添付ファイルのダウンロードの動作"
|
||||
|
||||
msgid ""
|
||||
"In \"Manual\" mode, attachments are downloaded only when you click on them. "
|
||||
"In \"Auto\", they are downloaded when you open the note. In \"Always\", all "
|
||||
"the attachments are downloaded whether you open the note or not."
|
||||
msgstr ""
|
||||
"\"手動\"モードは添付ファイルをクリックしたときのみダウンロードをします。\"自"
|
||||
"動\"はノートを開いたときにダウンロードをします。\"いつも\"はノートを開いてい"
|
||||
"るか閉じているかにかかわらずダウンロードをします。"
|
||||
|
||||
msgid "Always"
|
||||
msgstr ""
|
||||
msgstr "いつも"
|
||||
|
||||
msgid "Manual"
|
||||
msgstr ""
|
||||
msgstr "手動"
|
||||
|
||||
msgid "Auto"
|
||||
msgstr ""
|
||||
msgstr "自動"
|
||||
|
||||
msgid "Max concurrent connections"
|
||||
msgstr ""
|
||||
msgstr "最大同時接続数"
|
||||
|
||||
msgid "Language"
|
||||
msgstr "言語"
|
||||
@@ -1474,10 +1492,10 @@ msgstr "明るい"
|
||||
msgid "Dark"
|
||||
msgstr "暗い"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1492,9 +1510,8 @@ msgstr "ノートのソート方法"
|
||||
msgid "Reverse sort order"
|
||||
msgstr "逆順に並び替え"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Sort notebooks by"
|
||||
msgstr "ノートのソート方法"
|
||||
msgstr "ノートブックのソート方法"
|
||||
|
||||
msgid "Save geo-location with notes"
|
||||
msgstr "ノートに位置情報を保存"
|
||||
@@ -1512,41 +1529,44 @@ msgid "When creating a new note:"
|
||||
msgstr "新しいノートを作成した際:"
|
||||
|
||||
msgid "Enable soft breaks"
|
||||
msgstr ""
|
||||
msgstr "ソフトブレークを有効にする"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable math expressions"
|
||||
msgstr "暗号化を有効にする"
|
||||
msgstr "数式表現を有効にする"
|
||||
|
||||
msgid "Enable ==mark== syntax"
|
||||
msgstr ""
|
||||
msgstr "==ハイライト==構文を有効にする"
|
||||
|
||||
msgid "Enable footnotes"
|
||||
msgstr ""
|
||||
msgstr "脚注を有効にする"
|
||||
|
||||
msgid "Enable table of contents extension"
|
||||
msgstr ""
|
||||
msgstr "目次拡張を有効にする"
|
||||
|
||||
msgid "Enable ~sub~ syntax"
|
||||
msgstr ""
|
||||
msgstr "~下付きテキスト~構文を有効にする"
|
||||
|
||||
msgid "Enable ^sup^ syntax"
|
||||
msgstr ""
|
||||
msgstr "^上付きテキスト^構文を有効にする"
|
||||
|
||||
msgid "Enable deflist syntax"
|
||||
msgstr ""
|
||||
msgstr "定義リスト構文を有効にする"
|
||||
|
||||
msgid "Enable abbreviation syntax"
|
||||
msgstr ""
|
||||
msgstr "略語構文を有効にする"
|
||||
|
||||
msgid "Enable markdown emoji"
|
||||
msgstr ""
|
||||
msgstr "マークダウン絵文字を有効にする"
|
||||
|
||||
msgid "Enable ++insert++ syntax"
|
||||
msgstr ""
|
||||
msgstr "++追加++構文を有効にする"
|
||||
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
msgstr "MultiMarkdownのテーブル拡張を有効にする"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr "~下付きテキスト~構文を有効にする"
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "トレイアイコンの表示"
|
||||
@@ -1633,45 +1653,45 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "TLS証明書のエラーを無視"
|
||||
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable note history"
|
||||
msgstr "暗号化を有効にする"
|
||||
msgstr "ノートの履歴を有効にする"
|
||||
|
||||
msgid "days"
|
||||
msgstr ""
|
||||
msgstr "日"
|
||||
|
||||
#, javascript-format
|
||||
msgid "%d days"
|
||||
msgstr ""
|
||||
msgstr "%d 日"
|
||||
|
||||
msgid "Keep note history for"
|
||||
msgstr ""
|
||||
msgstr "ノート履歴の保存期間"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||
msgstr "無効な設定値: \"%s\"。有効な値は: %sです。"
|
||||
|
||||
#, fuzzy
|
||||
msgid "General"
|
||||
msgstr "全般のオプション"
|
||||
msgstr "全般"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Synchronisation"
|
||||
msgstr "同期状況"
|
||||
msgstr "同期"
|
||||
|
||||
msgid "Appearance"
|
||||
msgstr ""
|
||||
msgstr "スタイル"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Note"
|
||||
msgstr "ノートブック"
|
||||
msgstr "ノート"
|
||||
|
||||
msgid "Plugins"
|
||||
msgstr ""
|
||||
msgstr "プラグイン"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Application"
|
||||
msgstr "場所"
|
||||
msgstr "アプリケーション"
|
||||
|
||||
#, javascript-format
|
||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||
@@ -1721,7 +1741,7 @@ msgid "Please specify the notebook where the notes should be imported to."
|
||||
msgstr "ノートをどのノートブックにインポートするのか指定してください。"
|
||||
|
||||
msgid "Restored Notes"
|
||||
msgstr ""
|
||||
msgstr "復元されたノート"
|
||||
|
||||
msgid "Items that cannot be synchronised"
|
||||
msgstr "同期ができなかったアイテム"
|
||||
@@ -1735,23 +1755,25 @@ msgstr ""
|
||||
"のようなアイテムを探すには、タイトルまたはID(上記の括弧内に表示されている)で"
|
||||
"検索してください。"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "%s (%s) could not be uploaded: %s"
|
||||
msgstr "次のファイルは開くことができません:%s"
|
||||
msgstr "%s (%s)はアップロードできませんでした:%s"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Item \"%s\" could not be downloaded: %s"
|
||||
msgstr "次のファイルは開くことができません:%s"
|
||||
msgstr "アイテム \"%s\" はダウンロードできませんでした:%s"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Items that cannot be decrypted"
|
||||
msgstr "同期ができなかったアイテム"
|
||||
msgstr "復号ができなかったアイテム"
|
||||
|
||||
msgid ""
|
||||
"Joplin failed to decrypt these items multiple times, possibly because they "
|
||||
"are corrupted or too large. These items will remain on the device but Joplin "
|
||||
"will no longer attempt to decrypt them."
|
||||
msgstr ""
|
||||
"Joplinはアイテムが破損もしくは大きすぎるため、これらのアイテムの復号化に複数"
|
||||
"回失敗しました。これらのアイテムはデバイス上に残りますが、Joplinはこれらの復"
|
||||
"号化は行いません。"
|
||||
|
||||
msgid "Sync status (synced items / total items)"
|
||||
msgstr "同期状況 (同期済/総数)"
|
||||
@@ -1792,6 +1814,14 @@ msgstr "カメラ使用の許可"
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr "カメラを使用するには権限が必要です。"
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "選択中のノートまたはノートブックを削除"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "あたらしいノートブックを作成します。"
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "ノートがありません。(+)ボタンを押して新しいノートを作成してください。"
|
||||
|
||||
@@ -1820,15 +1850,13 @@ msgstr "日付の選択"
|
||||
msgid "Confirm"
|
||||
msgstr "確認"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Notebook: %s"
|
||||
msgstr "ノートブック"
|
||||
msgstr "ノートブック: %s"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Encrypted notebooks cannot be renamed"
|
||||
msgstr "暗号化したアイテムは修正できません"
|
||||
msgstr "暗号化したアイテムはリネームできません"
|
||||
|
||||
#, fuzzy
|
||||
msgid "New Notebook"
|
||||
msgstr "新しいノートブック"
|
||||
|
||||
@@ -1843,9 +1871,8 @@ msgstr "復号中のアイテム: %d/%d"
|
||||
msgid "Fetching resources: %d/%d"
|
||||
msgstr "取得中のリソース: %d/%d"
|
||||
|
||||
#, fuzzy
|
||||
msgid "All notes"
|
||||
msgstr "ノート"
|
||||
msgstr "すべてのノート"
|
||||
|
||||
msgid "Notebooks"
|
||||
msgstr "ノートブック"
|
||||
@@ -1891,52 +1918,50 @@ msgid "Type new tags or select from list"
|
||||
msgstr "新しいタグを入力するか、リストから選択してください"
|
||||
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
msgstr "警告"
|
||||
|
||||
msgid ""
|
||||
"In order to use file system synchronisation your permission to write to "
|
||||
"external storage is required."
|
||||
msgstr ""
|
||||
"ファイルシステムの同期を使うには、外部ストレージへの書き込み権限が必要です。"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Information"
|
||||
msgstr "設定"
|
||||
msgstr "情報"
|
||||
|
||||
msgid "Encryption Config"
|
||||
msgstr "暗号化の設定"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Tools"
|
||||
msgstr "ツール"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Sync Status"
|
||||
msgstr "状態"
|
||||
msgstr "同期の状態"
|
||||
|
||||
msgid "Log"
|
||||
msgstr "ログ"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Creating report..."
|
||||
msgstr "新しい %s を作成中..."
|
||||
msgstr "レポート を作成中..."
|
||||
|
||||
msgid "Export Debug Report"
|
||||
msgstr "デバッグレポートの出力"
|
||||
|
||||
msgid "Fixing search index..."
|
||||
msgstr ""
|
||||
msgstr "検索インデックスの修正中..."
|
||||
|
||||
msgid "Fix search index"
|
||||
msgstr ""
|
||||
msgstr "検索インデックスの修正"
|
||||
|
||||
msgid ""
|
||||
"Use this to rebuild the search index if there is a problem with search. It "
|
||||
"may take a long time depending on the number of notes."
|
||||
msgstr ""
|
||||
"検索に問題がある場合は、これを利用して検索インデックスの再構築を行います。"
|
||||
"ノートの数に依存して、時間がかかる場合があります。"
|
||||
|
||||
#, fuzzy
|
||||
msgid "More information"
|
||||
msgstr "設定"
|
||||
msgstr "詳細情報"
|
||||
|
||||
msgid ""
|
||||
"To work correctly, the app needs the following permissions. Please enable "
|
||||
@@ -1963,18 +1988,17 @@ msgstr "JoplinのWebサイト"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Database v%s"
|
||||
msgstr ""
|
||||
msgstr "データベース v%s"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "FTS enabled: %d"
|
||||
msgstr "削除予定: %d"
|
||||
msgstr "FTS有効: %d"
|
||||
|
||||
msgid "Login with Dropbox"
|
||||
msgstr "Dropboxでログイン"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enter code here"
|
||||
msgstr "コマンドラインモードに入る"
|
||||
msgstr "コードをここに入力"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Master Key %s"
|
||||
@@ -2000,9 +2024,8 @@ msgstr "ノートブックは保存できませんでした:%s"
|
||||
msgid "Edit notebook"
|
||||
msgstr "ノートブックの編集"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enter notebook title"
|
||||
msgstr "ノートブックの題名:"
|
||||
msgstr "ノートブックのタイトルを入力"
|
||||
|
||||
msgid "Show all"
|
||||
msgstr "すべて表示"
|
||||
@@ -2029,15 +2052,15 @@ msgstr "Joplinモバイルアプリは次のタイプのリンクをまだサポ
|
||||
|
||||
#, javascript-format
|
||||
msgid "Links with protocol \"%s\" are not supported"
|
||||
msgstr ""
|
||||
msgstr "プロトコル \"%s\" でのリンクはサポートされていません"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Unsupported image type: %s"
|
||||
msgstr "サポートされていない画像の形式: %s"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Updated: %s"
|
||||
msgstr "アップデート: %d."
|
||||
msgstr "アップデート: %s"
|
||||
|
||||
msgid "View on map"
|
||||
msgstr "地図上に表示"
|
||||
@@ -2047,11 +2070,10 @@ msgstr "ソースURLに行く"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Attach..."
|
||||
msgstr "検索..."
|
||||
msgstr "添付..."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Choose an option"
|
||||
msgstr "詳細な設定の表示"
|
||||
msgstr "オプションを選択"
|
||||
|
||||
msgid "Take photo"
|
||||
msgstr "写真を撮影する"
|
||||
@@ -2071,19 +2093,19 @@ msgstr "ノートに変換"
|
||||
msgid "Convert to todo"
|
||||
msgstr "ToDoに変換"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Properties"
|
||||
msgstr "ノートのプロパティ"
|
||||
msgstr "プロパティ"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Add body"
|
||||
msgstr ""
|
||||
msgstr "ボディを追加"
|
||||
|
||||
msgid "Edit"
|
||||
msgstr "編集"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Add title"
|
||||
msgstr "タイトル"
|
||||
msgstr "タイトルを追加"
|
||||
|
||||
msgid "Login with OneDrive"
|
||||
msgstr "OneDriveログイン"
|
||||
@@ -2139,10 +2161,6 @@ msgstr "検索"
|
||||
#~ "ファイルシステム同期の有効時に同期を行うパスです。`sync.target`も参考にし"
|
||||
#~ "てください。"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "JoplinのWebサイト"
|
||||
|
||||
#~ msgid "State: %s."
|
||||
#~ msgstr "状態: \"%s\"."
|
||||
|
||||
@@ -2195,9 +2213,6 @@ msgstr "検索"
|
||||
#~ msgid "Exit the application."
|
||||
#~ msgstr "アプリケーションを終了する"
|
||||
|
||||
#~ msgid "Delete the currently selected note or notebook."
|
||||
#~ msgstr "選択中のノートまたはノートブックを削除"
|
||||
|
||||
#~ msgid "Set a to-do as completed / not completed"
|
||||
#~ msgstr "ToDoを完了/未完に設定"
|
||||
|
||||
|
@@ -353,6 +353,23 @@ msgstr ""
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -675,6 +692,9 @@ msgstr ""
|
||||
msgid "Website and documentation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Joplin Forum"
|
||||
msgstr ""
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr ""
|
||||
|
||||
@@ -856,8 +876,8 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Status"
|
||||
@@ -1355,10 +1375,10 @@ msgstr ""
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1427,6 +1447,9 @@ msgstr ""
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr ""
|
||||
|
||||
@@ -1502,6 +1525,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable note history"
|
||||
msgstr ""
|
||||
|
||||
@@ -1650,6 +1678,12 @@ msgstr ""
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr ""
|
||||
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr ""
|
||||
|
||||
msgid "Create a notebook"
|
||||
msgstr ""
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr ""
|
||||
|
||||
|
@@ -15,8 +15,6 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 2.2.3\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
|
||||
msgid "To delete a tag, untag the associated notes."
|
||||
msgstr "태그를 삭제하려면 먼저 연결된 노트의 태그를 해제해주세요."
|
||||
@@ -192,7 +190,7 @@ msgid ""
|
||||
"Exports Joplin data to the given path. By default, it will export the "
|
||||
"complete database including notebooks, notes, tags and resources."
|
||||
msgstr ""
|
||||
"조플린의 데이터를 주어진 경로로 내보냅니다. 기본적으로 노트북, 노트, 태그, 기"
|
||||
"Joplin의 데이터를 주어진 경로로 내보냅니다. 기본적으로 노트북, 노트, 태그, 기"
|
||||
"타 자원을 포함한 완전한 데이터베이스를 내보내게 됩니다."
|
||||
|
||||
#, javascript-format
|
||||
@@ -261,7 +259,7 @@ msgid ""
|
||||
msgstr "키보드 단축키 및 설정 옵션을 변경하려면 `help keymap`을 입력해주세요"
|
||||
|
||||
msgid "Imports data into Joplin."
|
||||
msgstr "데이터를 조플린으로 가져옵니다."
|
||||
msgstr "데이터를 Joplin으로 가져옵니다."
|
||||
|
||||
#, javascript-format
|
||||
msgid "Source format: %s"
|
||||
@@ -386,6 +384,23 @@ msgstr "이 노트를 삭제할까요?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "주어진 <pattern>을 모든 노트에서 검색합니다."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -413,7 +428,7 @@ msgstr "인증이 완료되지 않았습니다 (인증 토큰을 받을 수 없
|
||||
|
||||
msgid ""
|
||||
"To allow Joplin to synchronise with Dropbox, please follow the steps below:"
|
||||
msgstr "조플린을 Dropbox와 동기화하려면 다음 절차를 따라주세요:"
|
||||
msgstr "Joplin을 Dropbox와 동기화하려면 다음 절차를 따라주세요:"
|
||||
|
||||
msgid "Step 1: Open this URL in your browser to authorise the application:"
|
||||
msgstr "1단계: 브라우저에서 이 URL에 접근하여 애플리케이션을 허가합니다:"
|
||||
@@ -552,7 +567,7 @@ msgid ""
|
||||
"\n"
|
||||
"For example, to create a notebook press `mb`; to create a note press `mn`."
|
||||
msgstr ""
|
||||
"조플린에 오신 것을 환영합니다!\n"
|
||||
"Joplin에 오신 것을 환영합니다!\n"
|
||||
"\n"
|
||||
"`:help shortcuts`를 입력하면 키보드 단축키 목록을 확인할 수 있습니다. `:help`"
|
||||
"를 입력하시면 사용 방법을 확인하실 수 있습니다.\n"
|
||||
@@ -640,12 +655,11 @@ msgstr "개정판: %s (%s)"
|
||||
msgid "%s %s (%s, %s)"
|
||||
msgstr "%s %s (%s, %s)"
|
||||
|
||||
#, fuzzy
|
||||
msgid "&File"
|
||||
msgstr "파일"
|
||||
|
||||
msgid "About Joplin"
|
||||
msgstr "조플린에 대해서"
|
||||
msgstr "Joplin에 대해서"
|
||||
|
||||
msgid "Preferences..."
|
||||
msgstr "설정…"
|
||||
@@ -675,7 +689,6 @@ msgstr "종료"
|
||||
msgid "Close Window"
|
||||
msgstr "창 닫기"
|
||||
|
||||
#, fuzzy
|
||||
msgid "&Edit"
|
||||
msgstr "편집"
|
||||
|
||||
@@ -718,7 +731,6 @@ msgstr "모든 노트에서 검색"
|
||||
msgid "Search in current note"
|
||||
msgstr "현재 노트에서 검색"
|
||||
|
||||
#, fuzzy
|
||||
msgid "&View"
|
||||
msgstr "보기"
|
||||
|
||||
@@ -731,17 +743,19 @@ msgstr "편집기 배치 형태 전환"
|
||||
msgid "Focus"
|
||||
msgstr "강조"
|
||||
|
||||
#, fuzzy
|
||||
msgid "&Tools"
|
||||
msgstr "도구"
|
||||
|
||||
#, fuzzy
|
||||
msgid "&Help"
|
||||
msgstr "도움말"
|
||||
|
||||
msgid "Website and documentation"
|
||||
msgstr "웹사이트 및 각종 문서"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "조플린 v%s"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "기부하기"
|
||||
|
||||
@@ -762,7 +776,7 @@ msgid "Cancel"
|
||||
msgstr "취소"
|
||||
|
||||
msgid "Current version is up-to-date."
|
||||
msgstr "현재 최신 버전을 사용하고 있으십니다."
|
||||
msgstr "현재 최신 버전을 사용중입니다."
|
||||
|
||||
#, javascript-format
|
||||
msgid "%s (pre-release)"
|
||||
@@ -812,7 +826,7 @@ msgid ""
|
||||
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
|
||||
"to Joplin."
|
||||
msgstr ""
|
||||
"조플린 웹 수집기는 브라우저에서 웹 페이지 및 스크린샷을 조플린에 저장할 수 있"
|
||||
"Joplin 웹 수집기는 브라우저에서 웹 페이지 및 스크린샷을 Joplin에 저장할 수 있"
|
||||
"게 해줍니다."
|
||||
|
||||
msgid "In order to use the web clipper, you need to do the following:"
|
||||
@@ -826,8 +840,8 @@ msgid ""
|
||||
"enabling it your firewall may ask you to give permission to Joplin to listen "
|
||||
"to a particular port."
|
||||
msgstr ""
|
||||
"이 서비스는 브라우저 확장 기능이 조플린과 연결하게 해줍니다. 활성화시 방화벽"
|
||||
"에서 조플린에게 특정 포트 접근을 허가할 것인지 물어볼 수 있습니다."
|
||||
"이 서비스는 브라우저 확장 기능이 Joplin과 연결하도록 해줍니다. 서비스를 활성"
|
||||
"화시 방화벽에서 Joplin에게 특정 포트 접근을 허가할 것인지 물어볼 수 있습니다."
|
||||
|
||||
msgid "Step 2: Install the extension"
|
||||
msgstr "2단계: 확장 기능 설치"
|
||||
@@ -848,7 +862,7 @@ msgid ""
|
||||
"This authorisation token is only needed to allow third-party applications to "
|
||||
"access Joplin."
|
||||
msgstr ""
|
||||
"이 인증 토큰은 오직 서드파티 애플리케이션에서 조플린에 접근할 때만 필요합니"
|
||||
"이 인증 토큰은 오직 서드파티 애플리케이션에서 Joplin에 접근할 때만 필요합니"
|
||||
"다."
|
||||
|
||||
#, javascript-format
|
||||
@@ -941,10 +955,10 @@ msgstr ""
|
||||
"될 가능성이 있습니다."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
"종단간 암호화(E2EE)에 관한 정보, 사용법 및 조언은 다음 문서에서 확인하세요:"
|
||||
"종단간 암호화(E2EE)에 관한 정보, 사용법 및 조언은 다음 문서에서 확인해주세요:"
|
||||
|
||||
msgid "Status"
|
||||
msgstr "상태"
|
||||
@@ -1228,9 +1242,8 @@ msgstr ""
|
||||
"노트 제목을 적으시거나 혹은 건너 뛰세요. 혹은 # 를 적고 태그 이름을 붙이거"
|
||||
"나, @뒤에 노트북 이름을 적으세요."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Goto Anything..."
|
||||
msgstr "가고 싶은 곳으로 이동…"
|
||||
msgstr "가고자 하는 곳으로 이동…"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Usage: %s"
|
||||
@@ -1347,7 +1360,7 @@ msgstr "동기화가 이미 진행되고 있습니다. 상태: %s"
|
||||
msgid ""
|
||||
"Unknown item type downloaded - please upgrade Joplin to the latest version"
|
||||
msgstr ""
|
||||
"알려지지 않은 타입을 다운로드 했습니다 - 조플린을 최신 버전으로 업데이트 해주"
|
||||
"알려지지 않은 타입을 다운로드 했습니다 - Joplin을 최신 버전으로 업데이트 해주"
|
||||
"세요"
|
||||
|
||||
msgid "Encrypted"
|
||||
@@ -1468,10 +1481,10 @@ msgstr "밝음"
|
||||
msgid "Dark"
|
||||
msgstr "어두움"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr "Solarized Light"
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr "Solarized Dark"
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1486,7 +1499,6 @@ msgstr "노트를 다음 기준으로 정렬"
|
||||
msgid "Reverse sort order"
|
||||
msgstr "정렬 순서 반전"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Sort notebooks by"
|
||||
msgstr "노트를 다음 기준으로 정렬"
|
||||
|
||||
@@ -1541,6 +1553,10 @@ msgstr "++insert++ 확장 허용"
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr "멀티마크다운 테이블 확장 허용"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr "~sub~ 구문 허용"
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "트레이 아이콘 표시"
|
||||
|
||||
@@ -1552,11 +1568,11 @@ msgid ""
|
||||
"this setting so that your notes are constantly being synchronised, thus "
|
||||
"reducing the number of conflicts."
|
||||
msgstr ""
|
||||
"조플린을 백그라운드에서 구동합니다. 노트가 정기적으로 동기화 되므로, 충돌 횟"
|
||||
"Joplin을 백그라운드에서 구동합니다. 노트가 정기적으로 동기화 되므로, 충돌 횟"
|
||||
"수가 줄어들게 되므로 이 옵션을 활성화 하시는 것을 추천드립니다."
|
||||
|
||||
msgid "Start application minimised in the tray icon"
|
||||
msgstr "트레이에 최소화 된 채로 조플린 실행"
|
||||
msgstr "트레이에 최소화 된 채로 Joplin 실행"
|
||||
|
||||
msgid "Global zoom percentage"
|
||||
msgstr "전체 확대 비율"
|
||||
@@ -1627,6 +1643,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "TLS 인증서 오류 무시"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable note history"
|
||||
msgstr "노트 역사 허용"
|
||||
|
||||
@@ -1667,13 +1688,13 @@ msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||
msgstr "태그 \"%s\"(이)가 이미 존재합니다. 다른 이름을 선택해 주세요."
|
||||
|
||||
msgid "Joplin Export File"
|
||||
msgstr "조플린 내보내기 파일"
|
||||
msgstr "Joplin 내보내기 파일"
|
||||
|
||||
msgid "Markdown"
|
||||
msgstr "마크다운"
|
||||
|
||||
msgid "Joplin Export Directory"
|
||||
msgstr "조플린 내보내기 폴더"
|
||||
msgstr "Joplin 내보내기 폴더"
|
||||
|
||||
msgid "Evernote Export File"
|
||||
msgstr "에버노트 내보내기 파일"
|
||||
@@ -1740,8 +1761,8 @@ msgid ""
|
||||
"are corrupted or too large. These items will remain on the device but Joplin "
|
||||
"will no longer attempt to decrypt them."
|
||||
msgstr ""
|
||||
"조플린이 여러 항목에 대해서 복호화를 실패했습니다. 아마도 너무 크거나 혹은 손"
|
||||
"상되었기 때문일 것입니다. 이 파일들은 기기에 남지만, 조플린은 더이상 이 항목"
|
||||
"Joplin이 여러 항목에 대해서 복호화를 실패했습니다. 아마도 너무 크거나 혹은 손"
|
||||
"상되었기 때문일 것입니다. 이 파일들은 기기에 남지만, Joplin은 더이상 이 항목"
|
||||
"들을 복호화 할 수 없습니다."
|
||||
|
||||
msgid "Sync status (synced items / total items)"
|
||||
@@ -1783,6 +1804,14 @@ msgstr "카메라 사용 허가"
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr "카메라 사용 허가가 필요합니다."
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "활성화된 노트북이 없습니다."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "새 노트북을 만듭니다."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "노트가 없습니다. (+) 버튼을 클릭하여 새로 만드세요."
|
||||
|
||||
@@ -1946,7 +1975,7 @@ msgid "- Location: to allow attaching geo-location information to a note."
|
||||
msgstr "- 위치: 지리적 위치 정보를 노트에 첨부하기 위해 필요합니다."
|
||||
|
||||
msgid "Joplin website"
|
||||
msgstr "조플린 웹사이트"
|
||||
msgstr "Joplin 웹사이트"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Database v%s"
|
||||
@@ -2010,7 +2039,7 @@ msgstr "ID %s에 해당하는 항목이 없습니다"
|
||||
|
||||
#, javascript-format
|
||||
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||
msgstr "조플린 모바일 앱은 현재 해당 형식의 링크를 지원하지 않습니다: %s"
|
||||
msgstr "Joplin 모바일 앱에서는 현재 해당 형식의 링크를 지원하지 않습니다: %s"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Links with protocol \"%s\" are not supported"
|
||||
@@ -2118,9 +2147,6 @@ msgstr "검색"
|
||||
#~ "파일 시스템 동기화가 활성화된 경우에 동기화를 할 경로입니다. `sync.target`"
|
||||
#~ "를 참조하세요."
|
||||
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "조플린 v%s"
|
||||
|
||||
#~ msgid "State: %s."
|
||||
#~ msgstr "상태: %s."
|
||||
|
||||
|
@@ -388,6 +388,23 @@ msgstr "Slett notat?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Søker etter angitt <pattern> i alle notatene."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -744,6 +761,10 @@ msgstr "&Hjelp"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Nettsted og dokumentasjon"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Joplin v%s"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "Gi et bidrag"
|
||||
|
||||
@@ -946,8 +967,8 @@ msgstr ""
|
||||
"vil siden bli lastet ned via synkronisering."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
"For mer informasjon om ende-til-ende-kryptering (E2EE) og råd om hvordan du "
|
||||
"aktiverer det kan du sjekke dokumentasjonen:"
|
||||
@@ -1471,10 +1492,10 @@ msgstr "Lys"
|
||||
msgid "Dark"
|
||||
msgstr "Mørk"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1547,6 +1568,9 @@ msgstr ""
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "Vis systemmenyikon"
|
||||
|
||||
@@ -1634,6 +1658,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "Ignorer TLS-sertifikatfeil"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable note history"
|
||||
msgstr "Liste over innhold"
|
||||
@@ -1789,6 +1818,14 @@ msgstr "Tillatelse til å bruke kamera"
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr "Tillatelse til å bruke kamera er nødvendig."
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Ingen aktiv notatbok."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Oppretter en ny notatbok."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "Det finnes enda ingen notater. Lag en ved å klikke på (+)-knappen."
|
||||
|
||||
@@ -2135,7 +2172,3 @@ msgstr "Søk"
|
||||
#~ msgstr ""
|
||||
#~ "Stien som skal synkroniseres når filsystemsynkronisering er aktivert. Se "
|
||||
#~ "`sync.target`."
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "Joplin v%s"
|
||||
|
@@ -394,6 +394,23 @@ msgstr "Notitie verwijderen?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Zoektermen voor het opgegeven <pattern> in alle notities."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -762,6 +779,10 @@ msgstr "Help"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Website en documentatie"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Exporteer Evernote bestanden"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Make a donation"
|
||||
msgstr "Website en documentatie"
|
||||
@@ -959,8 +980,8 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Status"
|
||||
@@ -1495,10 +1516,10 @@ msgstr "Licht"
|
||||
msgid "Dark"
|
||||
msgstr "Donker"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
@@ -1574,6 +1595,9 @@ msgstr ""
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr ""
|
||||
|
||||
@@ -1655,6 +1679,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable note history"
|
||||
msgstr "Schakel encryptie in"
|
||||
@@ -1816,6 +1845,14 @@ msgstr ""
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Verwijder de geselecteerde notitie of het geselecteerde notitieboek."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Maakt een nieuw notitieboek aan."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr ""
|
||||
"Er zijn momenteel geen notities. Maak een notitie door op (+) te klikken."
|
||||
@@ -2206,10 +2243,6 @@ msgstr "Zoeken"
|
||||
#~ msgid "Cancel the current command."
|
||||
#~ msgstr "Annuleer het huidige commando."
|
||||
|
||||
#~ msgid "Delete the currently selected note or notebook."
|
||||
#~ msgstr ""
|
||||
#~ "Verwijder de geselecteerde notitie of het geselecteerde notitieboek."
|
||||
|
||||
#~ msgid "Set a to-do as completed / not completed"
|
||||
#~ msgstr "Zet een to-do als voltooid / niet voltooid"
|
||||
|
||||
|
@@ -395,6 +395,23 @@ msgstr "Notitie verwijderen?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Doorzoekt alle notities op het opgegeven <pattern>."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -531,7 +548,7 @@ msgstr "Fatale fout:"
|
||||
|
||||
#, javascript-format
|
||||
msgid "All potential ports are in use - please report the issue at %s"
|
||||
msgstr ""
|
||||
msgstr "Alle potentiële poorten zijn in gebruik - Meld het probleem op %s"
|
||||
|
||||
msgid ""
|
||||
"The application has been authorised - you may now close this browser tab."
|
||||
@@ -632,10 +649,10 @@ msgid "Web clipper options"
|
||||
msgstr "Webclipper-opties"
|
||||
|
||||
msgid "Create note from template"
|
||||
msgstr ""
|
||||
msgstr "Notitie maken van sjabloon"
|
||||
|
||||
msgid "Create to-do from template"
|
||||
msgstr ""
|
||||
msgstr "To-do maken van sjabloon"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Insert template"
|
||||
@@ -646,7 +663,7 @@ msgid "Open template directory"
|
||||
msgstr "Joplin-exportmap"
|
||||
|
||||
msgid "Refresh templates"
|
||||
msgstr ""
|
||||
msgstr "Sjablonen vernieuwen"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
msgid "Revision: %s (%s)"
|
||||
@@ -669,7 +686,7 @@ msgid "Check for updates..."
|
||||
msgstr "Controleren op updates..."
|
||||
|
||||
msgid "Templates"
|
||||
msgstr ""
|
||||
msgstr "Sjablonen"
|
||||
|
||||
msgid "Import"
|
||||
msgstr "Importeren"
|
||||
@@ -753,6 +770,10 @@ msgstr "&Help"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Website en documentatie"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Joplin-website"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "Doneren"
|
||||
|
||||
@@ -956,8 +977,8 @@ msgstr ""
|
||||
"items. Waarschijnlijk worden ze uiteindelijk gedownload via synchronisatie."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
"Bekijk, voor meer informatie over End-To-End-versleuteling (E2EE) en hulp "
|
||||
"bij het inschakelen hiervan, onze documentatie:"
|
||||
@@ -1003,7 +1024,7 @@ msgid "Set alarm:"
|
||||
msgstr "Alarm instellen:"
|
||||
|
||||
msgid "Template file:"
|
||||
msgstr ""
|
||||
msgstr "Sjabloonbestand:"
|
||||
|
||||
msgid "Layout"
|
||||
msgstr "Indeling"
|
||||
@@ -1044,7 +1065,7 @@ msgid "Note History"
|
||||
msgstr "Notitiegeschiedenis"
|
||||
|
||||
msgid "Markup"
|
||||
msgstr ""
|
||||
msgstr "Opmaak"
|
||||
|
||||
msgid "Previous versions of this note"
|
||||
msgstr "Vorige versies van deze notitie"
|
||||
@@ -1495,11 +1516,11 @@ msgstr "Licht"
|
||||
msgid "Dark"
|
||||
msgstr "Donker"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgstr ""
|
||||
msgid "Solarised Light"
|
||||
msgstr "Solarised Light"
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgstr ""
|
||||
msgid "Solarised Dark"
|
||||
msgstr "Solarised Dark"
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
msgstr "Niet-afgeronde taken bovenaan"
|
||||
@@ -1567,6 +1588,10 @@ msgstr "Inschakelen ++insert++ syntaxis"
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr "Inschakelen multimarkdown tabel extensie"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr "Inschakelen ~sub~ syntaxis"
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "Systeemvakpictogram tonen"
|
||||
|
||||
@@ -1656,6 +1681,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "TLS-certificaatfouten negeren"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable note history"
|
||||
msgstr "Inschakelen geschiedenis van notities"
|
||||
|
||||
@@ -1814,6 +1844,14 @@ msgstr "Toestemming om de camera te gebruiken"
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr "Je toestemming om de camera te gebruiken is vereist."
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Geen actief notitieboek."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Creëert een nieuw notitieboek."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr ""
|
||||
"Er zijn momenteel geen notities. Creëer een notitie door te drukken op de "
|
||||
@@ -1915,12 +1953,14 @@ msgid "Type new tags or select from list"
|
||||
msgstr "Typ nieuwe labels of kies ze uit de lijst"
|
||||
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
msgstr "Waarschuwing"
|
||||
|
||||
msgid ""
|
||||
"In order to use file system synchronisation your permission to write to "
|
||||
"external storage is required."
|
||||
msgstr ""
|
||||
"Om synchronisatie via het bestandssysteem te gebruiken is je toestemming "
|
||||
"nodig om naar externe opslag te schrijven."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Information"
|
||||
@@ -1948,15 +1988,17 @@ msgid "Export Debug Report"
|
||||
msgstr "Foutopsporingsrapportage exporteren"
|
||||
|
||||
msgid "Fixing search index..."
|
||||
msgstr ""
|
||||
msgstr "Zoekindex repareren…"
|
||||
|
||||
msgid "Fix search index"
|
||||
msgstr ""
|
||||
msgstr "Zoekindex repareren"
|
||||
|
||||
msgid ""
|
||||
"Use this to rebuild the search index if there is a problem with search. It "
|
||||
"may take a long time depending on the number of notes."
|
||||
msgstr ""
|
||||
"Gebruik dit om de zoekindex opnieuw op te bouwen als er een probleem is met "
|
||||
"zoeken: Het kan lang duren afhankelijk van het aantal notities."
|
||||
|
||||
msgid "More information"
|
||||
msgstr "Meer informatie"
|
||||
@@ -2099,7 +2141,7 @@ msgid "Properties"
|
||||
msgstr "Eigenschappen van notitie"
|
||||
|
||||
msgid "Add body"
|
||||
msgstr ""
|
||||
msgstr "Inhoud toevoegen"
|
||||
|
||||
msgid "Edit"
|
||||
msgstr "Bewerken"
|
||||
@@ -2162,10 +2204,6 @@ msgstr "Zoeken"
|
||||
#~ "Het pad waarnaar gesynchroniseerd moet worden als bestandssysteem-"
|
||||
#~ "synchronisatie is ingeschakeld. Zie `sync.target`."
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "Joplin-website"
|
||||
|
||||
#~ msgid "State: %s."
|
||||
#~ msgstr "Status: %s."
|
||||
|
||||
|
@@ -398,6 +398,23 @@ msgstr "Usunąć notatkę?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Wyszukuje wskazany <pattern> we wszystkich notatkach."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -763,6 +780,10 @@ msgstr "&Pomoc"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Strona internetowa i dokumentacja"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Plik Joplin Export"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "Przekaż datek"
|
||||
|
||||
@@ -965,8 +986,8 @@ msgstr ""
|
||||
"pobrane przy synchonizacji."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
"Aby uzyskać informacje o szyfrowaniu po stronie klienta (E2EE) i przykłady "
|
||||
"ułatwiające jego uruchomienie, proszę sprawdź dokumentację:"
|
||||
@@ -1503,10 +1524,10 @@ msgstr "Jasny"
|
||||
msgid "Dark"
|
||||
msgstr "Ciemny"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1575,6 +1596,10 @@ msgstr "Aktywuj składnię ++instert++"
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr "Aktywuj rozszerzenie dla tabeli multimarkdown"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr "Aktywuj składnię ~sub~"
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "Pokaż ikonę w zasobniku systemowym"
|
||||
|
||||
@@ -1666,6 +1691,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "Ignoruj błędy certyfikatu TLS"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable note history"
|
||||
msgstr "Aktywuj historię notatek"
|
||||
|
||||
@@ -1820,6 +1850,14 @@ msgstr "Uprawenie do użytkowania kamery"
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr "Wymagane uprawenienie do użytkowania kamery."
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Brak aktywnego notatnika."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Tworzy nowy notatnik."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "Brak notatek. Aby utworzyć, naciśnij przycisk (+)."
|
||||
|
||||
|
@@ -8,13 +8,13 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Joplin-CLI 1.0.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"Last-Translator: Renato Nunes Bastos <rnbastos@gmail.com>\n"
|
||||
"Last-Translator: Rafael Teixeira <rto.tinfo@gmail.com>\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.7\n"
|
||||
"X-Generator: Poedit 2.2.3\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
msgid "To delete a tag, untag the associated notes."
|
||||
@@ -60,7 +60,7 @@ 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 "Não pode mudar um item encriptado"
|
||||
msgstr "Não é possível mudar um item encriptado"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Missing required argument: %s"
|
||||
@@ -386,6 +386,23 @@ msgstr "Apagar nota?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Procura o padrão <pattern>em todas as notas."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -593,7 +610,7 @@ msgid "Note list"
|
||||
msgstr "Lista de notas"
|
||||
|
||||
msgid "Note title"
|
||||
msgstr "Título da Nota:"
|
||||
msgstr "Título da Nota"
|
||||
|
||||
msgid "Note body"
|
||||
msgstr "Corpo da Nota"
|
||||
@@ -751,11 +768,15 @@ msgstr "&Ajuda"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Website e documentação"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Site do Joplin"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "Fazer uma doação"
|
||||
|
||||
msgid "Toggle development tools"
|
||||
msgstr ""
|
||||
msgstr "Habilitar/Desabilitar ferramentas de desenvolvimento"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Open %s"
|
||||
@@ -953,8 +974,8 @@ msgstr ""
|
||||
"elas serão baixadas via sincronização."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
"Para mais informações sobre Encriptação ponto-a-ponto (E2EE) e recomendações "
|
||||
"sobre como habilitar, favor verificar a documentação:"
|
||||
@@ -1175,7 +1196,7 @@ msgid "Encryption Options"
|
||||
msgstr "Opções de Encriptação"
|
||||
|
||||
msgid "Clipper Options"
|
||||
msgstr "Opções do clipper"
|
||||
msgstr "Opções do Clipper"
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
@@ -1206,7 +1227,7 @@ msgstr ""
|
||||
"exportado"
|
||||
|
||||
msgid "Retry"
|
||||
msgstr ""
|
||||
msgstr "Tentar novamente"
|
||||
|
||||
msgid "Add or remove tags"
|
||||
msgstr "Adicionar ou remover tags"
|
||||
@@ -1452,15 +1473,18 @@ msgid ""
|
||||
"In \"Auto\", they are downloaded when you open the note. In \"Always\", all "
|
||||
"the attachments are downloaded whether you open the note or not."
|
||||
msgstr ""
|
||||
"No modo \"Manual\", os anexos são baixados apenas quando você clica neles. "
|
||||
"Em \"Automático\", eles são baixados quando você abre a nota. Em \"Sempre\", "
|
||||
"todos os anexos são baixados independentemente de você abrir a nota ou não."
|
||||
|
||||
msgid "Always"
|
||||
msgstr ""
|
||||
msgstr "Sempre"
|
||||
|
||||
msgid "Manual"
|
||||
msgstr ""
|
||||
msgstr "Manual"
|
||||
|
||||
msgid "Auto"
|
||||
msgstr ""
|
||||
msgstr "Automático"
|
||||
|
||||
msgid "Max concurrent connections"
|
||||
msgstr ""
|
||||
@@ -1483,10 +1507,10 @@ msgstr "Light"
|
||||
msgid "Dark"
|
||||
msgstr "Dark"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1526,7 +1550,7 @@ msgid "Enable math expressions"
|
||||
msgstr "Habilitar expressões matemáticas"
|
||||
|
||||
msgid "Enable ==mark== syntax"
|
||||
msgstr "Habilitar sintaxe ==marcador== "
|
||||
msgstr "Habilitar sintaxe ==marcador=="
|
||||
|
||||
msgid "Enable footnotes"
|
||||
msgstr "Habilitar notas de rodapé"
|
||||
@@ -1538,22 +1562,26 @@ msgid "Enable ~sub~ syntax"
|
||||
msgstr "Habilitar sintaxe ~sub~"
|
||||
|
||||
msgid "Enable ^sup^ syntax"
|
||||
msgstr "Habilitar sintaxe ^sup^ "
|
||||
msgstr "Habilitar sintaxe ^sup^"
|
||||
|
||||
msgid "Enable deflist syntax"
|
||||
msgstr "Habilitar sintaxe de deflist "
|
||||
msgstr "Habilitar sintaxe de deflist"
|
||||
|
||||
msgid "Enable abbreviation syntax"
|
||||
msgstr "Habilitar sintaxe de abreviações"
|
||||
|
||||
msgid "Enable markdown emoji"
|
||||
msgstr "Habilitar emojis em markdown "
|
||||
msgstr "Habilitar emojis em markdown"
|
||||
|
||||
msgid "Enable ++insert++ syntax"
|
||||
msgstr "Habilitar sintaxe ++inserir++ "
|
||||
msgstr "Habilitar sintaxe ++inserir++"
|
||||
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr "Habilitar extensão de tabela de multimarkdown "
|
||||
msgstr "Habilitar extensão de tabela de multimarkdown"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr "Habilitar sintaxe ~sub~"
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "Exibir tray icon"
|
||||
@@ -1643,6 +1671,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "Ignorar erros de certificados TLS"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable note history"
|
||||
msgstr "Habilitar histórico de notas"
|
||||
|
||||
@@ -1747,17 +1780,19 @@ msgstr "%s (%s) não pôde ser enviado: %s"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Item \"%s\" could not be downloaded: %s"
|
||||
msgstr "Item \"%s\" não pôde ser baixado: %s"
|
||||
msgstr "O item \"%s\" não pôde ser baixado: %s"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Items that cannot be decrypted"
|
||||
msgstr "Os itens não podem ser sincronizados"
|
||||
msgstr "Os itens não podem ser decriptados"
|
||||
|
||||
msgid ""
|
||||
"Joplin failed to decrypt these items multiple times, possibly because they "
|
||||
"are corrupted or too large. These items will remain on the device but Joplin "
|
||||
"will no longer attempt to decrypt them."
|
||||
msgstr ""
|
||||
"O Joplin falhou ao tentar decriptar esses múltiplos items, possivelmente "
|
||||
"porque eles estão corruptos ou são grandes demais. Esses itens permanecerão "
|
||||
"no dispositivo, porém o Joplin não vai mais tentar decriptá-los."
|
||||
|
||||
msgid "Sync status (synced items / total items)"
|
||||
msgstr "Status de sincronização (sincronizados / totais)"
|
||||
@@ -1798,6 +1833,14 @@ msgstr "Permissão para utilizar sua câmera"
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr "É necessária a sua permissão para utilizar sua câmera."
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Excluir nota selecionada ou notebook."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Cria um novo caderno."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "Atualmente, não há notas. Crie uma, clicando no botão (+)."
|
||||
|
||||
@@ -1826,15 +1869,13 @@ msgstr "Selecionar data"
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmar"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Notebook: %s"
|
||||
msgstr "Cadernos"
|
||||
msgstr "Caderno: %s"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Encrypted notebooks cannot be renamed"
|
||||
msgstr "Itens encriptados não podem ser modificados"
|
||||
msgstr "Cadernos encriptados não podem ser renomeados"
|
||||
|
||||
#, fuzzy
|
||||
msgid "New Notebook"
|
||||
msgstr "Novo caderno"
|
||||
|
||||
@@ -1849,9 +1890,8 @@ msgstr "Decriptando itens: %d/%d"
|
||||
msgid "Fetching resources: %d/%d"
|
||||
msgstr "Buscando recursos: %d"
|
||||
|
||||
#, fuzzy
|
||||
msgid "All notes"
|
||||
msgstr "Excluir notas?"
|
||||
msgstr "Todas as notas"
|
||||
|
||||
msgid "Notebooks"
|
||||
msgstr "Cadernos"
|
||||
@@ -1898,27 +1938,24 @@ msgid "Type new tags or select from list"
|
||||
msgstr "Digite novsa tags, ou selecione da lista"
|
||||
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
msgstr "Atenção"
|
||||
|
||||
msgid ""
|
||||
"In order to use file system synchronisation your permission to write to "
|
||||
"external storage is required."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Information"
|
||||
msgstr "Configuração"
|
||||
msgstr "Informação"
|
||||
|
||||
msgid "Encryption Config"
|
||||
msgstr "Configuração de Encriptação"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Tools"
|
||||
msgstr "&Ferramentas"
|
||||
msgstr "Ferramentas"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Sync Status"
|
||||
msgstr "Status"
|
||||
msgstr "Status de sincronização"
|
||||
|
||||
msgid "Log"
|
||||
msgstr "Log"
|
||||
@@ -1941,9 +1978,8 @@ msgid ""
|
||||
"may take a long time depending on the number of notes."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "More information"
|
||||
msgstr "Configuração"
|
||||
msgstr "Mais informações"
|
||||
|
||||
msgid ""
|
||||
"To work correctly, the app needs the following permissions. Please enable "
|
||||
@@ -2009,9 +2045,8 @@ msgstr "O caderno não pôde ser salvo: %s"
|
||||
msgid "Edit notebook"
|
||||
msgstr "Editar caderno"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enter notebook title"
|
||||
msgstr "Título do caderno:"
|
||||
msgstr "Entre o título do caderno"
|
||||
|
||||
msgid "Show all"
|
||||
msgstr "Exibir tudo"
|
||||
@@ -2038,15 +2073,15 @@ msgstr "O app mobile do Joplin não suporta, atualmente, esse tipo de link: %s"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Links with protocol \"%s\" are not supported"
|
||||
msgstr ""
|
||||
msgstr "Links com o protocolo \"%s\" não são suportados"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Unsupported image type: %s"
|
||||
msgstr "Tipo de imagem não suportada: %s"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Updated: %s"
|
||||
msgstr "Atualizado: %d."
|
||||
msgstr "Atualizado: %s"
|
||||
|
||||
msgid "View on map"
|
||||
msgstr "Ver no mapa"
|
||||
@@ -2058,9 +2093,8 @@ msgstr "Ir para a URL de origem"
|
||||
msgid "Attach..."
|
||||
msgstr "Pesquisar..."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Choose an option"
|
||||
msgstr "Mostrar opções avançadas"
|
||||
msgstr "Escolha uma opção"
|
||||
|
||||
msgid "Take photo"
|
||||
msgstr "Tirar foto"
|
||||
@@ -2090,9 +2124,8 @@ msgstr ""
|
||||
msgid "Edit"
|
||||
msgstr "Editar"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Add title"
|
||||
msgstr "título"
|
||||
msgstr "Adicionar título"
|
||||
|
||||
msgid "Login with OneDrive"
|
||||
msgstr "Login com OneDrive"
|
||||
@@ -2146,10 +2179,6 @@ msgstr "Procurar"
|
||||
#~ "O caminho para sincronizar, quando a sincronização do sistema de arquivos "
|
||||
#~ "está habilitada. Veja `sync.target`."
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "Site do Joplin"
|
||||
|
||||
#~ msgid "State: %s."
|
||||
#~ msgstr "Estado: \"%s\"."
|
||||
|
||||
@@ -2205,9 +2234,6 @@ msgstr "Procurar"
|
||||
#~ msgid "Exit the application."
|
||||
#~ msgstr "Sair da aplicação."
|
||||
|
||||
#~ msgid "Delete the currently selected note or notebook."
|
||||
#~ msgstr "Excluir nota selecionada ou notebook."
|
||||
|
||||
#~ msgid "Set a to-do as completed / not completed"
|
||||
#~ msgstr "Marcar uma tarefa como completada / não completada"
|
||||
|
||||
|
@@ -357,6 +357,23 @@ msgstr "Ștergeți notița?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -697,6 +714,10 @@ msgstr "Ajutor"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Website și documentație"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Website Joplin"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "Faceți o donație"
|
||||
|
||||
@@ -879,8 +900,8 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Status"
|
||||
@@ -1384,10 +1405,10 @@ msgstr "Deschisă"
|
||||
msgid "Dark"
|
||||
msgstr "Închisă"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1458,6 +1479,9 @@ msgstr ""
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "Afișați iconița coșul de gunoi"
|
||||
|
||||
@@ -1534,6 +1558,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "Ignoră erorile de certificat TLS"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable note history"
|
||||
msgstr "Activați criptarea"
|
||||
@@ -1688,6 +1717,14 @@ msgstr ""
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Niciun caiet de notițe activ."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Creați caiet de notițe."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr ""
|
||||
|
||||
@@ -2008,10 +2045,6 @@ msgstr "Caută"
|
||||
#~ msgid "%s (%s): %s"
|
||||
#~ msgstr "%s (%s): %s"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "Website Joplin"
|
||||
|
||||
#~ msgid "State: %s."
|
||||
#~ msgstr "Statut: %s."
|
||||
|
||||
|
@@ -394,6 +394,23 @@ msgstr "Удалить заметку?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Запросы для заданного <pattern> во всех заметках."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -757,6 +774,10 @@ msgstr "&Помощь"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Сайт и документация"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Joplin v%s"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "Сделать пожертвование"
|
||||
|
||||
@@ -960,8 +981,8 @@ msgstr ""
|
||||
"загрузятся при синхронизации."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
"Для получения дополнительной информации о сквозном шифровании (E2EE) и "
|
||||
"советах о том, как его включить, пожалуйста, обратитесь к документации:"
|
||||
@@ -1485,10 +1506,10 @@ msgstr "Светлая"
|
||||
msgid "Dark"
|
||||
msgstr "Темная"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1558,6 +1579,9 @@ msgstr ""
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "Показывать иконку в трее"
|
||||
|
||||
@@ -1648,6 +1672,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "Игнорировать ошибки сертификата TLS"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable note history"
|
||||
msgstr "Включить шифрование"
|
||||
@@ -1804,6 +1833,14 @@ msgstr "Разрешение на использование камеры"
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr "Необходимо ваше разрешение на использование камеры."
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Нет активного блокнота."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Создает новый блокнот."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "Сейчас здесь нет заметок. Создайте новую, нажав кнопку (+)."
|
||||
|
||||
@@ -2151,6 +2188,3 @@ msgstr "Поиск"
|
||||
#~ msgstr ""
|
||||
#~ "Путь для синхронизации, когда включена синхронизация файловой системы. "
|
||||
#~ "См. `sync.target`."
|
||||
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "Joplin v%s"
|
||||
|
@@ -395,6 +395,23 @@ msgstr "Želite izbrisati zabeležko?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Išči dani <pattern> v vseh zabeležkah."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -761,6 +778,10 @@ msgstr "Pomoč"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Spletna stran in dokumentacija"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Joplin spletna stran"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "Doniraj"
|
||||
|
||||
@@ -958,8 +979,8 @@ msgstr ""
|
||||
"da bodo sčasoma preneseni s sinhronizacijo."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Status"
|
||||
@@ -1492,10 +1513,10 @@ msgstr "Svetlo"
|
||||
msgid "Dark"
|
||||
msgstr "Temno"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1567,6 +1588,9 @@ msgstr ""
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "Pokaži ikono v območju za obvestila(opravilna vrstica)"
|
||||
|
||||
@@ -1650,6 +1674,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable note history"
|
||||
msgstr "Omogoči enkripcijo"
|
||||
@@ -1810,6 +1839,14 @@ msgstr ""
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Ni aktivnih beležnic."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Ustvari novo beležnico."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "Trenutno ni zabeležk. Ustvarite jo s klikom na (+) gumb."
|
||||
|
||||
@@ -2146,10 +2183,6 @@ msgstr "Išči"
|
||||
#~ "Pot za sinhronizacijo, ki bo uporabljena ob omogočeni sinhronizaciji. "
|
||||
#~ "Poglej `sync.target`."
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "Joplin spletna stran"
|
||||
|
||||
#~ msgid "State: %s."
|
||||
#~ msgstr "Stanje: %s."
|
||||
|
||||
|
@@ -391,6 +391,23 @@ msgstr "Обрисати белешку?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Претражује задати <pattern> у свим белешкама."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -757,6 +774,10 @@ msgstr "&Помоћ"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Вебсајт и документација"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Џоплин фајл за извоз"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "Донација"
|
||||
|
||||
@@ -959,8 +980,8 @@ msgstr ""
|
||||
"преузети путем синхронизације."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
"За више информација о End-To-End Шифровању (Е2ЕЕ) и саветима о томе како да "
|
||||
"га омогућите, молимо вас да проверите документацију:"
|
||||
@@ -1492,10 +1513,10 @@ msgstr "Светла"
|
||||
msgid "Dark"
|
||||
msgstr "Тамна"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1564,6 +1585,10 @@ msgstr "Омогући ++insert++ синтаксу"
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr "Омогући проширење мултимаркдаун табеле"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr "Омогућу ~sub~ синтаксу"
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "Прикажи иконицу апликације на траци"
|
||||
|
||||
@@ -1652,6 +1677,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "Занемари грешке са ТЛС сертификатима"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable note history"
|
||||
msgstr "Омогући историју бележнице"
|
||||
|
||||
@@ -1808,6 +1838,14 @@ msgstr "Дозвола за употребу камере"
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr "Ваша дозвола за употребу камере је неопходна."
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Нема активне бележнице."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Креира нову бележницу."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr ""
|
||||
"Тренутно нема белешки. Направите једну тако што ће те кликнути на (+) дугме."
|
||||
|
@@ -396,6 +396,23 @@ msgstr "Ta bort anteckning?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Söker efter det givna <pattern> i alla anteckningarna."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -763,6 +780,10 @@ msgstr "Hjälp"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Webbplats och dokumentation"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Joplin v%s"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "Gör en donation"
|
||||
|
||||
@@ -965,8 +986,8 @@ msgstr ""
|
||||
"småningom kommer att hämtas via synkronisering."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
"För mer information om End-to-End Encryption (E2EE) och råd om hur du "
|
||||
"aktiverar det finns i dokumentationen:"
|
||||
@@ -1494,10 +1515,10 @@ msgstr "Ljus"
|
||||
msgid "Dark"
|
||||
msgstr "Mörk"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1568,6 +1589,9 @@ msgstr ""
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "Visa fältikon"
|
||||
|
||||
@@ -1657,6 +1681,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "Ignorera TLS-certifikatfel"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable note history"
|
||||
msgstr "Aktivera kryptering"
|
||||
@@ -1813,6 +1842,14 @@ msgstr "Tillåtelse att använda kameran"
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr "Du måste ge tillåtelse att använda kameran."
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Ingen aktiv anteckningsbok."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Skapar en ny anteckningsbok."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr ""
|
||||
"Det finns för närvarande inga anteckningar. Skapa en genom att klicka på (+)-"
|
||||
@@ -2167,9 +2204,6 @@ msgstr "Sök"
|
||||
#~ "Sökvägen att synkronisera med när synkronisering av filsystem är "
|
||||
#~ "aktiverat. Se `sync.target`."
|
||||
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "Joplin v%s"
|
||||
|
||||
#~ msgid "State: %s."
|
||||
#~ msgstr "Tillstånd: %s."
|
||||
|
||||
|
@@ -376,6 +376,23 @@ msgstr "Notu sil?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "Tüm notlarda girilen <pattern> i arar."
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -730,6 +747,10 @@ msgstr "Yardım"
|
||||
msgid "Website and documentation"
|
||||
msgstr "Web sitesi ve dökümanlar"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Joplin v%s"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "Bağış yapın"
|
||||
|
||||
@@ -934,8 +955,8 @@ msgstr ""
|
||||
"senkronizasyon yoluyla indirilmeleri sağlanacaktır."
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr ""
|
||||
"Uçtan Uca Şifreleme (E2EE) hakkında bilgi ve nasıl aktif edilebileceğine "
|
||||
"dair ipuçları için lütfen belgeleri inceleyin:"
|
||||
@@ -1462,10 +1483,10 @@ msgstr "Aydınlık"
|
||||
msgid "Dark"
|
||||
msgstr "Karanlık"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1536,6 +1557,9 @@ msgstr ""
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "Tepsi simgesini göster"
|
||||
|
||||
@@ -1624,6 +1648,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "TLS sertifikası hatalarını yoksay"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable note history"
|
||||
msgstr "Şifrelemeyi etkinleştir"
|
||||
@@ -1779,6 +1808,14 @@ msgstr "Kamera kullanımı için izin"
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr "Kamera kullanımı için izniniz gerekmektedir."
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "Aktif not defteri yok."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "Yeni bir not defteri oluşturur."
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "Şu anda not yok. (+) butonuna tıklayarak bir tane oluşturun."
|
||||
|
||||
@@ -2125,6 +2162,3 @@ msgstr "Arama"
|
||||
#~ msgstr ""
|
||||
#~ "Dosya sistemi senkronizasyonu etkinleştirildiğinde senkronize edilecek "
|
||||
#~ "yol. Bakınız `sync.target`."
|
||||
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "Joplin v%s"
|
||||
|
@@ -371,6 +371,23 @@ msgstr "是否删除笔记?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "在所有笔记内搜索给定的 <pattern>。"
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -716,6 +733,10 @@ msgstr "帮助 (&H)"
|
||||
msgid "Website and documentation"
|
||||
msgstr "网站与文档"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Joplin v%s"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "捐赠"
|
||||
|
||||
@@ -908,8 +929,8 @@ msgstr ""
|
||||
"能通过同步下载。"
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr "有关端到端加密(E2EE)的更多信息,以及如何启用它的建议,请查看文档:"
|
||||
|
||||
msgid "Status"
|
||||
@@ -1424,10 +1445,10 @@ msgstr "明亮"
|
||||
msgid "Dark"
|
||||
msgstr "深邃"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1496,6 +1517,10 @@ msgstr "启用 ++insert++ 句法"
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr "启用 multimarkdown 表格扩展"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr "启用 ~sub~ 句法"
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "显示托盘图标"
|
||||
|
||||
@@ -1580,6 +1605,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "忽略 TLS 证书错误"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable note history"
|
||||
msgstr "启用笔记历史"
|
||||
|
||||
@@ -1732,6 +1762,14 @@ msgstr "使用摄像头的权限"
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr "您须要授予相机权限。"
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "无活动笔记本。"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "新建笔记本。"
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "当前没有任何笔记。点击 (+) 按钮创建。"
|
||||
|
||||
@@ -2072,9 +2110,6 @@ msgstr "搜索"
|
||||
#~ "See `sync.target`."
|
||||
#~ msgstr "启用文件系统同步时要同步的路径。见 `sync.target`。"
|
||||
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "Joplin v%s"
|
||||
|
||||
#~ msgid "State: %s."
|
||||
#~ msgstr "状态:%s。"
|
||||
|
||||
|
@@ -372,6 +372,23 @@ msgstr "刪除記事?"
|
||||
msgid "Searches for the given <pattern> in all the notes."
|
||||
msgstr "在所有記事中搜索特定的 <pattern>。"
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Start, stop or check the API server. To specify on which port it should run, "
|
||||
"set the api.port config variable. Commands are (%s)."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is already running on port %d"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Server is running on port %d"
|
||||
msgstr ""
|
||||
|
||||
msgid "Server is not running."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Sets the property <name> of the given <note> to the given [value]. Possible "
|
||||
@@ -728,6 +745,10 @@ msgstr "說明"
|
||||
msgid "Website and documentation"
|
||||
msgstr "官方網站及線上說明"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Joplin Forum"
|
||||
msgstr "Joplin 官方網站"
|
||||
|
||||
msgid "Make a donation"
|
||||
msgstr "捐助"
|
||||
|
||||
@@ -921,8 +942,8 @@ msgstr ""
|
||||
"可能最終會通過同步下載。"
|
||||
|
||||
msgid ""
|
||||
"For more information about End-To-End Encryption (E2EE) and advices on how "
|
||||
"to enable it please check the documentation:"
|
||||
"For more information about End-To-End Encryption (E2EE) and advice on how to "
|
||||
"enable it please check the documentation:"
|
||||
msgstr "有關端到端加密 (E2EE) 的詳細資訊以及該如何啟用它,請參考線上文檔:"
|
||||
|
||||
msgid "Status"
|
||||
@@ -1433,10 +1454,10 @@ msgstr "光亮"
|
||||
msgid "Dark"
|
||||
msgstr "暗黑"
|
||||
|
||||
msgid "Solarized Light"
|
||||
msgid "Solarised Light"
|
||||
msgstr ""
|
||||
|
||||
msgid "Solarized Dark"
|
||||
msgid "Solarised Dark"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uncompleted to-dos on top"
|
||||
@@ -1507,6 +1528,9 @@ msgstr ""
|
||||
msgid "Enable multimarkdown table extension"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Fountain syntax support"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show tray icon"
|
||||
msgstr "顯示系統匣圖示"
|
||||
|
||||
@@ -1590,6 +1614,11 @@ msgstr ""
|
||||
msgid "Ignore TLS certificate errors"
|
||||
msgstr "忽略 TLS 證書錯誤"
|
||||
|
||||
msgid ""
|
||||
"Specify the port that should be used by the API server. If not set, a "
|
||||
"default will be used."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "Enable note history"
|
||||
msgstr "啟用加密"
|
||||
@@ -1747,6 +1776,14 @@ msgstr ""
|
||||
msgid "Your permission to use your camera is required."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "You currently have no notebooks."
|
||||
msgstr "無使用中的記事本。"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Create a notebook"
|
||||
msgstr "新增記事本。"
|
||||
|
||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||
msgstr "您當前沒有任何筆記。通過按一下 (+) 鍵去新增一則筆記。"
|
||||
|
||||
@@ -2078,10 +2115,6 @@ msgstr "搜尋"
|
||||
#~ "See `sync.target`."
|
||||
#~ msgstr "啟用檔案系統同步時要同步的路徑。請參閱 `sync.target`。"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Joplin v%s"
|
||||
#~ msgstr "Joplin 官方網站"
|
||||
|
||||
#~ msgid "State: %s."
|
||||
#~ msgstr "狀態: %s。"
|
||||
|
||||
|
484
CliClient/package-lock.json
generated
484
CliClient/package-lock.json
generated
@@ -1,9 +1,22 @@
|
||||
{
|
||||
"name": "joplin",
|
||||
"version": "1.0.140",
|
||||
"version": "1.0.146",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@cronvel/get-pixels": {
|
||||
"version": "3.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@cronvel/get-pixels/-/get-pixels-3.3.1.tgz",
|
||||
"integrity": "sha512-jgDb8vGPkpjRDbiYyHTI2Bna4HJysjPNSiERzBnRJjCR/YqC3u0idTae0tmNECsaZLOpAWmlK9wiIwnLGIT9Bg==",
|
||||
"requires": {
|
||||
"jpeg-js": "^0.1.1",
|
||||
"ndarray": "^1.0.13",
|
||||
"ndarray-pack": "^1.1.1",
|
||||
"node-bitmap": "0.0.1",
|
||||
"omggif": "^1.0.5",
|
||||
"pngjs": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"abab": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz",
|
||||
@@ -127,22 +140,6 @@
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
|
||||
},
|
||||
"async-kit": {
|
||||
"version": "2.2.3",
|
||||
"resolved": "https://registry.npmjs.org/async-kit/-/async-kit-2.2.3.tgz",
|
||||
"integrity": "sha1-JkdRonndxfWbQZY4uAWuLEmFj7c=",
|
||||
"requires": {
|
||||
"nextgen-events": "^0.9.0",
|
||||
"tree-kit": "^0.5.26"
|
||||
},
|
||||
"dependencies": {
|
||||
"nextgen-events": {
|
||||
"version": "0.9.9",
|
||||
"resolved": "https://registry.npmjs.org/nextgen-events/-/nextgen-events-0.9.9.tgz",
|
||||
"integrity": "sha1-OaivxKK4RTiMV+LGu5cWcRmGo6A="
|
||||
}
|
||||
}
|
||||
},
|
||||
"async-limiter": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
|
||||
@@ -169,9 +166,9 @@
|
||||
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
|
||||
},
|
||||
"aws4": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz",
|
||||
"integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w=="
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
|
||||
"integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
|
||||
},
|
||||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
@@ -230,14 +227,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"boom": {
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
|
||||
"integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
|
||||
"requires": {
|
||||
"hoek": "4.x.x"
|
||||
}
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.8",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
|
||||
@@ -310,6 +299,11 @@
|
||||
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz",
|
||||
"integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE="
|
||||
},
|
||||
"chroma-js": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-2.0.6.tgz",
|
||||
"integrity": "sha512-IiiClbBRkRwuXNl6impq5ssEhUGpmWvc5zzImZbDUWLWcFbj6ZbtsdZEx6sIXMKes7azgYaUpnmsY1T8BL6PqQ=="
|
||||
},
|
||||
"clean-css": {
|
||||
"version": "4.1.11",
|
||||
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz",
|
||||
@@ -433,24 +427,6 @@
|
||||
"resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
|
||||
"integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs="
|
||||
},
|
||||
"cryptiles": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
|
||||
"integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=",
|
||||
"requires": {
|
||||
"boom": "5.x.x"
|
||||
},
|
||||
"dependencies": {
|
||||
"boom": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz",
|
||||
"integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
|
||||
"requires": {
|
||||
"hoek": "4.x.x"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"css": {
|
||||
"version": "2.2.4",
|
||||
"resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
|
||||
@@ -498,11 +474,6 @@
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"data-uri-to-buffer": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-0.0.3.tgz",
|
||||
"integrity": "sha1-GK6XmmoMqZSwYlhTkW0mYruuCxo="
|
||||
},
|
||||
"data-urls": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz",
|
||||
@@ -559,6 +530,11 @@
|
||||
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
||||
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
|
||||
},
|
||||
"depd": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
|
||||
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
|
||||
},
|
||||
"detect-libc": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
|
||||
@@ -716,9 +692,9 @@
|
||||
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="
|
||||
},
|
||||
"extend": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
|
||||
"integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
||||
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
|
||||
},
|
||||
"extsprintf": {
|
||||
"version": "1.3.0",
|
||||
@@ -748,6 +724,14 @@
|
||||
"format": "^0.2.2"
|
||||
}
|
||||
},
|
||||
"fd-slicer": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
|
||||
"integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
|
||||
"requires": {
|
||||
"pend": "~1.2.0"
|
||||
}
|
||||
},
|
||||
"file-type": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz",
|
||||
@@ -891,24 +875,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"get-pixels": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/get-pixels/-/get-pixels-3.3.0.tgz",
|
||||
"integrity": "sha1-jZeVvq4YhQuED3SVgbrcBdPjbkE=",
|
||||
"requires": {
|
||||
"data-uri-to-buffer": "0.0.3",
|
||||
"jpeg-js": "^0.1.1",
|
||||
"mime-types": "^2.0.1",
|
||||
"ndarray": "^1.0.13",
|
||||
"ndarray-pack": "^1.1.1",
|
||||
"node-bitmap": "0.0.1",
|
||||
"omggif": "^1.0.5",
|
||||
"parse-data-uri": "^0.2.0",
|
||||
"pngjs": "^2.0.0",
|
||||
"request": "^2.44.0",
|
||||
"through": "^2.3.4"
|
||||
}
|
||||
},
|
||||
"get-prototype-chain": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/get-prototype-chain/-/get-prototype-chain-1.0.1.tgz",
|
||||
@@ -956,12 +922,35 @@
|
||||
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
|
||||
},
|
||||
"har-validator": {
|
||||
"version": "5.0.3",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
|
||||
"integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
|
||||
"version": "5.1.3",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
|
||||
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
|
||||
"requires": {
|
||||
"ajv": "^5.1.0",
|
||||
"ajv": "^6.5.5",
|
||||
"har-schema": "^2.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ajv": {
|
||||
"version": "6.10.2",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
|
||||
"integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
|
||||
"requires": {
|
||||
"fast-deep-equal": "^2.0.1",
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
"json-schema-traverse": "^0.4.1",
|
||||
"uri-js": "^4.2.2"
|
||||
}
|
||||
},
|
||||
"fast-deep-equal": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
|
||||
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
|
||||
},
|
||||
"json-schema-traverse": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
||||
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"has-ansi": {
|
||||
@@ -989,17 +978,6 @@
|
||||
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
|
||||
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
|
||||
},
|
||||
"hawk": {
|
||||
"version": "6.0.2",
|
||||
"resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
|
||||
"integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
|
||||
"requires": {
|
||||
"boom": "4.x.x",
|
||||
"cryptiles": "3.x.x",
|
||||
"hoek": "4.x.x",
|
||||
"sntp": "2.x.x"
|
||||
}
|
||||
},
|
||||
"he": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
|
||||
@@ -1010,11 +988,6 @@
|
||||
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.12.0.tgz",
|
||||
"integrity": "sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4="
|
||||
},
|
||||
"hoek": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz",
|
||||
"integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA=="
|
||||
},
|
||||
"html-encoding-sniffer": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
|
||||
@@ -1042,6 +1015,25 @@
|
||||
"uglify-js": "3.3.x"
|
||||
}
|
||||
},
|
||||
"http-errors": {
|
||||
"version": "1.7.3",
|
||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
|
||||
"integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
|
||||
"requires": {
|
||||
"depd": "~1.1.2",
|
||||
"inherits": "2.0.4",
|
||||
"setprototypeof": "1.1.1",
|
||||
"statuses": ">= 1.5.0 < 2",
|
||||
"toidentifier": "1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"inherits": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"http-signature": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
|
||||
@@ -1710,6 +1702,11 @@
|
||||
"graceful-fs": "^4.1.9"
|
||||
}
|
||||
},
|
||||
"lazyness": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/lazyness/-/lazyness-1.1.1.tgz",
|
||||
"integrity": "sha512-rYHC6l6LeRlJSt5jxpqN8z/49gZ0CqLi89HAGzJjHahCFlqEjFGFN9O15hmzSzUGFl7zN/vOWduv/+0af3r/kQ=="
|
||||
},
|
||||
"left-pad": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz",
|
||||
@@ -1747,9 +1744,9 @@
|
||||
}
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.4",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
|
||||
"integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
|
||||
"version": "4.17.15",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
|
||||
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
|
||||
},
|
||||
"lodash-es": {
|
||||
"version": "4.17.4",
|
||||
@@ -1876,9 +1873,9 @@
|
||||
}
|
||||
},
|
||||
"minizlib": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz",
|
||||
"integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==",
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz",
|
||||
"integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
|
||||
"requires": {
|
||||
"minipass": "^2.2.1"
|
||||
}
|
||||
@@ -1892,15 +1889,33 @@
|
||||
}
|
||||
},
|
||||
"moment": {
|
||||
"version": "2.19.1",
|
||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.19.1.tgz",
|
||||
"integrity": "sha1-VtoaLRy/AdOLfhr8McELz6GSkWc="
|
||||
"version": "2.24.0",
|
||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
|
||||
"integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||
},
|
||||
"multiparty": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/multiparty/-/multiparty-4.2.1.tgz",
|
||||
"integrity": "sha512-AvESCnNoQlZiOfP9R4mxN8M9csy2L16EIbWIkt3l4FuGti9kXBS8QVzlfyg4HEnarJhrzZilgNFlZtqmoiAIIA==",
|
||||
"requires": {
|
||||
"fd-slicer": "1.1.0",
|
||||
"http-errors": "~1.7.0",
|
||||
"safe-buffer": "5.1.2",
|
||||
"uid-safe": "2.1.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"nan": {
|
||||
"version": "2.13.2",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz",
|
||||
@@ -1955,9 +1970,9 @@
|
||||
}
|
||||
},
|
||||
"nextgen-events": {
|
||||
"version": "0.11.3",
|
||||
"resolved": "https://registry.npmjs.org/nextgen-events/-/nextgen-events-0.11.3.tgz",
|
||||
"integrity": "sha512-dC4v/dOF6m8/M05eU712KXjRJ0e/187rx5CMS/fTnulv2QGPps1U/c/J1D3wtegEhK+EE7LuJc3jly3pyfV46g=="
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/nextgen-events/-/nextgen-events-1.3.0.tgz",
|
||||
"integrity": "sha512-eBz5mrO4Hw2eenPVm0AVPHuAzg/RZetAWMI547RH8O9+a0UYhCysiZ3KoNWslnWNlHetb9kzowEshsKsmFo2YQ=="
|
||||
},
|
||||
"no-case": {
|
||||
"version": "2.3.2",
|
||||
@@ -2074,9 +2089,9 @@
|
||||
"integrity": "sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw=="
|
||||
},
|
||||
"oauth-sign": {
|
||||
"version": "0.8.2",
|
||||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
|
||||
"integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
|
||||
"version": "0.9.0",
|
||||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
|
||||
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
|
||||
},
|
||||
"object-assign": {
|
||||
"version": "4.1.1",
|
||||
@@ -2120,9 +2135,9 @@
|
||||
}
|
||||
},
|
||||
"omggif": {
|
||||
"version": "1.0.9",
|
||||
"resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.9.tgz",
|
||||
"integrity": "sha1-3LcCTazVDFK00wPwSALJHAV8dl8="
|
||||
"version": "1.0.10",
|
||||
"resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz",
|
||||
"integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw=="
|
||||
},
|
||||
"once": {
|
||||
"version": "1.4.0",
|
||||
@@ -2200,14 +2215,6 @@
|
||||
"no-case": "^2.2.0"
|
||||
}
|
||||
},
|
||||
"parse-data-uri": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/parse-data-uri/-/parse-data-uri-0.2.0.tgz",
|
||||
"integrity": "sha1-vwTYUd1ch7CrI45dAazklLYEtMk=",
|
||||
"requires": {
|
||||
"data-uri-to-buffer": "0.0.3"
|
||||
}
|
||||
},
|
||||
"path-exists": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
||||
@@ -2218,6 +2225,11 @@
|
||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
|
||||
},
|
||||
"pend": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
|
||||
"integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
|
||||
},
|
||||
"performance-now": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
|
||||
@@ -2349,9 +2361,14 @@
|
||||
}
|
||||
},
|
||||
"querystringify": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz",
|
||||
"integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA=="
|
||||
},
|
||||
"random-bytes": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz",
|
||||
"integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs="
|
||||
"resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
|
||||
"integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs="
|
||||
},
|
||||
"rc": {
|
||||
"version": "1.2.8",
|
||||
@@ -2416,32 +2433,82 @@
|
||||
"integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk="
|
||||
},
|
||||
"request": {
|
||||
"version": "2.85.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.85.0.tgz",
|
||||
"integrity": "sha512-8H7Ehijd4js+s6wuVPLjwORxD4zeuyjYugprdOXlPSqaApmL/QOy+EB/beICHVCHkGMKNh5rvihb5ov+IDw4mg==",
|
||||
"version": "2.88.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
|
||||
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
|
||||
"requires": {
|
||||
"aws-sign2": "~0.7.0",
|
||||
"aws4": "^1.6.0",
|
||||
"aws4": "^1.8.0",
|
||||
"caseless": "~0.12.0",
|
||||
"combined-stream": "~1.0.5",
|
||||
"extend": "~3.0.1",
|
||||
"combined-stream": "~1.0.6",
|
||||
"extend": "~3.0.2",
|
||||
"forever-agent": "~0.6.1",
|
||||
"form-data": "~2.3.1",
|
||||
"har-validator": "~5.0.3",
|
||||
"hawk": "~6.0.2",
|
||||
"form-data": "~2.3.2",
|
||||
"har-validator": "~5.1.0",
|
||||
"http-signature": "~1.2.0",
|
||||
"is-typedarray": "~1.0.0",
|
||||
"isstream": "~0.1.2",
|
||||
"json-stringify-safe": "~5.0.1",
|
||||
"mime-types": "~2.1.17",
|
||||
"oauth-sign": "~0.8.2",
|
||||
"mime-types": "~2.1.19",
|
||||
"oauth-sign": "~0.9.0",
|
||||
"performance-now": "^2.1.0",
|
||||
"qs": "~6.5.1",
|
||||
"safe-buffer": "^5.1.1",
|
||||
"stringstream": "~0.0.5",
|
||||
"tough-cookie": "~2.3.3",
|
||||
"qs": "~6.5.2",
|
||||
"safe-buffer": "^5.1.2",
|
||||
"tough-cookie": "~2.4.3",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
"uuid": "^3.1.0"
|
||||
"uuid": "^3.3.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"combined-stream": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"form-data": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
|
||||
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.6",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.40.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
|
||||
"integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.24",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
|
||||
"integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
|
||||
"requires": {
|
||||
"mime-db": "1.40.0"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
|
||||
"integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg=="
|
||||
},
|
||||
"tough-cookie": {
|
||||
"version": "2.4.3",
|
||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
|
||||
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
|
||||
"requires": {
|
||||
"psl": "^1.1.24",
|
||||
"punycode": "^1.4.1"
|
||||
}
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.3.3",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
|
||||
"integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"request-promise-core": {
|
||||
@@ -2522,6 +2589,24 @@
|
||||
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
|
||||
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
|
||||
},
|
||||
"setimmediate": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
|
||||
"integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
|
||||
},
|
||||
"setprototypeof": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
|
||||
"integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
|
||||
},
|
||||
"seventh": {
|
||||
"version": "0.7.28",
|
||||
"resolved": "https://registry.npmjs.org/seventh/-/seventh-0.7.28.tgz",
|
||||
"integrity": "sha512-WitJqSwsjLWbCP9cciaozByx4csddLQyNoaPBqOpYFMNE6iD6FK/pM8J2yqtpauSxJUUo7Wfv5KF5w1jbVov7A==",
|
||||
"requires": {
|
||||
"setimmediate": "^1.0.5"
|
||||
}
|
||||
},
|
||||
"sharp": {
|
||||
"version": "0.22.1",
|
||||
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.22.1.tgz",
|
||||
@@ -2623,14 +2708,6 @@
|
||||
"is-fullwidth-code-point": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"sntp": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz",
|
||||
"integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==",
|
||||
"requires": {
|
||||
"hoek": "4.x.x"
|
||||
}
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.5.7",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
|
||||
@@ -2812,6 +2889,11 @@
|
||||
"tweetnacl": "~0.14.0"
|
||||
}
|
||||
},
|
||||
"statuses": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
|
||||
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
|
||||
},
|
||||
"stealthy-require": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
|
||||
@@ -2823,12 +2905,9 @@
|
||||
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
|
||||
},
|
||||
"string-kit": {
|
||||
"version": "0.6.14",
|
||||
"resolved": "https://registry.npmjs.org/string-kit/-/string-kit-0.6.14.tgz",
|
||||
"integrity": "sha512-Sz9Q98Q4JKLaOaXUYLSO8ScWhO9z/itJ53GJOLl+w/wR9XXFt82MzN4Q5pwXN9QZCN1/aCnZhOe67ANK8Vs6Vw==",
|
||||
"requires": {
|
||||
"xregexp": "^3.2.0"
|
||||
}
|
||||
"version": "0.9.10",
|
||||
"resolved": "https://registry.npmjs.org/string-kit/-/string-kit-0.9.10.tgz",
|
||||
"integrity": "sha512-hcJem/u3/ddt3lSY2Xlx953XCHe3C8BX2XEWbPrByjyJ0CSR36X7kzsGFsI5lLaG94dLCQYpt8ffVwRjKpRT6g=="
|
||||
},
|
||||
"string-padding": {
|
||||
"version": "1.0.2",
|
||||
@@ -2883,11 +2962,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"stringstream": {
|
||||
"version": "0.0.5",
|
||||
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
|
||||
"integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
|
||||
@@ -2937,16 +3011,43 @@
|
||||
}
|
||||
},
|
||||
"tar": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-4.4.0.tgz",
|
||||
"integrity": "sha512-gJlTiiErwo96K904FnoYWl+5+FBgS+FimU6GMh66XLdLa55al8+d4jeDfPoGwSNHdtWI5FJP6xurmVqhBuGJpQ==",
|
||||
"version": "4.4.10",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz",
|
||||
"integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==",
|
||||
"requires": {
|
||||
"chownr": "^1.0.1",
|
||||
"fs-minipass": "^1.2.3",
|
||||
"minipass": "^2.2.1",
|
||||
"minizlib": "^1.1.0",
|
||||
"chownr": "^1.1.1",
|
||||
"fs-minipass": "^1.2.5",
|
||||
"minipass": "^2.3.5",
|
||||
"minizlib": "^1.2.1",
|
||||
"mkdirp": "^0.5.0",
|
||||
"yallist": "^3.0.2"
|
||||
"safe-buffer": "^5.1.2",
|
||||
"yallist": "^3.0.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"chownr": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz",
|
||||
"integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A=="
|
||||
},
|
||||
"minipass": {
|
||||
"version": "2.3.5",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz",
|
||||
"integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
|
||||
"requires": {
|
||||
"safe-buffer": "^5.1.2",
|
||||
"yallist": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
|
||||
"integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg=="
|
||||
},
|
||||
"yallist": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
|
||||
"integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"tar-fs": {
|
||||
@@ -3008,23 +3109,20 @@
|
||||
}
|
||||
},
|
||||
"terminal-kit": {
|
||||
"version": "1.15.1",
|
||||
"resolved": "https://registry.npmjs.org/terminal-kit/-/terminal-kit-1.15.1.tgz",
|
||||
"integrity": "sha512-nk0+wDRfcvjnBXW6b2X2SFBzCMbT5ZJX56rRvmq/CFaimMYfWHU1eooy33RmzWByXWkkI71zx17q3vlp71OUNA==",
|
||||
"version": "1.31.2",
|
||||
"resolved": "https://registry.npmjs.org/terminal-kit/-/terminal-kit-1.31.2.tgz",
|
||||
"integrity": "sha512-qbzHgHONdyJ5SQsjMWvoV5Jivw2VGbV8uw6U8WMgEgkbjX5AZ6Irhs183z459+b6u++36+6WIFeYddIDoXKNeQ==",
|
||||
"requires": {
|
||||
"async-kit": "^2.2.3",
|
||||
"get-pixels": "^3.3.0",
|
||||
"@cronvel/get-pixels": "^3.3.1",
|
||||
"chroma-js": "^2.0.4",
|
||||
"lazyness": "^1.1.1",
|
||||
"ndarray": "^1.0.18",
|
||||
"nextgen-events": "^0.11.2",
|
||||
"string-kit": "^0.6.9",
|
||||
"tree-kit": "^0.5.26"
|
||||
"nextgen-events": "^1.1.1",
|
||||
"seventh": "^0.7.28",
|
||||
"string-kit": "^0.9.10",
|
||||
"tree-kit": "^0.6.1"
|
||||
}
|
||||
},
|
||||
"through": {
|
||||
"version": "2.3.8",
|
||||
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
||||
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
|
||||
},
|
||||
"tkwidgets": {
|
||||
"version": "0.5.26",
|
||||
"resolved": "https://registry.npmjs.org/tkwidgets/-/tkwidgets-0.5.26.tgz",
|
||||
@@ -3053,6 +3151,11 @@
|
||||
"resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz",
|
||||
"integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg=="
|
||||
},
|
||||
"toidentifier": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
|
||||
"integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
|
||||
},
|
||||
"tough-cookie": {
|
||||
"version": "2.3.4",
|
||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
|
||||
@@ -3077,9 +3180,9 @@
|
||||
}
|
||||
},
|
||||
"tree-kit": {
|
||||
"version": "0.5.26",
|
||||
"resolved": "https://registry.npmjs.org/tree-kit/-/tree-kit-0.5.26.tgz",
|
||||
"integrity": "sha1-hXHIb6JNHbdU5bDLOn4J9B50qN8="
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/tree-kit/-/tree-kit-0.6.1.tgz",
|
||||
"integrity": "sha512-7mV4KbsLMuA6ths3J1wpVUj2PLmLdoNEGnP9fm3kxef4UXYC/A0rL5gKsqtkUaCMuRYUMORyioy8IpBWUBQ1Ig=="
|
||||
},
|
||||
"tunnel-agent": {
|
||||
"version": "0.6.0",
|
||||
@@ -3129,6 +3232,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"uid-safe": {
|
||||
"version": "2.1.5",
|
||||
"resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
|
||||
"integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
|
||||
"requires": {
|
||||
"random-bytes": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"unc-path-regex": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
|
||||
@@ -3175,12 +3286,12 @@
|
||||
"integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
|
||||
},
|
||||
"url-parse": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz",
|
||||
"integrity": "sha512-DT1XbYAfmQP65M/mE6OALxmXzZ/z1+e5zk2TcSKe/KiYbNGZxgtttzC0mR/sjopbpOXcbniq7eIKmocJnUWlEw==",
|
||||
"version": "1.4.7",
|
||||
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
|
||||
"integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==",
|
||||
"requires": {
|
||||
"querystringify": "~1.0.0",
|
||||
"requires-port": "~1.0.0"
|
||||
"querystringify": "^2.1.1",
|
||||
"requires-port": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"util-deprecate": {
|
||||
@@ -3319,11 +3430,6 @@
|
||||
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.4.tgz",
|
||||
"integrity": "sha1-UZy0ymhtAFqEINNJbz8MruzKWA8="
|
||||
},
|
||||
"xregexp": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/xregexp/-/xregexp-3.2.0.tgz",
|
||||
"integrity": "sha1-yzYBmHv+JpW1hAAMGPHEqMMih44="
|
||||
},
|
||||
"xtend": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
|
||||
|
@@ -20,7 +20,7 @@
|
||||
],
|
||||
"owner": "Laurent Cozic"
|
||||
},
|
||||
"version": "1.0.140",
|
||||
"version": "1.0.146",
|
||||
"bin": {
|
||||
"joplin": "./main.js"
|
||||
},
|
||||
@@ -47,11 +47,11 @@
|
||||
"joplin-turndown-plugin-gfm": "^1.0.8",
|
||||
"jssha": "^2.3.0",
|
||||
"levenshtein": "^1.0.5",
|
||||
"lodash": "^4.17.4",
|
||||
"markdown-it": "^8.4.2",
|
||||
"md5": "^2.2.1",
|
||||
"mime": "^2.0.3",
|
||||
"moment": "^2.18.1",
|
||||
"moment": "^2.24.0",
|
||||
"multiparty": "^4.2.1",
|
||||
"node-emoji": "^1.8.1",
|
||||
"node-fetch": "^1.7.1",
|
||||
"node-persist": "^2.1.0",
|
||||
@@ -60,6 +60,7 @@
|
||||
"query-string": "4.3.4",
|
||||
"read-chunk": "^2.1.0",
|
||||
"redux": "^3.7.2",
|
||||
"request": "^2.88.0",
|
||||
"sax": "^1.2.2",
|
||||
"server-destroy": "^1.0.1",
|
||||
"sharp": "^0.22.1",
|
||||
@@ -69,10 +70,11 @@
|
||||
"string-to-stream": "^1.1.0",
|
||||
"strip-ansi": "^4.0.0",
|
||||
"syswide-cas": "^5.2.0",
|
||||
"tar": "^4.4.0",
|
||||
"tar": "^4.4.10",
|
||||
"tcp-port-used": "^0.1.2",
|
||||
"terminal-kit": "^1.30.0",
|
||||
"tkwidgets": "^0.5.26",
|
||||
"url-parse": "^1.2.0",
|
||||
"url-parse": "^1.4.7",
|
||||
"uuid": "^3.0.1",
|
||||
"valid-url": "^1.0.9",
|
||||
"word-wrap": "^1.2.3",
|
||||
|
@@ -1,3 +1,5 @@
|
||||
/* eslint-disable no-unused-vars */
|
||||
|
||||
require('app-module-path').addPath(__dirname);
|
||||
|
||||
const { time } = require('lib/time-utils.js');
|
||||
@@ -53,4 +55,4 @@ describe('ArrayUtils', function() {
|
||||
done();
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
@@ -1,3 +1,5 @@
|
||||
/* eslint-disable no-unused-vars */
|
||||
|
||||
require('app-module-path').addPath(__dirname);
|
||||
|
||||
const os = require('os');
|
||||
@@ -27,7 +29,7 @@ describe('EnexToMd', function() {
|
||||
it('should convert from Enex to Markdown', asyncTest(async () => {
|
||||
const basePath = __dirname + '/enex_to_md';
|
||||
const files = await shim.fsDriver().readDirStats(basePath);
|
||||
|
||||
|
||||
for (let i = 0; i < files.length; i++) {
|
||||
const htmlFilename = files[i].path;
|
||||
if (htmlFilename.indexOf('.html') < 0) continue;
|
||||
@@ -41,10 +43,10 @@ describe('EnexToMd', function() {
|
||||
let expectedMd = await shim.fsDriver().readFile(mdPath);
|
||||
|
||||
let actualMd = await enexXmlToMd('<div>' + html + '</div>', []);
|
||||
|
||||
|
||||
if (os.EOL === '\r\n') {
|
||||
expectedMd = expectedMd.replace(/\r\n/g, '\n')
|
||||
actualMd = actualMd.replace(/\r\n/g, '\n')
|
||||
expectedMd = expectedMd.replace(/\r\n/g, '\n');
|
||||
actualMd = actualMd.replace(/\r\n/g, '\n');
|
||||
}
|
||||
|
||||
if (actualMd !== expectedMd) {
|
||||
@@ -60,9 +62,9 @@ describe('EnexToMd', function() {
|
||||
expect(false).toBe(true);
|
||||
// return;
|
||||
} else {
|
||||
expect(true).toBe(true)
|
||||
expect(true).toBe(true);
|
||||
}
|
||||
}
|
||||
}));
|
||||
|
||||
});
|
||||
});
|
||||
|
@@ -1,3 +1,5 @@
|
||||
/* eslint-disable no-unused-vars */
|
||||
|
||||
require('app-module-path').addPath(__dirname);
|
||||
|
||||
const os = require('os');
|
||||
@@ -29,7 +31,7 @@ describe('HtmlToMd', function() {
|
||||
const basePath = __dirname + '/html_to_md';
|
||||
const files = await shim.fsDriver().readDirStats(basePath);
|
||||
const htmlToMd = new HtmlToMd();
|
||||
|
||||
|
||||
for (let i = 0; i < files.length; i++) {
|
||||
const htmlFilename = files[i].path;
|
||||
if (htmlFilename.indexOf('.html') < 0) continue;
|
||||
@@ -37,16 +39,16 @@ describe('HtmlToMd', function() {
|
||||
const htmlPath = basePath + '/' + htmlFilename;
|
||||
const mdPath = basePath + '/' + filename(htmlFilename) + '.md';
|
||||
|
||||
// if (htmlFilename !== 'mathjax_block.html') continue;
|
||||
// if (htmlFilename !== 'table_with_pipe.html') continue;
|
||||
|
||||
const htmlToMdOptions = {}
|
||||
const htmlToMdOptions = {};
|
||||
|
||||
if (htmlFilename === 'anchor_local.html') {
|
||||
// Normally the list of anchor names in the document are retrieved from the HTML code
|
||||
// This is straightforward when the document is still in DOM format, as with the clipper,
|
||||
// but otherwise it would need to be somehow parsed out from the HTML. Here we just
|
||||
// hard code the anchors that we know are in the file.
|
||||
htmlToMdOptions.anchorNames = ['first', 'second']
|
||||
htmlToMdOptions.anchorNames = ['first', 'second'];
|
||||
}
|
||||
|
||||
const html = await shim.fsDriver().readFile(htmlPath);
|
||||
@@ -55,8 +57,8 @@ describe('HtmlToMd', function() {
|
||||
let actualMd = await htmlToMd.parse('<div>' + html + '</div>', htmlToMdOptions);
|
||||
|
||||
if (os.EOL === '\r\n') {
|
||||
expectedMd = expectedMd.replace(/\r\n/g, '\n')
|
||||
actualMd = actualMd.replace(/\r\n/g, '\n')
|
||||
expectedMd = expectedMd.replace(/\r\n/g, '\n');
|
||||
actualMd = actualMd.replace(/\r\n/g, '\n');
|
||||
}
|
||||
|
||||
if (actualMd !== expectedMd) {
|
||||
@@ -74,9 +76,9 @@ describe('HtmlToMd', function() {
|
||||
expect(false).toBe(true);
|
||||
// return;
|
||||
} else {
|
||||
expect(true).toBe(true)
|
||||
expect(true).toBe(true);
|
||||
}
|
||||
}
|
||||
}));
|
||||
|
||||
});
|
||||
});
|
||||
|
@@ -1,3 +1,5 @@
|
||||
/* eslint-disable no-unused-vars */
|
||||
|
||||
require('app-module-path').addPath(__dirname);
|
||||
|
||||
const { time } = require('lib/time-utils.js');
|
||||
@@ -42,4 +44,4 @@ describe('StringUtils', function() {
|
||||
done();
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
@@ -1,3 +1,5 @@
|
||||
/* eslint-disable no-unused-vars */
|
||||
|
||||
require('app-module-path').addPath(__dirname);
|
||||
|
||||
const { asyncTest, fileContentEqual, setupDatabase, revisionService, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
||||
@@ -54,4 +56,4 @@ describe('TaskQueue', function() {
|
||||
expect(results[1].error.message).toBe('e');
|
||||
}));
|
||||
|
||||
});
|
||||
});
|
||||
|
@@ -1,3 +1,5 @@
|
||||
/* eslint-disable no-unused-vars */
|
||||
|
||||
require('app-module-path').addPath(__dirname);
|
||||
|
||||
const { time } = require('lib/time-utils.js');
|
||||
@@ -116,7 +118,7 @@ describe('Encryption', function() {
|
||||
await service.loadMasterKey(masterKey, '123456', true);
|
||||
|
||||
let cipherText = await service.encryptString('some secret');
|
||||
cipherText += "ABCDEFGHIJ";
|
||||
cipherText += 'ABCDEFGHIJ';
|
||||
|
||||
let hasThrown = await checkThrowAsync(async () => await service.decryptString(cipherText));
|
||||
|
||||
@@ -147,8 +149,8 @@ describe('Encryption', function() {
|
||||
// Check that encrypted data is there
|
||||
expect(!!deserialized.encryption_cipher_text).toBe(true);
|
||||
|
||||
encryptedNote = await Note.save(deserialized);
|
||||
decryptedNote = await Note.decrypt(encryptedNote);
|
||||
const encryptedNote = await Note.save(deserialized);
|
||||
const decryptedNote = await Note.decrypt(encryptedNote);
|
||||
|
||||
expect(decryptedNote.title).toBe(note.title);
|
||||
expect(decryptedNote.body).toBe(note.body);
|
||||
@@ -176,4 +178,4 @@ describe('Encryption', function() {
|
||||
done();
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
19
CliClient/tests/enex_to_md/text_formatting.html
Normal file
19
CliClient/tests/enex_to_md/text_formatting.html
Normal file
@@ -0,0 +1,19 @@
|
||||
<div><strong>singleline strong text.</strong></div><div><br/></div>
|
||||
<div><b>singleline bold text.</b></div><div><br/></div>
|
||||
<div><strong>multiline strong
|
||||
text.</strong></div><div><br/></div>
|
||||
<div><b>multiline bold
|
||||
text.</b></div><div><br/></div>
|
||||
|
||||
<div><em>singleline emphasized text.</em></div><div><br/></div>
|
||||
<div><i>singleline italic text.</i></div><div><br/></div>
|
||||
<div><em>multiline emphasized
|
||||
text.</em><div><br/></div>
|
||||
<div><i>multiline italic
|
||||
text.</i><div><br/></div>
|
||||
|
||||
|
||||
<div><b>singleline bold text</b> next to normal text with leading space.</div><div><br/></div>
|
||||
<div><b>singleline bold text with trailing space </b>next to normal text.</div><div><br/></div>
|
||||
<div><b>singleline bold text</b><b> next to more bold text with leading space.</b></div><div><br/></div>
|
||||
<div><b>singleline bold text with trailing space </b><b>next to more bold text.</b></div><div><br/></div>
|
23
CliClient/tests/enex_to_md/text_formatting.md
Normal file
23
CliClient/tests/enex_to_md/text_formatting.md
Normal file
@@ -0,0 +1,23 @@
|
||||
**singleline strong text.**
|
||||
|
||||
**singleline bold text.**
|
||||
|
||||
**multiline strong text.**
|
||||
|
||||
**multiline bold text.**
|
||||
|
||||
*singleline emphasized text.*
|
||||
|
||||
*singleline italic text.*
|
||||
|
||||
*multiline emphasized text.*
|
||||
|
||||
*multiline italic text.*
|
||||
|
||||
**singleline bold text** next to normal text with leading space.
|
||||
|
||||
**singleline bold text with trailing space **next to normal text.
|
||||
|
||||
**singleline bold text**** next to more bold text with leading space.**
|
||||
|
||||
**singleline bold text with trailing space ****next to more bold text.**
|
11
CliClient/tests/enex_to_md/text_formatting_span_bold.html
Normal file
11
CliClient/tests/enex_to_md/text_formatting_span_bold.html
Normal file
@@ -0,0 +1,11 @@
|
||||
<div><span style="font-weight: bold;">singleline bold text with span style font-weight: bold;.</span></div><div><br/></div>
|
||||
<div><span style="font-family: 'TimesNewRoman,Bold';">singleline bold text with span style font-family: 'TimesNewRoman,Bold';.</span></div><div><br/></div>
|
||||
<div><span style="font-weight: bold;">multiline bold
|
||||
text with span style font-weight: bold;.</span></div><div><br/></div>
|
||||
<div><span style="font-family: 'TimesNewRoman,Bold';">multiline bold
|
||||
text with span style font-family: 'TimesNewRoman,Bold';.</span></div><div><br/></div>
|
||||
|
||||
<div><span style="font-weight: bold;">singleline bold text with span style font-weight: bold;</span> next to normal text with leading space.</div><div><br/></div>
|
||||
<div><span style="font-weight: bold;">singleline bold text with span style font-weight: bold; and with trailing space </span>next to normal text.</div><div><br/></div>
|
||||
<div><span style="font-weight: bold;">singleline bold text with span style font-weight: bold;</span><span style="font-weight: bold;"> next to more bold text with span style font-weight: bold; and with leading space.</span></div><div><br/></div>
|
||||
<div><span style="font-weight: bold;">singleline bold text with span style font-weight: bold; and with trailing space </span><span style="font-weight: bold;">next to more bold text with span style font-weight: bold;.</span></div>
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user