You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-12-08 23:07:32 +02:00
Compare commits
447 Commits
android-v1
...
android-v1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4f47bd7bcd | ||
|
|
4f76946140 | ||
|
|
aa60923cbd | ||
|
|
7670ce32b1 | ||
|
|
0b98632336 | ||
|
|
49c998de83 | ||
|
|
da69d6b2c9 | ||
|
|
a757aefce0 | ||
|
|
b2129cb8c4 | ||
|
|
27f14c175f | ||
|
|
aad49c520b | ||
|
|
af794a16d6 | ||
|
|
ca7266cd69 | ||
|
|
fb758afc81 | ||
|
|
b806f0da49 | ||
|
|
4e3b1f3e13 | ||
|
|
475467c41c | ||
|
|
28e5039873 | ||
|
|
1efc6e6151 | ||
|
|
e280a02643 | ||
|
|
788dc42684 | ||
|
|
01f2759a62 | ||
|
|
9419e3af9c | ||
|
|
6d220005cc | ||
|
|
6d68e61bbd | ||
|
|
29582623b0 | ||
|
|
4571e7853a | ||
|
|
d6e59c5238 | ||
|
|
6335cbedb8 | ||
|
|
f3344ce05d | ||
|
|
155d38d24a | ||
|
|
412f6d8316 | ||
|
|
d0f3ed80e0 | ||
|
|
b86f3b74bd | ||
|
|
60054d1d8b | ||
|
|
c40c6428d7 | ||
|
|
e708ecccee | ||
|
|
04f991d3bf | ||
|
|
d5d7368ba0 | ||
|
|
abff929d4e | ||
|
|
49edc82594 | ||
|
|
7dd7d0ec17 | ||
|
|
61aaf64f95 | ||
|
|
da35785951 | ||
|
|
e394034678 | ||
|
|
edf002ab32 | ||
|
|
50f2076981 | ||
|
|
a9ae78bcde | ||
|
|
0d7f9a2ab3 | ||
|
|
a5ee120281 | ||
|
|
12ebf44e22 | ||
|
|
220f5d0967 | ||
|
|
4ef05272c4 | ||
|
|
c3262aa5f8 | ||
|
|
42119c8f42 | ||
|
|
27cce03968 | ||
|
|
776aba1e49 | ||
|
|
9356841cfc | ||
|
|
7fc233e808 | ||
|
|
7b2eac3abd | ||
|
|
93323deea5 | ||
|
|
e8fa399e9e | ||
|
|
a974eb5d9f | ||
|
|
6a3f04274d | ||
|
|
f8e1395087 | ||
|
|
82b5af51e5 | ||
|
|
cf40c14a86 | ||
|
|
be2b2b7836 | ||
|
|
0cebae8032 | ||
|
|
6ebc77cbba | ||
|
|
542a5e88b7 | ||
|
|
72b36522e8 | ||
|
|
252d937405 | ||
|
|
a73b0309b9 | ||
|
|
c22283e799 | ||
|
|
1e51ab4a59 | ||
|
|
0c2f2667d3 | ||
|
|
496c9ddb91 | ||
|
|
5ad0b2eed9 | ||
|
|
577d62e783 | ||
|
|
dcb73c9916 | ||
|
|
6b2910c3c7 | ||
|
|
db04906416 | ||
|
|
54fceeb07d | ||
|
|
fa32678645 | ||
|
|
ee1df1a396 | ||
|
|
729be8767c | ||
|
|
8471f0d86d | ||
|
|
390b818d71 | ||
|
|
1a1c190ea3 | ||
|
|
40d82b80f1 | ||
|
|
7647ecbbc7 | ||
|
|
b2a5cf9dd0 | ||
|
|
cbf3ab2ec2 | ||
|
|
c4a37ff0ba | ||
|
|
bdc7ea4346 | ||
|
|
d4c4b9b10a | ||
|
|
4b9105edff | ||
|
|
c0980a5a9e | ||
|
|
272055fc1d | ||
|
|
cbb1851b12 | ||
|
|
45d758d52e | ||
|
|
49936ef095 | ||
|
|
986d4be601 | ||
|
|
b6ad9719ad | ||
|
|
96a1546da1 | ||
|
|
6884dd2b9e | ||
|
|
9c027e59c4 | ||
|
|
9e16ff3644 | ||
|
|
4000cb5d1c | ||
|
|
1030b412ff | ||
|
|
54f0fbcf6b | ||
|
|
1602182085 | ||
|
|
20bb1238c5 | ||
|
|
68fbe8125e | ||
|
|
23e6e6e69d | ||
|
|
ade5af2559 | ||
|
|
0a993dc012 | ||
|
|
4baa46507f | ||
|
|
0d8878abd3 | ||
|
|
f962084591 | ||
|
|
921b45286b | ||
|
|
301bfed05e | ||
|
|
62e7d6fa86 | ||
|
|
7e34cd4452 | ||
|
|
b35cb9a7ab | ||
|
|
18b836525c | ||
|
|
e34e49b88d | ||
|
|
5bf879c2d9 | ||
|
|
61d6309c0e | ||
|
|
17c9c0f9ef | ||
|
|
9bd62fd3d4 | ||
|
|
de73d4baa7 | ||
|
|
379ff5163b | ||
|
|
d9538ccb08 | ||
|
|
9289dbdf77 | ||
|
|
5719ae495a | ||
|
|
a89e3b7924 | ||
|
|
e576d09712 | ||
|
|
43600a7824 | ||
|
|
921f01d9dc | ||
|
|
dec5668582 | ||
|
|
e30bc12354 | ||
|
|
fca4fa666d | ||
|
|
59478160c8 | ||
|
|
8110fe89ef | ||
|
|
c7ed1b5eae | ||
|
|
25951e7097 | ||
|
|
687b9d1bef | ||
|
|
630e77b9eb | ||
|
|
68ff2e17b3 | ||
|
|
945d83608a | ||
|
|
833d473268 | ||
|
|
2256b0c5ec | ||
|
|
677aa7d59b | ||
|
|
4363005e92 | ||
|
|
2e3ef618db | ||
|
|
1adbbd14c6 | ||
|
|
4dfd7db729 | ||
|
|
e70562a102 | ||
|
|
a0e5947ba4 | ||
|
|
e841ea8a91 | ||
|
|
770a435029 | ||
|
|
49b56e84a7 | ||
|
|
ff1a6fdbbd | ||
|
|
2168090b96 | ||
|
|
33f7b680bc | ||
|
|
0957298cb8 | ||
|
|
08f2f982cf | ||
|
|
3376fbfa55 | ||
|
|
4a31e5fe73 | ||
|
|
baacec5ba6 | ||
|
|
95188b71b8 | ||
|
|
cf57be6e98 | ||
|
|
b691092d7a | ||
|
|
03e60fc028 | ||
|
|
2e25ec318f | ||
|
|
7236e5e9ae | ||
|
|
6f7dd51a98 | ||
|
|
db1dab9293 | ||
|
|
06f1b9e4d7 | ||
|
|
8f958ac931 | ||
|
|
eae63bfb79 | ||
|
|
8adfc81c30 | ||
|
|
0c516443e3 | ||
|
|
ad9bc0bf63 | ||
|
|
b0596670a6 | ||
|
|
998011ff43 | ||
|
|
081e1c5b62 | ||
|
|
edfd2c4d54 | ||
|
|
9d65a3a34c | ||
|
|
1a86cbdb9d | ||
|
|
849cb4456c | ||
|
|
1736717f2e | ||
|
|
50b75e1e63 | ||
|
|
179005dd6c | ||
|
|
6b3fe6b2cb | ||
|
|
c34872bb26 | ||
|
|
4845a21287 | ||
|
|
ddd513fe09 | ||
|
|
4ce118d459 | ||
|
|
99da184ba5 | ||
|
|
e2e4e62c4f | ||
|
|
229dd7a6dd | ||
|
|
1e0c4cc5cd | ||
|
|
b40ccc7a15 | ||
|
|
7d6b7e588c | ||
|
|
22cacd2c5b | ||
|
|
6a22e7836a | ||
|
|
32a67b9b33 | ||
|
|
b5dff09c28 | ||
|
|
c56d8153e8 | ||
|
|
eb5950d126 | ||
|
|
4241436e40 | ||
|
|
e93af7aed5 | ||
|
|
d2416f850e | ||
|
|
7af22eb006 | ||
|
|
3f1be5e7e7 | ||
|
|
a4e649c82d | ||
|
|
cde1a8f0a8 | ||
|
|
cda6eb7c2f | ||
|
|
3c3e6aeca0 | ||
|
|
99156311db | ||
|
|
91b2e5e703 | ||
|
|
573fd816d0 | ||
|
|
e6aa002758 | ||
|
|
361d46ac5d | ||
|
|
9bc7c2fd65 | ||
|
|
ce49f5f8b7 | ||
|
|
81e4cd319d | ||
|
|
71f905535f | ||
|
|
d3bff0a9e3 | ||
|
|
88e6315d09 | ||
|
|
3d933c5244 | ||
|
|
73af19314d | ||
|
|
1d71712c8a | ||
|
|
1333c35389 | ||
|
|
e0f5f47a15 | ||
|
|
34323042d5 | ||
|
|
aa86fa9986 | ||
|
|
d2d659d5a9 | ||
|
|
1595248b52 | ||
|
|
fc94c616b5 | ||
|
|
f6f0bcf1c3 | ||
|
|
6eeeda5dab | ||
|
|
58993d2ead | ||
|
|
7c0b608769 | ||
|
|
259be84a3e | ||
|
|
57c880cf85 | ||
|
|
0469fe76d7 | ||
|
|
a3e74320fa | ||
|
|
4e0f4397b2 | ||
|
|
b26aab3863 | ||
|
|
75ec97fe61 | ||
|
|
9a356453fc | ||
|
|
f0020b3393 | ||
|
|
ea9f1dc91d | ||
|
|
2ef77dcf1f | ||
|
|
29e7ec4cc9 | ||
|
|
5710e3fad0 | ||
|
|
a03aa62d58 | ||
|
|
2203a39917 | ||
|
|
bc58668483 | ||
|
|
0b4650f355 | ||
|
|
aecdec48ad | ||
|
|
e49198a0d4 | ||
|
|
6aa4553dd3 | ||
|
|
860e8a8f5a | ||
|
|
434037d793 | ||
|
|
214eae27da | ||
|
|
0567188fa8 | ||
|
|
4326902683 | ||
|
|
da3589149d | ||
|
|
69b4b4d1f4 | ||
|
|
dd4b46a88b | ||
|
|
6f2253b2f4 | ||
|
|
4c00d9512e | ||
|
|
6f511cb1e6 | ||
|
|
029e84f538 | ||
|
|
42b1db1d08 | ||
|
|
9d4b34cad7 | ||
|
|
cd9aff0f59 | ||
|
|
032816fffc | ||
|
|
1408f06c8d | ||
|
|
49f8d0c6d8 | ||
|
|
0d6443c30a | ||
|
|
e62d91dda8 | ||
|
|
0e122c9dc5 | ||
|
|
c2bd453e8c | ||
|
|
949ea7afb7 | ||
|
|
9f575101d2 | ||
|
|
2b4470054e | ||
|
|
b220613e54 | ||
|
|
11328babe8 | ||
|
|
735bc92bc4 | ||
|
|
6894b9b1b7 | ||
|
|
4de7815f31 | ||
|
|
4ce7b48468 | ||
|
|
77e4cb87ad | ||
|
|
dd6b43035e | ||
|
|
e76094c546 | ||
|
|
9c00dc4cab | ||
|
|
fc416de348 | ||
|
|
a2156be4ec | ||
|
|
cf427eba0f | ||
|
|
0050c90678 | ||
|
|
5eeff02dbe | ||
|
|
eb283efc20 | ||
|
|
87121c9c21 | ||
|
|
a2dbbbf832 | ||
|
|
fd251cd9a9 | ||
|
|
8ced2d288e | ||
|
|
242926d381 | ||
|
|
8c9a148e71 | ||
|
|
9e165fc7dc | ||
|
|
f46e4e0cec | ||
|
|
efcf5ecef4 | ||
|
|
b6ba843d09 | ||
|
|
915112e274 | ||
|
|
cc8f8fcd2c | ||
|
|
bda3ea9a35 | ||
|
|
a7aed1f93a | ||
|
|
a33f602f3b | ||
|
|
4d08b49578 | ||
|
|
21e049ab45 | ||
|
|
1d4234caea | ||
|
|
d1269de3a7 | ||
|
|
8c19fcf8fc | ||
|
|
beaba2be55 | ||
|
|
32c9ad1d59 | ||
|
|
a194513252 | ||
|
|
cd93a1d1e1 | ||
|
|
2867728996 | ||
|
|
394cc78851 | ||
|
|
76f0a26322 | ||
|
|
92d7a577a0 | ||
|
|
9c1219b188 | ||
|
|
f62bbfe286 | ||
|
|
fef176eb96 | ||
|
|
ed541dac3b | ||
|
|
4a175b2158 | ||
|
|
4076899e11 | ||
|
|
998bdf3b56 | ||
|
|
76b211eb6d | ||
|
|
f781cb3922 | ||
|
|
ced3e5d623 | ||
|
|
2a4812cb87 | ||
|
|
1f384c7ae4 | ||
|
|
01a3285636 | ||
|
|
53166cb3f5 | ||
|
|
893462ae87 | ||
|
|
949dbf45f1 | ||
|
|
d7dc625042 | ||
|
|
cc91c77f9e | ||
|
|
4847fd76de | ||
|
|
25b711a8da | ||
|
|
b5e50fa62e | ||
|
|
28e40a5c86 | ||
|
|
a8a7b7c07b | ||
|
|
299008688d | ||
|
|
42a674008f | ||
|
|
8fdc0bf17c | ||
|
|
4e3896c108 | ||
|
|
96cd56548e | ||
|
|
739fb2c3d2 | ||
|
|
0c98573700 | ||
|
|
8dc0b34fdc | ||
|
|
384ca09842 | ||
|
|
97d86825c2 | ||
|
|
f5a824b1e6 | ||
|
|
4fc11e77e8 | ||
|
|
8d16ad7035 | ||
|
|
3b1d84b00b | ||
|
|
3f540da31b | ||
|
|
3a20f1c245 | ||
|
|
e803f0c545 | ||
|
|
c9495c23a6 | ||
|
|
26aae9eea5 | ||
|
|
7d92136467 | ||
|
|
a7896b43d7 | ||
|
|
2e12b2655b | ||
|
|
a1f0bd1e6c | ||
|
|
4472590133 | ||
|
|
64f1214ad9 | ||
|
|
bd465a72cf | ||
|
|
1d1c2a6925 | ||
|
|
d68ba32533 | ||
|
|
d1a316032d | ||
|
|
b465042a56 | ||
|
|
8ff2418b02 | ||
|
|
f6640bcc32 | ||
|
|
fa3c0fd18a | ||
|
|
2ac03c18c4 | ||
|
|
51ee6128f3 | ||
|
|
53478056de | ||
|
|
83c791564a | ||
|
|
65d0032995 | ||
|
|
37c4f99341 | ||
|
|
adbc873b2a | ||
|
|
3567a57d6a | ||
|
|
b4e9fb157f | ||
|
|
1be3646a04 | ||
|
|
46b82f877b | ||
|
|
ef56eb4a52 | ||
|
|
6989f9fd16 | ||
|
|
7c3e8547de | ||
|
|
8268c3edba | ||
|
|
a8cc8763b0 | ||
|
|
09b4acf087 | ||
|
|
3b719ce53b | ||
|
|
83281197f1 | ||
|
|
ffda04f9b4 | ||
|
|
606893286a | ||
|
|
075b71746a | ||
|
|
01f1f3e957 | ||
|
|
88a9d5e802 | ||
|
|
7eebfae1c3 | ||
|
|
340fe76b8f | ||
|
|
e83678df3a | ||
|
|
0bbbb49a31 | ||
|
|
0e61115857 | ||
|
|
8d3ac6f6fe | ||
|
|
86e644be9a | ||
|
|
30201249b5 | ||
|
|
41155f5ef4 | ||
|
|
f308fe71f9 | ||
|
|
5a00214fd2 | ||
|
|
1b3e0f65e1 | ||
|
|
7cfc537870 | ||
|
|
53513db5b5 | ||
|
|
59402cf198 | ||
|
|
12efc02d91 | ||
|
|
f38b907680 | ||
|
|
8fcb46ca4a | ||
|
|
71ec9a193f | ||
|
|
393a545548 | ||
|
|
f88449fbb0 | ||
|
|
50ad4d05f2 | ||
|
|
8d0e562c8a | ||
|
|
c98e67c003 | ||
|
|
5565538b80 | ||
|
|
958979e1d7 | ||
|
|
685845e097 | ||
|
|
3813f9e417 | ||
|
|
40cf3fb4d0 | ||
|
|
3f88b16603 | ||
|
|
32c02275a2 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -39,5 +39,7 @@ node_modules
|
|||||||
Tools/github_oauth_token.txt
|
Tools/github_oauth_token.txt
|
||||||
_releases
|
_releases
|
||||||
ReactNativeClient/lib/csstojs/
|
ReactNativeClient/lib/csstojs/
|
||||||
|
ReactNativeClient/lib/rnInjectedJs/
|
||||||
ElectronClient/app/gui/note-viewer/fonts/
|
ElectronClient/app/gui/note-viewer/fonts/
|
||||||
|
ElectronClient/app/gui/note-viewer/lib.js
|
||||||
Tools/commit_hook.txt
|
Tools/commit_hook.txt
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 335 KiB After Width: | Height: | Size: 336 KiB |
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 254 KiB After Width: | Height: | Size: 244 KiB |
Binary file not shown.
BIN
Assets/Screenshots/iOS/Screenshot_iPhone_Portrait_X.png
Normal file
BIN
Assets/Screenshots/iOS/Screenshot_iPhone_Portrait_X.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 249 KiB |
BIN
Assets/Screenshots/iOS/Screenshot_iPhone_Portrait_X.psd
Normal file
BIN
Assets/Screenshots/iOS/Screenshot_iPhone_Portrait_X.psd
Normal file
Binary file not shown.
3
BUILD.md
3
BUILD.md
@@ -1,7 +1,8 @@
|
|||||||
|
[](https://travis-ci.org/laurent22/joplin) [](https://ci.appveyor.com/project/laurent22/joplin)
|
||||||
|
|
||||||
# General information
|
# General information
|
||||||
|
|
||||||
- All the applications share the same library, which, for historical reasons, is in ReactNativeClient/lib. This library is copied to the relevant directories when building each app.
|
- All the applications share the same library, which, for historical reasons, is in ReactNativeClient/lib. This library is copied to the relevant directories when building each app.
|
||||||
- The translations are built by running CliClient/build-translation.sh. You normally don't need to run this if you haven't updated the translation since the compiled files are on the repository.
|
|
||||||
|
|
||||||
## macOS dependencies
|
## macOS dependencies
|
||||||
|
|
||||||
|
|||||||
@@ -12,14 +12,14 @@ If possible, **please provide a screenshot**. A screenshot showing the problem i
|
|||||||
|
|
||||||
Again, please check that it has not already been requested. If it has, simply **up-vote the issue** - the ones with the most up-votes are likely to be implemented. "+1" comments are not tracked.
|
Again, please check that it has not already been requested. If it has, simply **up-vote the issue** - the ones with the most up-votes are likely to be implemented. "+1" comments are not tracked.
|
||||||
|
|
||||||
# Adding new features
|
# Creating a pull request
|
||||||
|
|
||||||
If you want to add a new feature, consider asking about it before implementing it or checking existing discussions to make sure it is within the scope of the project. Of course you are free to create the pull request directly but it is not guaranteed it is going to be accepted.
|
- If you want to add a new feature, consider asking about it before implementing it or checking existing discussions to make sure it is within the scope of the project. As a rule of thumb **if your change is likely to involve more than 50 lines of code, you should discuss it in the forum**, just so that you don't spend too much time implementing something that might not be accepted.
|
||||||
|
|
||||||
|
- Bug fixes are always welcome.
|
||||||
|
|
||||||
Building the apps is relatively easy - please [see the build instructions](https://github.com/laurent22/joplin/blob/master/BUILD.md) for more details.
|
Building the apps is relatively easy - please [see the build instructions](https://github.com/laurent22/joplin/blob/master/BUILD.md) for more details.
|
||||||
|
|
||||||
Pull requests that automatically change many files tend to be rejected (for example changes that automatically update the code styling, or to add new lines to many files, or to automatically convert images to a different format) so if you have such a pull request in mind, please discuss it first in the forum.
|
|
||||||
|
|
||||||
# Coding style
|
# 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):
|
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):
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ const os = require('os');
|
|||||||
const fs = require('fs-extra');
|
const fs = require('fs-extra');
|
||||||
const { cliUtils } = require('./cli-utils.js');
|
const { cliUtils } = require('./cli-utils.js');
|
||||||
const Cache = require('lib/Cache');
|
const Cache = require('lib/Cache');
|
||||||
|
const WelcomeUtils = require('lib/WelcomeUtils');
|
||||||
|
|
||||||
class Application extends BaseApplication {
|
class Application extends BaseApplication {
|
||||||
|
|
||||||
@@ -376,6 +377,8 @@ class Application extends BaseApplication {
|
|||||||
return this.stdout(object);
|
return this.stdout(object);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
await WelcomeUtils.install(this.dispatch.bind(this));
|
||||||
|
|
||||||
// If we have some arguments left at this point, it's a command
|
// If we have some arguments left at this point, it's a command
|
||||||
// so execute it.
|
// so execute it.
|
||||||
if (argv.length) {
|
if (argv.length) {
|
||||||
@@ -393,6 +396,12 @@ class Application extends BaseApplication {
|
|||||||
}
|
}
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await Setting.saveAll();
|
||||||
|
|
||||||
|
// 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();
|
this.initRedux();
|
||||||
|
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ function getFooter() {
|
|||||||
|
|
||||||
output.push('WEBSITE');
|
output.push('WEBSITE');
|
||||||
output.push('');
|
output.push('');
|
||||||
output.push(INDENT + 'https://joplin.cozic.net');
|
output.push(INDENT + 'https://joplinapp.org');
|
||||||
|
|
||||||
output.push('');
|
output.push('');
|
||||||
|
|
||||||
|
|||||||
@@ -113,6 +113,11 @@ class Command extends BaseCommand {
|
|||||||
lines.push('\tcurl http://localhost:41184/tags?fields=id');
|
lines.push('\tcurl http://localhost:41184/tags?fields=id');
|
||||||
lines.push('');
|
lines.push('');
|
||||||
|
|
||||||
|
lines.push('# Error handling');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('In case of an error, an HTTP status code >= 400 will be returned along with a JSON object that provides more info about the error. The JSON object is in the format `{ "error": "description of error" }`.');
|
||||||
|
lines.push('');
|
||||||
|
|
||||||
lines.push('# About the property types');
|
lines.push('# About the property types');
|
||||||
lines.push('');
|
lines.push('');
|
||||||
lines.push('* Text is UTF-8.');
|
lines.push('* Text is UTF-8.');
|
||||||
@@ -125,6 +130,11 @@ class Command extends BaseCommand {
|
|||||||
lines.push('Call **GET /ping** to check if the service is available. It should return "JoplinClipperServer" if it works.');
|
lines.push('Call **GET /ping** to check if the service is available. It should return "JoplinClipperServer" if it works.');
|
||||||
lines.push('');
|
lines.push('');
|
||||||
|
|
||||||
|
lines.push('# Searching');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('Call **GET /search?query=YOUR_QUERY** to search for notes. This end-point supports the `field` parameter which is recommended to use so that you only get the data that you need. The query syntax is as described in the main documentation: https://joplinapp.org/#searching');
|
||||||
|
lines.push('');
|
||||||
|
|
||||||
for (let i = 0; i < models.length; i++) {
|
for (let i = 0; i < models.length; i++) {
|
||||||
const model = models[i];
|
const model = models[i];
|
||||||
const ModelClass = BaseItem.getClassByItemType(model.type);
|
const ModelClass = BaseItem.getClassByItemType(model.type);
|
||||||
@@ -154,11 +164,11 @@ class Command extends BaseCommand {
|
|||||||
type: Database.enumId('fieldType', 'text'),
|
type: Database.enumId('fieldType', 'text'),
|
||||||
description: 'If an image is provided, you can also specify an optional rectangle that will be used to crop the image. In format `{ x: x, y: y, width: width, height: height }`',
|
description: 'If an image is provided, you can also specify an optional rectangle that will be used to crop the image. In format `{ x: x, y: y, width: width, height: height }`',
|
||||||
});
|
});
|
||||||
tableFields.push({
|
// tableFields.push({
|
||||||
name: 'tags',
|
// name: 'tags',
|
||||||
type: Database.enumId('fieldType', 'text'),
|
// type: Database.enumId('fieldType', 'text'),
|
||||||
description: 'Comma-separated list of tags. eg. `tag1,tag2`.',
|
// description: 'Comma-separated list of tags. eg. `tag1,tag2`.',
|
||||||
});
|
// });
|
||||||
}
|
}
|
||||||
|
|
||||||
lines.push('# ' + toTitleCase(tableName));
|
lines.push('# ' + toTitleCase(tableName));
|
||||||
|
|||||||
@@ -6,6 +6,10 @@ const DecryptionWorker = require('lib/services/DecryptionWorker');
|
|||||||
const MasterKey = require('lib/models/MasterKey');
|
const MasterKey = require('lib/models/MasterKey');
|
||||||
const BaseItem = require('lib/models/BaseItem');
|
const BaseItem = require('lib/models/BaseItem');
|
||||||
const Setting = require('lib/models/Setting.js');
|
const Setting = require('lib/models/Setting.js');
|
||||||
|
const { shim } = require('lib/shim');
|
||||||
|
const pathUtils = require('lib/path-utils.js');
|
||||||
|
const imageType = require('image-type');
|
||||||
|
const readChunk = require('read-chunk');
|
||||||
|
|
||||||
class Command extends BaseCommand {
|
class Command extends BaseCommand {
|
||||||
|
|
||||||
@@ -14,7 +18,7 @@ class Command extends BaseCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
description() {
|
description() {
|
||||||
return _('Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status` and `target-status`.');
|
return _('Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, `status`, `decrypt-file` and `target-status`.');
|
||||||
}
|
}
|
||||||
|
|
||||||
options() {
|
options() {
|
||||||
@@ -22,6 +26,7 @@ class Command extends BaseCommand {
|
|||||||
// This is here mostly for testing - shouldn't be used
|
// This is here mostly for testing - shouldn't be used
|
||||||
['-p, --password <password>', 'Use this password as master password (For security reasons, it is not recommended to use this option).'],
|
['-p, --password <password>', 'Use this password as master password (For security reasons, it is not recommended to use this option).'],
|
||||||
['-v, --verbose', 'More verbose output for the `target-status` command'],
|
['-v, --verbose', 'More verbose output for the `target-status` command'],
|
||||||
|
['-o, --output <directory>', 'Output directory'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,6 +35,18 @@ class Command extends BaseCommand {
|
|||||||
|
|
||||||
const options = args.options;
|
const options = args.options;
|
||||||
|
|
||||||
|
const askForMasterKey = async (error) => {
|
||||||
|
const masterKeyId = error.masterKeyId;
|
||||||
|
const password = await this.prompt(_('Enter master password:'), { type: 'string', secure: true });
|
||||||
|
if (!password) {
|
||||||
|
this.stdout(_('Operation cancelled'));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
Setting.setObjectKey('encryption.passwordCache', masterKeyId, password);
|
||||||
|
await EncryptionService.instance().loadMasterKeysFromSettings();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (args.command === 'enable') {
|
if (args.command === 'enable') {
|
||||||
const password = options.password ? options.password.toString() : await this.prompt(_('Enter master password:'), { type: 'string', secure: true });
|
const password = options.password ? options.password.toString() : await this.prompt(_('Enter master password:'), { type: 'string', secure: true });
|
||||||
if (!password) {
|
if (!password) {
|
||||||
@@ -47,63 +64,28 @@ class Command extends BaseCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (args.command === 'decrypt') {
|
if (args.command === 'decrypt') {
|
||||||
while (true) {
|
if (args.path) {
|
||||||
try {
|
const plainText = await EncryptionService.instance().decryptString(args.path);
|
||||||
if (args.path) {
|
this.stdout(plainText);
|
||||||
const plainText = await EncryptionService.instance().decryptString(args.path);
|
} else {
|
||||||
this.stdout(plainText);
|
this.stdout(_('Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.'));
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
if (process.stdin.isTTY) {
|
|
||||||
this.stdout(_('Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.'));
|
|
||||||
await DecryptionWorker.instance().start();
|
|
||||||
this.stdout(_('Completed decryption.'));
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
// var repl = require("repl");
|
|
||||||
// var r = repl.start("node> ");
|
|
||||||
|
|
||||||
const text = await new Promise((accept, reject) => {
|
while (true) {
|
||||||
var buffer = '';
|
try {
|
||||||
process.stdin.setEncoding('utf8');
|
await DecryptionWorker.instance().start();
|
||||||
process.stdin.on('data', function(chunk) {
|
break;
|
||||||
buffer += chunk;
|
} catch (error) {
|
||||||
// process.stdout.write(chunk);
|
if (error.code === 'masterKeyNotLoaded') {
|
||||||
});
|
const ok = await askForMasterKey(error);
|
||||||
process.stdin.on('end', function() {
|
if (!ok) return;
|
||||||
accept(buffer.trim());
|
continue;
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
if (text.length > 0) {
|
|
||||||
var cipherText = text;
|
|
||||||
try {
|
|
||||||
var item = await BaseItem.unserialize(text);
|
|
||||||
cipherText = item.encryption_cipher_text;
|
|
||||||
} catch (error) {
|
|
||||||
// we already got the pure cipher text
|
|
||||||
}
|
|
||||||
const plainText = await EncryptionService.instance().decryptString(cipherText);
|
|
||||||
this.stdout(plainText);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
if (error.code === 'masterKeyNotLoaded') {
|
|
||||||
const masterKeyId = error.masterKeyId;
|
|
||||||
const password = await this.prompt(_('Enter master password:'), { type: 'string', secure: true });
|
|
||||||
if (!password) {
|
|
||||||
this.stdout(_('Operation cancelled'));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Setting.setObjectKey('encryption.passwordCache', masterKeyId, password);
|
|
||||||
await EncryptionService.instance().loadMasterKeysFromSettings();
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
throw error;
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.stdout(_('Completed decryption.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -114,6 +96,36 @@ class Command extends BaseCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (args.command === 'decrypt-file') {
|
||||||
|
while (true) {
|
||||||
|
try {
|
||||||
|
const outputDir = options.output ? options.output : require('os').tmpdir();
|
||||||
|
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);
|
||||||
|
|
||||||
|
if (detectedType) {
|
||||||
|
const newOutFile = outFile + '.' + detectedType.ext;
|
||||||
|
await shim.fsDriver().move(outFile, newOutFile);
|
||||||
|
outFile = newOutFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.stdout(outFile);
|
||||||
|
break;
|
||||||
|
} catch (error) {
|
||||||
|
if (error.code === 'masterKeyNotLoaded') {
|
||||||
|
const ok = await askForMasterKey(error);
|
||||||
|
if (!ok) return;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (args.command === 'target-status') {
|
if (args.command === 'target-status') {
|
||||||
const fs = require('fs-extra');
|
const fs = require('fs-extra');
|
||||||
const pathUtils = require('lib/path-utils.js');
|
const pathUtils = require('lib/path-utils.js');
|
||||||
@@ -215,4 +227,4 @@ class Command extends BaseCommand {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = Command;
|
module.exports = Command;
|
||||||
@@ -37,7 +37,7 @@ class Command extends BaseCommand {
|
|||||||
const stdoutWidth = app().commandStdoutMaxWidth();
|
const stdoutWidth = app().commandStdoutMaxWidth();
|
||||||
|
|
||||||
if (args.command === 'shortcuts' || args.command === 'keymap') {
|
if (args.command === 'shortcuts' || args.command === 'keymap') {
|
||||||
this.stdout(_('For information on how to customise the shortcuts please visit %s', 'https://joplin.cozic.net/terminal/#shortcuts'));
|
this.stdout(_('For information on how to customise the shortcuts please visit %s', 'https://joplinapp.org/terminal/#shortcuts'));
|
||||||
this.stdout('');
|
this.stdout('');
|
||||||
|
|
||||||
if (app().gui().isDummy()) {
|
if (app().gui().isDummy()) {
|
||||||
|
|||||||
@@ -49,35 +49,6 @@ class Command extends BaseCommand {
|
|||||||
type: 'SEARCH_SELECT',
|
type: 'SEARCH_SELECT',
|
||||||
id: searchId,
|
id: searchId,
|
||||||
});
|
});
|
||||||
|
|
||||||
// let fields = Note.previewFields();
|
|
||||||
// fields.push('body');
|
|
||||||
// const notes = await Note.previews(folder ? folder.id : null, {
|
|
||||||
// fields: fields,
|
|
||||||
// anywherePattern: '*' + pattern + '*',
|
|
||||||
// });
|
|
||||||
|
|
||||||
// const fragmentLength = 50;
|
|
||||||
|
|
||||||
// let parents = {};
|
|
||||||
|
|
||||||
// for (let i = 0; i < notes.length; i++) {
|
|
||||||
// const note = notes[i];
|
|
||||||
// const parent = parents[note.parent_id] ? parents[note.parent_id] : await Folder.load(note.parent_id);
|
|
||||||
// parents[note.parent_id] = parent;
|
|
||||||
|
|
||||||
// const idx = note.body.indexOf(pattern);
|
|
||||||
// let line = '';
|
|
||||||
// if (idx >= 0) {
|
|
||||||
// let fragment = note.body.substr(Math.max(0, idx - fragmentLength / 2), fragmentLength);
|
|
||||||
// fragment = fragment.replace(/\n/g, ' ');
|
|
||||||
// line = sprintf('%s: %s / %s: %s', BaseModel.shortId(note.id), parent.title, note.title, fragment);
|
|
||||||
// } else {
|
|
||||||
// line = sprintf('%s: %s / %s', BaseModel.shortId(note.id), parent.title, note.title);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// this.stdout(line);
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,7 +117,6 @@ class Command extends BaseCommand {
|
|||||||
this.releaseLockFn_ = null;
|
this.releaseLockFn_ = null;
|
||||||
|
|
||||||
// Lock is unique per profile/database
|
// Lock is unique per profile/database
|
||||||
// TODO: use SQLite database to do lock?
|
|
||||||
const lockFilePath = require('os').tmpdir() + '/synclock_' + md5(escape(Setting.value('profileDir'))); // https://github.com/pvorb/node-md5/issues/41
|
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');
|
||||||
|
|
||||||
|
|||||||
@@ -139,7 +139,8 @@ class FolderListWidget extends ListWidget {
|
|||||||
const orderFolders = (parentId) => {
|
const orderFolders = (parentId) => {
|
||||||
for (let i = 0; i < this.folders.length; i++) {
|
for (let i = 0; i < this.folders.length; i++) {
|
||||||
const f = this.folders[i];
|
const f = this.folders[i];
|
||||||
if (f.parent_id === parentId) {
|
const folderParentId = f.parent_id ? f.parent_id : '';
|
||||||
|
if (folderParentId === parentId) {
|
||||||
newItems.push(f);
|
newItems.push(f);
|
||||||
if (this.folderHasChildren_(this.folders, f.id)) orderFolders(f.id);
|
if (this.folderHasChildren_(this.folders, f.id)) orderFolders(f.id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
// Use njstrace to find out what Node.js might be spending time on
|
||||||
|
// var njstrace = require('njstrace').inject();
|
||||||
|
|
||||||
// Make it possible to require("/lib/...") without specifying full path
|
// Make it possible to require("/lib/...") without specifying full path
|
||||||
require('app-module-path').addPath(__dirname);
|
require('app-module-path').addPath(__dirname);
|
||||||
|
|
||||||
|
|||||||
1898
CliClient/locales/ar.po
Normal file
1898
CliClient/locales/ar.po
Normal file
File diff suppressed because it is too large
Load Diff
@@ -125,9 +125,10 @@ msgstr "Marca un llistat de tasques pendents com a fet."
|
|||||||
msgid "Note is not a to-do: \"%s\""
|
msgid "Note is not a to-do: \"%s\""
|
||||||
msgstr "La nota no és un llistat de tasques pendents: «%s»"
|
msgstr "La nota no és un llistat de tasques pendents: «%s»"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Gestiona la configuració E2EE. Les ordres són «enable», «disable», "
|
"Gestiona la configuració E2EE. Les ordres són «enable», «disable», "
|
||||||
"«decrypt», «status» i «target-status»"
|
"«decrypt», «status» i «target-status»"
|
||||||
@@ -589,6 +590,20 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "S'està exportant a «%s» com a format «%s». Espereu..."
|
msgstr "S'està exportant a «%s» com a format «%s». Espereu..."
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "Títol del bloc de notes:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "Blocs de notes"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "S'està important des de «%s» com a format «%s». Espereu..."
|
msgstr "S'està important des de «%s» com a format «%s». Espereu..."
|
||||||
@@ -596,8 +611,8 @@ msgstr "S'està important des de «%s» com a format «%s». Espereu..."
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "Fitxer PDF"
|
msgstr "Fitxer PDF"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "Fitxer"
|
msgstr "Estat de la sincronització"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "Nota nova"
|
msgstr "Nota nova"
|
||||||
@@ -608,14 +623,43 @@ msgstr "Llistat de tasques pendents nou"
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "Bloc de notes nou"
|
msgstr "Bloc de notes nou"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr "Imprimeix"
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Opcions generals"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr "Opcions del xifratge"
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr "Opcions del desa-retalls de webs"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "Fitxer"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "Quant al Joplin"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr "Comprova les actualitzacions..."
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "Importació"
|
msgstr "Importació"
|
||||||
|
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "Exportació"
|
msgstr "Exportació"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr "Imprimeix"
|
msgstr "Sincronitza"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -624,7 +668,8 @@ msgstr "Amaga %s"
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Surt"
|
msgstr "Surt"
|
||||||
|
|
||||||
msgid "Edit"
|
#, fuzzy
|
||||||
|
msgid "&Edit"
|
||||||
msgstr "Edita"
|
msgstr "Edita"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -646,6 +691,9 @@ msgstr ""
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -659,7 +707,8 @@ msgstr "Cerca a totes les notes"
|
|||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "Cerca a totes les notes"
|
msgstr "Cerca a totes les notes"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "&View"
|
||||||
msgstr "Visualització"
|
msgstr "Visualització"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -668,22 +717,16 @@ msgstr "Mostra o amaga la barra lateral"
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr "Canvia el disseny de l'editor"
|
msgstr "Canvia el disseny de l'editor"
|
||||||
|
|
||||||
msgid "Tools"
|
#, fuzzy
|
||||||
|
msgid "Focus"
|
||||||
|
msgstr "Vés al cos"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&Tools"
|
||||||
msgstr "Eines"
|
msgstr "Eines"
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
#, fuzzy
|
||||||
msgstr "Estat de la sincronització"
|
msgid "&Help"
|
||||||
|
|
||||||
msgid "Web clipper options"
|
|
||||||
msgstr "Opcions del desa-retalls de webs"
|
|
||||||
|
|
||||||
msgid "Encryption options"
|
|
||||||
msgstr "Opcions del xifratge"
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr "Opcions generals"
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr "Ajuda"
|
msgstr "Ajuda"
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -692,16 +735,6 @@ msgstr "Lloc web i documentació"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "Donatius"
|
msgstr "Donatius"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr "Comprova les actualitzacions..."
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "Quant al Joplin"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "Obre %s"
|
msgstr "Obre %s"
|
||||||
@@ -718,9 +751,21 @@ msgstr "Cancel·la"
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr "La versió actual està actualitzada"
|
msgstr "La versió actual està actualitzada"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr "Hi ha disponible una actualització. Voleu baixar-la ara?"
|
msgstr "Hi ha disponible una actualització. Voleu baixar-la ara?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Sí"
|
msgstr "Sí"
|
||||||
|
|
||||||
@@ -795,13 +840,16 @@ msgid ""
|
|||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
|
||||||
msgstr "Comprova la configuració de la sincronització"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr "Les notes i la configuració es desen a: %s"
|
msgstr "Les notes i la configuració es desen a: %s"
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Comprova la configuració de la sincronització"
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -896,6 +944,10 @@ msgstr "Estat"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "El xifratge és:"
|
msgstr "El xifratge és:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Ús: %s"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Enrere"
|
msgstr "Enrere"
|
||||||
|
|
||||||
@@ -946,36 +998,6 @@ msgstr "Alguns elements no s'han pogut desxifrar."
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "Establiu la contrasenya"
|
msgstr "Establiu la contrasenya"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "Afegeix o suprimeix etiquetes"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "Copia"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "Alterna entre el tipus nota i tasques pendents"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "Alterna entre el tipus nota i tasques pendents"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "Alterna entre el tipus nota i tasques pendents"
|
|
||||||
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr "Copia l'enllaç Markdown"
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "Suprimeix"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "Voleu suprimir les notes?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr "No hi ha cap nota aquí. Creeu-ne una fent clic a «Nota nova»."
|
msgstr "No hi ha cap nota aquí. Creeu-ne una fent clic a «Nota nova»."
|
||||||
|
|
||||||
@@ -1025,6 +1047,9 @@ msgstr ""
|
|||||||
"Aquesta nota no té contingut. Feu clic a «%s» per a anar a l'editor i "
|
"Aquesta nota no té contingut. Feu clic a «%s» per a anar a l'editor i "
|
||||||
"modificar-la."
|
"modificar-la."
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1112,18 +1137,28 @@ msgstr "Opcions de xifratge"
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Opcions del desa-retalls"
|
msgstr "Opcions del desa-retalls"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, fuzzy, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr ""
|
||||||
|
"Voleu suprimir el bloc de notes? També se suprimiran tots els sub-blocs "
|
||||||
|
"d'aquest bloc de notes."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
msgstr "Voleu suprimir aquesta etiqueta de totes les notes?"
|
msgstr "Voleu suprimir aquesta etiqueta de totes les notes?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "Voleu suprimir aquesta cerca de la barra laterla?"
|
msgstr "Voleu suprimir aquesta cerca de la barra laterla?"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Suprimeix"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Canvia el nom"
|
msgstr "Canvia el nom"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "Sincronitza"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "Blocs de notes"
|
msgstr "Blocs de notes"
|
||||||
|
|
||||||
@@ -1138,6 +1173,47 @@ msgstr "Recursos: %d."
|
|||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr "Seleccioneu on s'hauria d'exportar l'estat de la sincronització"
|
msgstr "Seleccioneu on s'hauria d'exportar l'estat de la sincronització"
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "Afegeix o suprimeix etiquetes"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "Surt de l'aplicació"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "Copia"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "Alterna entre el tipus nota i tasques pendents"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "Alterna entre el tipus nota i tasques pendents"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "Alterna entre el tipus nota i tasques pendents"
|
||||||
|
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr "Copia l'enllaç Markdown"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "Voleu suprimir les notes?"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "Voleu suprimir aquestes notes?"
|
||||||
|
|
||||||
|
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 ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "Ús: %s"
|
msgstr "Ús: %s"
|
||||||
@@ -1256,6 +1332,12 @@ msgstr "Xifrat"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "Els elements xifrats no es poden modificar"
|
msgstr "Els elements xifrats no es poden modificar"
|
||||||
|
|
||||||
|
msgid "title"
|
||||||
|
msgstr "títol"
|
||||||
|
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "data d'actualització"
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "Conflictes"
|
msgstr "Conflictes"
|
||||||
|
|
||||||
@@ -1266,12 +1348,6 @@ msgstr "No es pot moure el bloc de notes a aquesta ubicació"
|
|||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
msgstr "Els blocs de notes no poden tenir el nom «%s», és un títol reservat."
|
msgstr "Els blocs de notes no poden tenir el nom «%s», és un títol reservat."
|
||||||
|
|
||||||
msgid "title"
|
|
||||||
msgstr "títol"
|
|
||||||
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "data d'actualització"
|
|
||||||
|
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "data de creació"
|
msgstr "data de creació"
|
||||||
|
|
||||||
@@ -1286,6 +1362,13 @@ msgstr "No es pot copiar la nota al bloc de notes «%s»"
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "No es pot moure la nota al bloc de notes «%s»"
|
msgstr "No es pot moure la nota al bloc de notes «%s»"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Llengua"
|
msgstr "Llengua"
|
||||||
|
|
||||||
@@ -1316,6 +1399,10 @@ msgstr "Ordena les notes per"
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "Ordre invers"
|
msgstr "Ordre invers"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "Ordena les notes per"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "Desa la geolocalització a les notes"
|
msgstr "Desa la geolocalització a les notes"
|
||||||
|
|
||||||
@@ -1331,6 +1418,43 @@ msgstr "Vés al cos"
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "En crear una nota:"
|
msgstr "En crear una nota:"
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr "Activa el xifratge"
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr "Mostra la icona a la safata"
|
msgstr "Mostra la icona a la safata"
|
||||||
|
|
||||||
@@ -1367,6 +1491,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "Actualitza automàticament l'aplicació"
|
msgstr "Actualitza automàticament l'aplicació"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "Interval de sincronització"
|
msgstr "Interval de sincronització"
|
||||||
|
|
||||||
@@ -1410,23 +1541,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr "Directori on es farà la sincronització (camí absolut)"
|
msgstr "Directori on es farà la sincronització (camí absolut)"
|
||||||
|
|
||||||
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»."
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr "URL del Nextcloud WebDAV"
|
msgstr "URL del Nextcloud WebDAV"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr "Nom d'usuari del Nextcloud"
|
msgstr "Nom d'usuari del Nextcloud"
|
||||||
|
|
||||||
@@ -1459,6 +1576,28 @@ msgstr ""
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "El valor de l'opció no és vàlid: «%s». Els valors possibles són: %s."
|
msgstr "El valor de l'opció no és vàlid: «%s». Els valors possibles són: %s."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Opcions generals"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "Estat de la sincronització"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "Blocs de notes"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "Surt de l'aplicació"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1479,6 +1618,9 @@ msgstr "Fitxer d'exportació de l'Evernote"
|
|||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr "Directori d'exportació del Joplin"
|
msgstr "Directori d'exportació del Joplin"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Fitxer"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Directori"
|
msgstr "Directori"
|
||||||
|
|
||||||
@@ -1665,9 +1807,20 @@ msgstr ""
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr "Lloc web del Joplin"
|
msgstr "Lloc web del Joplin"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "Per suprimir: %d"
|
||||||
|
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Inicia sessió amb Dropbox"
|
msgstr "Inicia sessió amb Dropbox"
|
||||||
|
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr "Clau mestra %s"
|
msgstr "Clau mestra %s"
|
||||||
@@ -1751,6 +1904,9 @@ msgstr "Mostra-ho al mapa"
|
|||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Edita"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Suprimeix el bloc de notes"
|
msgstr "Suprimeix el bloc de notes"
|
||||||
|
|
||||||
@@ -1774,6 +1930,21 @@ msgstr ""
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "Benvingut"
|
msgstr "Benvingut"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "Aquesta nota s'ha modificat:"
|
||||||
|
|
||||||
|
#~ 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."
|
#~ msgid "State: %s."
|
||||||
#~ msgstr "Estat: %s"
|
#~ msgstr "Estat: %s"
|
||||||
|
|
||||||
|
|||||||
@@ -124,9 +124,10 @@ msgstr "Označí to-do jako hotové."
|
|||||||
msgid "Note is not a to-do: \"%s\""
|
msgid "Note is not a to-do: \"%s\""
|
||||||
msgstr "Poznámka není to-do: \"%s\""
|
msgstr "Poznámka není to-do: \"%s\""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nastavuje šifrování. Příkazy jsou `enable` (zapnout), `disable` (vypnout), "
|
"Nastavuje šifrování. Příkazy jsou `enable` (zapnout), `disable` (vypnout), "
|
||||||
"`decrypt` (dešifrovat), `status` (stav) a `target-status` (stav v cíli "
|
"`decrypt` (dešifrovat), `status` (stav) a `target-status` (stav v cíli "
|
||||||
@@ -571,6 +572,20 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Exportuji do \"%s\" jako formát \"%s\". Chvíli strpení..."
|
msgstr "Exportuji do \"%s\" jako formát \"%s\". Chvíli strpení..."
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "Název zápisníku:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "Zápisníky"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Importuji z \"%s\" jako formát \"%s\". Chvíli strpení..."
|
msgstr "Importuji z \"%s\" jako formát \"%s\". Chvíli strpení..."
|
||||||
@@ -578,8 +593,8 @@ msgstr "Importuji z \"%s\" jako formát \"%s\". Chvíli strpení..."
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "PDF soubor"
|
msgstr "PDF soubor"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "Soubor"
|
msgstr "Stav synchronizace"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "Nová poznámka"
|
msgstr "Nová poznámka"
|
||||||
@@ -590,14 +605,43 @@ msgstr "Nové to-do"
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "Nový zápisník"
|
msgstr "Nový zápisník"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr "Tisk"
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Obecná nastavení"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr "Nastavení šifrování"
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "Soubor"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "O aplikaci Joplin"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr "Zkontrolovat updaty..."
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "Import"
|
msgstr "Import"
|
||||||
|
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "Export"
|
msgstr "Export"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr "Tisk"
|
msgstr "Synchronizovat"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -606,7 +650,8 @@ msgstr "Schovat %s"
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Ukončit"
|
msgstr "Ukončit"
|
||||||
|
|
||||||
msgid "Edit"
|
#, fuzzy
|
||||||
|
msgid "&Edit"
|
||||||
msgstr "Upravit"
|
msgstr "Upravit"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -628,6 +673,9 @@ msgstr ""
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -641,7 +689,8 @@ msgstr "Hledat ve všech poznámkách"
|
|||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "Hledat ve všech poznámkách"
|
msgstr "Hledat ve všech poznámkách"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "&View"
|
||||||
msgstr "Zobrazit"
|
msgstr "Zobrazit"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -650,22 +699,16 @@ msgstr ""
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr "Změňit layout editoru"
|
msgstr "Změňit layout editoru"
|
||||||
|
|
||||||
msgid "Tools"
|
#, fuzzy
|
||||||
|
msgid "Focus"
|
||||||
|
msgstr "Vybrat text poznámky"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&Tools"
|
||||||
msgstr "Nástroje"
|
msgstr "Nástroje"
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
#, fuzzy
|
||||||
msgstr "Stav synchronizace"
|
msgid "&Help"
|
||||||
|
|
||||||
msgid "Web clipper options"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Encryption options"
|
|
||||||
msgstr "Nastavení šifrování"
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr "Obecná nastavení"
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr "Nápověda"
|
msgstr "Nápověda"
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -674,16 +717,6 @@ msgstr "Web a dokumentace"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "Přispět"
|
msgstr "Přispět"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr "Zkontrolovat updaty..."
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "O aplikaci Joplin"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "Otevřít %s"
|
msgstr "Otevřít %s"
|
||||||
@@ -700,9 +733,21 @@ msgstr "Zrušit"
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr "Současná verze je aktuální."
|
msgstr "Současná verze je aktuální."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr "Je k dispozici update, chcete jej stáhnout?"
|
msgstr "Je k dispozici update, chcete jej stáhnout?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Ano"
|
msgstr "Ano"
|
||||||
|
|
||||||
@@ -770,13 +815,16 @@ msgid ""
|
|||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
|
||||||
msgstr "Zkontrolujte nastavení synchronizace"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr "Poznámky a nastavení uloženo v: %s"
|
msgstr "Poznámky a nastavení uloženo v: %s"
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Zkontrolujte nastavení synchronizace"
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -866,6 +914,10 @@ msgstr "Status"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "Šifrování je:"
|
msgstr "Šifrování je:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Použití: %s"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Zpět"
|
msgstr "Zpět"
|
||||||
|
|
||||||
@@ -918,37 +970,6 @@ msgstr "Některé položky nelze rozšifrovat."
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "Nastavit heslo"
|
msgstr "Nastavit heslo"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "Přidat či odebrat tagy"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "Kopírovat"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "Přepnout mezi poznámkou a to-do"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "Přepnout mezi poznámkou a to-do"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "Přepnout mezi poznámkou a to-do"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr "Markdown"
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "Smazat"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "Smazat poznámky?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr "Žádné poznámky. Vytvořte jednu kliknutím na \"Nová poznámka\"."
|
msgstr "Žádné poznámky. Vytvořte jednu kliknutím na \"Nová poznámka\"."
|
||||||
|
|
||||||
@@ -994,6 +1015,9 @@ msgid ""
|
|||||||
"note."
|
"note."
|
||||||
msgstr "Tato poznámka je prázdný. Klikněte na \"%s\" pro otevření editoru."
|
msgstr "Tato poznámka je prázdný. Klikněte na \"%s\" pro otevření editoru."
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1082,18 +1106,26 @@ msgstr "Nastavení šifrování"
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Obecná nastavení"
|
msgstr "Obecná nastavení"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, fuzzy, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr "Smazat zápisník? Budou smazány i všechny poznámky v něm obsažené."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
msgstr "Odebrat tento tag ze všech poznámek?"
|
msgstr "Odebrat tento tag ze všech poznámek?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "Smazat tento hledaný výraz z panelu?"
|
msgstr "Smazat tento hledaný výraz z panelu?"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Smazat"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Přejmenovat"
|
msgstr "Přejmenovat"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "Synchronizovat"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "Zápisníky"
|
msgstr "Zápisníky"
|
||||||
|
|
||||||
@@ -1108,6 +1140,48 @@ msgstr "Zdroje: %d."
|
|||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr "Prosím vyberte, kam má být stav synchronizace exportován"
|
msgstr "Prosím vyberte, kam má být stav synchronizace exportován"
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "Přidat či odebrat tagy"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "Ukončí aplikaci."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "Kopírovat"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "Přepnout mezi poznámkou a to-do"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "Přepnout mezi poznámkou a to-do"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "Přepnout mezi poznámkou a to-do"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr "Markdown"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "Smazat poznámky?"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "Smazat tyto poznámky?"
|
||||||
|
|
||||||
|
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 ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "Použití: %s"
|
msgstr "Použití: %s"
|
||||||
@@ -1226,6 +1300,14 @@ msgstr "Zašifrováno"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "Nelze editovat zašifrovanou položku"
|
msgstr "Nelze editovat zašifrovanou položku"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "title"
|
||||||
|
msgstr "Bez názvu"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "Upraveno: %d."
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "Konflikty"
|
msgstr "Konflikty"
|
||||||
|
|
||||||
@@ -1237,14 +1319,6 @@ msgstr "Poznámku nelze přesunout do zápisníku \"%s\""
|
|||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
msgstr "Zápisník se nemůže jmenovat \"%s\", tento název je rezervován."
|
msgstr "Zápisník se nemůže jmenovat \"%s\", tento název je rezervován."
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "title"
|
|
||||||
msgstr "Bez názvu"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "Upraveno: %d."
|
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "Vytvořeno: %d."
|
msgstr "Vytvořeno: %d."
|
||||||
@@ -1260,6 +1334,13 @@ msgstr "Poznámku \"%s\" nelze zkopírovat do zápisníku"
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "Poznámku nelze přesunout do zápisníku \"%s\""
|
msgstr "Poznámku nelze přesunout do zápisníku \"%s\""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Jazyk"
|
msgstr "Jazyk"
|
||||||
|
|
||||||
@@ -1291,6 +1372,10 @@ msgstr "Řadit poznámky podle"
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "Řadit od konce"
|
msgstr "Řadit od konce"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "Řadit poznámky podle"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "Ukládat k poznámkám informace o poloze (geolokaci)"
|
msgstr "Ukládat k poznámkám informace o poloze (geolokaci)"
|
||||||
|
|
||||||
@@ -1306,6 +1391,43 @@ msgstr "Vybrat text poznámky"
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "Při vytváření nové poznámky:"
|
msgstr "Při vytváření nové poznámky:"
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr "Zapnout šifrování"
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr "Zobrazovat ikonu v panelu"
|
msgstr "Zobrazovat ikonu v panelu"
|
||||||
|
|
||||||
@@ -1342,6 +1464,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "Automaticky updatovat aplikaci"
|
msgstr "Automaticky updatovat aplikaci"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "Interval synchronizace"
|
msgstr "Interval synchronizace"
|
||||||
|
|
||||||
@@ -1385,23 +1514,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr "Složka k synchronizaci (absolutní cesta)"
|
msgstr "Složka k synchronizaci (absolutní cesta)"
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
"Cesta ke složce, se kterou synchronizovat, pokud je cílem synchronizace "
|
|
||||||
"místní souborový systém. Viz `sync.target`."
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr "Nextcloud WebDAV URL"
|
msgstr "Nextcloud WebDAV URL"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr "Nextcloud uživatelské jméno"
|
msgstr "Nextcloud uživatelské jméno"
|
||||||
|
|
||||||
@@ -1434,6 +1549,28 @@ msgstr ""
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "Neplatná hodnota: \"%s\". Přípustné hodnoty jsou: %s."
|
msgstr "Neplatná hodnota: \"%s\". Přípustné hodnoty jsou: %s."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Obecná nastavení"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "Stav synchronizace"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "Zápisníky"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "Ukončí aplikaci."
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1454,6 +1591,9 @@ msgstr "Soubor Evernote Exportu"
|
|||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr "Složka pro export"
|
msgstr "Složka pro export"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Soubor"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Adresář"
|
msgstr "Adresář"
|
||||||
|
|
||||||
@@ -1634,10 +1774,21 @@ msgstr ""
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr "Web Joplinu"
|
msgstr "Web Joplinu"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "K smazání: %d"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Přihlásit se pomocí OneDrive"
|
msgstr "Přihlásit se pomocí OneDrive"
|
||||||
|
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr "Master heslo %s"
|
msgstr "Master heslo %s"
|
||||||
@@ -1720,6 +1871,9 @@ msgstr "Zobrazit na map+"
|
|||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Upravit"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Smazat zápisník"
|
msgstr "Smazat zápisník"
|
||||||
|
|
||||||
@@ -1742,6 +1896,21 @@ msgstr "Nemáte žádný zápisník. Vytvořte jeden kliknutím na tlačítko (+
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "Vítejte"
|
msgstr "Vítejte"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "Poznámka byla upravena:"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||||
|
#~ "See `sync.target`."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "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."
|
#~ msgid "State: %s."
|
||||||
#~ msgstr "Stav: %s."
|
#~ msgstr "Stav: %s."
|
||||||
|
|
||||||
|
|||||||
@@ -123,9 +123,10 @@ msgstr "Markerer en opgave som udført."
|
|||||||
msgid "Note is not a to-do: \"%s\""
|
msgid "Note is not a to-do: \"%s\""
|
||||||
msgstr "Noten er ikke en opgave: \"%s\""
|
msgstr "Noten er ikke en opgave: \"%s\""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Udfører E2EE konfiguration. Kommandoer er `enable`(aktiver), "
|
"Udfører E2EE konfiguration. Kommandoer er `enable`(aktiver), "
|
||||||
"`disable`(sluk), `decrypt`(dekrypter), `status` og `target-status` (modtager-"
|
"`disable`(sluk), `decrypt`(dekrypter), `status` og `target-status` (modtager-"
|
||||||
@@ -576,6 +577,20 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Eksporterer til \"%s\" som \"%s\"-format. Vent venligst..."
|
msgstr "Eksporterer til \"%s\" som \"%s\"-format. Vent venligst..."
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "Notesbogs titel:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "Notesbøger"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Importerer fra \"%s\" som \"%s\"-format. Vent venligst..."
|
msgstr "Importerer fra \"%s\" som \"%s\"-format. Vent venligst..."
|
||||||
@@ -583,8 +598,8 @@ msgstr "Importerer fra \"%s\" som \"%s\"-format. Vent venligst..."
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "PDF fil"
|
msgstr "PDF fil"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "Fil"
|
msgstr "Synkroniserings status"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "Ny note"
|
msgstr "Ny note"
|
||||||
@@ -595,14 +610,43 @@ msgstr "Ny opgave"
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "Ny notesbog"
|
msgstr "Ny notesbog"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr "Udskriv"
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Generelle indstillinger"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr "Krypterings muligheder"
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "Fil"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "Om Joplin"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr "Checker om der er opdateringer.."
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "Importer"
|
msgstr "Importer"
|
||||||
|
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "Eksporter"
|
msgstr "Eksporter"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr "Udskriv"
|
msgstr "Synkroniser"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -611,7 +655,8 @@ msgstr "Skjul %s"
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Afslut"
|
msgstr "Afslut"
|
||||||
|
|
||||||
msgid "Edit"
|
#, fuzzy
|
||||||
|
msgid "&Edit"
|
||||||
msgstr "Ret"
|
msgstr "Ret"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -633,6 +678,9 @@ msgstr ""
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -646,7 +694,8 @@ msgstr "Søg i alle noter"
|
|||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "Søg i alle noter"
|
msgstr "Søg i alle noter"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "&View"
|
||||||
msgstr "Vis"
|
msgstr "Vis"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -655,22 +704,16 @@ msgstr ""
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr "Skift editor layout"
|
msgstr "Skift editor layout"
|
||||||
|
|
||||||
msgid "Tools"
|
#, fuzzy
|
||||||
|
msgid "Focus"
|
||||||
|
msgstr "Fokuser på brødtekst"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&Tools"
|
||||||
msgstr "Værktøjer"
|
msgstr "Værktøjer"
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
#, fuzzy
|
||||||
msgstr "Synkroniserings status"
|
msgid "&Help"
|
||||||
|
|
||||||
msgid "Web clipper options"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Encryption options"
|
|
||||||
msgstr "Krypterings muligheder"
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr "Generelle indstillinger"
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr "Hjælp"
|
msgstr "Hjælp"
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -679,16 +722,6 @@ msgstr "Joplins hjemmeside og dokumentation"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "Giv en donation"
|
msgstr "Giv en donation"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr "Checker om der er opdateringer.."
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "Om Joplin"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "Åben %s"
|
msgstr "Åben %s"
|
||||||
@@ -705,9 +738,21 @@ msgstr "Fortryd"
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr "Aktuel version er nyeste."
|
msgstr "Aktuel version er nyeste."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr "Opdatering er til rådighed, vil du hente den nu?"
|
msgstr "Opdatering er til rådighed, vil du hente den nu?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Ja"
|
msgstr "Ja"
|
||||||
|
|
||||||
@@ -775,13 +820,16 @@ msgid ""
|
|||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
|
||||||
msgstr "Check synkroniserings Indstillinger"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr "Noter og indstillinger er gemt i: %s"
|
msgstr "Noter og indstillinger er gemt i: %s"
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Check synkroniserings Indstillinger"
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -875,6 +923,10 @@ msgstr "Status"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "Kryptering er:"
|
msgstr "Kryptering er:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Forbrug: %s"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Tilbage"
|
msgstr "Tilbage"
|
||||||
|
|
||||||
@@ -927,37 +979,6 @@ msgstr "Nogle emner kan ikke krypteres."
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "Indstil kodeord"
|
msgstr "Indstil kodeord"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "Tilføj eller slet mærker"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "Kopier"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "Skift mellem note- og opgave type"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "Skift mellem note- og opgave type"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "Skift mellem note- og opgave type"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr "Markdown"
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "Slet"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "Slet noter?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr "Der er ingen noter her. Opret en ved at klikke på \"Ny note\"."
|
msgstr "Der er ingen noter her. Opret en ved at klikke på \"Ny note\"."
|
||||||
|
|
||||||
@@ -1003,6 +1024,9 @@ msgid ""
|
|||||||
"note."
|
"note."
|
||||||
msgstr "Denne note er tom. Klik på \"%s\" for at starte editor og rette noten."
|
msgstr "Denne note er tom. Klik på \"%s\" for at starte editor og rette noten."
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1091,18 +1115,26 @@ msgstr "Krypterings indstillinger"
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Generelle indstillinger"
|
msgstr "Generelle indstillinger"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, fuzzy, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr "Slet notesbog? Alle noter i notesbogen bliver også slettet."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
msgstr "Slet denne markering fra alle noter?"
|
msgstr "Slet denne markering fra alle noter?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "Slet denne søgning fra sidebjælke?"
|
msgstr "Slet denne søgning fra sidebjælke?"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Slet"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Omdøb"
|
msgstr "Omdøb"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "Synkroniser"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "Notesbøger"
|
msgstr "Notesbøger"
|
||||||
|
|
||||||
@@ -1117,6 +1149,48 @@ msgstr "Ressourcer: %d."
|
|||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr "Vælg hvor sync status skal eksporteres til"
|
msgstr "Vælg hvor sync status skal eksporteres til"
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "Tilføj eller slet mærker"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "Forlad/luk program."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "Kopier"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "Skift mellem note- og opgave type"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "Skift mellem note- og opgave type"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "Skift mellem note- og opgave type"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr "Markdown"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "Slet noter?"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "Slet disse noter?"
|
||||||
|
|
||||||
|
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 ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "Forbrug: %s"
|
msgstr "Forbrug: %s"
|
||||||
@@ -1235,6 +1309,14 @@ msgstr "Krypteret"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "Krypteret emner kan ikke rettes"
|
msgstr "Krypteret emner kan ikke rettes"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "title"
|
||||||
|
msgstr "Samlet"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "Opdateret %d."
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "Konflikter"
|
msgstr "Konflikter"
|
||||||
|
|
||||||
@@ -1246,14 +1328,6 @@ msgstr "Kan ikke flytte note til \"%s\" notesbog"
|
|||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
msgstr "Notesbøger kan ikke få navnet \"%s\", da det er en beskyttet titel."
|
msgstr "Notesbøger kan ikke få navnet \"%s\", da det er en beskyttet titel."
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "title"
|
|
||||||
msgstr "Samlet"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "Opdateret %d."
|
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "Oprettet: %d."
|
msgstr "Oprettet: %d."
|
||||||
@@ -1269,6 +1343,13 @@ msgstr "Kan ikke kopiere note til \"%s\" notesbog"
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "Kan ikke flytte note til \"%s\" notesbog"
|
msgstr "Kan ikke flytte note til \"%s\" notesbog"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Sprog"
|
msgstr "Sprog"
|
||||||
|
|
||||||
@@ -1300,6 +1381,10 @@ msgstr "Sorter noter efter"
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "Modsat sorterings orden"
|
msgstr "Modsat sorterings orden"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "Sorter noter efter"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "Gem geo-lokation i noter"
|
msgstr "Gem geo-lokation i noter"
|
||||||
|
|
||||||
@@ -1315,6 +1400,43 @@ msgstr "Fokuser på brødtekst"
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "Ved oprettelse af ny note:"
|
msgstr "Ved oprettelse af ny note:"
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr "Start kryptering"
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr "Vis ikon på bundbjælke"
|
msgstr "Vis ikon på bundbjælke"
|
||||||
|
|
||||||
@@ -1351,6 +1473,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "Automatisk app update"
|
msgstr "Automatisk app update"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "Synkroniserings interval"
|
msgstr "Synkroniserings interval"
|
||||||
|
|
||||||
@@ -1394,23 +1523,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr "Mappe der skal synkroniseres med (absolut sti)"
|
msgstr "Mappe der skal synkroniseres med (absolut sti)"
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
"Sti til synkronisering, når filsystem synkronisering er slået til. Se `sync."
|
|
||||||
"target`."
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr "Nextcloud WebDAV URL"
|
msgstr "Nextcloud WebDAV URL"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr "Nextcloud brugernavn"
|
msgstr "Nextcloud brugernavn"
|
||||||
|
|
||||||
@@ -1443,6 +1558,28 @@ msgstr ""
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "Ulovlig værdi: \"%s\". Mulige valg er: %s."
|
msgstr "Ulovlig værdi: \"%s\". Mulige valg er: %s."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Generelle indstillinger"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "Synkroniserings status"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "Notesbøger"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "Forlad/luk program."
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1463,6 +1600,9 @@ msgstr "Evernote eksport fil"
|
|||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr "Joplin eksport mappe"
|
msgstr "Joplin eksport mappe"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Fil"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Indeks"
|
msgstr "Indeks"
|
||||||
|
|
||||||
@@ -1643,10 +1783,21 @@ msgstr ""
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr "Joplin hjemmeside"
|
msgstr "Joplin hjemmeside"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "Til sletning: %d"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Log på med OneDrive"
|
msgstr "Log på med OneDrive"
|
||||||
|
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr "Hoved nøgle %s"
|
msgstr "Hoved nøgle %s"
|
||||||
@@ -1729,6 +1880,9 @@ msgstr "Vis på kort"
|
|||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Ret"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Slet notesbog"
|
msgstr "Slet notesbog"
|
||||||
|
|
||||||
@@ -1751,6 +1905,21 @@ msgstr "Du har ingen notesbøger. Opret en ved at klikke på (+) knappen."
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "Velkommen"
|
msgstr "Velkommen"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "Denne note er ændret:"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||||
|
#~ "See `sync.target`."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "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."
|
#~ msgid "State: %s."
|
||||||
#~ msgstr "Tilstand: %s."
|
#~ msgstr "Tilstand: %s."
|
||||||
|
|
||||||
|
|||||||
@@ -13,12 +13,13 @@ msgstr ""
|
|||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Poedit 2.1.1\n"
|
"X-Generator: Poedit 2.2.1\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
msgid "To delete a tag, untag the associated notes."
|
msgid "To delete a tag, untag the associated notes."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Um ein Tag zu löschen, entferne es bei allen damit verbundenen Notizen."
|
"Um ein Schlagwort zu löschen, entferne es bei allen damit verbundenen "
|
||||||
|
"Notizen."
|
||||||
|
|
||||||
msgid "Please select the note or notebook to be deleted first."
|
msgid "Please select the note or notebook to be deleted first."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -130,7 +131,7 @@ msgstr "Notiz ist kein To-Do: \"%s\""
|
|||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Verwaltet die E2EE-Konfiguration. Die Befehle lauten `enable`, `disable`, "
|
"Verwaltet die E2EE-Konfiguration. Die Befehle lauten `enable`, `disable`, "
|
||||||
"`decrypt`, `status` und `target-status`."
|
"`decrypt`, `status` und `target-status`."
|
||||||
@@ -472,10 +473,10 @@ msgid "Starting synchronisation..."
|
|||||||
msgstr "Starte Synchronisation..."
|
msgstr "Starte Synchronisation..."
|
||||||
|
|
||||||
msgid "Downloading resources..."
|
msgid "Downloading resources..."
|
||||||
msgstr ""
|
msgstr "Lade Anhänge herunter..."
|
||||||
|
|
||||||
msgid "Cancelling... Please wait."
|
msgid "Cancelling... Please wait."
|
||||||
msgstr "Abbrechen… Bitte warten."
|
msgstr "Abbrechen... Bitte warten."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"<tag-command> can be \"add\", \"remove\" or \"list\" to assign or remove "
|
"<tag-command> can be \"add\", \"remove\" or \"list\" to assign or remove "
|
||||||
@@ -598,15 +599,27 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Exportiere „%s“ ins „%s“ Format. Bitte warten..."
|
msgstr "Exportiere „%s“ ins „%s“ Format. Bitte warten..."
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr "Seitenleiste"
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr "Notizen-Liste"
|
||||||
|
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "Notiz Titel"
|
||||||
|
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "Notiz Text"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Importiere „%s“ ins „%s“ Format. Bitte warten…"
|
msgstr "Importiere „%s“ ins „%s“ Format. Bitte warten..."
|
||||||
|
|
||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "PDF-Datei"
|
msgstr "PDF-Datei"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "Datei"
|
msgstr "Status der Synchronisation"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "Neue Notiz"
|
msgstr "Neue Notiz"
|
||||||
@@ -617,14 +630,42 @@ msgstr "Neues To-Do"
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "Neues Notizbuch"
|
msgstr "Neues Notizbuch"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr "Drucken"
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Allgemeine Einstellungen"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr "Verschlüsselungsoptionen"
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr "Web-Clipper Optionen"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "&Datei"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "Über Joplin"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr "Einstellungen..."
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr "Überprüfe auf Aktualisierungen..."
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "Importieren"
|
msgstr "Importieren"
|
||||||
|
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "Exportieren"
|
msgstr "Exportieren"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr "Drucken"
|
msgstr "Synchronisieren"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -633,8 +674,8 @@ msgstr "%s ausblenden"
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Verlassen"
|
msgstr "Verlassen"
|
||||||
|
|
||||||
msgid "Edit"
|
msgid "&Edit"
|
||||||
msgstr "Bearbeiten"
|
msgstr "&Bearbeiten"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Kopieren"
|
msgstr "Kopieren"
|
||||||
@@ -654,6 +695,9 @@ msgstr "Fett"
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr "Kursiv"
|
msgstr "Kursiv"
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr "Link"
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr "Datum / Uhrzeit einfügen"
|
msgstr "Datum / Uhrzeit einfügen"
|
||||||
|
|
||||||
@@ -663,36 +707,26 @@ msgstr "Im externen Editor bearbeiten"
|
|||||||
msgid "Search in all the notes"
|
msgid "Search in all the notes"
|
||||||
msgstr "Alle Notizen durchsuchen"
|
msgstr "Alle Notizen durchsuchen"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "Alle Notizen durchsuchen"
|
msgstr "Aktuelle Notiz durchsuchen"
|
||||||
|
|
||||||
msgid "View"
|
msgid "&View"
|
||||||
msgstr "Ansicht"
|
msgstr "&Ansicht"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
msgstr "Seitenleiste ein/aus"
|
msgstr "Seitenleiste umschalten"
|
||||||
|
|
||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr "Editor-Layout umschalten"
|
msgstr "Editor-Layout umschalten"
|
||||||
|
|
||||||
msgid "Tools"
|
msgid "Focus"
|
||||||
msgstr "Werkzeuge"
|
msgstr "Fokus"
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
msgid "&Tools"
|
||||||
msgstr "Status der Synchronisation"
|
msgstr "&Werkzeuge"
|
||||||
|
|
||||||
msgid "Web clipper options"
|
msgid "&Help"
|
||||||
msgstr "Web-Clipper Optionen"
|
msgstr "&Hilfe"
|
||||||
|
|
||||||
msgid "Encryption options"
|
|
||||||
msgstr "Verschlüsselungsoptionen"
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr "Allgemeine Einstellungen"
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr "Hilfe"
|
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
msgstr "Webseite und Dokumentation"
|
msgstr "Webseite und Dokumentation"
|
||||||
@@ -700,16 +734,6 @@ msgstr "Webseite und Dokumentation"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "Spenden"
|
msgstr "Spenden"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr "Überprüfe auf Updates…"
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "Über Joplin"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "Öffne %s"
|
msgstr "Öffne %s"
|
||||||
@@ -724,10 +748,23 @@ msgid "Cancel"
|
|||||||
msgstr "Abbrechen"
|
msgstr "Abbrechen"
|
||||||
|
|
||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr "Die aktuelle Version ist up-to-date."
|
msgstr "Die aktuelle Version ist auf dem neuesten Stand."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr "%s (Vorabversion)"
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr "Es ist ein Update verfügbar. Soll es jetzt heruntergeladen werden?"
|
msgstr ""
|
||||||
|
"Es ist eine Aktualisierung verfügbar. Soll sie jetzt heruntergeladen werden?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr "Deine Version: %s"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr "Neue Version: %s"
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Ja"
|
msgstr "Ja"
|
||||||
@@ -736,7 +773,7 @@ msgid "No"
|
|||||||
msgstr "Nein"
|
msgstr "Nein"
|
||||||
|
|
||||||
msgid "Token has been copied to the clipboard!"
|
msgid "Token has been copied to the clipboard!"
|
||||||
msgstr "Token wurde in die Zwischenablage kopiert."
|
msgstr "Token wurde in die Zwischenablage kopiert!"
|
||||||
|
|
||||||
msgid "The web clipper service is enabled and set to auto-start."
|
msgid "The web clipper service is enabled and set to auto-start."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -805,13 +842,16 @@ msgstr ""
|
|||||||
"Dieses Autorisierung-Token wird nur benötigt, um Drittanbieter-Anwendungen "
|
"Dieses Autorisierung-Token wird nur benötigt, um Drittanbieter-Anwendungen "
|
||||||
"Zugriff auf Joplin zu gewähren."
|
"Zugriff auf Joplin zu gewähren."
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
|
||||||
msgstr "Überprüfen der Synchronisationseinstellungen"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr "Notizen und Einstellungen werden gespeichert in: %s"
|
msgstr "Notizen und Einstellungen werden gespeichert in: %s"
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr "Durchsuche..."
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Überprüfen der Synchronisationseinstellungen"
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr "Anwenden"
|
msgstr "Anwenden"
|
||||||
|
|
||||||
@@ -883,7 +923,7 @@ msgstr ""
|
|||||||
"Notizbücher ursprünglich verschlüsselt wurden."
|
"Notizbücher ursprünglich verschlüsselt wurden."
|
||||||
|
|
||||||
msgid "Missing Master Keys"
|
msgid "Missing Master Keys"
|
||||||
msgstr "Fehlender Hauptschlüssel"
|
msgstr "Fehlende Hauptschlüssel"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"The master keys with these IDs are used to encrypt some of your items, "
|
"The master keys with these IDs are used to encrypt some of your items, "
|
||||||
@@ -905,6 +945,10 @@ msgstr "Status"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "Die Verschlüsselung ist:"
|
msgstr "Die Verschlüsselung ist:"
|
||||||
|
|
||||||
|
# 'Nutzung', 'Gebrauch', or 'Verwendung' - depends on the context
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Nutzung"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Zurück"
|
msgstr "Zurück"
|
||||||
|
|
||||||
@@ -957,34 +1001,6 @@ msgstr "Einige Objekte können nicht entschlüsselt werden."
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "Setze ein Passwort"
|
msgstr "Setze ein Passwort"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "Schlagwörter hinzufügen oder entfernen"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr "Duplizieren"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "%s kopieren"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "Zwischen Notiz und To-Do Typ wechseln"
|
|
||||||
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "Zu Notiz-Typ wechseln"
|
|
||||||
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "Zu To-Do-Typ wechseln"
|
|
||||||
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr "Markdown-Link kopieren"
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "Löschen"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "Notizen löschen?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Keine Notizen vorhanden. Erstelle eine, indem du auf \"Neue Notiz\" drückst."
|
"Keine Notizen vorhanden. Erstelle eine, indem du auf \"Neue Notiz\" drückst."
|
||||||
@@ -1023,6 +1039,7 @@ msgstr "Link-Adresse kopieren"
|
|||||||
|
|
||||||
msgid "This attachment is not downloaded or not decrypted yet."
|
msgid "This attachment is not downloaded or not decrypted yet."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Dieser Anhang wurde nicht heruntergeladen oder noch nicht entschlüsselt."
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported link or message: %s"
|
msgid "Unsupported link or message: %s"
|
||||||
@@ -1036,6 +1053,9 @@ msgstr ""
|
|||||||
"Diese Notiz hat keinen Inhalt. Klicke auf „%s“ um den Editor zu aktivieren "
|
"Diese Notiz hat keinen Inhalt. Klicke auf „%s“ um den Editor zu aktivieren "
|
||||||
"und die Notiz zu bearbeiten."
|
"und die Notiz zu bearbeiten."
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr "Nur eine Notiz kann gedruckt oder als PDF exportiert werden."
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr "Fetter Text"
|
msgstr "Fetter Text"
|
||||||
|
|
||||||
@@ -1122,18 +1142,29 @@ msgstr "Verschlüsselungsoptionen"
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Clipper-Einstellungen"
|
msgstr "Clipper-Einstellungen"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, javascript-format
|
||||||
msgstr "Dieses Schlagwort von allen Notizen entfernen?"
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr ""
|
||||||
|
"Notizbuch \"%s\" wirklich löschen?\n"
|
||||||
|
"\n"
|
||||||
|
"Alle Notizen und Unternotizen darin werden ebenfalls gelöscht."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
|
msgstr "Schlagwort \"%s\" von allen Notizen entfernen?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "Diese Suche von der Seitenleiste entfernen?"
|
msgstr "Diese Suche von der Seitenleiste entfernen?"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Löschen"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Umbenennen"
|
msgstr "Umbenennen"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "Synchronisieren"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "Notizbücher"
|
msgstr "Notizbücher"
|
||||||
|
|
||||||
@@ -1141,14 +1172,54 @@ msgstr "Notizbücher"
|
|||||||
msgid "Decrypting items: %d/%d"
|
msgid "Decrypting items: %d/%d"
|
||||||
msgstr "Entschlüsselte Objekte: %d/%d"
|
msgstr "Entschlüsselte Objekte: %d/%d"
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "Fetching resources: %d"
|
msgid "Fetching resources: %d"
|
||||||
msgstr "Anhänge: %d."
|
msgstr "Ressourcen abrufen: %d"
|
||||||
|
|
||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Bitte wähle aus, wohin der Synchronisations-Status exportiert werden soll"
|
"Bitte wähle aus, wohin der Synchronisations-Status exportiert werden soll"
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "Schlagwörter hinzufügen oder entfernen"
|
||||||
|
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "Duplizieren"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "%s - Kopieren"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "Zwischen Notiz und To-Do Typ wechseln"
|
||||||
|
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "Zu Notiz-Typ wechseln"
|
||||||
|
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "Zu To-Do-Typ wechseln"
|
||||||
|
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr "Markdown-Link kopieren"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "Notiz \"%s\" löschen?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "Sollen diese %d Notizen gelöscht werden?"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Type a note title to jump to it. Or type # followed by a tag name, or @ "
|
||||||
|
"followed by a notebook name."
|
||||||
|
msgstr ""
|
||||||
|
"Tippe einen Notiz Titel um hinzuspringen. Oder tippe # gefolgt von einem "
|
||||||
|
"Schlagwort, oder @ gefolgt von einem Notizbuch-Namen."
|
||||||
|
|
||||||
|
msgid "Goto Anything..."
|
||||||
|
msgstr "Gehe zu..."
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "Nutzung: %s"
|
msgstr "Nutzung: %s"
|
||||||
@@ -1267,6 +1338,12 @@ msgstr "Verschlüsselt"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "Verschlüsselte Objekte können nicht verändert werden"
|
msgstr "Verschlüsselte Objekte können nicht verändert werden"
|
||||||
|
|
||||||
|
msgid "title"
|
||||||
|
msgstr "Titel"
|
||||||
|
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "Aktualisierungsdatum"
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "Konflikte"
|
msgstr "Konflikte"
|
||||||
|
|
||||||
@@ -1278,12 +1355,6 @@ msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Notizbuch kann nicht \"%s\" genannt werden. Dieser Name ist reserviert.."
|
"Notizbuch kann nicht \"%s\" genannt werden. Dieser Name ist reserviert.."
|
||||||
|
|
||||||
msgid "title"
|
|
||||||
msgstr "Titel"
|
|
||||||
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "Aktualisierungsdatum"
|
|
||||||
|
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "Erstelldatum"
|
msgstr "Erstelldatum"
|
||||||
|
|
||||||
@@ -1298,6 +1369,16 @@ msgstr "Kann Notiz nicht zu Notizbuch \"%s\" kopieren"
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "Kann Notiz nicht zu Notizbuch \"%s\" verschieben"
|
msgstr "Kann Notiz nicht zu Notizbuch \"%s\" verschieben"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
"Achtung: Stelle sicher, dass Du vor der Synchronisation alle Inhalte an den "
|
||||||
|
"neuen Ablageort kopiert hast, sonst werden alle Dateien gelöscht! Lies auch "
|
||||||
|
"die FAQs hierzu: %s"
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Sprache"
|
msgstr "Sprache"
|
||||||
|
|
||||||
@@ -1328,6 +1409,9 @@ msgstr "Sortiere Notizen nach"
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "Sortierreihenfolge umdrehen"
|
msgstr "Sortierreihenfolge umdrehen"
|
||||||
|
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "Sortiere Notizbücher nach"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "Momentanen Standort zusammen mit Notizen speichern"
|
msgstr "Momentanen Standort zusammen mit Notizen speichern"
|
||||||
|
|
||||||
@@ -1343,6 +1427,42 @@ msgstr "Fokussiere Inhalt"
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "Wenn eine neue Notiz erstellt wird:"
|
msgstr "Wenn eine neue Notiz erstellt wird:"
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr "Aktiviere weiche Zeilenumbrüche"
|
||||||
|
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr "Aktiviere mathematische Ausdrücke"
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr "Aktiviere ==mark== Syntax"
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr "Aktiviere Fußnoten"
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr "Aktiviere Inhaltsverzeichnis Erweiterung"
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr "Aktiviere ~sub~ Syntax"
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr "Aktiviere ^sup^ Syntax"
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr "Aktiviere deflist Syntax"
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr "Aktiviere abbreviation Syntax"
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr "Aktiviere markdown emoji"
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr "Aktiviere ++insert++ Syntax"
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr "Aktiviere multimarkdown Tabellen Erweiterung"
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr "Zeige Tray-Icon"
|
msgstr "Zeige Tray-Icon"
|
||||||
|
|
||||||
@@ -1354,6 +1474,9 @@ msgid ""
|
|||||||
"this setting so that your notes are constantly being synchronised, thus "
|
"this setting so that your notes are constantly being synchronised, thus "
|
||||||
"reducing the number of conflicts."
|
"reducing the number of conflicts."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Dadurch kann Joplin im Hintergrund laufen. Es wird empfohlen,diese "
|
||||||
|
"Einstellung zu aktivieren, damit deine Notizen ständig synchronisiertwerden "
|
||||||
|
"und somit die Anzahl der Konflikte reduziert wird."
|
||||||
|
|
||||||
msgid "Start application minimised in the tray icon"
|
msgid "Start application minimised in the tray icon"
|
||||||
msgstr "Starte die Anwendung minimiert im Tray"
|
msgstr "Starte die Anwendung minimiert im Tray"
|
||||||
@@ -1361,12 +1484,11 @@ msgstr "Starte die Anwendung minimiert im Tray"
|
|||||||
msgid "Global zoom percentage"
|
msgid "Global zoom percentage"
|
||||||
msgstr "Zoomstufe der Benutzeroberfläche"
|
msgstr "Zoomstufe der Benutzeroberfläche"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Editor font size"
|
msgid "Editor font size"
|
||||||
msgstr "Editor Schriftenfamilie"
|
msgstr "Schriftgröße im Editor"
|
||||||
|
|
||||||
msgid "Editor font family"
|
msgid "Editor font family"
|
||||||
msgstr "Editor Schriftenfamilie"
|
msgstr "Schriftfamilie im Editor"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"This must be *monospace* font or it will not work properly. If the font is "
|
"This must be *monospace* font or it will not work properly. If the font is "
|
||||||
@@ -1379,6 +1501,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "Die Applikation automatisch aktualisieren"
|
msgstr "Die Applikation automatisch aktualisieren"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr "Lade auch Vorabversionen herunter"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr "Weitere Informationen findest Du auf der Vorabversionsseite: %s"
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "Synchronisationsinterval"
|
msgstr "Synchronisationsinterval"
|
||||||
|
|
||||||
@@ -1421,26 +1550,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr "Verzeichnis mit dem synchronisiert werden soll (absoluter Pfad)"
|
msgstr "Verzeichnis mit dem synchronisiert werden soll (absoluter Pfad)"
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
"Der Pfad, mit dem synchronisiert werden soll, wenn die Dateisystem-"
|
|
||||||
"Synchronisation aktiviert ist. Siehe `sync.target`."
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr "Nextcloud WebDAV-URL"
|
msgstr "Nextcloud WebDAV-URL"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
"Achtung: Stelle sicher, dass Du vor der Synchronisation alle Inhalte an den "
|
|
||||||
"neuen Ablageort kopiert hast, sonst werden alle Dateien gelöscht! Lies auch "
|
|
||||||
"die FAQs hierzu: %s"
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr "Nextcloud-Benutzername"
|
msgstr "Nextcloud-Benutzername"
|
||||||
|
|
||||||
@@ -1478,6 +1590,25 @@ msgstr "Ignoriere TLS-Zertifikatfehler"
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "Ungültiger Optionswert: \"%s\". Mögliche Werte sind: %s."
|
msgstr "Ungültiger Optionswert: \"%s\". Mögliche Werte sind: %s."
|
||||||
|
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Allgemeines"
|
||||||
|
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "Synchronisation"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr "Erscheinungsbild"
|
||||||
|
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "Notiz"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr "Zusatzprogramme"
|
||||||
|
|
||||||
|
# 'Applikation' or 'Anwendung' - both translations are correct.
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "Applikation"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1495,9 +1626,11 @@ msgstr "Joplin Export Verzeichnis"
|
|||||||
msgid "Evernote Export File"
|
msgid "Evernote Export File"
|
||||||
msgstr "Evernote Export Datei"
|
msgstr "Evernote Export Datei"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr "Joplin Export Verzeichnis"
|
msgstr "Json Export Verzeichnis"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Datei"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Verzeichnis"
|
msgstr "Verzeichnis"
|
||||||
@@ -1575,10 +1708,10 @@ msgid "On %s: %s"
|
|||||||
msgstr "Auf %s: %s"
|
msgstr "Auf %s: %s"
|
||||||
|
|
||||||
msgid "Permission to use camera"
|
msgid "Permission to use camera"
|
||||||
msgstr ""
|
msgstr "Berechtigung zur Verwendung der Kamera"
|
||||||
|
|
||||||
msgid "Your permission to use your camera is required."
|
msgid "Your permission to use your camera is required."
|
||||||
msgstr ""
|
msgstr "Deine Zustimmung zur Verwendung deiner Kamera ist erforderlich."
|
||||||
|
|
||||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1640,7 +1773,7 @@ msgstr ""
|
|||||||
"korrekt sind und das das Synchronisierungsziel erreichbar ist. Fehlermeldung:"
|
"korrekt sind und das das Synchronisierungsziel erreichbar ist. Fehlermeldung:"
|
||||||
|
|
||||||
msgid "The application has been authorised!"
|
msgid "The application has been authorised!"
|
||||||
msgstr "Das Programm wurde erfolgreich autorisiert."
|
msgstr "Das Programm wurde erfolgreich autorisiert!"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -1691,9 +1824,20 @@ msgstr ""
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr "Website von Joplin"
|
msgstr "Website von Joplin"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr "Datenbank v%s"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "FTS aktiviert: %d"
|
||||||
|
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Mit Dropbox anmelden"
|
msgstr "Mit Dropbox anmelden"
|
||||||
|
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr "Hier Code eingeben"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr "Hauptschlüssel %s"
|
msgstr "Hauptschlüssel %s"
|
||||||
@@ -1746,9 +1890,8 @@ msgstr ""
|
|||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr "Nicht unterstütztes Fotoformat: %s"
|
msgstr "Nicht unterstütztes Fotoformat: %s"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Take photo"
|
msgid "Take photo"
|
||||||
msgstr "Foto anhängen"
|
msgstr "Foto aufnehmen"
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr "Foto anhängen"
|
msgstr "Foto anhängen"
|
||||||
@@ -1775,7 +1918,10 @@ msgid "View on map"
|
|||||||
msgstr "Auf der Karte anzeigen"
|
msgstr "Auf der Karte anzeigen"
|
||||||
|
|
||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr ""
|
msgstr "Zur Quell-URL gehen"
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Bearbeiten"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Notizbuch löschen"
|
msgstr "Notizbuch löschen"
|
||||||
@@ -1802,6 +1948,29 @@ msgstr ""
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "Willkommen"
|
msgstr "Willkommen"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "Diese Notiz wurde verändert:"
|
||||||
|
|
||||||
|
#~ msgid "Table of contents"
|
||||||
|
#~ msgstr "Inhaltsverzeichnis"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||||
|
#~ "See `sync.target`."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "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?"
|
||||||
|
|
||||||
|
#~ msgid "Delete notes?"
|
||||||
|
#~ msgstr "Notizen löschen?"
|
||||||
|
|
||||||
#~ msgid "State: %s."
|
#~ msgid "State: %s."
|
||||||
#~ msgstr "Status: %s."
|
#~ msgstr "Status: %s."
|
||||||
|
|
||||||
@@ -1845,9 +2014,6 @@ msgstr "Willkommen"
|
|||||||
#~ msgid "Give focus to previous pane"
|
#~ msgid "Give focus to previous pane"
|
||||||
#~ msgstr "Das vorherige Fenster fokussieren"
|
#~ msgstr "Das vorherige Fenster fokussieren"
|
||||||
|
|
||||||
#~ msgid "Enter command line mode"
|
|
||||||
#~ msgstr "Zum Terminal-Modus wechseln"
|
|
||||||
|
|
||||||
#~ msgid "Exit command line mode"
|
#~ msgid "Exit command line mode"
|
||||||
#~ msgstr "Den Terminal-Modus verlassen"
|
#~ msgstr "Den Terminal-Modus verlassen"
|
||||||
|
|
||||||
@@ -1866,7 +2032,6 @@ msgstr "Willkommen"
|
|||||||
#~ msgid "Set a to-do as completed / not completed"
|
#~ msgid "Set a to-do as completed / not completed"
|
||||||
#~ msgstr "Ein To-Do als abgeschlossen / nicht abgeschlossen markieren"
|
#~ msgstr "Ein To-Do als abgeschlossen / nicht abgeschlossen markieren"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~ msgid "[t]oggle [c]onsole between maximized/minimized/hidden/visible."
|
#~ msgid "[t]oggle [c]onsole between maximized/minimized/hidden/visible."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Schal[t]e das Terminal zwischen maximiert/minimiert/versteckt/sichtbar um."
|
#~ "Schal[t]e das Terminal zwischen maximiert/minimiert/versteckt/sichtbar um."
|
||||||
@@ -1906,9 +2071,6 @@ msgstr "Willkommen"
|
|||||||
#~ msgid "Delete notebook?"
|
#~ msgid "Delete notebook?"
|
||||||
#~ msgstr "Notizbuch löschen?"
|
#~ msgstr "Notizbuch löschen?"
|
||||||
|
|
||||||
#~ msgid "Delete notebook \"%s\"?"
|
|
||||||
#~ msgstr "Notizbuch \"%s\" löschen?"
|
|
||||||
|
|
||||||
#~ msgid "File system synchronisation target directory"
|
#~ msgid "File system synchronisation target directory"
|
||||||
#~ msgstr "Dateisystem-Synchronisation Zielpfad"
|
#~ msgstr "Dateisystem-Synchronisation Zielpfad"
|
||||||
|
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ msgstr ""
|
|||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Enter master password:"
|
msgid "Enter master password:"
|
||||||
@@ -508,6 +508,18 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -515,7 +527,7 @@ msgstr ""
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
@@ -527,13 +539,41 @@ msgstr ""
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "&File"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
@@ -543,7 +583,7 @@ msgstr ""
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Edit"
|
msgid "&Edit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -564,6 +604,9 @@ msgstr ""
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -576,7 +619,7 @@ msgstr ""
|
|||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "View"
|
msgid "&View"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -585,22 +628,13 @@ msgstr ""
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Tools"
|
msgid "Focus"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
msgid "&Tools"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Web clipper options"
|
msgid "&Help"
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Encryption options"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -609,16 +643,6 @@ msgstr ""
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -635,9 +659,21 @@ msgstr ""
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -704,13 +740,16 @@ msgid ""
|
|||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -789,6 +828,9 @@ msgstr ""
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -839,34 +881,6 @@ msgstr ""
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -912,6 +926,9 @@ msgid ""
|
|||||||
"note."
|
"note."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -998,16 +1015,24 @@ msgstr ""
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Delete"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Synchronise"
|
msgid "Rename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
@@ -1024,6 +1049,44 @@ msgstr ""
|
|||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
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 ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1134,6 +1197,12 @@ msgstr ""
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "title"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1144,12 +1213,6 @@ msgstr ""
|
|||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "title"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1164,6 +1227,13 @@ msgstr ""
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1194,6 +1264,9 @@ msgstr ""
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1209,6 +1282,42 @@ msgstr ""
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1241,6 +1350,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1278,21 +1394,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1325,6 +1429,24 @@ msgstr ""
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "General"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Application"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1344,6 +1466,9 @@ msgstr ""
|
|||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1514,9 +1639,20 @@ msgstr ""
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1598,6 +1734,9 @@ msgstr ""
|
|||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
1790
CliClient/locales/en_US.po
Normal file
1790
CliClient/locales/en_US.po
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,19 +1,21 @@
|
|||||||
# Joplin translation to Spanish (Spain)
|
# Joplin translation to Spanish (Spain)
|
||||||
# Copyright (C) 2017 Lucas Vieites
|
# Copyright (C) 2017 Lucas Vieites
|
||||||
|
# Copyright (C) 2019 Andros Fenollosa
|
||||||
# This file is distributed under the same license as the Joplin-CLI package.
|
# This file is distributed under the same license as the Joplin-CLI package.
|
||||||
# Lucas Vieites <lucas.vieites@gmail.com>, 2017.
|
# Lucas Vieites <lucas.vieites@gmail.com>, 2017.
|
||||||
|
# Andros Fenollosa <andros@fenollosa.email>, 2019.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Joplin-CLI 1.0.0\n"
|
"Project-Id-Version: Joplin-CLI 1.0.0\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"Last-Translator: Fernando Martín <f@mrtn.es>\n"
|
"Last-Translator: Andros Fenollosa <andros@fenollosa.email>\n"
|
||||||
"Language-Team: Spanish <lucas.vieites@gmail.com>\n"
|
"Language-Team: Spanish <lucas.vieites@gmail.com>\n"
|
||||||
"Language: es_ES\n"
|
"Language: es_ES\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Poedit 1.8.11\n"
|
"X-Generator: Poedit 2.2.1\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
"X-Poedit-SourceCharset: UTF-8\n"
|
"X-Poedit-SourceCharset: UTF-8\n"
|
||||||
|
|
||||||
@@ -35,7 +37,7 @@ msgid "No notebook selected."
|
|||||||
msgstr "No se ha seleccionado ninguna libreta."
|
msgstr "No se ha seleccionado ninguna libreta."
|
||||||
|
|
||||||
msgid "No notebook has been specified."
|
msgid "No notebook has been specified."
|
||||||
msgstr "Ninguna libreta fue especificada"
|
msgstr "Ninguna libreta fue especificada."
|
||||||
|
|
||||||
msgid "Y"
|
msgid "Y"
|
||||||
msgstr "Y"
|
msgstr "Y"
|
||||||
@@ -125,9 +127,10 @@ msgstr "Marca una tarea como hecha."
|
|||||||
msgid "Note is not a to-do: \"%s\""
|
msgid "Note is not a to-do: \"%s\""
|
||||||
msgstr "La nota no es una tarea: \"%s\""
|
msgstr "La nota no es una tarea: \"%s\""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Maneja la configuración E2EE. Comandos disponibles `enable`, `disable`, "
|
"Maneja la configuración E2EE. Comandos disponibles `enable`, `disable`, "
|
||||||
"`decrypt`, `status` y `target-status`."
|
"`decrypt`, `status` y `target-status`."
|
||||||
@@ -458,12 +461,11 @@ msgid "Starting synchronisation..."
|
|||||||
msgstr "Iniciando sincronización..."
|
msgstr "Iniciando sincronización..."
|
||||||
|
|
||||||
msgid "Downloading resources..."
|
msgid "Downloading resources..."
|
||||||
msgstr ""
|
msgstr "Descargando recursos..."
|
||||||
|
|
||||||
msgid "Cancelling... Please wait."
|
msgid "Cancelling... Please wait."
|
||||||
msgstr "Cancelando... Por favor espere."
|
msgstr "Cancelando... Por favor espere."
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"<tag-command> can be \"add\", \"remove\" or \"list\" to assign or remove "
|
"<tag-command> can be \"add\", \"remove\" or \"list\" to assign or remove "
|
||||||
"[tag] from [note], or to list the notes associated with [tag]. The command "
|
"[tag] from [note], or to list the notes associated with [tag]. The command "
|
||||||
@@ -585,6 +587,18 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Exportando el formato de \"%s\" a \"%s\". Por favor espere..."
|
msgstr "Exportando el formato de \"%s\" a \"%s\". Por favor espere..."
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr "Barra lateral"
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr "Lista de notas"
|
||||||
|
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "Titulo de nota"
|
||||||
|
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "Cuerpo de nota"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Importando el formato de \"%s\" a \"%s\". Por favor espere..."
|
msgstr "Importando el formato de \"%s\" a \"%s\". Por favor espere..."
|
||||||
@@ -592,8 +606,8 @@ msgstr "Importando el formato de \"%s\" a \"%s\". Por favor espere..."
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "Archivo PDF"
|
msgstr "Archivo PDF"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "Archivo"
|
msgstr "Estado de la sincronización"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "Nueva nota"
|
msgstr "Nueva nota"
|
||||||
@@ -604,14 +618,42 @@ msgstr "Nueva lista de tareas"
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "Nueva libreta"
|
msgstr "Nueva libreta"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr "Imprimir"
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Opciones generales"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr "Opciones de cifrado"
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr "Opciones de recorte web"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "&Archivo"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "Acerca de Joplin"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr "Comprobar actualizaciones..."
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "Importar"
|
msgstr "Importar"
|
||||||
|
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "Exportar"
|
msgstr "Exportar"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr "Imprimir"
|
msgstr "Sincronizar"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -620,8 +662,8 @@ msgstr "Oculta %s"
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Salir"
|
msgstr "Salir"
|
||||||
|
|
||||||
msgid "Edit"
|
msgid "&Edit"
|
||||||
msgstr "Editar"
|
msgstr "&Editar"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Copiar"
|
msgstr "Copiar"
|
||||||
@@ -632,9 +674,8 @@ msgstr "Cortar"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Pegar"
|
msgstr "Pegar"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Select all"
|
msgid "Select all"
|
||||||
msgstr "Seleccione fecha"
|
msgstr "Seleccionar todo"
|
||||||
|
|
||||||
msgid "Bold"
|
msgid "Bold"
|
||||||
msgstr "Negrita"
|
msgstr "Negrita"
|
||||||
@@ -642,6 +683,9 @@ msgstr "Negrita"
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr "Cursiva"
|
msgstr "Cursiva"
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr "Enlace"
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr "Introduce fecha"
|
msgstr "Introduce fecha"
|
||||||
|
|
||||||
@@ -651,12 +695,11 @@ msgstr "Editar con un editor externo"
|
|||||||
msgid "Search in all the notes"
|
msgid "Search in all the notes"
|
||||||
msgstr "Buscar en todas las notas"
|
msgstr "Buscar en todas las notas"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "Buscar en todas las notas"
|
msgstr "Buscar en nota actual"
|
||||||
|
|
||||||
msgid "View"
|
msgid "&View"
|
||||||
msgstr "Ver"
|
msgstr "&Ver"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
msgstr "Cambia la barra lateral"
|
msgstr "Cambia la barra lateral"
|
||||||
@@ -664,23 +707,14 @@ msgstr "Cambia la barra lateral"
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr "Cambia el diseño del editor"
|
msgstr "Cambia el diseño del editor"
|
||||||
|
|
||||||
msgid "Tools"
|
msgid "Focus"
|
||||||
msgstr "Herramientas"
|
msgstr "Foco"
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
msgid "&Tools"
|
||||||
msgstr "Estado de la sincronización"
|
msgstr "&Herramientas"
|
||||||
|
|
||||||
msgid "Web clipper options"
|
msgid "&Help"
|
||||||
msgstr "Opciones de recorte web"
|
msgstr "&Ayuda"
|
||||||
|
|
||||||
msgid "Encryption options"
|
|
||||||
msgstr "Opciones de cifrado"
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr "Opciones generales"
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr "Ayuda"
|
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
msgstr "Sitio web y documentación"
|
msgstr "Sitio web y documentación"
|
||||||
@@ -688,16 +722,6 @@ msgstr "Sitio web y documentación"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "Hacer una donación"
|
msgstr "Hacer una donación"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr "Comprobar actualizaciones..."
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "Acerca de Joplin"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "Abrir %s"
|
msgstr "Abrir %s"
|
||||||
@@ -714,9 +738,21 @@ msgstr "Cancelar"
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr "La versión actual está actualizada."
|
msgstr "La versión actual está actualizada."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr "%s (pre-lanzamiento)"
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr "Hay disponible una actualización. ¿Quiere descargarla ahora?"
|
msgstr "Hay disponible una actualización. ¿Quiere descargarla ahora?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr "Tu versión: %s"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr "Nueva versión: %s"
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Sí"
|
msgstr "Sí"
|
||||||
|
|
||||||
@@ -724,7 +760,7 @@ msgid "No"
|
|||||||
msgstr "No"
|
msgstr "No"
|
||||||
|
|
||||||
msgid "Token has been copied to the clipboard!"
|
msgid "Token has been copied to the clipboard!"
|
||||||
msgstr ""
|
msgstr "¡El token ha sido copiado al portapapeles!"
|
||||||
|
|
||||||
msgid "The web clipper service is enabled and set to auto-start."
|
msgid "The web clipper service is enabled and set to auto-start."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -776,28 +812,30 @@ msgstr "Paso 2: Instalar la extensión"
|
|||||||
msgid "Download and install the relevant extension for your browser:"
|
msgid "Download and install the relevant extension for your browser:"
|
||||||
msgstr "Descargar e instalar para su navegador:"
|
msgstr "Descargar e instalar para su navegador:"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Advanced options"
|
msgid "Advanced options"
|
||||||
msgstr "Mostrar opciones avanzadas"
|
msgstr "Opciones avanzadas"
|
||||||
|
|
||||||
msgid "Authorisation token:"
|
msgid "Authorisation token:"
|
||||||
msgstr ""
|
msgstr "Token de autorización:"
|
||||||
|
|
||||||
msgid "Copy token"
|
msgid "Copy token"
|
||||||
msgstr ""
|
msgstr "Copiar token"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"This authorisation token is only needed to allow third-party applications to "
|
"This authorisation token is only needed to allow third-party applications to "
|
||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
|
||||||
msgstr "Comprobar sincronización"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr "Las notas y los ajustes se guardan en: %s"
|
msgstr "Las notas y los ajustes se guardan en: %s"
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr "Explorar..."
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Comprobar sincronización"
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr "Aplicar"
|
msgstr "Aplicar"
|
||||||
|
|
||||||
@@ -891,6 +929,9 @@ msgstr "Estado"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "El cifrado está:"
|
msgstr "El cifrado está:"
|
||||||
|
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Uso"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Atrás"
|
msgstr "Atrás"
|
||||||
|
|
||||||
@@ -909,7 +950,7 @@ msgid "Notebook title:"
|
|||||||
msgstr "Título de libreta:"
|
msgstr "Título de libreta:"
|
||||||
|
|
||||||
msgid "Add or remove tags:"
|
msgid "Add or remove tags:"
|
||||||
msgstr "Agregar o borrar etiquetas: "
|
msgstr "Agregar o borrar etiquetas:"
|
||||||
|
|
||||||
msgid "Separate each tag by a comma."
|
msgid "Separate each tag by a comma."
|
||||||
msgstr "Separar cada etiqueta por una coma."
|
msgstr "Separar cada etiqueta por una coma."
|
||||||
@@ -941,36 +982,6 @@ msgstr "No se han podido descifrar algunos elementos."
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "Establecer la contraseña"
|
msgstr "Establecer la contraseña"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "Añadir o borrar etiquetas"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr "Duplicado"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "%s - Copiar"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "Cambiar entre nota y lista de tareas"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "Cambiar entre nota y lista de tareas"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "Cambiar entre nota y lista de tareas"
|
|
||||||
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr "Copiar el enlace de Markdown"
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "Eliminar"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "¿Desea eliminar notas?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr "No hay ninguna nota. Cree una pulsando «Nota nueva»."
|
msgstr "No hay ninguna nota. Cree una pulsando «Nota nueva»."
|
||||||
|
|
||||||
@@ -979,13 +990,13 @@ msgid ""
|
|||||||
msgstr "No hay ninguna libreta. Cree una pulsando en «Libreta nueva»."
|
msgstr "No hay ninguna libreta. Cree una pulsando en «Libreta nueva»."
|
||||||
|
|
||||||
msgid "Location"
|
msgid "Location"
|
||||||
msgstr ""
|
msgstr "Localización"
|
||||||
|
|
||||||
msgid "URL"
|
msgid "URL"
|
||||||
msgstr ""
|
msgstr "URL"
|
||||||
|
|
||||||
msgid "Note properties"
|
msgid "Note properties"
|
||||||
msgstr ""
|
msgstr "Propiedades de nota"
|
||||||
|
|
||||||
msgid "Open..."
|
msgid "Open..."
|
||||||
msgstr "Abrir..."
|
msgstr "Abrir..."
|
||||||
@@ -1004,7 +1015,7 @@ msgid "Copy Link Address"
|
|||||||
msgstr "Copiar enlace"
|
msgstr "Copiar enlace"
|
||||||
|
|
||||||
msgid "This attachment is not downloaded or not decrypted yet."
|
msgid "This attachment is not downloaded or not decrypted yet."
|
||||||
msgstr ""
|
msgstr "El adjunto no ha sido descargado o desencriptado todavía."
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported link or message: %s"
|
msgid "Unsupported link or message: %s"
|
||||||
@@ -1018,6 +1029,9 @@ msgstr ""
|
|||||||
"Esta nota no tiene contenido. Pulse en \"%s\" para cambiar al editor y "
|
"Esta nota no tiene contenido. Pulse en \"%s\" para cambiar al editor y "
|
||||||
"editar la nota."
|
"editar la nota."
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr "Solo una nota puede ser impresa o exportada a PDF a la vez."
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr "texto destacado"
|
msgstr "texto destacado"
|
||||||
|
|
||||||
@@ -1104,32 +1118,81 @@ msgstr "Opciones de cifrado"
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Opciones de recorte"
|
msgstr "Opciones de recorte"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, javascript-format
|
||||||
msgstr "¿Desea eliminar esta etiqueta de todas las notas?"
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr ""
|
||||||
|
"Borrar Libreta \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"Todas las notas y sublibretas de esta libreta serán borradas."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
|
msgstr "Desea borrar las etiquetas pertenecientes a \"%s\" de todas las notas?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "¿Desea eliminar esta búsqueda de la barra lateral?"
|
msgstr "¿Desea eliminar esta búsqueda de la barra lateral?"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Eliminar"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Renombrar"
|
msgstr "Renombrar"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "Sincronizar"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "Libretas"
|
msgstr "Libretas"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Decrypting items: %d/%d"
|
msgid "Decrypting items: %d/%d"
|
||||||
msgstr "Descifrando elementos: %d/%d."
|
msgstr "Descifrando elementos: %d/%d"
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "Fetching resources: %d"
|
msgid "Fetching resources: %d"
|
||||||
msgstr "Recursos: %d."
|
msgstr "Obteniendo refuersos: %d"
|
||||||
|
|
||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr "Seleccione a dónde se debería exportar el estado de sincronización"
|
msgstr "Seleccione a dónde se debería exportar el estado de sincronización"
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "Añadir o borrar etiquetas"
|
||||||
|
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "Duplicado"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "%s - Copiar"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "Cambiar entre nota y lista de tareas"
|
||||||
|
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "Cambiar a nota"
|
||||||
|
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "Cambiar a lista de tareas"
|
||||||
|
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr "Copiar el enlace de Markdown"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "¿Borrar nota \"%s\"?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "Borrar %d notas?"
|
||||||
|
|
||||||
|
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 ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "Uso: %s"
|
msgstr "Uso: %s"
|
||||||
@@ -1248,6 +1311,12 @@ msgstr "Cifrado"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "Los elementos cifrados no pueden ser modificados"
|
msgstr "Los elementos cifrados no pueden ser modificados"
|
||||||
|
|
||||||
|
msgid "title"
|
||||||
|
msgstr "título"
|
||||||
|
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "fecha de actualización"
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "Conflictos"
|
msgstr "Conflictos"
|
||||||
|
|
||||||
@@ -1259,12 +1328,6 @@ msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"No se puede usar el nombre «%s» para una libreta; es un título reservado."
|
"No se puede usar el nombre «%s» para una libreta; es un título reservado."
|
||||||
|
|
||||||
msgid "title"
|
|
||||||
msgstr "título"
|
|
||||||
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "fecha de actualización"
|
|
||||||
|
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "fecha de creación"
|
msgstr "fecha de creación"
|
||||||
|
|
||||||
@@ -1279,6 +1342,16 @@ msgstr "No se ha podido copiar la nota a la libreta «%s»"
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "No se ha podido mover la nota a la libreta «%s»"
|
msgstr "No se ha podido mover la nota a la libreta «%s»"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
"Atención: Si cambias esta ubicación, asegúrate de copiar todo tu contenido "
|
||||||
|
"antes de sincronizarlo, de lo contrario todos los archivos serán eliminados. "
|
||||||
|
"Consulte las preguntas frecuentes para obtener más detalles: %s"
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Idioma"
|
msgstr "Idioma"
|
||||||
|
|
||||||
@@ -1309,6 +1382,10 @@ msgstr "Ordenar notas por"
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "Invierte el orden"
|
msgstr "Invierte el orden"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "Ordenar notas por"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "Guardar geolocalización en las notas"
|
msgstr "Guardar geolocalización en las notas"
|
||||||
|
|
||||||
@@ -1324,6 +1401,43 @@ msgstr "Foco en el cuerpo"
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "Cuando se crear una nota nueva:"
|
msgstr "Cuando se crear una nota nueva:"
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr "Habilitar cifrado"
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr "Mostrar icono en la bandeja"
|
msgstr "Mostrar icono en la bandeja"
|
||||||
|
|
||||||
@@ -1335,16 +1449,18 @@ msgid ""
|
|||||||
"this setting so that your notes are constantly being synchronised, thus "
|
"this setting so that your notes are constantly being synchronised, thus "
|
||||||
"reducing the number of conflicts."
|
"reducing the number of conflicts."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Esto permitirá que Joplin se ejecute en segundo plano. Se recomienda "
|
||||||
|
"habilitar esta configuración para que sus notas estén sincronizadas "
|
||||||
|
"constantemente, reduciendo así el número de conflictos."
|
||||||
|
|
||||||
msgid "Start application minimised in the tray icon"
|
msgid "Start application minimised in the tray icon"
|
||||||
msgstr ""
|
msgstr "Iniciar aplicación minimizada en el icono de la bandeja"
|
||||||
|
|
||||||
msgid "Global zoom percentage"
|
msgid "Global zoom percentage"
|
||||||
msgstr "Establecer el porcentaje de aumento de la aplicación"
|
msgstr "Establecer el porcentaje de aumento de la aplicación"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Editor font size"
|
msgid "Editor font size"
|
||||||
msgstr "Fuente del editor"
|
msgstr "Editar tamaño de fuente"
|
||||||
|
|
||||||
msgid "Editor font family"
|
msgid "Editor font family"
|
||||||
msgstr "Fuente del editor"
|
msgstr "Fuente del editor"
|
||||||
@@ -1360,6 +1476,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "Actualizar la aplicación automáticamente"
|
msgstr "Actualizar la aplicación automáticamente"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr "Obtenga pre-lanzamientos cuando busque actualizaciones"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr "Ver la página de pre-lanzamiento para más detalles: %s"
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "Intervalo de sincronización"
|
msgstr "Intervalo de sincronización"
|
||||||
|
|
||||||
@@ -1403,23 +1526,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr "Directorio con el que sincronizarse (ruta completa)"
|
msgstr "Directorio con el que sincronizarse (ruta completa)"
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
"La ruta a la que sincronizar cuando se activa la sincronización con sistema "
|
|
||||||
"de archivos. Vea «sync.target»."
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr "Servidor WebDAV de Nextcloud"
|
msgstr "Servidor WebDAV de Nextcloud"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr "Usuario de Nextcloud"
|
msgstr "Usuario de Nextcloud"
|
||||||
|
|
||||||
@@ -1457,9 +1566,27 @@ msgstr "Ignorar errores en certificados TLS"
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "Opción inválida: «%s». Los valores posibles son: %s."
|
msgstr "Opción inválida: «%s». Los valores posibles son: %s."
|
||||||
|
|
||||||
|
msgid "General"
|
||||||
|
msgstr "General"
|
||||||
|
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "Sincronización"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr "Apariencia"
|
||||||
|
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "Nota"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "Aplicación"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr ""
|
msgstr "La etiqueta \"%s\" ya existe. Por favor, busque un nuevo nombre."
|
||||||
|
|
||||||
msgid "Joplin Export File"
|
msgid "Joplin Export File"
|
||||||
msgstr "Archivo de exportación de Joplin"
|
msgstr "Archivo de exportación de Joplin"
|
||||||
@@ -1473,9 +1600,11 @@ msgstr "Directorio para exportar de Joplin"
|
|||||||
msgid "Evernote Export File"
|
msgid "Evernote Export File"
|
||||||
msgstr "Archivo exportado de Evernote"
|
msgstr "Archivo exportado de Evernote"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr "Directorio para exportar de Joplin"
|
msgstr "Directorio para exportar JSON"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Archivo"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Directorio"
|
msgstr "Directorio"
|
||||||
@@ -1552,10 +1681,10 @@ msgid "On %s: %s"
|
|||||||
msgstr "En %s: %s"
|
msgstr "En %s: %s"
|
||||||
|
|
||||||
msgid "Permission to use camera"
|
msgid "Permission to use camera"
|
||||||
msgstr ""
|
msgstr "Permiso para usar tu cámara"
|
||||||
|
|
||||||
msgid "Your permission to use your camera is required."
|
msgid "Your permission to use your camera is required."
|
||||||
msgstr ""
|
msgstr "El permiso para usar tu cámara es necesario."
|
||||||
|
|
||||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||||
msgstr "No hay notas. Cree una pulsando en el botón (+)."
|
msgstr "No hay notas. Cree una pulsando en el botón (+)."
|
||||||
@@ -1585,9 +1714,8 @@ msgstr "¿Desea mover %d notas a libreta «%s»?"
|
|||||||
msgid "Press to set the decryption password."
|
msgid "Press to set the decryption password."
|
||||||
msgstr "Presione para establecer la contraseña de descifrado."
|
msgstr "Presione para establecer la contraseña de descifrado."
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Clear alarm"
|
msgid "Clear alarm"
|
||||||
msgstr "Establecer alarma"
|
msgstr "Quitar alarma"
|
||||||
|
|
||||||
msgid "Save alarm"
|
msgid "Save alarm"
|
||||||
msgstr "Establecer alarma"
|
msgstr "Establecer alarma"
|
||||||
@@ -1601,22 +1729,21 @@ msgstr "Confirmar"
|
|||||||
msgid "Cancel synchronisation"
|
msgid "Cancel synchronisation"
|
||||||
msgstr "Cancelar sincronización"
|
msgstr "Cancelar sincronización"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Checking... Please wait."
|
msgid "Checking... Please wait."
|
||||||
msgstr "Cancelando... Por favor espere."
|
msgstr "Comprobando... Por favor espere."
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Success! Synchronisation configuration appears to be correct."
|
msgid "Success! Synchronisation configuration appears to be correct."
|
||||||
msgstr "Comprobar sincronización"
|
msgstr "¡Éxito! La configuración de sincronización es correcta."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Error. Please check that URL, username, password, etc. are correct and that "
|
"Error. Please check that URL, username, password, etc. are correct and that "
|
||||||
"the sync target is accessible. The reported error was:"
|
"the sync target is accessible. The reported error was:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Error. Por favor comprueba URL, nombre de usuario, contraseña, etc. son "
|
||||||
|
"correctos y el servicio a sincronizar este accesible. El código de error fue:"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "The application has been authorised!"
|
msgid "The application has been authorised!"
|
||||||
msgstr "La aplicacion ha sido autorizada éxitosamente."
|
msgstr "¡La aplicacion ha sido autorizada!"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -1626,10 +1753,15 @@ msgid ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Please try again."
|
"Please try again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"No se pudo autorizar aplicación:\n"
|
||||||
|
"\n"
|
||||||
|
"%s\n"
|
||||||
|
"\n"
|
||||||
|
"Por favor, vuelva a intentarlo."
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "Decrypted items: %s / %s"
|
msgid "Decrypted items: %s / %s"
|
||||||
msgstr "Descifrando elementos: %d/%d."
|
msgstr "Descifrando elementos: %s / %s"
|
||||||
|
|
||||||
msgid "New tags:"
|
msgid "New tags:"
|
||||||
msgstr "Nuevas etiquetas:"
|
msgstr "Nuevas etiquetas:"
|
||||||
@@ -1663,9 +1795,20 @@ msgstr ""
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr "Sitio web de Joplin"
|
msgstr "Sitio web de Joplin"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr "Base de datos v%s"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "FTS activado: %d"
|
||||||
|
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Acceder con Dropbox"
|
msgstr "Acceder con Dropbox"
|
||||||
|
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr "Introduce código aquí"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr "Clave maestra %s"
|
msgstr "Clave maestra %s"
|
||||||
@@ -1718,9 +1861,8 @@ msgstr ""
|
|||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr "Tipo de imagen no soportado: %s"
|
msgstr "Tipo de imagen no soportado: %s"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Take photo"
|
msgid "Take photo"
|
||||||
msgstr "Adjuntar foto"
|
msgstr "Tomar foto"
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr "Adjuntar foto"
|
msgstr "Adjuntar foto"
|
||||||
@@ -1747,7 +1889,10 @@ msgid "View on map"
|
|||||||
msgstr "Ver en un mapa"
|
msgstr "Ver en un mapa"
|
||||||
|
|
||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr ""
|
msgstr "Ir a origen URL"
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Editar"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Borrar libreta"
|
msgstr "Borrar libreta"
|
||||||
@@ -1772,6 +1917,26 @@ msgstr ""
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "Bienvenido"
|
msgstr "Bienvenido"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "Esta nota ha sido modificada:"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||||
|
#~ "See `sync.target`."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "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?"
|
||||||
|
|
||||||
|
#~ msgid "Delete notes?"
|
||||||
|
#~ msgstr "¿Desea eliminar notas?"
|
||||||
|
|
||||||
#~ msgid "State: %s."
|
#~ msgid "State: %s."
|
||||||
#~ msgstr "Estado: «%s»."
|
#~ msgstr "Estado: «%s»."
|
||||||
|
|
||||||
@@ -1822,9 +1987,6 @@ msgstr "Bienvenido"
|
|||||||
#~ msgid "Give focus to previous pane"
|
#~ msgid "Give focus to previous pane"
|
||||||
#~ msgstr "Enfocar el panel anterior"
|
#~ msgstr "Enfocar el panel anterior"
|
||||||
|
|
||||||
#~ msgid "Enter command line mode"
|
|
||||||
#~ msgstr "Entrar en modo línea de comandos"
|
|
||||||
|
|
||||||
#~ msgid "Exit command line mode"
|
#~ msgid "Exit command line mode"
|
||||||
#~ msgstr "Salir del modo línea de comandos"
|
#~ msgstr "Salir del modo línea de comandos"
|
||||||
|
|
||||||
@@ -1834,9 +1996,6 @@ msgstr "Bienvenido"
|
|||||||
#~ msgid "Cancel the current command."
|
#~ msgid "Cancel the current command."
|
||||||
#~ msgstr "Cancelar el comando actual."
|
#~ msgstr "Cancelar el comando actual."
|
||||||
|
|
||||||
#~ msgid "Exit the application."
|
|
||||||
#~ msgstr "Salir de la aplicación."
|
|
||||||
|
|
||||||
#~ msgid "Delete the currently selected note or notebook."
|
#~ msgid "Delete the currently selected note or notebook."
|
||||||
#~ msgstr "Eliminar la nota o libreta seleccionada."
|
#~ msgstr "Eliminar la nota o libreta seleccionada."
|
||||||
|
|
||||||
@@ -1887,9 +2046,6 @@ msgstr "Bienvenido"
|
|||||||
#~ msgid "Delete notebook?"
|
#~ msgid "Delete notebook?"
|
||||||
#~ msgstr "Eliminar libreta?"
|
#~ msgstr "Eliminar libreta?"
|
||||||
|
|
||||||
#~ msgid "Delete notebook \"%s\"?"
|
|
||||||
#~ msgstr "Elimina una libreta \"%s\"?"
|
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "File system synchronisation target directory"
|
#~ msgid "File system synchronisation target directory"
|
||||||
#~ msgstr "Sincronización de sistema de archivos en directorio objetivo"
|
#~ msgstr "Sincronización de sistema de archivos en directorio objetivo"
|
||||||
|
|||||||
@@ -125,9 +125,10 @@ msgstr "Markatu zeregina egindakotzat."
|
|||||||
msgid "Note is not a to-do: \"%s\""
|
msgid "Note is not a to-do: \"%s\""
|
||||||
msgstr "Oharra ez da zeregina: \"%s\""
|
msgstr "Oharra ez da zeregina: \"%s\""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"E2EEren konfigurazioa erabiltzen du. Komandoak dira `enable`, `disable`, "
|
"E2EEren konfigurazioa erabiltzen du. Komandoak dira `enable`, `disable`, "
|
||||||
"`decrypt`, `status` eta `target-status`."
|
"`decrypt`, `status` eta `target-status`."
|
||||||
@@ -582,6 +583,20 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "Koadernoaren izenburua: "
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "Koadernoak"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -590,8 +605,8 @@ msgstr ""
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "Fitxategia"
|
msgstr "Fitxategia"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "Fitxategia"
|
msgstr "Sinkronizazioaren egoera"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "Ohar berria"
|
msgstr "Ohar berria"
|
||||||
@@ -602,6 +617,35 @@ msgstr "Zeregin berria"
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "Koaderno berria"
|
msgstr "Koaderno berria"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Ezarpenak"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr "Zifratzeko aukerak"
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "Fitxategia"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "Joplin-i buruz"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "Inportatu"
|
msgstr "Inportatu"
|
||||||
|
|
||||||
@@ -609,8 +653,8 @@ msgstr "Inportatu"
|
|||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "Inportatu"
|
msgstr "Inportatu"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr ""
|
msgstr "Sinkronizatu"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -619,7 +663,8 @@ msgstr ""
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Irten"
|
msgstr "Irten"
|
||||||
|
|
||||||
msgid "Edit"
|
#, fuzzy
|
||||||
|
msgid "&Edit"
|
||||||
msgstr "Editatu"
|
msgstr "Editatu"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -641,6 +686,9 @@ msgstr ""
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -654,7 +702,7 @@ msgstr "Bilatu ohar guztietan"
|
|||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "Bilatu ohar guztietan"
|
msgstr "Bilatu ohar guztietan"
|
||||||
|
|
||||||
msgid "View"
|
msgid "&View"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -663,22 +711,15 @@ msgstr ""
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Tools"
|
msgid "Focus"
|
||||||
msgstr "Tresnak"
|
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
|
||||||
msgstr "Sinkronizazioaren egoera"
|
|
||||||
|
|
||||||
msgid "Web clipper options"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Encryption options"
|
#, fuzzy
|
||||||
msgstr "Zifratzeko aukerak"
|
msgid "&Tools"
|
||||||
|
msgstr "Tresnak"
|
||||||
|
|
||||||
msgid "General Options"
|
#, fuzzy
|
||||||
msgstr "Ezarpenak"
|
msgid "&Help"
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr "Laguntza"
|
msgstr "Laguntza"
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -688,16 +729,6 @@ msgstr "Web orria eta dokumentazioa (en)"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "Web orria eta dokumentazioa (en)"
|
msgstr "Web orria eta dokumentazioa (en)"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "Joplin-i buruz"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, fuzzy, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "On %s: %s"
|
msgstr "On %s: %s"
|
||||||
@@ -714,9 +745,21 @@ msgstr "Utzi"
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -785,14 +828,17 @@ msgid ""
|
|||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Check synchronisation configuration"
|
|
||||||
msgstr "Sinkronizazioa utzi"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr "Oharrak eta ezarpenak hemen daude gordeta: %s"
|
msgstr "Oharrak eta ezarpenak hemen daude gordeta: %s"
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Sinkronizazioa utzi"
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -883,6 +929,10 @@ msgstr "Egoera"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "Zifratua da:"
|
msgstr "Zifratua da:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Erabili: %s"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Atzera"
|
msgstr "Atzera"
|
||||||
|
|
||||||
@@ -937,36 +987,6 @@ msgstr "Zenbait item ezin dira deszifratu."
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "Ezarri pasahitza"
|
msgstr "Ezarri pasahitza"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "Gehitu edo ezabatu etiketak"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "Kopiatu"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "Aldatu oharra eta zeregin eren artean."
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "Aldatu oharra eta zeregin eren artean."
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "Aldatu oharra eta zeregin eren artean."
|
|
||||||
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "Ezabatu"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "Oharrak ezabatu?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr "Hemen ez dago oharrik. Sortu bat \"Ohar berria\" sakatuta."
|
msgstr "Hemen ez dago oharrik. Sortu bat \"Ohar berria\" sakatuta."
|
||||||
|
|
||||||
@@ -1013,6 +1033,9 @@ msgid ""
|
|||||||
"note."
|
"note."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1104,18 +1127,26 @@ msgstr "Zifratzeko aukerak"
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Ezarpenak"
|
msgstr "Ezarpenak"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, fuzzy, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr "Koadernoa ezabatu? Dituen ohar guztiak ere ezabatuko dira."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
msgstr "Kendu etiketa hori ohar guztietatik?"
|
msgstr "Kendu etiketa hori ohar guztietatik?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "Kendu bilaketa hori ohar guztietatik?"
|
msgstr "Kendu bilaketa hori ohar guztietatik?"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Ezabatu"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Berrizendatu"
|
msgstr "Berrizendatu"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "Sinkronizatu"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "Koadernoak"
|
msgstr "Koadernoak"
|
||||||
|
|
||||||
@@ -1131,6 +1162,47 @@ msgstr "Baliabideak: %d."
|
|||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr "Aukeratu nora esportatu sinkronizazioaren egoera, mesedez"
|
msgstr "Aukeratu nora esportatu sinkronizazioaren egoera, mesedez"
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "Gehitu edo ezabatu etiketak"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "Irten aplikaziotik"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "Kopiatu"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "Aldatu oharra eta zeregin eren artean."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "Aldatu oharra eta zeregin eren artean."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "Aldatu oharra eta zeregin eren artean."
|
||||||
|
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "Oharrak ezabatu?"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "Oharrok ezabatu?"
|
||||||
|
|
||||||
|
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 ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "Erabili: %s"
|
msgstr "Erabili: %s"
|
||||||
@@ -1250,6 +1322,14 @@ msgstr "Zifratuta"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "Zifratutako itemak ezin aldatu daitezke"
|
msgstr "Zifratutako itemak ezin aldatu daitezke"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "title"
|
||||||
|
msgstr "Titulu gabekoa"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "Eguneratuta: %d."
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "Gatazkak"
|
msgstr "Gatazkak"
|
||||||
|
|
||||||
@@ -1262,14 +1342,6 @@ msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Koadernoak ezin izendatu daitezke \"%s\", izen hori Joplinek gordeta dauka"
|
"Koadernoak ezin izendatu daitezke \"%s\", izen hori Joplinek gordeta dauka"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "title"
|
|
||||||
msgstr "Titulu gabekoa"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "Eguneratuta: %d."
|
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "Sortuta: %d."
|
msgstr "Sortuta: %d."
|
||||||
@@ -1285,6 +1357,13 @@ msgstr "Ezin kopia daiteke oharra \"%s\" koadernora"
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "Ezin eraman daiteke oharra \"%s\" koadernora"
|
msgstr "Ezin eraman daiteke oharra \"%s\" koadernora"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Hizkuntza"
|
msgstr "Hizkuntza"
|
||||||
|
|
||||||
@@ -1318,6 +1397,10 @@ msgstr ""
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "Alderantziz antolatzen du."
|
msgstr "Alderantziz antolatzen du."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "Editatu koadernoa"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "Gore geokokapena oharrekin"
|
msgstr "Gore geokokapena oharrekin"
|
||||||
|
|
||||||
@@ -1335,6 +1418,43 @@ msgstr ""
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "Ohar berria sortzen du."
|
msgstr "Ohar berria sortzen du."
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr "Zifratua gaitu"
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1369,6 +1489,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "Automatikoki eguneratu aplikazioa"
|
msgstr "Automatikoki eguneratu aplikazioa"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "Sinkronizazio tartea"
|
msgstr "Sinkronizazio tartea"
|
||||||
|
|
||||||
@@ -1413,22 +1540,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr "Sinkronizatzeko direktorioa (bide-izena osorik)"
|
msgstr "Sinkronizatzeko direktorioa (bide-izena osorik)"
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
"Sinkronizazio sistema gaituta dagoenerako bide-izena. Ikus `sync.target`."
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr "Nextcloud WebDAV URL"
|
msgstr "Nextcloud WebDAV URL"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr "Nextcloud erabiltzaile-izena"
|
msgstr "Nextcloud erabiltzaile-izena"
|
||||||
|
|
||||||
@@ -1464,6 +1578,28 @@ msgstr ""
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "Balio aukera baliogabea: \"%s\". Litezkeen balioak: %s."
|
msgstr "Balio aukera baliogabea: \"%s\". Litezkeen balioak: %s."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Ezarpenak"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "Sinkronizazioaren egoera"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "Koadernoak"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "Irten aplikaziotik"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1486,6 +1622,9 @@ msgstr "Evernotetik esportatutako fitxategiak"
|
|||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr "Evernotetik esportatutako fitxategiak"
|
msgstr "Evernotetik esportatutako fitxategiak"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Fitxategia"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1664,10 +1803,22 @@ msgstr ""
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "Ezabatzeko: %d"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Login with OneDrive"
|
msgstr "Login with OneDrive"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr "Sartu komando-lerro moduan "
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr "Pasahitz Nagusia %s"
|
msgstr "Pasahitz Nagusia %s"
|
||||||
@@ -1750,6 +1901,9 @@ msgstr "Ikusi mapan"
|
|||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Editatu"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Ezabatu koadernoa"
|
msgstr "Ezabatu koadernoa"
|
||||||
|
|
||||||
@@ -1772,6 +1926,16 @@ msgstr "Oraindik ez duzu koadernorik. Sortu bat (+) botoian sakatuta."
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "Ongi etorri!"
|
msgstr "Ongi etorri!"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "Ohar hau mugitua izan da:"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||||
|
#~ "See `sync.target`."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Sinkronizazio sistema gaituta dagoenerako bide-izena. Ikus `sync.target`."
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "State: %s."
|
#~ msgid "State: %s."
|
||||||
#~ msgstr "Egoera: \"%s\"."
|
#~ msgstr "Egoera: \"%s\"."
|
||||||
@@ -1814,9 +1978,6 @@ msgstr "Ongi etorri!"
|
|||||||
#~ msgid "Give focus to previous pane"
|
#~ msgid "Give focus to previous pane"
|
||||||
#~ msgstr "Eraman fokua aurreko panelera"
|
#~ msgstr "Eraman fokua aurreko panelera"
|
||||||
|
|
||||||
#~ msgid "Enter command line mode"
|
|
||||||
#~ msgstr "Sartu komando-lerro moduan "
|
|
||||||
|
|
||||||
#~ msgid "Exit command line mode"
|
#~ msgid "Exit command line mode"
|
||||||
#~ msgstr "Irten komando-lerro modutik"
|
#~ msgstr "Irten komando-lerro modutik"
|
||||||
|
|
||||||
@@ -1826,9 +1987,6 @@ msgstr "Ongi etorri!"
|
|||||||
#~ msgid "Cancel the current command."
|
#~ msgid "Cancel the current command."
|
||||||
#~ msgstr "Utzi uneko komandoa"
|
#~ msgstr "Utzi uneko komandoa"
|
||||||
|
|
||||||
#~ msgid "Exit the application."
|
|
||||||
#~ msgstr "Irten aplikaziotik"
|
|
||||||
|
|
||||||
#~ msgid "Delete the currently selected note or notebook."
|
#~ msgid "Delete the currently selected note or notebook."
|
||||||
#~ msgstr "Ezabatu aukeratutako oharra edo koadernoa"
|
#~ msgstr "Ezabatu aukeratutako oharra edo koadernoa"
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ msgstr ""
|
|||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Poedit 2.0.3\n"
|
"X-Generator: Poedit 2.2.1\n"
|
||||||
|
|
||||||
msgid "To delete a tag, untag the associated notes."
|
msgid "To delete a tag, untag the associated notes."
|
||||||
msgstr "Pour supprimer une vignette, enlever là des notes associées."
|
msgstr "Pour supprimer une vignette, enlever là des notes associées."
|
||||||
@@ -125,10 +125,11 @@ msgstr "La note n'est pas une tâche : \"%s\""
|
|||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Gérer la configuration E2EE (Chiffrement de bout à bout). Les commandes sont "
|
"Gérer la configuration E2EE (Chiffrement de bout à bout). Les commandes sont "
|
||||||
"`enable`, `disable`, `decrypt` et `status` et `target-status`."
|
"`enable`, `disable`, `decrypt` et `status`, `decrypt-file` et `target-"
|
||||||
|
"status`."
|
||||||
|
|
||||||
msgid "Enter master password:"
|
msgid "Enter master password:"
|
||||||
msgstr "Entrer le mot de passe maître :"
|
msgstr "Entrer le mot de passe maître :"
|
||||||
@@ -583,6 +584,18 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Exporter vers \"%s\" au format \"%s\". Veuillez patienter..."
|
msgstr "Exporter vers \"%s\" au format \"%s\". Veuillez patienter..."
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr "Barre latérale"
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr "Liste de notes"
|
||||||
|
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "Titre de la note"
|
||||||
|
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "Corps de la note"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Importer depuis \"%s\" au format \"%s\". Veuillez patienter..."
|
msgstr "Importer depuis \"%s\" au format \"%s\". Veuillez patienter..."
|
||||||
@@ -590,8 +603,8 @@ msgstr "Importer depuis \"%s\" au format \"%s\". Veuillez patienter..."
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "Fichier PDF"
|
msgstr "Fichier PDF"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "Fichier"
|
msgstr "État de la synchronisation"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "Nouvelle note"
|
msgstr "Nouvelle note"
|
||||||
@@ -602,14 +615,42 @@ msgstr "Nouvelle tâche"
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "Nouveau carnet"
|
msgstr "Nouveau carnet"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr "Imprimer"
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Options générales"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr "Options de chiffrement"
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr "Options du Web Clipper"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "&Fichier"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "A propos de Joplin"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr "Préférences…"
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr "Vérifier les mises à jour..."
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "Importer"
|
msgstr "Importer"
|
||||||
|
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "Exporter"
|
msgstr "Exporter"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr "Imprimer"
|
msgstr "Synchroniser"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -618,8 +659,8 @@ msgstr "Cacher %s"
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Quitter"
|
msgstr "Quitter"
|
||||||
|
|
||||||
msgid "Edit"
|
msgid "&Edit"
|
||||||
msgstr "Édition"
|
msgstr "&Édition"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Copier"
|
msgstr "Copier"
|
||||||
@@ -639,6 +680,9 @@ msgstr "Gras"
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr "Italique"
|
msgstr "Italique"
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr "Lien"
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr "Insérer la date et l'heure"
|
msgstr "Insérer la date et l'heure"
|
||||||
|
|
||||||
@@ -651,8 +695,8 @@ msgstr "Chercher dans toutes les notes"
|
|||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "Chercher dans la note en cours"
|
msgstr "Chercher dans la note en cours"
|
||||||
|
|
||||||
msgid "View"
|
msgid "&View"
|
||||||
msgstr "Affichage"
|
msgstr "&Affichage"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
msgstr "Basculer barre latérale"
|
msgstr "Basculer barre latérale"
|
||||||
@@ -660,23 +704,14 @@ msgstr "Basculer barre latérale"
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr "Basculer l'agencement de l'éditeur"
|
msgstr "Basculer l'agencement de l'éditeur"
|
||||||
|
|
||||||
msgid "Tools"
|
msgid "Focus"
|
||||||
msgstr "Outils"
|
msgstr "Naviguer"
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
msgid "&Tools"
|
||||||
msgstr "État de la synchronisation"
|
msgstr "&Outils"
|
||||||
|
|
||||||
msgid "Web clipper options"
|
msgid "&Help"
|
||||||
msgstr "Options du Web Clipper"
|
msgstr "&Aide"
|
||||||
|
|
||||||
msgid "Encryption options"
|
|
||||||
msgstr "Options de chiffrement"
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr "Options générales"
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr "Aide"
|
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
msgstr "Documentation en ligne"
|
msgstr "Documentation en ligne"
|
||||||
@@ -684,16 +719,6 @@ msgstr "Documentation en ligne"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "Faire un don"
|
msgstr "Faire un don"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr "Vérifier les mises à jour..."
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "A propos de Joplin"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "Ouvrir %s"
|
msgstr "Ouvrir %s"
|
||||||
@@ -710,10 +735,22 @@ msgstr "Annuler"
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr "La version actuelle est à jour."
|
msgstr "La version actuelle est à jour."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr "%s (pré-release)"
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Une mise à jour est disponible, souhaitez vous la télécharger maintenant ?"
|
"Une mise à jour est disponible, souhaitez vous la télécharger maintenant ?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr "Votre version : %s"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr "Nouvelle version : %s"
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Oui"
|
msgstr "Oui"
|
||||||
|
|
||||||
@@ -789,13 +826,16 @@ msgstr ""
|
|||||||
"Ce code d'authentification est nécessaire uniquement pour permettre aux "
|
"Ce code d'authentification est nécessaire uniquement pour permettre aux "
|
||||||
"logiciels tiers d'accéder aux données de Joplin."
|
"logiciels tiers d'accéder aux données de Joplin."
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
|
||||||
msgstr "Vérifier config synchronisation"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr "Les notes et paramètres se trouve dans : %s"
|
msgstr "Les notes et paramètres se trouve dans : %s"
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr "Parcourir…"
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Vérifier config synchronisation"
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr "Appliquer"
|
msgstr "Appliquer"
|
||||||
|
|
||||||
@@ -891,6 +931,9 @@ msgstr "État"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "Le chiffrement est :"
|
msgstr "Le chiffrement est :"
|
||||||
|
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Utilisation"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Retour"
|
msgstr "Retour"
|
||||||
|
|
||||||
@@ -943,34 +986,6 @@ msgstr "Certains objets ne peuvent être déchiffrés."
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "Définir le mot de passe"
|
msgstr "Définir le mot de passe"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "Gérer les étiquettes"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr "Dupliquer"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "%s - Copie"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "Alterner entre note et tâche"
|
|
||||||
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "Convertir en note"
|
|
||||||
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "Convertir en tâche"
|
|
||||||
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr "Copier lien Markdown"
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "Supprimer"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "Supprimer les notes ?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Pas de notes ici. Créez-en une en pressant le bouton \"Nouvelle note\"."
|
"Pas de notes ici. Créez-en une en pressant le bouton \"Nouvelle note\"."
|
||||||
@@ -1007,7 +1022,7 @@ msgid "Copy Link Address"
|
|||||||
msgstr "Copier l'adresse du lien"
|
msgstr "Copier l'adresse du lien"
|
||||||
|
|
||||||
msgid "This attachment is not downloaded or not decrypted yet."
|
msgid "This attachment is not downloaded or not decrypted yet."
|
||||||
msgstr "Cette pièce jointe n'est pas téléchargée ou pas encore déchiffrée"
|
msgstr "Cette pièce jointe n'est pas téléchargée ou pas encore déchiffrée."
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported link or message: %s"
|
msgid "Unsupported link or message: %s"
|
||||||
@@ -1021,6 +1036,11 @@ msgstr ""
|
|||||||
"Cette note n'a pas de contenu. Cliquer sur \"%s\" pour basculer vers "
|
"Cette note n'a pas de contenu. Cliquer sur \"%s\" pour basculer vers "
|
||||||
"l'éditeur et éditer cette note."
|
"l'éditeur et éditer cette note."
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
"Les notes ne peuvent être imprimées ou exportées en PDF qu'une seule à la "
|
||||||
|
"fois."
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr "texte en gras"
|
msgstr "texte en gras"
|
||||||
|
|
||||||
@@ -1107,18 +1127,29 @@ msgstr "Options de chiffrement"
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Options du Web Clipper"
|
msgstr "Options du Web Clipper"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, javascript-format
|
||||||
msgstr "Enlever cette étiquette de toutes les notes ?"
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr ""
|
||||||
|
"Effacer le carnet \"%s\" ?\n"
|
||||||
|
"\n"
|
||||||
|
"Toutes les notes et sous-carnets dans ce carnet seront également effacés."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
|
msgstr "Enlever l’étiquette \"%s\" de toutes les notes ?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "Enlever cette recherche de la barre latérale ?"
|
msgstr "Enlever cette recherche de la barre latérale ?"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Supprimer"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Renommer"
|
msgstr "Renommer"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "Synchroniser"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "Carnets"
|
msgstr "Carnets"
|
||||||
|
|
||||||
@@ -1134,6 +1165,46 @@ msgid "Please select where the sync status should be exported to"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Veuillez sélectionner un répertoire ou exporter l'état de la synchronisation"
|
"Veuillez sélectionner un répertoire ou exporter l'état de la synchronisation"
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "Gérer les étiquettes"
|
||||||
|
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "Dupliquer"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "%s - Copie"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "Alterner entre note et tâche"
|
||||||
|
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "Convertir en note"
|
||||||
|
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "Convertir en tâche"
|
||||||
|
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr "Copier lien Markdown"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "Supprimer note \"%s\" ?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "Supprimer ces %d notes ?"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Type a note title to jump to it. Or type # followed by a tag name, or @ "
|
||||||
|
"followed by a notebook name."
|
||||||
|
msgstr ""
|
||||||
|
"Entrez le titre d’une note, ou entrez # suivit du nom d’une étiquette, ou @ "
|
||||||
|
"suivit du nom d’un carnet."
|
||||||
|
|
||||||
|
msgid "Goto Anything..."
|
||||||
|
msgstr "Navigation rapide…"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "Utilisation : %s"
|
msgstr "Utilisation : %s"
|
||||||
@@ -1252,6 +1323,12 @@ msgstr "Chiffré"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "Les objets chiffrés ne peuvent être modifiés"
|
msgstr "Les objets chiffrés ne peuvent être modifiés"
|
||||||
|
|
||||||
|
msgid "title"
|
||||||
|
msgstr "titre"
|
||||||
|
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "date de modification"
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "Conflits"
|
msgstr "Conflits"
|
||||||
|
|
||||||
@@ -1262,12 +1339,6 @@ msgstr "Impossible de déplacer le carnet à cet endroit"
|
|||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
msgstr "Les carnets ne peuvent être nommés \"%s\" car c'est un nom réservé."
|
msgstr "Les carnets ne peuvent être nommés \"%s\" car c'est un nom réservé."
|
||||||
|
|
||||||
msgid "title"
|
|
||||||
msgstr "titre"
|
|
||||||
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "date de modification"
|
|
||||||
|
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "date de création"
|
msgstr "date de création"
|
||||||
|
|
||||||
@@ -1282,6 +1353,16 @@ msgstr "Impossible de copier la note vers le carnet \"%s\""
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "Impossible de déplacer la note vers le carnet \"%s\""
|
msgstr "Impossible de déplacer la note vers le carnet \"%s\""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
"Attention : si vous changez cet emplacement, copiez-y tout le contenu avant "
|
||||||
|
"de synchroniser, sinon tous les fichiers seront supprimés ! Consulter la FAQ "
|
||||||
|
"pour plus de détails : %s"
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Langue"
|
msgstr "Langue"
|
||||||
|
|
||||||
@@ -1312,6 +1393,9 @@ msgstr "Trier les notes par"
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "Inverser l'ordre"
|
msgstr "Inverser l'ordre"
|
||||||
|
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "Trier les carnets par"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "Enregistrer l'emplacement avec les notes"
|
msgstr "Enregistrer l'emplacement avec les notes"
|
||||||
|
|
||||||
@@ -1327,6 +1411,42 @@ msgstr "Curseur sur corps du message"
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "Lors de la création d'une note :"
|
msgstr "Lors de la création d'une note :"
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr "Activer retours à la ligne \"doux\""
|
||||||
|
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr "Activer les expressions mathématiques"
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr "Activer la syntaxe pour ==surligner=="
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr "Activer les notes de bas de page"
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr "Activer la table des matières"
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr "Activer la syntaxe ~indice~"
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr "Activer la syntaxe ^exposant^"
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr "Activer les listes de définitions"
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr "Activer la syntaxe pour abréviations"
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr "Activer la syntaxe émoji"
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr "Activer la syntaxe ++insertion++"
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr "Activer les tables multi-markdown"
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr "Afficher l'icône dans la zone de notifications"
|
msgstr "Afficher l'icône dans la zone de notifications"
|
||||||
|
|
||||||
@@ -1365,6 +1485,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "Mettre à jour le logiciel automatiquement"
|
msgstr "Mettre à jour le logiciel automatiquement"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr "Recevoir les pré-release lors de la vérification des mises à jour"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr "Voir la page des pré-release pour plus de détails : %s"
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "Intervalle de synchronisation"
|
msgstr "Intervalle de synchronisation"
|
||||||
|
|
||||||
@@ -1407,26 +1534,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr "Répertoire avec lequel synchroniser (chemin absolu)"
|
msgstr "Répertoire avec lequel synchroniser (chemin absolu)"
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
"Le chemin du répertoire avec lequel synchroniser lorsque la synchronisation "
|
|
||||||
"par système de fichier est activée. Voir `sync.target`."
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr "Nextcloud : URL WebDAV"
|
msgstr "Nextcloud : URL WebDAV"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
"Attention : si vous changez cet emplacement, copiez-y tout le contenu avant "
|
|
||||||
"de synchroniser, sinon tous les fichiers seront supprimés ! Consulter la FAQ "
|
|
||||||
"pour plus de détails : %s"
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr "Nextcloud : Nom utilisateur"
|
msgstr "Nextcloud : Nom utilisateur"
|
||||||
|
|
||||||
@@ -1464,6 +1574,24 @@ msgstr "Ignorer les erreurs de certificats TLS"
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "Option invalide: \"%s\". Les valeurs possibles sont : %s."
|
msgstr "Option invalide: \"%s\". Les valeurs possibles sont : %s."
|
||||||
|
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Général"
|
||||||
|
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "Synchronisation"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr "Apparence"
|
||||||
|
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "Note"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr "Modules"
|
||||||
|
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "Application"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr "L'étiquette \"%s\" existe déjà. Veuillez choisir un autre nom."
|
msgstr "L'étiquette \"%s\" existe déjà. Veuillez choisir un autre nom."
|
||||||
@@ -1483,6 +1611,9 @@ msgstr "Fichiers d'export Evernote"
|
|||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr "Dossier d'export JSON"
|
msgstr "Dossier d'export JSON"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Fichier"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Dossier"
|
msgstr "Dossier"
|
||||||
|
|
||||||
@@ -1561,7 +1692,7 @@ msgid "Permission to use camera"
|
|||||||
msgstr "Permission d'utiliser l'appareil photo"
|
msgstr "Permission d'utiliser l'appareil photo"
|
||||||
|
|
||||||
msgid "Your permission to use your camera is required."
|
msgid "Your permission to use your camera is required."
|
||||||
msgstr "Votre permission est requise pour utiliser l'appareil photo"
|
msgstr "Votre permission est requise pour utiliser l'appareil photo."
|
||||||
|
|
||||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1673,9 +1804,20 @@ msgstr "- Position : Pour attacher à une note les coordonnées GPS."
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr "Site web de Joplin"
|
msgstr "Site web de Joplin"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr "Base de données v%s"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "FTS activé : %d"
|
||||||
|
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Se connecter à Dropbox"
|
msgstr "Se connecter à Dropbox"
|
||||||
|
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr "Entrez le code ici"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr "Clef maître %s"
|
msgstr "Clef maître %s"
|
||||||
@@ -1758,6 +1900,9 @@ msgstr "Voir sur carte"
|
|||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr "Aller à l'URL source"
|
msgstr "Aller à l'URL source"
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Édition"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Supprimer le carnet"
|
msgstr "Supprimer le carnet"
|
||||||
|
|
||||||
@@ -1782,6 +1927,29 @@ msgstr ""
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "Bienvenue"
|
msgstr "Bienvenue"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "Cette note a été modifiée :"
|
||||||
|
|
||||||
|
#~ msgid "Table of contents"
|
||||||
|
#~ msgstr "Table des matières"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||||
|
#~ "See `sync.target`."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "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 ?"
|
||||||
|
|
||||||
|
#~ msgid "Delete notes?"
|
||||||
|
#~ msgstr "Supprimer les notes ?"
|
||||||
|
|
||||||
#~ msgid "State: %s."
|
#~ msgid "State: %s."
|
||||||
#~ msgstr "État : %s."
|
#~ msgstr "État : %s."
|
||||||
|
|
||||||
@@ -1832,9 +2000,6 @@ msgstr "Bienvenue"
|
|||||||
#~ msgid "Give focus to previous pane"
|
#~ msgid "Give focus to previous pane"
|
||||||
#~ msgstr "Activer le volet précédent"
|
#~ msgstr "Activer le volet précédent"
|
||||||
|
|
||||||
#~ msgid "Enter command line mode"
|
|
||||||
#~ msgstr "Démarrer le mode de ligne de commande"
|
|
||||||
|
|
||||||
#~ msgid "Exit command line mode"
|
#~ msgid "Exit command line mode"
|
||||||
#~ msgstr "Sortir du mode de ligne de commande"
|
#~ msgstr "Sortir du mode de ligne de commande"
|
||||||
|
|
||||||
@@ -1904,9 +2069,6 @@ msgstr "Bienvenue"
|
|||||||
#~ msgid "Delete notebook?"
|
#~ msgid "Delete notebook?"
|
||||||
#~ msgstr "Supprimer le carnet ?"
|
#~ msgstr "Supprimer le carnet ?"
|
||||||
|
|
||||||
#~ msgid "Delete notebook \"%s\"?"
|
|
||||||
#~ msgstr "Supprimer le carnet \"%s\" ?"
|
|
||||||
|
|
||||||
#~ msgid "File system synchronisation target directory"
|
#~ msgid "File system synchronisation target directory"
|
||||||
#~ msgstr "Cible de la synchronisation sur le disque dur"
|
#~ msgstr "Cible de la synchronisation sur le disque dur"
|
||||||
|
|
||||||
|
|||||||
@@ -122,9 +122,10 @@ msgstr "Marca unha tarefa como feita."
|
|||||||
msgid "Note is not a to-do: \"%s\""
|
msgid "Note is not a to-do: \"%s\""
|
||||||
msgstr "A nota non é unha tarefa: «%s»"
|
msgstr "A nota non é unha tarefa: «%s»"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Xestiona a configuración E2EE. As orde son «enable», «disable», «decrypt», "
|
"Xestiona a configuración E2EE. As orde son «enable», «disable», «decrypt», "
|
||||||
"«status» e «target-status»."
|
"«status» e «target-status»."
|
||||||
@@ -576,6 +577,20 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Exportando a «%s» como formato «%s». Agarde..."
|
msgstr "Exportando a «%s» como formato «%s». Agarde..."
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "Título do caderno:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "Cadernos"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Importando de «%s» como formato «%s». Agarde..."
|
msgstr "Importando de «%s» como formato «%s». Agarde..."
|
||||||
@@ -583,8 +598,8 @@ msgstr "Importando de «%s» como formato «%s». Agarde..."
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "Ficheiro PDF"
|
msgstr "Ficheiro PDF"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "Ficheiro"
|
msgstr "Estado da sincronización"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "Nova nota"
|
msgstr "Nova nota"
|
||||||
@@ -595,14 +610,43 @@ msgstr "Nova tarefa"
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "Novo caderno"
|
msgstr "Novo caderno"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr "Imprimir"
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Opcións xerais"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr "Opcións de cifrado"
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "Ficheiro"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "Sobre o Joplin"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr "Buscar actualizacións…"
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "Importar"
|
msgstr "Importar"
|
||||||
|
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "Exportar"
|
msgstr "Exportar"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr "Imprimir"
|
msgstr "Sincronizar"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -611,7 +655,8 @@ msgstr "Ocultar %s"
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Saír"
|
msgstr "Saír"
|
||||||
|
|
||||||
msgid "Edit"
|
#, fuzzy
|
||||||
|
msgid "&Edit"
|
||||||
msgstr "Edtar"
|
msgstr "Edtar"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -633,6 +678,9 @@ msgstr ""
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -646,7 +694,8 @@ msgstr "Buscar en todas as notas"
|
|||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "Buscar en todas as notas"
|
msgstr "Buscar en todas as notas"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "&View"
|
||||||
msgstr "Vista"
|
msgstr "Vista"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -655,22 +704,16 @@ msgstr ""
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr "Cambiar a disposición do editor"
|
msgstr "Cambiar a disposición do editor"
|
||||||
|
|
||||||
msgid "Tools"
|
#, fuzzy
|
||||||
|
msgid "Focus"
|
||||||
|
msgstr "Focar no corpo"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&Tools"
|
||||||
msgstr "Ferramentas"
|
msgstr "Ferramentas"
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
#, fuzzy
|
||||||
msgstr "Estado da sincronización"
|
msgid "&Help"
|
||||||
|
|
||||||
msgid "Web clipper options"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Encryption options"
|
|
||||||
msgstr "Opcións de cifrado"
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr "Opcións xerais"
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr "Axuda"
|
msgstr "Axuda"
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -679,16 +722,6 @@ msgstr "Sitio web e documentación"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "Doar"
|
msgstr "Doar"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr "Buscar actualizacións…"
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "Sobre o Joplin"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "Abrir %s"
|
msgstr "Abrir %s"
|
||||||
@@ -705,9 +738,21 @@ msgstr "Cancelar"
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr "A versión actual está actualizada."
|
msgstr "A versión actual está actualizada."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr "Hai unha actualización dispoñíbel, desexa descargala agora?"
|
msgstr "Hai unha actualización dispoñíbel, desexa descargala agora?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Si"
|
msgstr "Si"
|
||||||
|
|
||||||
@@ -775,13 +820,16 @@ msgid ""
|
|||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
|
||||||
msgstr "Comprobar a configuración da sincronización"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr "As notas e axustes gardáronse en: %s"
|
msgstr "As notas e axustes gardáronse en: %s"
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Comprobar a configuración da sincronización"
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -873,6 +921,10 @@ msgstr "Estado"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "O cifrado é:"
|
msgstr "O cifrado é:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Uso: %s"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Anterior"
|
msgstr "Anterior"
|
||||||
|
|
||||||
@@ -924,37 +976,6 @@ msgstr "Non é posíbel descifrar algúns elementos."
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "Estabelecer un contrasinal"
|
msgstr "Estabelecer un contrasinal"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "Engadir ou eliminar etiquetas"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "Copiar"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "Cambiar entre notas e tarefas"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "Cambiar entre notas e tarefas"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "Cambiar entre notas e tarefas"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr "Markdown"
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "Eliminar"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "Desexa eliminar as notas?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr "Aquí non hai notas. Cree unha premendo en «Nova nota»."
|
msgstr "Aquí non hai notas. Cree unha premendo en «Nova nota»."
|
||||||
|
|
||||||
@@ -1002,6 +1023,9 @@ msgstr ""
|
|||||||
"Esta nota non ten contido. Prema en «%s» para ir ao editor e modificar a "
|
"Esta nota non ten contido. Prema en «%s» para ir ao editor e modificar a "
|
||||||
"nota."
|
"nota."
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1090,18 +1114,27 @@ msgstr "Opcións de cifrado"
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Opcións xerais"
|
msgstr "Opcións xerais"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, fuzzy, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr ""
|
||||||
|
"Desexa eliminar o caderno? Tamén se eliminarán todas as notas deste caderno."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
msgstr "Desexa eliminar esta etiqueta de todas as notas?"
|
msgstr "Desexa eliminar esta etiqueta de todas as notas?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "Desexa eliminar esta busca da barra lateral?"
|
msgstr "Desexa eliminar esta busca da barra lateral?"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Eliminar"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Renomear"
|
msgstr "Renomear"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "Sincronizar"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "Cadernos"
|
msgstr "Cadernos"
|
||||||
|
|
||||||
@@ -1116,6 +1149,48 @@ msgstr "Recursos: %d."
|
|||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr "Seleccione onde exportar o estado da sincronización"
|
msgstr "Seleccione onde exportar o estado da sincronización"
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "Engadir ou eliminar etiquetas"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "Sae do aplicativo."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "Copiar"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "Cambiar entre notas e tarefas"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "Cambiar entre notas e tarefas"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "Cambiar entre notas e tarefas"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr "Markdown"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "Desexa eliminar as notas?"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "Desexa eliminar estas notas?"
|
||||||
|
|
||||||
|
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 ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "Uso: %s"
|
msgstr "Uso: %s"
|
||||||
@@ -1234,6 +1309,14 @@ msgstr "Cifrado"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "Non é posíbel modificar elementos cifrados"
|
msgstr "Non é posíbel modificar elementos cifrados"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "title"
|
||||||
|
msgstr "Sen título"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "Actualizado: %d."
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "Conflitos"
|
msgstr "Conflitos"
|
||||||
|
|
||||||
@@ -1245,14 +1328,6 @@ msgstr "Non é posíbel mover a nota ao caderno «%s»"
|
|||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
msgstr "Os cadernos non poden levar o nome «%s» porque é un título reservado."
|
msgstr "Os cadernos non poden levar o nome «%s» porque é un título reservado."
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "title"
|
|
||||||
msgstr "Sen título"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "Actualizado: %d."
|
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "Creado: %d."
|
msgstr "Creado: %d."
|
||||||
@@ -1268,6 +1343,13 @@ msgstr "Non é posíbel copiar a nota ao caderno «%s»"
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "Non é posíbel mover a nota ao caderno «%s»"
|
msgstr "Non é posíbel mover a nota ao caderno «%s»"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Idioma"
|
msgstr "Idioma"
|
||||||
|
|
||||||
@@ -1299,6 +1381,10 @@ msgstr "Ordenar notas por"
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "Orde inversa"
|
msgstr "Orde inversa"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "Ordenar notas por"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "Gardar xeolocalización coas notas"
|
msgstr "Gardar xeolocalización coas notas"
|
||||||
|
|
||||||
@@ -1314,6 +1400,43 @@ msgstr "Focar no corpo"
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "Cando se crea unha nova nota:"
|
msgstr "Cando se crea unha nova nota:"
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr "Activar cifrado"
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr "Mostrar a icona na bandexa"
|
msgstr "Mostrar a icona na bandexa"
|
||||||
|
|
||||||
@@ -1350,6 +1473,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "Actualizar automaticamente o aplicativo"
|
msgstr "Actualizar automaticamente o aplicativo"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "Intervalo de sincronización"
|
msgstr "Intervalo de sincronización"
|
||||||
|
|
||||||
@@ -1393,23 +1523,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr "Cartafol a sincronizar con (ruta absoluta)"
|
msgstr "Cartafol a sincronizar con (ruta absoluta)"
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
"Ruta para sincronizar cando estea activada a sincronización do sistema de "
|
|
||||||
"ficheiros. Vexa «sync.target»."
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr "URL de Nextcloud WebDAV"
|
msgstr "URL de Nextcloud WebDAV"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr "Usuario de Nextcloud"
|
msgstr "Usuario de Nextcloud"
|
||||||
|
|
||||||
@@ -1442,6 +1558,28 @@ msgstr ""
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "Valor incorrecto de opción: «%s». Os valores posíbeis son: %s."
|
msgstr "Valor incorrecto de opción: «%s». Os valores posíbeis son: %s."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Opcións xerais"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "Estado da sincronización"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "Cadernos"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "Sae do aplicativo."
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1462,6 +1600,9 @@ msgstr "Ficheiro de exportación de Evernote"
|
|||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr "Cartafol de exportación do Joplin"
|
msgstr "Cartafol de exportación do Joplin"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Ficheiro"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Cartafol"
|
msgstr "Cartafol"
|
||||||
|
|
||||||
@@ -1642,10 +1783,21 @@ msgstr ""
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr "Sitio web de Joplin"
|
msgstr "Sitio web de Joplin"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "Borrar: %d"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Acceder con OneDrive"
|
msgstr "Acceder con OneDrive"
|
||||||
|
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr "Chave mestra %s"
|
msgstr "Chave mestra %s"
|
||||||
@@ -1728,6 +1880,9 @@ msgstr "Ver no mapa"
|
|||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Edtar"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Eliminar caderno"
|
msgstr "Eliminar caderno"
|
||||||
|
|
||||||
@@ -1750,6 +1905,21 @@ msgstr "Non ten cadernos actualmente. Cree un premendo no botón (+)."
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "Benvido/a"
|
msgstr "Benvido/a"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "Esta nota foi modificada:"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||||
|
#~ "See `sync.target`."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "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."
|
#~ msgid "State: %s."
|
||||||
#~ msgstr "Estado: %s."
|
#~ msgstr "Estado: %s."
|
||||||
|
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ msgstr "Bilješka nije zadatak: \"%s\""
|
|||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Enter master password:"
|
msgid "Enter master password:"
|
||||||
@@ -579,6 +579,20 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "Naslov bilježnice:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "Bilježnice"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -587,8 +601,8 @@ msgstr ""
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "Datoteka"
|
msgstr "Datoteka"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "Datoteka"
|
msgstr "Status sinkronizacije"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "Nova bilješka"
|
msgstr "Nova bilješka"
|
||||||
@@ -599,6 +613,36 @@ msgstr "Novi zadatak"
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "Nova bilježnica"
|
msgstr "Nova bilježnica"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Opcije"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "Datoteka"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "O Joplinu"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "Uvoz"
|
msgstr "Uvoz"
|
||||||
|
|
||||||
@@ -606,8 +650,8 @@ msgstr "Uvoz"
|
|||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "Uvoz"
|
msgstr "Uvoz"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr ""
|
msgstr "Sinkroniziraj"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -616,7 +660,8 @@ msgstr ""
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Izađi"
|
msgstr "Izađi"
|
||||||
|
|
||||||
msgid "Edit"
|
#, fuzzy
|
||||||
|
msgid "&Edit"
|
||||||
msgstr "Uredi"
|
msgstr "Uredi"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -638,6 +683,9 @@ msgstr ""
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -651,7 +699,7 @@ msgstr "Pretraži u svim bilješkama"
|
|||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "Pretraži u svim bilješkama"
|
msgstr "Pretraži u svim bilješkama"
|
||||||
|
|
||||||
msgid "View"
|
msgid "&View"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -660,23 +708,16 @@ msgstr ""
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Tools"
|
#, fuzzy
|
||||||
msgstr "Alati"
|
msgid "Focus"
|
||||||
|
msgstr "Naslov bilješke:"
|
||||||
msgid "Synchronisation status"
|
|
||||||
msgstr "Status sinkronizacije"
|
|
||||||
|
|
||||||
msgid "Web clipper options"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Encryption options"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "General Options"
|
msgid "&Tools"
|
||||||
msgstr "Opcije"
|
msgstr "Alati"
|
||||||
|
|
||||||
msgid "Help"
|
#, fuzzy
|
||||||
|
msgid "&Help"
|
||||||
msgstr "Pomoć"
|
msgstr "Pomoć"
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -686,16 +727,6 @@ msgstr "Website i dokumentacija"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "Website i dokumentacija"
|
msgstr "Website i dokumentacija"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "O Joplinu"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, fuzzy, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "On %s: %s"
|
msgstr "On %s: %s"
|
||||||
@@ -712,9 +743,21 @@ msgstr "Odustani"
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -783,14 +826,17 @@ msgid ""
|
|||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Check synchronisation configuration"
|
|
||||||
msgstr "Prekini sinkronizaciju"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr "Bilješke i postavke su pohranjene u: %s"
|
msgstr "Bilješke i postavke su pohranjene u: %s"
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Prekini sinkronizaciju"
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -869,6 +915,10 @@ msgstr "Status"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Korištenje: %s"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Natrag"
|
msgstr "Natrag"
|
||||||
|
|
||||||
@@ -924,36 +974,6 @@ msgstr "Neke stavke se ne mogu sinkronizirati."
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "Dodaj ili makni oznake"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "Kopiraj"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "Zamijeni bilješku i zadatak"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "Zamijeni bilješku i zadatak"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "Zamijeni bilješku i zadatak"
|
|
||||||
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "Obriši"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "Obriši bilješke?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr "Ovdje nema bilješki. Stvori novu pritiskom na \"Nova bilješka\"."
|
msgstr "Ovdje nema bilješki. Stvori novu pritiskom na \"Nova bilješka\"."
|
||||||
|
|
||||||
@@ -1000,6 +1020,9 @@ msgid ""
|
|||||||
"note."
|
"note."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1090,18 +1113,27 @@ msgstr ""
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Opcije"
|
msgstr "Opcije"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, fuzzy, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr ""
|
||||||
|
"Obrisati bilježnicu? Sve bilješke u toj bilježnici će također biti obrisane."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
msgstr "Makni ovu oznaku iz svih bilješki?"
|
msgstr "Makni ovu oznaku iz svih bilješki?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "Makni ovu pretragu iz izbornika?"
|
msgstr "Makni ovu pretragu iz izbornika?"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Obriši"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Preimenuj"
|
msgstr "Preimenuj"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "Sinkroniziraj"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "Bilježnice"
|
msgstr "Bilježnice"
|
||||||
|
|
||||||
@@ -1116,6 +1148,47 @@ msgstr "Resursi: %d."
|
|||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr "Odaberi lokaciju za izvoz statusa sinkronizacije"
|
msgstr "Odaberi lokaciju za izvoz statusa sinkronizacije"
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "Dodaj ili makni oznake"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "Izađi iz aplikacije."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "Kopiraj"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "Zamijeni bilješku i zadatak"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "Zamijeni bilješku i zadatak"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "Zamijeni bilješku i zadatak"
|
||||||
|
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "Obriši bilješke?"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "Obriši ove bilješke?"
|
||||||
|
|
||||||
|
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 ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "Korištenje: %s"
|
msgstr "Korištenje: %s"
|
||||||
@@ -1233,6 +1306,14 @@ msgstr ""
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "Neke stavke se ne mogu sinkronizirati."
|
msgstr "Neke stavke se ne mogu sinkronizirati."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "title"
|
||||||
|
msgstr "Nenaslovljen"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "Ažurirano: %d."
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "Sukobi"
|
msgstr "Sukobi"
|
||||||
|
|
||||||
@@ -1244,14 +1325,6 @@ msgstr "Ne mogu premjestiti bilješku u bilježnicu %s"
|
|||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
msgstr "Naslov \"%s\" je rezerviran i ne može se koristiti."
|
msgstr "Naslov \"%s\" je rezerviran i ne može se koristiti."
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "title"
|
|
||||||
msgstr "Nenaslovljen"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "Ažurirano: %d."
|
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "Stvoreno: %d."
|
msgstr "Stvoreno: %d."
|
||||||
@@ -1267,6 +1340,13 @@ msgstr "Ne mogu kopirati bilješku u bilježnicu %s"
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "Ne mogu premjestiti bilješku u bilježnicu %s"
|
msgstr "Ne mogu premjestiti bilješku u bilježnicu %s"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Jezik"
|
msgstr "Jezik"
|
||||||
|
|
||||||
@@ -1300,6 +1380,10 @@ msgstr ""
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "Mijenja redoslijed."
|
msgstr "Mijenja redoslijed."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "Uredi bilježnicu"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "Spremi geolokacijske podatke sa bilješkama"
|
msgstr "Spremi geolokacijske podatke sa bilješkama"
|
||||||
|
|
||||||
@@ -1318,6 +1402,42 @@ msgstr ""
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "Stvara novu bilješku."
|
msgstr "Stvara novu bilješku."
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1351,6 +1471,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "Automatsko instaliranje nove verzije"
|
msgstr "Automatsko instaliranje nove verzije"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "Interval sinkronizacije"
|
msgstr "Interval sinkronizacije"
|
||||||
|
|
||||||
@@ -1392,23 +1519,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr "Direktorij za sinkroniziranje (apsolutna putanja)"
|
msgstr "Direktorij za sinkroniziranje (apsolutna putanja)"
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
"Putanja do direktorija za sinkronizaciju u slučaju kad je sinkronizacija sa "
|
|
||||||
"datotečnim sustavom omogućena. Vidi `sync.target`."
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1441,6 +1554,28 @@ msgstr ""
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "Nevažeća vrijednost: \"%s\". Moguće vrijednosti su: %s."
|
msgstr "Nevažeća vrijednost: \"%s\". Moguće vrijednosti su: %s."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Opcije"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "Status sinkronizacije"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "Bilježnice"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "Izađi iz aplikacije."
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1463,6 +1598,9 @@ msgstr "Evernote izvozne datoteke"
|
|||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr "Evernote izvozne datoteke"
|
msgstr "Evernote izvozne datoteke"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Datoteka"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1639,10 +1777,22 @@ msgstr ""
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "Za brisanje: %d"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Prijavi se u OneDrive"
|
msgstr "Prijavi se u OneDrive"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr "Otvori naredbeni redak"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1726,6 +1876,9 @@ msgstr "Vidi na karti"
|
|||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Uredi"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Obriši bilježnicu"
|
msgstr "Obriši bilježnicu"
|
||||||
|
|
||||||
@@ -1748,6 +1901,17 @@ msgstr "Trenutno nemaš nijednu bilježnicu. Stvori novu klikom na (+) gumb."
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "Dobro došli"
|
msgstr "Dobro došli"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "Bilješka je promijenjena:"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||||
|
#~ "See `sync.target`."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Putanja do direktorija za sinkronizaciju u slučaju kad je sinkronizacija "
|
||||||
|
#~ "sa datotečnim sustavom omogućena. Vidi `sync.target`."
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "State: %s."
|
#~ msgid "State: %s."
|
||||||
#~ msgstr "Stanje: \"%s\"."
|
#~ msgstr "Stanje: \"%s\"."
|
||||||
@@ -1789,9 +1953,6 @@ msgstr "Dobro došli"
|
|||||||
#~ msgid "Give focus to previous pane"
|
#~ msgid "Give focus to previous pane"
|
||||||
#~ msgstr "Fokusiraj prethodno okno"
|
#~ msgstr "Fokusiraj prethodno okno"
|
||||||
|
|
||||||
#~ msgid "Enter command line mode"
|
|
||||||
#~ msgstr "Otvori naredbeni redak"
|
|
||||||
|
|
||||||
#~ msgid "Exit command line mode"
|
#~ msgid "Exit command line mode"
|
||||||
#~ msgstr "Napusti naredbeni redak"
|
#~ msgstr "Napusti naredbeni redak"
|
||||||
|
|
||||||
@@ -1801,9 +1962,6 @@ msgstr "Dobro došli"
|
|||||||
#~ msgid "Cancel the current command."
|
#~ msgid "Cancel the current command."
|
||||||
#~ msgstr "Prekini trenutnu naredbu."
|
#~ msgstr "Prekini trenutnu naredbu."
|
||||||
|
|
||||||
#~ msgid "Exit the application."
|
|
||||||
#~ msgstr "Izađi iz aplikacije."
|
|
||||||
|
|
||||||
#~ msgid "Delete the currently selected note or notebook."
|
#~ msgid "Delete the currently selected note or notebook."
|
||||||
#~ msgstr "Obriši odabranu bilješku ili bilježnicu."
|
#~ msgstr "Obriši odabranu bilješku ili bilježnicu."
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ msgstr ""
|
|||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Poedit 2.1.1\n"
|
"X-Generator: Poedit 2.2\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
msgid "To delete a tag, untag the associated notes."
|
msgid "To delete a tag, untag the associated notes."
|
||||||
@@ -124,9 +124,10 @@ msgstr "Segna un \"Cose-da-fare\" come completato."
|
|||||||
msgid "Note is not a to-do: \"%s\""
|
msgid "Note is not a to-do: \"%s\""
|
||||||
msgstr "La nota non è un \"Cose-da-fare\": \"%s\""
|
msgstr "La nota non è un \"Cose-da-fare\": \"%s\""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Gestisci la configurazione E2EE. I comandi sono `abilita`, `disabilita`, "
|
"Gestisci la configurazione E2EE. I comandi sono `abilita`, `disabilita`, "
|
||||||
"`decripta`, `stato` e `stato-target`."
|
"`decripta`, `stato` e `stato-target`."
|
||||||
@@ -462,7 +463,7 @@ msgid "Starting synchronisation..."
|
|||||||
msgstr "Inizio sincronizzazione..."
|
msgstr "Inizio sincronizzazione..."
|
||||||
|
|
||||||
msgid "Downloading resources..."
|
msgid "Downloading resources..."
|
||||||
msgstr ""
|
msgstr "Scaricamento risorse…"
|
||||||
|
|
||||||
msgid "Cancelling... Please wait."
|
msgid "Cancelling... Please wait."
|
||||||
msgstr "Cancellazione... Attendere per favore."
|
msgstr "Cancellazione... Attendere per favore."
|
||||||
@@ -566,6 +567,13 @@ msgid ""
|
|||||||
"\n"
|
"\n"
|
||||||
"For example, to create a notebook press `mb`; to create a note press `mn`."
|
"For example, to create a notebook press `mb`; to create a note press `mn`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Benvenuto in Joplin!\n"
|
||||||
|
"\n"
|
||||||
|
"Digita `:help shortcuts` per la lista delle scorciatoie da tastiera, oppure "
|
||||||
|
"solo `:help` per le informazioni di utilizzo.\n"
|
||||||
|
"\n"
|
||||||
|
"Per esempio, per creare un taccuino digita `mb`; per creare una nota digita "
|
||||||
|
"`mn`."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"One or more items are currently encrypted and you may need to supply a "
|
"One or more items are currently encrypted and you may need to supply a "
|
||||||
@@ -582,6 +590,20 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Esportazione da \"%s\" come formato \"%s\". Si prega di attendere..."
|
msgstr "Esportazione da \"%s\" come formato \"%s\". Si prega di attendere..."
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "Titolo del Taccuino:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "Taccuini"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Importazione da \"%s\" come formato \"%s\". Si prega di attendere..."
|
msgstr "Importazione da \"%s\" come formato \"%s\". Si prega di attendere..."
|
||||||
@@ -589,8 +611,8 @@ msgstr "Importazione da \"%s\" come formato \"%s\". Si prega di attendere..."
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "PDF File"
|
msgstr "PDF File"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "File"
|
msgstr "Stato di sincronizzazione"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "Nuova nota"
|
msgstr "Nuova nota"
|
||||||
@@ -601,14 +623,43 @@ msgstr "Nuovo \"Cose-da-fare\""
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "Nuovo taccuino"
|
msgstr "Nuovo taccuino"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr "Stampa"
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Opzioni Generali"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr "Opzioni Crittografia"
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr "Opzioni Web Clipper"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "File"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "Informazione su Joplin"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr "Controlla aggiornamenti ..."
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "Importa"
|
msgstr "Importa"
|
||||||
|
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "Esporta"
|
msgstr "Esporta"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr "Stampa"
|
msgstr "Sincronizza"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -617,7 +668,8 @@ msgstr "Nascondi %s"
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Esci"
|
msgstr "Esci"
|
||||||
|
|
||||||
msgid "Edit"
|
#, fuzzy
|
||||||
|
msgid "&Edit"
|
||||||
msgstr "Modifica"
|
msgstr "Modifica"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -629,9 +681,8 @@ msgstr "Taglia"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Incolla"
|
msgstr "Incolla"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Select all"
|
msgid "Select all"
|
||||||
msgstr "Seleziona la data"
|
msgstr "Seleziona tutto"
|
||||||
|
|
||||||
msgid "Bold"
|
msgid "Bold"
|
||||||
msgstr "Grasseto"
|
msgstr "Grasseto"
|
||||||
@@ -639,6 +690,9 @@ msgstr "Grasseto"
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr "Corsivo"
|
msgstr "Corsivo"
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr "Inserisci data e ora"
|
msgstr "Inserisci data e ora"
|
||||||
|
|
||||||
@@ -648,11 +702,11 @@ msgstr "Modifica in un editor esterno"
|
|||||||
msgid "Search in all the notes"
|
msgid "Search in all the notes"
|
||||||
msgstr "Cerca in tutte le note"
|
msgstr "Cerca in tutte le note"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "Cerca in tutte le note"
|
msgstr "Cerca nella nota corrente"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "&View"
|
||||||
msgstr "Vista"
|
msgstr "Vista"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -661,22 +715,16 @@ msgstr "Attiva / disattiva barra laterale"
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr "Attiva / disattiva il layout dell'editor"
|
msgstr "Attiva / disattiva il layout dell'editor"
|
||||||
|
|
||||||
msgid "Tools"
|
#, fuzzy
|
||||||
|
msgid "Focus"
|
||||||
|
msgstr "Focus sul testo"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&Tools"
|
||||||
msgstr "Strumenti"
|
msgstr "Strumenti"
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
#, fuzzy
|
||||||
msgstr "Stato di sincronizzazione"
|
msgid "&Help"
|
||||||
|
|
||||||
msgid "Web clipper options"
|
|
||||||
msgstr "Opzioni Web Clipper"
|
|
||||||
|
|
||||||
msgid "Encryption options"
|
|
||||||
msgstr "Opzioni Crittografia"
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr "Opzioni Generali"
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr "Aiuto"
|
msgstr "Aiuto"
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -685,16 +733,6 @@ msgstr "Sito web e documentazione"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "Fai una donazione"
|
msgstr "Fai una donazione"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr "Controlla aggiornamenti ..."
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "Informazione su Joplin"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "Aprire %s"
|
msgstr "Aprire %s"
|
||||||
@@ -711,9 +749,21 @@ msgstr "Cancella"
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr "La versione attuale è aggiornata."
|
msgstr "La versione attuale è aggiornata."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr "È disponibile un aggiornamento, vuoi scaricarlo ora?"
|
msgstr "È disponibile un aggiornamento, vuoi scaricarlo ora?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Sì"
|
msgstr "Sì"
|
||||||
|
|
||||||
@@ -787,13 +837,16 @@ msgid ""
|
|||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
|
||||||
msgstr "Controlla la configurazione della sincronizzazione"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr "Le note e le impostazioni sono memorizzate in: %s"
|
msgstr "Le note e le impostazioni sono memorizzate in: %s"
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Controlla la configurazione della sincronizzazione"
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr "Applica"
|
msgstr "Applica"
|
||||||
|
|
||||||
@@ -889,6 +942,10 @@ msgstr "Stato"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "La crittografia è:"
|
msgstr "La crittografia è:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Uso: %s"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Indietro"
|
msgstr "Indietro"
|
||||||
|
|
||||||
@@ -939,36 +996,6 @@ msgstr "Alcuni elementi non possono essere decodificati."
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "Imposta la password"
|
msgstr "Imposta la password"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "Aggiungi o rimuovi etichetta"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr "Duplicare"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "%s - Copia"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "Converti nota in \"Cose-da-fare\" e viceversa"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "Converti nota in \"Cose-da-fare\" e viceversa"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "Converti nota in \"Cose-da-fare\" e viceversa"
|
|
||||||
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr "Copia il link Markdown"
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "Elimina"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "Eliminare le note?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr "Non è presente nessuna nota. Creane una cliccando \"Nuova nota\"."
|
msgstr "Non è presente nessuna nota. Creane una cliccando \"Nuova nota\"."
|
||||||
|
|
||||||
@@ -1004,7 +1031,7 @@ msgid "Copy Link Address"
|
|||||||
msgstr "Copia l'indirizzo del link"
|
msgstr "Copia l'indirizzo del link"
|
||||||
|
|
||||||
msgid "This attachment is not downloaded or not decrypted yet."
|
msgid "This attachment is not downloaded or not decrypted yet."
|
||||||
msgstr ""
|
msgstr "Questo allegato non è ancora stato scaricato o decriptato."
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported link or message: %s"
|
msgid "Unsupported link or message: %s"
|
||||||
@@ -1018,6 +1045,9 @@ msgstr ""
|
|||||||
"Questa nota non ha contenuto. Fai clic su \"%s\" per attivare l'editor e "
|
"Questa nota non ha contenuto. Fai clic su \"%s\" per attivare l'editor e "
|
||||||
"modificare la nota."
|
"modificare la nota."
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr "Testo grasseto"
|
msgstr "Testo grasseto"
|
||||||
|
|
||||||
@@ -1105,18 +1135,28 @@ msgstr "Opzioni di crittografia"
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Opzioni Clipper"
|
msgstr "Opzioni Clipper"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, fuzzy, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr ""
|
||||||
|
"Eliminare taccuino? Anche tutte le note e cartelle di questo taccuino "
|
||||||
|
"saranno cancellati."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
msgstr "Rimuovere questa etichetta da tutte le note?"
|
msgstr "Rimuovere questa etichetta da tutte le note?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "Rimuovere questa ricerca dalla barra laterale?"
|
msgstr "Rimuovere questa ricerca dalla barra laterale?"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Elimina"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Rinomina"
|
msgstr "Rinomina"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "Sincronizza"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "Taccuini"
|
msgstr "Taccuini"
|
||||||
|
|
||||||
@@ -1131,6 +1171,44 @@ msgstr "Risorse: %d."
|
|||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "Aggiungi o rimuovi etichetta"
|
||||||
|
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "Duplicare"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "%s - Copia"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "Converti nota in \"Cose-da-fare\" e viceversa"
|
||||||
|
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "Converti in nota"
|
||||||
|
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "Converti in \"Cose-da-fare\""
|
||||||
|
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr "Copia il link Markdown"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "Eliminare il taccuino \"%s\"?"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "Cancellare queste note?"
|
||||||
|
|
||||||
|
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 ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "Uso: %s"
|
msgstr "Uso: %s"
|
||||||
@@ -1249,6 +1327,12 @@ msgstr "Crittografato"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "Gli elementi crittografati non possono essere modificati"
|
msgstr "Gli elementi crittografati non possono essere modificati"
|
||||||
|
|
||||||
|
msgid "title"
|
||||||
|
msgstr "Titolo"
|
||||||
|
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "Data di aggiornamento"
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "Conflitti"
|
msgstr "Conflitti"
|
||||||
|
|
||||||
@@ -1259,12 +1343,6 @@ msgstr "Impossibile spostare il Taccuino in questa posizione"
|
|||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
msgstr "I blocchi non possono essere chiamati \"%s\". È un titolo riservato."
|
msgstr "I blocchi non possono essere chiamati \"%s\". È un titolo riservato."
|
||||||
|
|
||||||
msgid "title"
|
|
||||||
msgstr "Titolo"
|
|
||||||
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "Data di aggiornamento"
|
|
||||||
|
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "Data di creazione"
|
msgstr "Data di creazione"
|
||||||
|
|
||||||
@@ -1279,6 +1357,13 @@ msgstr "Non posso copiare la nota nel Taccuino \"%s\""
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "Non posso spostare la nota nel Taccuino \"%s\""
|
msgstr "Non posso spostare la nota nel Taccuino \"%s\""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Linguaggio"
|
msgstr "Linguaggio"
|
||||||
|
|
||||||
@@ -1309,6 +1394,10 @@ msgstr "Ordina le note per"
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "Inverti l'ordine"
|
msgstr "Inverti l'ordine"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "Ordina le note per"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "Salva geolocalizzazione con le note"
|
msgstr "Salva geolocalizzazione con le note"
|
||||||
|
|
||||||
@@ -1316,14 +1405,51 @@ msgid "When creating a new to-do:"
|
|||||||
msgstr "Quando crei un nuovo \"Cose-da-fare\":"
|
msgstr "Quando crei un nuovo \"Cose-da-fare\":"
|
||||||
|
|
||||||
msgid "Focus title"
|
msgid "Focus title"
|
||||||
msgstr ""
|
msgstr "Focus sul titolo"
|
||||||
|
|
||||||
msgid "Focus body"
|
msgid "Focus body"
|
||||||
msgstr ""
|
msgstr "Focus sul testo"
|
||||||
|
|
||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "Quando si crea una nuova nota:"
|
msgstr "Quando si crea una nuova nota:"
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr "Attiva Crittografia"
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr "Visualizza tray icon"
|
msgstr "Visualizza tray icon"
|
||||||
|
|
||||||
@@ -1335,6 +1461,9 @@ msgid ""
|
|||||||
"this setting so that your notes are constantly being synchronised, thus "
|
"this setting so that your notes are constantly being synchronised, thus "
|
||||||
"reducing the number of conflicts."
|
"reducing the number of conflicts."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Questo consentirà Joplin di essere in esecuzione in background. E’ "
|
||||||
|
"raccomandata l’attivazione di questa impostazione per sincronizzare "
|
||||||
|
"costantemente le tue note e quindi ridurre il numero di conflitti."
|
||||||
|
|
||||||
msgid "Start application minimised in the tray icon"
|
msgid "Start application minimised in the tray icon"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1342,12 +1471,11 @@ msgstr ""
|
|||||||
msgid "Global zoom percentage"
|
msgid "Global zoom percentage"
|
||||||
msgstr "Percentuale di zoom globale"
|
msgstr "Percentuale di zoom globale"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Editor font size"
|
msgid "Editor font size"
|
||||||
msgstr "Editor Famiglia Caratteri"
|
msgstr "Editor dimensione caratteri"
|
||||||
|
|
||||||
msgid "Editor font family"
|
msgid "Editor font family"
|
||||||
msgstr "Editor Famiglia Caratteri"
|
msgstr "Editor famiglia caratteri"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"This must be *monospace* font or it will not work properly. If the font is "
|
"This must be *monospace* font or it will not work properly. If the font is "
|
||||||
@@ -1360,6 +1488,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "Aggiorna automaticamente l'applicazione"
|
msgstr "Aggiorna automaticamente l'applicazione"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "Intervallo di sincronizzazione"
|
msgstr "Intervallo di sincronizzazione"
|
||||||
|
|
||||||
@@ -1402,23 +1537,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr "Cartella da sincronizzare con (percorso assoluto)"
|
msgstr "Cartella da sincronizzare con (percorso assoluto)"
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
"Il percorso di sincronizzazione quando la sincronizzazione è abilitata. Vedi "
|
|
||||||
"`sync.target`."
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr "URL Nextcloud WebDAV"
|
msgstr "URL Nextcloud WebDAV"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr "Nome Utente Nextcloud"
|
msgstr "Nome Utente Nextcloud"
|
||||||
|
|
||||||
@@ -1454,14 +1575,36 @@ msgstr "Ignora gli errori del certificato TLS"
|
|||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "Oprione non valida: \"%s\". I valori possibili sono: %s."
|
msgstr "Opzione non valida: \"%s\". I valori possibili sono: %s."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Opzioni Generali"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "Stato di sincronizzazione"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "Taccuini"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "Esci dall'applicazione."
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr ""
|
msgstr "Il tag \"%s\" esiste già. Scegliere un nome differente."
|
||||||
|
|
||||||
msgid "Joplin Export File"
|
msgid "Joplin Export File"
|
||||||
msgstr "Esposta files di Joplin"
|
msgstr "Esporta file di Joplin"
|
||||||
|
|
||||||
msgid "Markdown"
|
msgid "Markdown"
|
||||||
msgstr "Markdown"
|
msgstr "Markdown"
|
||||||
@@ -1472,9 +1615,11 @@ msgstr "Cartella di esportazione di Joplin"
|
|||||||
msgid "Evernote Export File"
|
msgid "Evernote Export File"
|
||||||
msgstr "Esporta files di Evernote"
|
msgstr "Esporta files di Evernote"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr "Cartella di esportazione di Joplin"
|
msgstr "Cartella di esportazione JSON"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "File"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Cartella"
|
msgstr "Cartella"
|
||||||
@@ -1551,7 +1696,7 @@ msgid "On %s: %s"
|
|||||||
msgstr "Su %s: %s"
|
msgstr "Su %s: %s"
|
||||||
|
|
||||||
msgid "Permission to use camera"
|
msgid "Permission to use camera"
|
||||||
msgstr ""
|
msgstr "Permesso di usare la fotocamera"
|
||||||
|
|
||||||
msgid "Your permission to use your camera is required."
|
msgid "Your permission to use your camera is required."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1661,11 +1806,22 @@ msgstr ""
|
|||||||
"geografica ad una nota."
|
"geografica ad una nota."
|
||||||
|
|
||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr "Siro web Joplin"
|
msgstr "Sito web Joplin"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr "Database v%s"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "FTS attivato: %d"
|
||||||
|
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Login Dropbox"
|
msgstr "Login Dropbox"
|
||||||
|
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr "Inserisci qui il codice"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr "Chiave Master %s"
|
msgstr "Chiave Master %s"
|
||||||
@@ -1718,9 +1874,8 @@ msgstr ""
|
|||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr "Tipo di immagine non supportata: %s"
|
msgstr "Tipo di immagine non supportata: %s"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Take photo"
|
msgid "Take photo"
|
||||||
msgstr "Allega foto"
|
msgstr "Scatta foto"
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr "Allega foto"
|
msgstr "Allega foto"
|
||||||
@@ -1749,6 +1904,9 @@ msgstr "Guarda sulla mappa"
|
|||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Modifica"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Cancella Taccuino"
|
msgstr "Cancella Taccuino"
|
||||||
|
|
||||||
@@ -1772,6 +1930,23 @@ msgstr ""
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "Benvenuto"
|
msgstr "Benvenuto"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "Questa note è stata modificata:"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||||
|
#~ "See `sync.target`."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Il percorso di sincronizzazione quando la sincronizzazione è abilitata. "
|
||||||
|
#~ "Vedi `sync.target`."
|
||||||
|
|
||||||
|
#~ msgid "Joplin v%s"
|
||||||
|
#~ msgstr "Joplin v%s"
|
||||||
|
|
||||||
|
#~ msgid "Delete notes?"
|
||||||
|
#~ msgstr "Eliminare le note?"
|
||||||
|
|
||||||
#~ msgid "State: %s."
|
#~ msgid "State: %s."
|
||||||
#~ msgstr "Stato: %s."
|
#~ msgstr "Stato: %s."
|
||||||
|
|
||||||
@@ -1829,9 +2004,6 @@ msgstr "Benvenuto"
|
|||||||
#~ msgid "Give focus to previous pane"
|
#~ msgid "Give focus to previous pane"
|
||||||
#~ msgstr "Pannello precedente"
|
#~ msgstr "Pannello precedente"
|
||||||
|
|
||||||
#~ msgid "Enter command line mode"
|
|
||||||
#~ msgstr "Accedi alla modalità linea di comando"
|
|
||||||
|
|
||||||
#~ msgid "Exit command line mode"
|
#~ msgid "Exit command line mode"
|
||||||
#~ msgstr "Esci dalla modalità linea di comando"
|
#~ msgstr "Esci dalla modalità linea di comando"
|
||||||
|
|
||||||
@@ -1841,9 +2013,6 @@ msgstr "Benvenuto"
|
|||||||
#~ msgid "Cancel the current command."
|
#~ msgid "Cancel the current command."
|
||||||
#~ msgstr "Cancella il comando corrente."
|
#~ msgstr "Cancella il comando corrente."
|
||||||
|
|
||||||
#~ msgid "Exit the application."
|
|
||||||
#~ msgstr "Esci dall'applicazione."
|
|
||||||
|
|
||||||
#~ msgid "Delete the currently selected note or notebook."
|
#~ msgid "Delete the currently selected note or notebook."
|
||||||
#~ msgstr "Elimina la nota o il taccuino selezionato."
|
#~ msgstr "Elimina la nota o il taccuino selezionato."
|
||||||
|
|
||||||
@@ -1890,8 +2059,5 @@ msgstr "Benvenuto"
|
|||||||
#~ msgid "Delete notebook?"
|
#~ msgid "Delete notebook?"
|
||||||
#~ msgstr "Eliminare il taccuino?"
|
#~ msgstr "Eliminare il taccuino?"
|
||||||
|
|
||||||
#~ msgid "Delete notebook \"%s\"?"
|
|
||||||
#~ msgstr "Eliminare il taccuino \"%s\"?"
|
|
||||||
|
|
||||||
#~ msgid "File system synchronisation target directory"
|
#~ msgid "File system synchronisation target directory"
|
||||||
#~ msgstr "Directory di destinazione per la sincronizzazione nel file system"
|
#~ msgstr "Directory di destinazione per la sincronizzazione nel file system"
|
||||||
|
|||||||
@@ -123,9 +123,10 @@ msgstr "ToDoを完了としてマークします。"
|
|||||||
msgid "Note is not a to-do: \"%s\""
|
msgid "Note is not a to-do: \"%s\""
|
||||||
msgstr "ノートはToDoリストではありません:\"%s\""
|
msgstr "ノートはToDoリストではありません:\"%s\""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"E2EEの設定を変更します。コマンドは `enable`, `disable`, `decrypt`, `status` "
|
"E2EEの設定を変更します。コマンドは `enable`, `disable`, `decrypt`, `status` "
|
||||||
"and `target-status` です。"
|
"and `target-status` です。"
|
||||||
@@ -236,7 +237,7 @@ msgstr ""
|
|||||||
"ムを参照できます。"
|
"ムを参照できます。"
|
||||||
|
|
||||||
msgid "To move from one pane to another, press Tab or Shift+Tab."
|
msgid "To move from one pane to another, press Tab or Shift+Tab."
|
||||||
msgstr "ペイン間を移動するには、TabかShift+Tabをおしてください。"
|
msgstr "ペイン間を移動するには、TabかShift+Tabを押してください。"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Use the arrows and page up/down to scroll the lists and text areas "
|
"Use the arrows and page up/down to scroll the lists and text areas "
|
||||||
@@ -446,7 +447,7 @@ msgid "Starting synchronisation..."
|
|||||||
msgstr "同期を開始中..."
|
msgstr "同期を開始中..."
|
||||||
|
|
||||||
msgid "Downloading resources..."
|
msgid "Downloading resources..."
|
||||||
msgstr ""
|
msgstr "リソースをダウンロード中..."
|
||||||
|
|
||||||
msgid "Cancelling... Please wait."
|
msgid "Cancelling... Please wait."
|
||||||
msgstr "中止中...お待ちください。"
|
msgstr "中止中...お待ちください。"
|
||||||
@@ -570,6 +571,20 @@ msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"\"%s\" を \"%s\" フォーマットにエクスポート中。しばらくお待ちください..."
|
"\"%s\" を \"%s\" フォーマットにエクスポート中。しばらくお待ちください..."
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "ノートブックの題名:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "ノートブック"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -578,8 +593,8 @@ msgstr ""
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "PDF ファイル"
|
msgstr "PDF ファイル"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "ファイル"
|
msgstr "同期状況"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "新しいノート"
|
msgstr "新しいノート"
|
||||||
@@ -590,14 +605,43 @@ msgstr "新しいToDo"
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "新しいノートブック"
|
msgstr "新しいノートブック"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr "印刷"
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "全般のオプション"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr "暗号化のオプション"
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr "Webクリッパーのオプション"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "ファイル"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "Joplinについて"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr "アップデートのチェック..."
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "インポート"
|
msgstr "インポート"
|
||||||
|
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "エクスポート"
|
msgstr "エクスポート"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr "印刷"
|
msgstr "同期"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -606,7 +650,8 @@ msgstr "%s を隠す"
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "終了"
|
msgstr "終了"
|
||||||
|
|
||||||
msgid "Edit"
|
#, fuzzy
|
||||||
|
msgid "&Edit"
|
||||||
msgstr "編集"
|
msgstr "編集"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -618,9 +663,8 @@ msgstr "切り取り"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "貼り付け"
|
msgstr "貼り付け"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Select all"
|
msgid "Select all"
|
||||||
msgstr "日付の選択"
|
msgstr "すべて選択"
|
||||||
|
|
||||||
msgid "Bold"
|
msgid "Bold"
|
||||||
msgstr "太字"
|
msgstr "太字"
|
||||||
@@ -628,6 +672,9 @@ msgstr "太字"
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr "斜体"
|
msgstr "斜体"
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr "日付の入力"
|
msgstr "日付の入力"
|
||||||
|
|
||||||
@@ -637,11 +684,11 @@ msgstr "外部エディターで編集"
|
|||||||
msgid "Search in all the notes"
|
msgid "Search in all the notes"
|
||||||
msgstr "すべてのノートを検索"
|
msgstr "すべてのノートを検索"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "すべてのノートを検索"
|
msgstr "現在のノートを検索"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "&View"
|
||||||
msgstr "表示"
|
msgstr "表示"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -650,22 +697,16 @@ msgstr "サイドバーの表示切り替え"
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr "エディターレイアウトの表示切り替え"
|
msgstr "エディターレイアウトの表示切り替え"
|
||||||
|
|
||||||
msgid "Tools"
|
#, fuzzy
|
||||||
|
msgid "Focus"
|
||||||
|
msgstr "本文にフォーカス"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&Tools"
|
||||||
msgstr "ツール"
|
msgstr "ツール"
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
#, fuzzy
|
||||||
msgstr "同期状況"
|
msgid "&Help"
|
||||||
|
|
||||||
msgid "Web clipper options"
|
|
||||||
msgstr "Webクリッパーのオプション"
|
|
||||||
|
|
||||||
msgid "Encryption options"
|
|
||||||
msgstr "暗号化のオプション"
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr "全般のオプション"
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr "ヘルプ"
|
msgstr "ヘルプ"
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -674,16 +715,6 @@ msgstr "Webサイトとドキュメント"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "寄付する"
|
msgstr "寄付する"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr "アップデートのチェック..."
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "Joplinについて"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "%s を開く"
|
msgstr "%s を開く"
|
||||||
@@ -700,9 +731,21 @@ msgstr "キャンセル"
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr "現在のバージョンは最新版です。"
|
msgstr "現在のバージョンは最新版です。"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr "アップデートがあります。すぐにダウンロードしますか?"
|
msgstr "アップデートがあります。すぐにダウンロードしますか?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Yes"
|
msgstr "Yes"
|
||||||
|
|
||||||
@@ -710,7 +753,7 @@ msgid "No"
|
|||||||
msgstr "No"
|
msgstr "No"
|
||||||
|
|
||||||
msgid "Token has been copied to the clipboard!"
|
msgid "Token has been copied to the clipboard!"
|
||||||
msgstr ""
|
msgstr "トークンをクリップボードにコピーしました!"
|
||||||
|
|
||||||
msgid "The web clipper service is enabled and set to auto-start."
|
msgid "The web clipper service is enabled and set to auto-start."
|
||||||
msgstr "Webクリッパーサービスは有効で、自動起動します。"
|
msgstr "Webクリッパーサービスは有効で、自動起動します。"
|
||||||
@@ -760,28 +803,32 @@ msgstr "ステップ2: 拡張機能のインストール"
|
|||||||
msgid "Download and install the relevant extension for your browser:"
|
msgid "Download and install the relevant extension for your browser:"
|
||||||
msgstr "関連する拡張機能をブラウザーにインストールします:"
|
msgstr "関連する拡張機能をブラウザーにインストールします:"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Advanced options"
|
msgid "Advanced options"
|
||||||
msgstr "詳細な設定の表示"
|
msgstr "詳細な設定"
|
||||||
|
|
||||||
msgid "Authorisation token:"
|
msgid "Authorisation token:"
|
||||||
msgstr ""
|
msgstr "認証するトークン:"
|
||||||
|
|
||||||
msgid "Copy token"
|
msgid "Copy token"
|
||||||
msgstr ""
|
msgstr "トークンのコピー"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"This authorisation token is only needed to allow third-party applications to "
|
"This authorisation token is only needed to allow third-party applications to "
|
||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"この認証トークンはサードパーティアプリケーションがJoplinにアクセスするためだ"
|
||||||
msgid "Check synchronisation configuration"
|
"けに必要です。"
|
||||||
msgstr "同期の設定を確認する"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr "ノートと設定は次の場所に保存されます: %s"
|
msgstr "ノートと設定は次の場所に保存されます: %s"
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "同期の設定を確認する"
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr "適用"
|
msgstr "適用"
|
||||||
|
|
||||||
@@ -873,6 +920,10 @@ msgstr "状態"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "暗号化の状態:"
|
msgstr "暗号化の状態:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "使用方法: %s"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "戻る"
|
msgstr "戻る"
|
||||||
|
|
||||||
@@ -925,36 +976,6 @@ msgstr "いくつかの項目は復号されませんでした。"
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "パスワードの設定"
|
msgstr "パスワードの設定"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "タグの追加と削除"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr "複製"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "%s - コピー"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "ノートとToDoを切り替え"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "ノートとToDoを切り替え"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "ノートとToDoを切り替え"
|
|
||||||
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr "Markdownのリンクをコピー"
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "削除"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "ノートを削除しますか?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr "ノートがありません。新しいノートを作成して下さい。"
|
msgstr "ノートがありません。新しいノートを作成して下さい。"
|
||||||
|
|
||||||
@@ -963,13 +984,13 @@ msgid ""
|
|||||||
msgstr "ノートブックがありません。新しいノートブックを作成してください。"
|
msgstr "ノートブックがありません。新しいノートブックを作成してください。"
|
||||||
|
|
||||||
msgid "Location"
|
msgid "Location"
|
||||||
msgstr ""
|
msgstr "場所"
|
||||||
|
|
||||||
msgid "URL"
|
msgid "URL"
|
||||||
msgstr ""
|
msgstr "URL"
|
||||||
|
|
||||||
msgid "Note properties"
|
msgid "Note properties"
|
||||||
msgstr ""
|
msgstr "ノートのプロパティ"
|
||||||
|
|
||||||
msgid "Open..."
|
msgid "Open..."
|
||||||
msgstr "開く..."
|
msgstr "開く..."
|
||||||
@@ -988,7 +1009,7 @@ msgid "Copy Link Address"
|
|||||||
msgstr "リンクアドレスをコピー"
|
msgstr "リンクアドレスをコピー"
|
||||||
|
|
||||||
msgid "This attachment is not downloaded or not decrypted yet."
|
msgid "This attachment is not downloaded or not decrypted yet."
|
||||||
msgstr ""
|
msgstr "この添付ファイルはダウンロードできないか、まだ復号できません。"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported link or message: %s"
|
msgid "Unsupported link or message: %s"
|
||||||
@@ -1002,6 +1023,9 @@ msgstr ""
|
|||||||
"このノートには中身がありません。 \"%s\" をクリックしてエディターを表示し、"
|
"このノートには中身がありません。 \"%s\" をクリックしてエディターを表示し、"
|
||||||
"ノートを編集してください。"
|
"ノートを編集してください。"
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr "文字を太字に"
|
msgstr "文字を太字に"
|
||||||
|
|
||||||
@@ -1015,7 +1039,7 @@ msgid "Insert Hyperlink"
|
|||||||
msgstr "ハイパーリンクの挿入"
|
msgstr "ハイパーリンクの挿入"
|
||||||
|
|
||||||
msgid "Attach file"
|
msgid "Attach file"
|
||||||
msgstr "ファイルを添付"
|
msgstr "ファイルを添付する"
|
||||||
|
|
||||||
msgid "Tags"
|
msgid "Tags"
|
||||||
msgstr "タグ"
|
msgstr "タグ"
|
||||||
@@ -1088,18 +1112,28 @@ msgstr "暗号化のオプション"
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Clipperのオプション"
|
msgstr "Clipperのオプション"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, fuzzy, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr ""
|
||||||
|
"ノートブックを削除しますか? このノートブックにあるノートとサブノートはすべ"
|
||||||
|
"て消えてしまいます。"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
msgstr "すべてのノートからこのタグを削除しますか?"
|
msgstr "すべてのノートからこのタグを削除しますか?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "サイドバーからこの検索を削除しますか?"
|
msgstr "サイドバーからこの検索を削除しますか?"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "削除"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "名前の変更"
|
msgstr "名前の変更"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "同期"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "ノートブック"
|
msgstr "ノートブック"
|
||||||
|
|
||||||
@@ -1107,13 +1141,51 @@ msgstr "ノートブック"
|
|||||||
msgid "Decrypting items: %d/%d"
|
msgid "Decrypting items: %d/%d"
|
||||||
msgstr "復号中のアイテム: %d/%d"
|
msgstr "復号中のアイテム: %d/%d"
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "Fetching resources: %d"
|
msgid "Fetching resources: %d"
|
||||||
msgstr "リソース: %d."
|
msgstr "取得中のリソース: %d"
|
||||||
|
|
||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr "同期状況の出力先を選択してください"
|
msgstr "同期状況の出力先を選択してください"
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "タグの追加と削除"
|
||||||
|
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "複製"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "%s - コピー"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "ノートとToDoを切り替え"
|
||||||
|
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "ノートに切り替え"
|
||||||
|
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "ToDoに切り替え"
|
||||||
|
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr "Markdownのリンクをコピー"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "ノートを削除しますか?"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "ノートを削除しますか?"
|
||||||
|
|
||||||
|
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 ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "使用方法: %s"
|
msgstr "使用方法: %s"
|
||||||
@@ -1232,6 +1304,12 @@ msgstr "暗号化済"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "暗号化したアイテムは修正できません"
|
msgstr "暗号化したアイテムは修正できません"
|
||||||
|
|
||||||
|
msgid "title"
|
||||||
|
msgstr "タイトル"
|
||||||
|
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "アップデート日"
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "衝突"
|
msgstr "衝突"
|
||||||
|
|
||||||
@@ -1244,12 +1322,6 @@ msgstr ""
|
|||||||
"\"%s\" というノートブックの名称はシステムで使用するために予約済みです。名称の"
|
"\"%s\" というノートブックの名称はシステムで使用するために予約済みです。名称の"
|
||||||
"変更はできません。"
|
"変更はできません。"
|
||||||
|
|
||||||
msgid "title"
|
|
||||||
msgstr "タイトル"
|
|
||||||
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "アップデート日"
|
|
||||||
|
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "作成日"
|
msgstr "作成日"
|
||||||
|
|
||||||
@@ -1264,6 +1336,16 @@ msgstr "ノートをノートブック \"%s\" にコピーできません"
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "ノートをノートブック \"%s\" に移動できません"
|
msgstr "ノートをノートブック \"%s\" に移動できません"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
"注意: この場所を変更する際は、同期する前に新しい場所にすべての内容をコピーし"
|
||||||
|
"ておきましょう。そうしないとすべてのファイルが削除されていまいます! 詳しくは"
|
||||||
|
"次のFAQをご覧ください: %s"
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "言語"
|
msgstr "言語"
|
||||||
|
|
||||||
@@ -1294,6 +1376,10 @@ msgstr "ノートのソート方法"
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "逆順に並び替え"
|
msgstr "逆順に並び替え"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "ノートのソート方法"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "ノートに位置情報を保存"
|
msgstr "ノートに位置情報を保存"
|
||||||
|
|
||||||
@@ -1309,6 +1395,43 @@ msgstr "本文にフォーカス"
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "新しいノートを作成した際:"
|
msgstr "新しいノートを作成した際:"
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr "暗号化を有効にする"
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr "トレイアイコンの表示"
|
msgstr "トレイアイコンの表示"
|
||||||
|
|
||||||
@@ -1320,6 +1443,8 @@ msgid ""
|
|||||||
"this setting so that your notes are constantly being synchronised, thus "
|
"this setting so that your notes are constantly being synchronised, thus "
|
||||||
"reducing the number of conflicts."
|
"reducing the number of conflicts."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"有効にすると、Joplinがバックグラウンドで動作するようになります。ノートを定期"
|
||||||
|
"的に同期し、衝突を減らすために強くおすすめする設定です。"
|
||||||
|
|
||||||
msgid "Start application minimised in the tray icon"
|
msgid "Start application minimised in the tray icon"
|
||||||
msgstr "アプリケーションをトレイアンコンで最小化して起動"
|
msgstr "アプリケーションをトレイアンコンで最小化して起動"
|
||||||
@@ -1327,9 +1452,8 @@ msgstr "アプリケーションをトレイアンコンで最小化して起動
|
|||||||
msgid "Global zoom percentage"
|
msgid "Global zoom percentage"
|
||||||
msgstr "全体ズームの割合"
|
msgstr "全体ズームの割合"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Editor font size"
|
msgid "Editor font size"
|
||||||
msgstr "エディターのフォントファミリー"
|
msgstr "エディターのフォントサイズ"
|
||||||
|
|
||||||
msgid "Editor font family"
|
msgid "Editor font family"
|
||||||
msgstr "エディターのフォントファミリー"
|
msgstr "エディターのフォントファミリー"
|
||||||
@@ -1342,7 +1466,14 @@ msgstr ""
|
|||||||
"誤っているか空の場合は、一般的な等幅フォントが指定されるでしょう。"
|
"誤っているか空の場合は、一般的な等幅フォントが指定されるでしょう。"
|
||||||
|
|
||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "アプリケーションの自動更新"
|
msgstr "アプリケーションを自動的にアップデート"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr "更新をチェックする時、開発版を取得する"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr "詳細についてはプレリリースページを参照してください: %s"
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "同期間隔"
|
msgstr "同期間隔"
|
||||||
@@ -1385,26 +1516,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr "同期先のディレクトリ(絶対パス)"
|
msgstr "同期先のディレクトリ(絶対パス)"
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
"ファイルシステム同期の有効時に同期を行うパスです。`sync.target`も参考にしてく"
|
|
||||||
"ださい。"
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr "Nextcloud WebDAV URL"
|
msgstr "Nextcloud WebDAV URL"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
"注意: この場所を変更する際は、同期する前に新しい場所にすべての内容をコピーし"
|
|
||||||
"ておきましょう。そうしないとすべてのファイルが削除されていまいます! 詳しくは"
|
|
||||||
"次のFAQをご覧ください: %s"
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr "Nextcloud ユーザー名"
|
msgstr "Nextcloud ユーザー名"
|
||||||
|
|
||||||
@@ -1441,6 +1555,28 @@ msgstr "TLS証明書のエラーを無視"
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "無効な設定値: \"%s\"。有効な値は: %sです。"
|
msgstr "無効な設定値: \"%s\"。有効な値は: %sです。"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "General"
|
||||||
|
msgstr "全般のオプション"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "同期状況"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "ノートブック"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "場所"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr "タグ \"%s\" はすでにあります。ほかの名前を選択してください。"
|
msgstr "タグ \"%s\" はすでにあります。ほかの名前を選択してください。"
|
||||||
@@ -1457,9 +1593,11 @@ msgstr "Joplin エクスポートディレクトリ"
|
|||||||
msgid "Evernote Export File"
|
msgid "Evernote Export File"
|
||||||
msgstr "Evernote エクスポートファイル"
|
msgstr "Evernote エクスポートファイル"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr "Joplin エクスポートディレクトリ"
|
msgstr "Json エクスポートディレクトリ"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "ファイル"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "ディレクトリ"
|
msgstr "ディレクトリ"
|
||||||
@@ -1536,10 +1674,10 @@ msgid "On %s: %s"
|
|||||||
msgstr "日時 %s: %s"
|
msgstr "日時 %s: %s"
|
||||||
|
|
||||||
msgid "Permission to use camera"
|
msgid "Permission to use camera"
|
||||||
msgstr ""
|
msgstr "カメラ使用の許可"
|
||||||
|
|
||||||
msgid "Your permission to use your camera is required."
|
msgid "Your permission to use your camera is required."
|
||||||
msgstr ""
|
msgstr "カメラを使用するには権限が必要です。"
|
||||||
|
|
||||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||||
msgstr "ノートがありません。(+)ボタンを押して新しいノートを作成してください。"
|
msgstr "ノートがありません。(+)ボタンを押して新しいノートを作成してください。"
|
||||||
@@ -1569,9 +1707,8 @@ msgstr "%d個のノートを\"%s\"に移動しますか?"
|
|||||||
msgid "Press to set the decryption password."
|
msgid "Press to set the decryption password."
|
||||||
msgstr "復号するパスワードを入力してください。"
|
msgstr "復号するパスワードを入力してください。"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Clear alarm"
|
msgid "Clear alarm"
|
||||||
msgstr "アラームをセット"
|
msgstr "アラームをクリア"
|
||||||
|
|
||||||
msgid "Save alarm"
|
msgid "Save alarm"
|
||||||
msgstr "アラームの保存"
|
msgstr "アラームの保存"
|
||||||
@@ -1585,22 +1722,21 @@ msgstr "確認"
|
|||||||
msgid "Cancel synchronisation"
|
msgid "Cancel synchronisation"
|
||||||
msgstr "同期の中止"
|
msgstr "同期の中止"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Checking... Please wait."
|
msgid "Checking... Please wait."
|
||||||
msgstr "中止中...お待ちください。"
|
msgstr "確認中...お待ちください。"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Success! Synchronisation configuration appears to be correct."
|
msgid "Success! Synchronisation configuration appears to be correct."
|
||||||
msgstr "同期の設定を確認する"
|
msgstr "成功です! 同期の設定は正しいようです。"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Error. Please check that URL, username, password, etc. are correct and that "
|
"Error. Please check that URL, username, password, etc. are correct and that "
|
||||||
"the sync target is accessible. The reported error was:"
|
"the sync target is accessible. The reported error was:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"エラーです。URL、ユーザー名、パスワードなどを修正し、同期するターゲットにアク"
|
||||||
|
"セスできるかを確認してください。次が報告されたエラーです:"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "The application has been authorised!"
|
msgid "The application has been authorised!"
|
||||||
msgstr "アプリケーションは問題なく認証されました。"
|
msgstr "アプリケーションは問題なく認証されました!"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -1610,10 +1746,15 @@ msgid ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Please try again."
|
"Please try again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"アプリケーションが認証できません:\n"
|
||||||
|
"\n"
|
||||||
|
"%s\n"
|
||||||
|
"\n"
|
||||||
|
"やり直してください。"
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "Decrypted items: %s / %s"
|
msgid "Decrypted items: %s / %s"
|
||||||
msgstr "復号中のアイテム: %d/%d"
|
msgstr "復号中のアイテム: %s/%s"
|
||||||
|
|
||||||
msgid "New tags:"
|
msgid "New tags:"
|
||||||
msgstr "新しいタグ:"
|
msgstr "新しいタグ:"
|
||||||
@@ -1644,9 +1785,21 @@ msgstr "- 位置情報: ノートに位置情報を添付するのに必要で
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr "JoplinのWebサイト"
|
msgstr "JoplinのWebサイト"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "削除予定: %d"
|
||||||
|
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Dropboxでログイン"
|
msgstr "Dropboxでログイン"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr "コマンドラインモードに入る"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr "マスターキー %s"
|
msgstr "マスターキー %s"
|
||||||
@@ -1698,9 +1851,8 @@ msgstr "Joplinモバイルアプリは次のタイプのリンクをまだサポ
|
|||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr "サポートされていない画像の形式: %s"
|
msgstr "サポートされていない画像の形式: %s"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Take photo"
|
msgid "Take photo"
|
||||||
msgstr "写真を添付"
|
msgstr "写真を撮影する"
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr "写真を添付"
|
msgstr "写真を添付"
|
||||||
@@ -1727,7 +1879,10 @@ msgid "View on map"
|
|||||||
msgstr "地図上に表示"
|
msgstr "地図上に表示"
|
||||||
|
|
||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr ""
|
msgstr "ソースURLに行く"
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "編集"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "ノートブックを削除"
|
msgstr "ノートブックを削除"
|
||||||
@@ -1753,6 +1908,21 @@ msgstr ""
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "ようこそ"
|
msgstr "ようこそ"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "ノートは変更されています:"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||||
|
#~ "See `sync.target`."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "ファイルシステム同期の有効時に同期を行うパスです。`sync.target`も参考にし"
|
||||||
|
#~ "てください。"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Joplin v%s"
|
||||||
|
#~ msgstr "JoplinのWebサイト"
|
||||||
|
|
||||||
#~ msgid "State: %s."
|
#~ msgid "State: %s."
|
||||||
#~ msgstr "状態: \"%s\"."
|
#~ msgstr "状態: \"%s\"."
|
||||||
|
|
||||||
@@ -1793,9 +1963,6 @@ msgstr "ようこそ"
|
|||||||
#~ msgid "Give focus to previous pane"
|
#~ msgid "Give focus to previous pane"
|
||||||
#~ msgstr "前のペインへ"
|
#~ msgstr "前のペインへ"
|
||||||
|
|
||||||
#~ msgid "Enter command line mode"
|
|
||||||
#~ msgstr "コマンドラインモードに入る"
|
|
||||||
|
|
||||||
#~ msgid "Exit command line mode"
|
#~ msgid "Exit command line mode"
|
||||||
#~ msgstr "コマンドラインモードの終了"
|
#~ msgstr "コマンドラインモードの終了"
|
||||||
|
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ msgstr ""
|
|||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Enter master password:"
|
msgid "Enter master password:"
|
||||||
@@ -508,6 +508,18 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -515,7 +527,7 @@ msgstr ""
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
@@ -527,13 +539,41 @@ msgstr ""
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "&File"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
@@ -543,7 +583,7 @@ msgstr ""
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Edit"
|
msgid "&Edit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -564,6 +604,9 @@ msgstr ""
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -576,7 +619,7 @@ msgstr ""
|
|||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "View"
|
msgid "&View"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -585,22 +628,13 @@ msgstr ""
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Tools"
|
msgid "Focus"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
msgid "&Tools"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Web clipper options"
|
msgid "&Help"
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Encryption options"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -609,16 +643,6 @@ msgstr ""
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -635,9 +659,21 @@ msgstr ""
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -704,13 +740,16 @@ msgid ""
|
|||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -789,6 +828,9 @@ msgstr ""
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -839,34 +881,6 @@ msgstr ""
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -912,6 +926,9 @@ msgid ""
|
|||||||
"note."
|
"note."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -998,16 +1015,24 @@ msgstr ""
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Delete"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Synchronise"
|
msgid "Rename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
@@ -1024,6 +1049,44 @@ msgstr ""
|
|||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
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 ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1134,6 +1197,12 @@ msgstr ""
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "title"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1144,12 +1213,6 @@ msgstr ""
|
|||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "title"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1164,6 +1227,13 @@ msgstr ""
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1194,6 +1264,9 @@ msgstr ""
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1209,6 +1282,42 @@ msgstr ""
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1241,6 +1350,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1278,21 +1394,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1325,6 +1429,24 @@ msgstr ""
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "General"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Application"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1344,6 +1466,9 @@ msgstr ""
|
|||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1514,9 +1639,20 @@ msgstr ""
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1598,6 +1734,9 @@ msgstr ""
|
|||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -124,9 +124,10 @@ msgstr "'할 일' 항목을 완료로 표시합니다."
|
|||||||
msgid "Note is not a to-do: \"%s\""
|
msgid "Note is not a to-do: \"%s\""
|
||||||
msgstr "노트는 '할 일' 항목이 아닙니다: \"%s\""
|
msgstr "노트는 '할 일' 항목이 아닙니다: \"%s\""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"E2EE(종단간 암호화) 설정을 관리합니다. 명령어는 `enable`, `disable`, "
|
"E2EE(종단간 암호화) 설정을 관리합니다. 명령어는 `enable`, `disable`, "
|
||||||
"`decrypt`, `status`, `target-status` 입니다."
|
"`decrypt`, `status`, `target-status` 입니다."
|
||||||
@@ -447,12 +448,11 @@ msgid "Starting synchronisation..."
|
|||||||
msgstr "동기화를 시작합니다..."
|
msgstr "동기화를 시작합니다..."
|
||||||
|
|
||||||
msgid "Downloading resources..."
|
msgid "Downloading resources..."
|
||||||
msgstr ""
|
msgstr "리소스 다운로드 중..."
|
||||||
|
|
||||||
msgid "Cancelling... Please wait."
|
msgid "Cancelling... Please wait."
|
||||||
msgstr "취소하는 중입니다... 잠시만 기다리세요."
|
msgstr "취소하는 중입니다... 잠시만 기다리세요."
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"<tag-command> can be \"add\", \"remove\" or \"list\" to assign or remove "
|
"<tag-command> can be \"add\", \"remove\" or \"list\" to assign or remove "
|
||||||
"[tag] from [note], or to list the notes associated with [tag]. The command "
|
"[tag] from [note], or to list the notes associated with [tag]. The command "
|
||||||
@@ -460,7 +460,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"[note]로부터 [tag]를 지우거나 지정할 때, 아니면 [tag]와 관련된 노트의 목록을 "
|
"[note]로부터 [tag]를 지우거나 지정할 때, 아니면 [tag]와 관련된 노트의 목록을 "
|
||||||
"확인할 때 <tag-command>로 \"add\", \"remove\" 또는 \"list\" 를 사용할 수 있습"
|
"확인할 때 <tag-command>로 \"add\", \"remove\" 또는 \"list\" 를 사용할 수 있습"
|
||||||
"니다. `tag list` 명령어로 모든 태그의 목록을 확인할 수 있습니다."
|
"니다. `tag list` 명령어로 모든 태그의 목록을 확인할 수 있습니다 (옵션 -l 사"
|
||||||
|
"용 가능)."
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Invalid command: \"%s\""
|
msgid "Invalid command: \"%s\""
|
||||||
@@ -568,6 +569,20 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "\"%s\"에 \"%s\" 포맷으로 내보내는 중입니다. 잠시만 기다리세요..."
|
msgstr "\"%s\"에 \"%s\" 포맷으로 내보내는 중입니다. 잠시만 기다리세요..."
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "노트북 제목:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "노트북"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "\"%s\"에서 \"%s\" 포맷으로 가져오는 중입니다. 잠시만 기다리세요..."
|
msgstr "\"%s\"에서 \"%s\" 포맷으로 가져오는 중입니다. 잠시만 기다리세요..."
|
||||||
@@ -575,8 +590,8 @@ msgstr "\"%s\"에서 \"%s\" 포맷으로 가져오는 중입니다. 잠시만
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "PDF 파일"
|
msgstr "PDF 파일"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "파일"
|
msgstr "동기화 상태"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "새 노트"
|
msgstr "새 노트"
|
||||||
@@ -587,14 +602,43 @@ msgstr "새 '할 일'"
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "새 노트북"
|
msgstr "새 노트북"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr "인쇄"
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "일반 옵션"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr "암호화 옵션"
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr "웹 수집기 옵션"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "파일"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "조플린이란?"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr "업데이트 확인..."
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "가져오기"
|
msgstr "가져오기"
|
||||||
|
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "내보내기"
|
msgstr "내보내기"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr "인쇄"
|
msgstr "동기화"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -603,7 +647,8 @@ msgstr "%s 숨기기"
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "종료"
|
msgstr "종료"
|
||||||
|
|
||||||
msgid "Edit"
|
#, fuzzy
|
||||||
|
msgid "&Edit"
|
||||||
msgstr "편집"
|
msgstr "편집"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -615,9 +660,8 @@ msgstr "잘라내기"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "붙여넣기"
|
msgstr "붙여넣기"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Select all"
|
msgid "Select all"
|
||||||
msgstr "날짜 선택"
|
msgstr "모두 선택"
|
||||||
|
|
||||||
msgid "Bold"
|
msgid "Bold"
|
||||||
msgstr "굵게"
|
msgstr "굵게"
|
||||||
@@ -625,6 +669,9 @@ msgstr "굵게"
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr "기울임"
|
msgstr "기울임"
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr "날짜와 시간 입력"
|
msgstr "날짜와 시간 입력"
|
||||||
|
|
||||||
@@ -634,11 +681,11 @@ msgstr "외부 편집기에서 편집하기"
|
|||||||
msgid "Search in all the notes"
|
msgid "Search in all the notes"
|
||||||
msgstr "모든 노트에서 검색"
|
msgstr "모든 노트에서 검색"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "모든 노트에서 검색"
|
msgstr "현재 노트에서 검색"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "&View"
|
||||||
msgstr "보기"
|
msgstr "보기"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -647,22 +694,16 @@ msgstr "사이드바 표시 전환"
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr "편집기 배치 형태 전환"
|
msgstr "편집기 배치 형태 전환"
|
||||||
|
|
||||||
msgid "Tools"
|
#, fuzzy
|
||||||
|
msgid "Focus"
|
||||||
|
msgstr "내용에 포커스"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&Tools"
|
||||||
msgstr "도구"
|
msgstr "도구"
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
#, fuzzy
|
||||||
msgstr "동기화 상태"
|
msgid "&Help"
|
||||||
|
|
||||||
msgid "Web clipper options"
|
|
||||||
msgstr "웹 수집기 옵션"
|
|
||||||
|
|
||||||
msgid "Encryption options"
|
|
||||||
msgstr "암호화 옵션"
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr "일반 옵션"
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr "도움말"
|
msgstr "도움말"
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -671,16 +712,6 @@ msgstr "웹사이트 및 각종 문서"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "기부하기"
|
msgstr "기부하기"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr "업데이트 확인..."
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "조플린이란?"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "%s 열기"
|
msgstr "%s 열기"
|
||||||
@@ -697,9 +728,21 @@ msgstr "취소"
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr "현재 버전은 최신입니다."
|
msgstr "현재 버전은 최신입니다."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr "%s (프리-릴리즈)"
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr "업데이트가 있습니다. 지금 다운로드할까요?"
|
msgstr "업데이트가 있습니다. 지금 다운로드할까요?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr "현재 버전: %s"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr "새 버전: %s"
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "예"
|
msgstr "예"
|
||||||
|
|
||||||
@@ -707,7 +750,7 @@ msgid "No"
|
|||||||
msgstr "아니오"
|
msgstr "아니오"
|
||||||
|
|
||||||
msgid "Token has been copied to the clipboard!"
|
msgid "Token has been copied to the clipboard!"
|
||||||
msgstr ""
|
msgstr "토큰이 클립보드로 복사되었습니다!"
|
||||||
|
|
||||||
msgid "The web clipper service is enabled and set to auto-start."
|
msgid "The web clipper service is enabled and set to auto-start."
|
||||||
msgstr "웹 수집기 서비스가 활성화되었고 자동으로 시작하도록 설정되었습니다."
|
msgstr "웹 수집기 서비스가 활성화되었고 자동으로 시작하도록 설정되었습니다."
|
||||||
@@ -756,28 +799,32 @@ msgstr "2단계: 확장 기능 설치"
|
|||||||
msgid "Download and install the relevant extension for your browser:"
|
msgid "Download and install the relevant extension for your browser:"
|
||||||
msgstr "브라우저에 적절한 확장 기능을 다운로드 및 설치하세요:"
|
msgstr "브라우저에 적절한 확장 기능을 다운로드 및 설치하세요:"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Advanced options"
|
msgid "Advanced options"
|
||||||
msgstr "고급 옵션"
|
msgstr "고급 옵션"
|
||||||
|
|
||||||
msgid "Authorisation token:"
|
msgid "Authorisation token:"
|
||||||
msgstr ""
|
msgstr "인증 토큰:"
|
||||||
|
|
||||||
msgid "Copy token"
|
msgid "Copy token"
|
||||||
msgstr ""
|
msgstr "토큰 복사"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"This authorisation token is only needed to allow third-party applications to "
|
"This authorisation token is only needed to allow third-party applications to "
|
||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"이 인증 토큰은 오직 서드파티 애플리케이션에서 조플린을 접근할 때만 필요합니"
|
||||||
msgid "Check synchronisation configuration"
|
"다."
|
||||||
msgstr "동기화 설정 확인"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr "노트와 설정값이 다음에 저장되었습니다: %s"
|
msgstr "노트와 설정값이 다음에 저장되었습니다: %s"
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "동기화 설정 확인"
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr "적용"
|
msgstr "적용"
|
||||||
|
|
||||||
@@ -869,6 +916,10 @@ msgstr "상태"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "암호화는 다음과 같습니다:"
|
msgstr "암호화는 다음과 같습니다:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "사용량: %s"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "뒤로 가기"
|
msgstr "뒤로 가기"
|
||||||
|
|
||||||
@@ -919,36 +970,6 @@ msgstr "일부 항목들은 암호화할 수 없습니다."
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "암호 설정"
|
msgstr "암호 설정"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "태그 추가 및 제거"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr "복제"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "%s - 복사"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "'노트' 또는'할 일' 형식으로 전환합니다."
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "'노트' 또는'할 일' 형식으로 전환합니다."
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "'노트' 또는'할 일' 형식으로 전환합니다."
|
|
||||||
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr "마크다운 링크 복사"
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "삭제"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "노트를 삭제할까요?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr "노트가 없습니다. '새 노트'를 선택해서 노트를 새로 만드세요."
|
msgstr "노트가 없습니다. '새 노트'를 선택해서 노트를 새로 만드세요."
|
||||||
|
|
||||||
@@ -957,13 +978,13 @@ msgid ""
|
|||||||
msgstr "노트북이 없습니다. '새 노트북'을 선택해서 노트북을 새로 만드세요."
|
msgstr "노트북이 없습니다. '새 노트북'을 선택해서 노트북을 새로 만드세요."
|
||||||
|
|
||||||
msgid "Location"
|
msgid "Location"
|
||||||
msgstr ""
|
msgstr "위치"
|
||||||
|
|
||||||
msgid "URL"
|
msgid "URL"
|
||||||
msgstr ""
|
msgstr "URL"
|
||||||
|
|
||||||
msgid "Note properties"
|
msgid "Note properties"
|
||||||
msgstr ""
|
msgstr "노트 속성"
|
||||||
|
|
||||||
msgid "Open..."
|
msgid "Open..."
|
||||||
msgstr "열기..."
|
msgstr "열기..."
|
||||||
@@ -982,7 +1003,7 @@ msgid "Copy Link Address"
|
|||||||
msgstr "링크 주소 복사"
|
msgstr "링크 주소 복사"
|
||||||
|
|
||||||
msgid "This attachment is not downloaded or not decrypted yet."
|
msgid "This attachment is not downloaded or not decrypted yet."
|
||||||
msgstr ""
|
msgstr "이 첨부는 아직 다운로드 또는 복호화 되지 않았습니다."
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported link or message: %s"
|
msgid "Unsupported link or message: %s"
|
||||||
@@ -996,6 +1017,9 @@ msgstr ""
|
|||||||
"비어있는 노트입니다. \"%s\" 항목을 선택해서 편집기를 전환하고 노트를 편집하세"
|
"비어있는 노트입니다. \"%s\" 항목을 선택해서 편집기를 전환하고 노트를 편집하세"
|
||||||
"요."
|
"요."
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr "한 번에 오직 하나의 노트만 출력하거나 내보내기 할 수 있습니다."
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr "중요 텍스트"
|
msgstr "중요 텍스트"
|
||||||
|
|
||||||
@@ -1082,18 +1106,28 @@ msgstr "암호화 옵션"
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "수집기 옵션"
|
msgstr "수집기 옵션"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, fuzzy, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr ""
|
||||||
|
"노트북을 삭제할까요? 이 노트북 안에 있는 모든 노트와 하위 노트북들도 함께 삭"
|
||||||
|
"제됩니다."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
msgstr "모든 노트에서 이 태그를 제거할까요?"
|
msgstr "모든 노트에서 이 태그를 제거할까요?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "사이드바에서 이 검색 항목을 제거할까요?"
|
msgstr "사이드바에서 이 검색 항목을 제거할까요?"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "삭제"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "이름 바꾸기"
|
msgstr "이름 바꾸기"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "동기화"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "노트북"
|
msgstr "노트북"
|
||||||
|
|
||||||
@@ -1101,13 +1135,51 @@ msgstr "노트북"
|
|||||||
msgid "Decrypting items: %d/%d"
|
msgid "Decrypting items: %d/%d"
|
||||||
msgstr "복호화 항목: %d/%d"
|
msgstr "복호화 항목: %d/%d"
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "Fetching resources: %d"
|
msgid "Fetching resources: %d"
|
||||||
msgstr "리소스: %d."
|
msgstr "리소스 가져오는 중: %d."
|
||||||
|
|
||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr "동기화 상태를 내보낼 대상을 선택하세요"
|
msgstr "동기화 상태를 내보낼 대상을 선택하세요"
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "태그 추가 및 제거"
|
||||||
|
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "복제"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "%s - 복사"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "'노트' 또는'할 일' 형식으로 전환합니다."
|
||||||
|
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "'노트' 형식으로 전환합니다."
|
||||||
|
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "'할 일' 형식으로 전환합니다."
|
||||||
|
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr "마크다운 링크 복사"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "노트를 삭제할까요?"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "노트를 삭제할까요?"
|
||||||
|
|
||||||
|
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 ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "사용량: %s"
|
msgstr "사용량: %s"
|
||||||
@@ -1226,6 +1298,12 @@ msgstr "암호화됨"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "암호화된 항목은 변경될 수 없습니다"
|
msgstr "암호화된 항목은 변경될 수 없습니다"
|
||||||
|
|
||||||
|
msgid "title"
|
||||||
|
msgstr "제목"
|
||||||
|
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "업데이트된 날짜"
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "충돌"
|
msgstr "충돌"
|
||||||
|
|
||||||
@@ -1236,12 +1314,6 @@ msgstr "노트북을 이 위치로 옮길 수 없습니다"
|
|||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
msgstr "노트북을 \"%s\" 제목으로 정할 수 없습니다. 이미 예약중입니다."
|
msgstr "노트북을 \"%s\" 제목으로 정할 수 없습니다. 이미 예약중입니다."
|
||||||
|
|
||||||
msgid "title"
|
|
||||||
msgstr "제목"
|
|
||||||
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "업데이트된 날짜"
|
|
||||||
|
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "만들어진 날짜"
|
msgstr "만들어진 날짜"
|
||||||
|
|
||||||
@@ -1256,6 +1328,15 @@ msgstr "노트를 \"%s\" 노트북으로 복사할 수 없습니다"
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "노트를 \"%s\" 노트북으로 옮길 수 없습니다"
|
msgstr "노트를 \"%s\" 노트북으로 옮길 수 없습니다"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
"주의: 이 위치를 변경하시려면, 동기화 전에 모든 컨텐트를 복사했는지 확인하세"
|
||||||
|
"요, 그렇지 않으면 모든 파일이 삭제됩니다! 자세한 정보는 FAQ를 참조하세요: %s"
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "언어"
|
msgstr "언어"
|
||||||
|
|
||||||
@@ -1286,6 +1367,10 @@ msgstr "노트를 다음 기준으로 정렬"
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "정렬 순서 반전"
|
msgstr "정렬 순서 반전"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "노트를 다음 기준으로 정렬"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "노트에 지리적 위치 정보 포함시키기"
|
msgstr "노트에 지리적 위치 정보 포함시키기"
|
||||||
|
|
||||||
@@ -1301,6 +1386,43 @@ msgstr "내용에 포커스"
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "새 노트를 만들 때:"
|
msgstr "새 노트를 만들 때:"
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr "암호화 사용"
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr "트레이 아이콘 표시"
|
msgstr "트레이 아이콘 표시"
|
||||||
|
|
||||||
@@ -1312,16 +1434,17 @@ msgid ""
|
|||||||
"this setting so that your notes are constantly being synchronised, thus "
|
"this setting so that your notes are constantly being synchronised, thus "
|
||||||
"reducing the number of conflicts."
|
"reducing the number of conflicts."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"조플린을 백그라운드에서 구동합니다. 노트가 정기적으로 동기화 되어 충돌 횟수"
|
||||||
|
"를 줄이기 위해 이 옵션을 활성화 하는 것을 추천합니다."
|
||||||
|
|
||||||
msgid "Start application minimised in the tray icon"
|
msgid "Start application minimised in the tray icon"
|
||||||
msgstr ""
|
msgstr "트레이 아이콘에 최소화 된 상태로 애플리케이션 시작"
|
||||||
|
|
||||||
msgid "Global zoom percentage"
|
msgid "Global zoom percentage"
|
||||||
msgstr "전체적 확대 비율"
|
msgstr "전체적 확대 비율"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Editor font size"
|
msgid "Editor font size"
|
||||||
msgstr "편집기 글꼴 집합"
|
msgstr "편집기 글꼴 크기"
|
||||||
|
|
||||||
msgid "Editor font family"
|
msgid "Editor font family"
|
||||||
msgstr "편집기 글꼴 집합"
|
msgstr "편집기 글꼴 집합"
|
||||||
@@ -1337,6 +1460,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "애플리케이션을 자동으로 업데이트"
|
msgstr "애플리케이션을 자동으로 업데이트"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr "업데이트 확인 시 프리-릴리즈 받기"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr "자세한 내용은 프리-릴리즈 페이지를 참조하세요: %s"
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "동기화 간격"
|
msgstr "동기화 간격"
|
||||||
|
|
||||||
@@ -1378,23 +1508,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr "동기화를 할 폴더 (절대적 경로)"
|
msgstr "동기화를 할 폴더 (절대적 경로)"
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
"파일 시스템 동기화가 활성화된 경우에 동기화를 할 경로입니다. `sync.target`를 "
|
|
||||||
"참조하세요."
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr "Nextcloud WebDAV URL"
|
msgstr "Nextcloud WebDAV URL"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr "Nextcloud 사용자 이름"
|
msgstr "Nextcloud 사용자 이름"
|
||||||
|
|
||||||
@@ -1431,9 +1547,31 @@ msgstr "TLS 인증서 오류 무시"
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "올바르지 않은 옵션 값: \"%s\". 가능한 값은 다음과 같습니다: \"%s\"."
|
msgstr "올바르지 않은 옵션 값: \"%s\". 가능한 값은 다음과 같습니다: \"%s\"."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "General"
|
||||||
|
msgstr "일반 옵션"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "동기화 상태"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "노트북"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "위치"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr ""
|
msgstr "태그 \"%s\"(이)가 이미 존재합니다. 다른 이름을 선택해 주세요."
|
||||||
|
|
||||||
msgid "Joplin Export File"
|
msgid "Joplin Export File"
|
||||||
msgstr "조플린 내보내기 파일"
|
msgstr "조플린 내보내기 파일"
|
||||||
@@ -1447,9 +1585,11 @@ msgstr "조플린 내보내기 폴더"
|
|||||||
msgid "Evernote Export File"
|
msgid "Evernote Export File"
|
||||||
msgstr "에버노트 내보내기 파일"
|
msgstr "에버노트 내보내기 파일"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr "조플린 내보내기 폴더"
|
msgstr "Json 내보내기 폴더"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "파일"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "폴더"
|
msgstr "폴더"
|
||||||
@@ -1526,10 +1666,10 @@ msgid "On %s: %s"
|
|||||||
msgstr "%s: %s"
|
msgstr "%s: %s"
|
||||||
|
|
||||||
msgid "Permission to use camera"
|
msgid "Permission to use camera"
|
||||||
msgstr ""
|
msgstr "카메라 사용 허가"
|
||||||
|
|
||||||
msgid "Your permission to use your camera is required."
|
msgid "Your permission to use your camera is required."
|
||||||
msgstr ""
|
msgstr "카메라 사용을 허가가 요구됩니다."
|
||||||
|
|
||||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||||
msgstr "노트가 없습니다. (+) 버튼을 선택해 새로 만드세요."
|
msgstr "노트가 없습니다. (+) 버튼을 선택해 새로 만드세요."
|
||||||
@@ -1559,9 +1699,8 @@ msgstr "%d 노트를 \"%s\" 노트북으로 옮길까요?"
|
|||||||
msgid "Press to set the decryption password."
|
msgid "Press to set the decryption password."
|
||||||
msgstr "복호화 암호를 설정하려면 누르세요."
|
msgstr "복호화 암호를 설정하려면 누르세요."
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Clear alarm"
|
msgid "Clear alarm"
|
||||||
msgstr "알람 설정"
|
msgstr "알람 취소"
|
||||||
|
|
||||||
msgid "Save alarm"
|
msgid "Save alarm"
|
||||||
msgstr "알람 저장"
|
msgstr "알람 저장"
|
||||||
@@ -1575,20 +1714,19 @@ msgstr "확인"
|
|||||||
msgid "Cancel synchronisation"
|
msgid "Cancel synchronisation"
|
||||||
msgstr "동기화 취소"
|
msgstr "동기화 취소"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Checking... Please wait."
|
msgid "Checking... Please wait."
|
||||||
msgstr "취소하는 중입니다... 잠시만 기다리세요."
|
msgstr "확인 중입니다... 잠시만 기다리세요."
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Success! Synchronisation configuration appears to be correct."
|
msgid "Success! Synchronisation configuration appears to be correct."
|
||||||
msgstr "동기화 설정 확인"
|
msgstr "성공! 동기화 설정이 올바릅니다."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Error. Please check that URL, username, password, etc. are correct and that "
|
"Error. Please check that URL, username, password, etc. are correct and that "
|
||||||
"the sync target is accessible. The reported error was:"
|
"the sync target is accessible. The reported error was:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Error. Please check that URL, username, password, etc. are correct and that "
|
||||||
|
"the sync target is accessible. The reported error was:"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "The application has been authorised!"
|
msgid "The application has been authorised!"
|
||||||
msgstr "애플리케이션이 성공적으로 허가되었습니다."
|
msgstr "애플리케이션이 성공적으로 허가되었습니다."
|
||||||
|
|
||||||
@@ -1600,10 +1738,15 @@ msgid ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Please try again."
|
"Please try again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"애플리케이션을 허가할 수 없습니다:\n"
|
||||||
|
"\n"
|
||||||
|
"%s\n"
|
||||||
|
"\n"
|
||||||
|
"다시 시도해 주세요."
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "Decrypted items: %s / %s"
|
msgid "Decrypted items: %s / %s"
|
||||||
msgstr "복호화 항목: %d/%d"
|
msgstr "복호화된 항목: %s / %s"
|
||||||
|
|
||||||
msgid "New tags:"
|
msgid "New tags:"
|
||||||
msgstr "새 태그:"
|
msgstr "새 태그:"
|
||||||
@@ -1634,9 +1777,20 @@ msgstr "- 위치: 지리적 위치 정보를 노트에 첨부하기 위해서
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr "조플린 웹사이트"
|
msgstr "조플린 웹사이트"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr "데이터베이스 v%s"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "FTS 활성됨: %d"
|
||||||
|
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Dropbox로 로그인"
|
msgstr "Dropbox로 로그인"
|
||||||
|
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr "여기에 코드를 입력하세요"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr "관리자 키 %s"
|
msgstr "관리자 키 %s"
|
||||||
@@ -1688,9 +1842,8 @@ msgstr "조플린 모바일 앱은 현재 해당 형식의 링크를 지원하
|
|||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr "지원하지 않는 이미지 형식: %s"
|
msgstr "지원하지 않는 이미지 형식: %s"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Take photo"
|
msgid "Take photo"
|
||||||
msgstr "사진 첨부"
|
msgstr "사진 찍기"
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr "사진 첨부"
|
msgstr "사진 첨부"
|
||||||
@@ -1717,7 +1870,10 @@ msgid "View on map"
|
|||||||
msgstr "지도에 표시"
|
msgstr "지도에 표시"
|
||||||
|
|
||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr ""
|
msgstr "소스 URL로 이동"
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "편집"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "노트북 삭제"
|
msgstr "노트북 삭제"
|
||||||
@@ -1741,6 +1897,20 @@ msgstr "노트북이 없습니다. (+) 버튼을 눌러 새로 만드세요."
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "환영합니다"
|
msgstr "환영합니다"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "노트가 변경되었습니다:"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||||
|
#~ "See `sync.target`."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "파일 시스템 동기화가 활성화된 경우에 동기화를 할 경로입니다. `sync.target`"
|
||||||
|
#~ "를 참조하세요."
|
||||||
|
|
||||||
|
#~ msgid "Joplin v%s"
|
||||||
|
#~ msgstr "조플린 v%s"
|
||||||
|
|
||||||
#~ msgid "State: %s."
|
#~ msgid "State: %s."
|
||||||
#~ msgstr "상태: %s."
|
#~ msgstr "상태: %s."
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
# SOME DESCRIPTIVE TITLE.
|
||||||
# Copyright (C) YEAR Laurent Cozic
|
# Copyright (C) YEAR Laurent Cozic
|
||||||
# This file is distributed under the same license as the Joplin-CLI package.
|
# This file is distributed under the same license as the Joplin-CLI package.
|
||||||
# Mats Estensen <matsest@mxe.no>, 2018
|
# Mats Estensen <code@mxe.no>, 2018
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Joplin-CLI 1.0.0\n"
|
"Project-Id-Version: Joplin-CLI 1.0.0\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"Last-Translator: Mats Estensen <matsest@mxe.no>\n"
|
"Last-Translator: Mats Estensen <code@mxe.no>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: nb_NO\n"
|
"Language: nb_NO\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -17,8 +17,7 @@ msgstr ""
|
|||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
msgid "To delete a tag, untag the associated notes."
|
msgid "To delete a tag, untag the associated notes."
|
||||||
msgstr ""
|
msgstr "For å slette en merkelapp, fjern merkelappen fra merkede notater."
|
||||||
"Hvis du vil slette en merkelapp, fjern merkelappen fra merkede notater."
|
|
||||||
|
|
||||||
msgid "Please select the note or notebook to be deleted first."
|
msgid "Please select the note or notebook to be deleted first."
|
||||||
msgstr "Vennligst velg notatet eller notatboken som skal slettes først."
|
msgstr "Vennligst velg notatet eller notatboken som skal slettes først."
|
||||||
@@ -126,11 +125,11 @@ msgstr "Notat er ikke et gjøremål: \"%s\""
|
|||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Utfører E2EE-konfiguration. Tilgjengelige kommandoer er: `enable`(aktiver), "
|
"Konfigurerer E2EE-konfigurasjon. Tilgjengelige kommandoer er: "
|
||||||
"`disable`(lukk), `decrypt`(dekrypter), `status` og `target-status` (mottager-"
|
"`enable`(aktiver), `disable`(lukk), `decrypt`(dekrypter), `status` og "
|
||||||
"status)."
|
"`target-status` (mottager-status)."
|
||||||
|
|
||||||
msgid "Enter master password:"
|
msgid "Enter master password:"
|
||||||
msgstr "Skriv inn masterpassordet:"
|
msgstr "Skriv inn masterpassordet:"
|
||||||
@@ -164,7 +163,7 @@ msgstr "Rediger notat."
|
|||||||
msgid ""
|
msgid ""
|
||||||
"No text editor is defined. Please set it using `config editor <editor-path>`"
|
"No text editor is defined. Please set it using `config editor <editor-path>`"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Inger teksteditor er valgt. Velg en ved å bruke `config editor <editor-path>`"
|
"Ingen teksteditor er valgt. Velg en ved å bruke `config editor <editor-path>`"
|
||||||
|
|
||||||
msgid "No active notebook."
|
msgid "No active notebook."
|
||||||
msgstr "Ingen aktiv notatbok."
|
msgstr "Ingen aktiv notatbok."
|
||||||
@@ -186,7 +185,7 @@ msgid "Note has been saved."
|
|||||||
msgstr "Notat har blitt lagret."
|
msgstr "Notat har blitt lagret."
|
||||||
|
|
||||||
msgid "Exits the application."
|
msgid "Exits the application."
|
||||||
msgstr "Forlat programmet."
|
msgstr "Avslutter programmet."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Exports Joplin data to the given path. By default, it will export the "
|
"Exports Joplin data to the given path. By default, it will export the "
|
||||||
@@ -343,7 +342,7 @@ msgid "Please select a notebook first."
|
|||||||
msgstr "Vennligst velg en notatbok først."
|
msgstr "Vennligst velg en notatbok først."
|
||||||
|
|
||||||
msgid "Creates a new notebook."
|
msgid "Creates a new notebook."
|
||||||
msgstr "Opprettter en ny notatbok."
|
msgstr "Oppretter en ny notatbok."
|
||||||
|
|
||||||
msgid "Creates a new note."
|
msgid "Creates a new note."
|
||||||
msgstr "Oppretter et nytt notat."
|
msgstr "Oppretter et nytt notat."
|
||||||
@@ -381,7 +380,7 @@ msgstr "Sletter notatene uten bekreftelse."
|
|||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%d notes match this pattern. Delete them?"
|
msgid "%d notes match this pattern. Delete them?"
|
||||||
msgstr "%d notater passer dette mønsteret. Slette dem?"
|
msgstr "%d notater passer dette mønsteret. Vil du slette de?"
|
||||||
|
|
||||||
msgid "Delete note?"
|
msgid "Delete note?"
|
||||||
msgstr "Slett notat?"
|
msgstr "Slett notat?"
|
||||||
@@ -412,7 +411,7 @@ msgstr "Sync å forsynt mål (uteblivelsene å sync. target config-verdi)"
|
|||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Authentication was not completed (did not receive an authentication token)."
|
"Authentication was not completed (did not receive an authentication token)."
|
||||||
msgstr "Godkjenning ble ikke fullført (mottok ikke et godkjennings tegn)."
|
msgstr "Godkjenning ble ikke fullført (mottok ikke et autoriseringsbevis)."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"To allow Joplin to synchronise with Dropbox, please follow the steps below:"
|
"To allow Joplin to synchronise with Dropbox, please follow the steps below:"
|
||||||
@@ -576,6 +575,18 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Eksporterer til \"%s\" i \"%s\" format. Vennligst vent..."
|
msgstr "Eksporterer til \"%s\" i \"%s\" format. Vennligst vent..."
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr "Sidepanel"
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr "Notatliste"
|
||||||
|
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "Tittel på notat:"
|
||||||
|
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "Notatbrødtekst"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Importerer fra \"%s\" i \"%s\"-format. Vennligst vent..."
|
msgstr "Importerer fra \"%s\" i \"%s\"-format. Vennligst vent..."
|
||||||
@@ -583,8 +594,8 @@ msgstr "Importerer fra \"%s\" i \"%s\"-format. Vennligst vent..."
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "PDF-fil"
|
msgstr "PDF-fil"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "Fil"
|
msgstr "Synkroniseringsstatus"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "Nytt notat"
|
msgstr "Nytt notat"
|
||||||
@@ -595,14 +606,42 @@ msgstr "Nytt gjøremål"
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "Ny notatbok"
|
msgstr "Ny notatbok"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr "Skriv ut"
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Generelle innstillinger"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr "Krypteringsvalg"
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr "Web Clipper-innstillinger"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "&Fil"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "Om Joplin"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr "Se etter oppdatering..."
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "Importer"
|
msgstr "Importer"
|
||||||
|
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "Eksport"
|
msgstr "Eksporter"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr "Skriv Ut"
|
msgstr "Synkroniser"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -611,8 +650,8 @@ msgstr "Skjul %s"
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Avslutt"
|
msgstr "Avslutt"
|
||||||
|
|
||||||
msgid "Edit"
|
msgid "&Edit"
|
||||||
msgstr "Rediger"
|
msgstr "&Rediger"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Kopier"
|
msgstr "Kopier"
|
||||||
@@ -624,7 +663,7 @@ msgid "Paste"
|
|||||||
msgstr "Lim inn"
|
msgstr "Lim inn"
|
||||||
|
|
||||||
msgid "Select all"
|
msgid "Select all"
|
||||||
msgstr "Velg alle"
|
msgstr "Marker alt"
|
||||||
|
|
||||||
msgid "Bold"
|
msgid "Bold"
|
||||||
msgstr "Fet"
|
msgstr "Fet"
|
||||||
@@ -632,6 +671,9 @@ msgstr "Fet"
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr "Kursiv"
|
msgstr "Kursiv"
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr "Lenke"
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr "Sett inn dato/tid"
|
msgstr "Sett inn dato/tid"
|
||||||
|
|
||||||
@@ -641,36 +683,26 @@ msgstr "Rediger i ekstern editor"
|
|||||||
msgid "Search in all the notes"
|
msgid "Search in all the notes"
|
||||||
msgstr "Søk i alle notater"
|
msgstr "Søk i alle notater"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "Søk i alle notater"
|
msgstr "Søk i nåværende notat"
|
||||||
|
|
||||||
msgid "View"
|
msgid "&View"
|
||||||
msgstr "Utseende"
|
msgstr "&Vis"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
msgstr "Vis/skjul sidepanel"
|
msgstr "Vis/skjul sidepanel"
|
||||||
|
|
||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr "Bytt editorutseende"
|
msgstr "Bytt editorvisning"
|
||||||
|
|
||||||
msgid "Tools"
|
msgid "Focus"
|
||||||
msgstr "Verktøy"
|
msgstr "Fokuser"
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
msgid "&Tools"
|
||||||
msgstr "Synkroniseringsstatus"
|
msgstr "&Verktøy"
|
||||||
|
|
||||||
msgid "Web clipper options"
|
msgid "&Help"
|
||||||
msgstr "Web Clipper-innstillinger"
|
msgstr "&Hjelp"
|
||||||
|
|
||||||
msgid "Encryption options"
|
|
||||||
msgstr "Krypteringsvalg"
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr "Generelle innstillinger"
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr "Hjelp"
|
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
msgstr "Nettsted og dokumentasjon"
|
msgstr "Nettsted og dokumentasjon"
|
||||||
@@ -678,22 +710,12 @@ msgstr "Nettsted og dokumentasjon"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "Gi et bidrag"
|
msgstr "Gi et bidrag"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr "Se etter oppdatering..."
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "Om Joplin"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "Åpne %s"
|
msgstr "Åpne %s"
|
||||||
|
|
||||||
msgid "Exit"
|
msgid "Exit"
|
||||||
msgstr "Gå ut"
|
msgstr "Avslutt"
|
||||||
|
|
||||||
msgid "OK"
|
msgid "OK"
|
||||||
msgstr "OK"
|
msgstr "OK"
|
||||||
@@ -704,9 +726,21 @@ msgstr "Avbryt"
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr "Nåværende versjon er den siste tilgjengelige."
|
msgstr "Nåværende versjon er den siste tilgjengelige."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr "%s (førutgivelse)"
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr "En oppdatering er tilgjengelig, vil du laste den ned nå?"
|
msgstr "En oppdatering er tilgjengelig, vil du laste den ned nå?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr "Din versjon: %s"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr "Ny versjon: %s"
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Ja"
|
msgstr "Ja"
|
||||||
|
|
||||||
@@ -777,16 +811,19 @@ msgid ""
|
|||||||
"This authorisation token is only needed to allow third-party applications to "
|
"This authorisation token is only needed to allow third-party applications to "
|
||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Denne autentiseringsbeviset er det eneste nødvendig for å gi "
|
"Denne autoriseringsbeviset er det eneste nødvendige for å gi "
|
||||||
"tredjepartsapplikasjoner tilgang til Joplin."
|
"tredjepartsapplikasjoner tilgang til Joplin."
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
|
||||||
msgstr "Sjekk synkroniseringskonfigurasjon"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr "Notater og innstillinger er lagret i: %s"
|
msgstr "Notater og innstillinger er lagret i: %s"
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr "Utforsk..."
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Sjekk synkroniseringskonfigurasjon"
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr "Bruk"
|
msgstr "Bruk"
|
||||||
|
|
||||||
@@ -881,6 +918,9 @@ msgstr "Status"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "Kryptering er:"
|
msgstr "Kryptering er:"
|
||||||
|
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Bruk"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Tilbake"
|
msgstr "Tilbake"
|
||||||
|
|
||||||
@@ -901,7 +941,7 @@ msgid "Notebook title:"
|
|||||||
msgstr "Tittel på notatbok:"
|
msgstr "Tittel på notatbok:"
|
||||||
|
|
||||||
msgid "Add or remove tags:"
|
msgid "Add or remove tags:"
|
||||||
msgstr "Legge til eller fjern merkelapp:"
|
msgstr "Legge til eller fjern merkelapper:"
|
||||||
|
|
||||||
msgid "Separate each tag by a comma."
|
msgid "Separate each tag by a comma."
|
||||||
msgstr "Separer hver merkelapp med komma."
|
msgstr "Separer hver merkelapp med komma."
|
||||||
@@ -916,7 +956,7 @@ msgid "Set alarm:"
|
|||||||
msgstr "Angi alarm:"
|
msgstr "Angi alarm:"
|
||||||
|
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "Utseende"
|
msgstr "Visning"
|
||||||
|
|
||||||
msgid "Search..."
|
msgid "Search..."
|
||||||
msgstr "Søk..."
|
msgstr "Søk..."
|
||||||
@@ -933,34 +973,6 @@ msgstr "Noen elementer kan ikke dekrypteres."
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "Sett passord"
|
msgstr "Sett passord"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "Legg til eller fjern merkelapper"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr "Dupliser"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "%s - Kopier"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "Bytt mellom notat og gjøremål"
|
|
||||||
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "Bytt til notatmodus"
|
|
||||||
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "Bytt til gjøremålmodus"
|
|
||||||
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr "Kopier Markdown-link"
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "Slett"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "Slette notater?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr "Ingen notater her enda. Opprett et ved å klikke på \"Nytt notat\"."
|
msgstr "Ingen notater her enda. Opprett et ved å klikke på \"Nytt notat\"."
|
||||||
|
|
||||||
@@ -1008,6 +1020,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Dette notatet har ikke noe innhold. Klikk på \"%s\" for å redigere notatet."
|
"Dette notatet har ikke noe innhold. Klikk på \"%s\" for å redigere notatet."
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr "Kun ett notat kan bli printet eller eksportert som PDF om gangen."
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr "fet tekst"
|
msgstr "fet tekst"
|
||||||
|
|
||||||
@@ -1024,7 +1039,7 @@ msgid "Attach file"
|
|||||||
msgstr "Legg ved fil"
|
msgstr "Legg ved fil"
|
||||||
|
|
||||||
msgid "Tags"
|
msgid "Tags"
|
||||||
msgstr "Merkelapp"
|
msgstr "Merkelapper"
|
||||||
|
|
||||||
msgid "Set alarm"
|
msgid "Set alarm"
|
||||||
msgstr "Angi alarm"
|
msgstr "Angi alarm"
|
||||||
@@ -1043,7 +1058,7 @@ msgid "Numbered List"
|
|||||||
msgstr "Nummerert liste"
|
msgstr "Nummerert liste"
|
||||||
|
|
||||||
msgid "Bulleted List"
|
msgid "Bulleted List"
|
||||||
msgstr "Kuleliste"
|
msgstr "Kulepunktliste"
|
||||||
|
|
||||||
msgid "Checkbox"
|
msgid "Checkbox"
|
||||||
msgstr "Avmerkingsboks"
|
msgstr "Avmerkingsboks"
|
||||||
@@ -1068,7 +1083,7 @@ msgstr "notat"
|
|||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Creating new %s..."
|
msgid "Creating new %s..."
|
||||||
msgstr "Lager ny %s..."
|
msgstr "Oppretter nytt %s..."
|
||||||
|
|
||||||
msgid "Refresh"
|
msgid "Refresh"
|
||||||
msgstr "Oppdater"
|
msgstr "Oppdater"
|
||||||
@@ -1094,18 +1109,30 @@ msgstr "Krypteringsinnstillinger"
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Clipper-innstillinger"
|
msgstr "Clipper-innstillinger"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, javascript-format
|
||||||
msgstr "Fjern denne merkelappen fra alle notater?"
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr ""
|
||||||
|
"Slette notatbok \"&s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"Alle notater og underliggende notatbøker i denne notatboken vil også bli "
|
||||||
|
"slettet."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
|
msgstr "Fjern denne merkelappen \"%s\" fra alle notater?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "Fjerne dette søket fra sidepanelet?"
|
msgstr "Fjerne dette søket fra sidepanelet?"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Slett"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Gi nytt navn"
|
msgstr "Gi nytt navn"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "Synkroniser"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "Notatbøker"
|
msgstr "Notatbøker"
|
||||||
|
|
||||||
@@ -1120,6 +1147,44 @@ msgstr "Henter ressurser: %d"
|
|||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr "Velg hvor synkroniseringsstatusen skal eksporteres til"
|
msgstr "Velg hvor synkroniseringsstatusen skal eksporteres til"
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "Legg til eller fjern merkelapper"
|
||||||
|
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "Dupliser"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "%s - Kopier"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "Bytt mellom notat og gjøremål"
|
||||||
|
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "Bytt til notatmodus"
|
||||||
|
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "Bytt til gjøremålmodus"
|
||||||
|
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr "Kopier Markdown-link"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "Slette notat \"%s\"?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "Slett disse %d notatene?"
|
||||||
|
|
||||||
|
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 ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "Bruk: %s"
|
msgstr "Bruk: %s"
|
||||||
@@ -1209,7 +1274,7 @@ msgstr "Slettet eksterne elementer: %d."
|
|||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Fetched items: %d/%d."
|
msgid "Fetched items: %d/%d."
|
||||||
msgstr "Hentede elementer: %d/%d."
|
msgstr "Hentet elementer: %d/%d."
|
||||||
|
|
||||||
msgid "Cancelling..."
|
msgid "Cancelling..."
|
||||||
msgstr "Avbryter…"
|
msgstr "Avbryter…"
|
||||||
@@ -1238,6 +1303,12 @@ msgstr "Kryptert"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "Krypterte elementer kan ikke modifiseres"
|
msgstr "Krypterte elementer kan ikke modifiseres"
|
||||||
|
|
||||||
|
msgid "title"
|
||||||
|
msgstr "tittel"
|
||||||
|
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "sist oppdatert"
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "Konflikter"
|
msgstr "Konflikter"
|
||||||
|
|
||||||
@@ -1248,14 +1319,8 @@ msgstr "Kan ikke flytte notatboken til denne plasseringen"
|
|||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
msgstr "Notatbøker kan ikke hete %s, som er en reservert tittel."
|
msgstr "Notatbøker kan ikke hete %s, som er en reservert tittel."
|
||||||
|
|
||||||
msgid "title"
|
|
||||||
msgstr "tittel"
|
|
||||||
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "sist oppdatert"
|
|
||||||
|
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "opprettet"
|
msgstr "dato opprettet"
|
||||||
|
|
||||||
msgid "This note does not have geolocation information."
|
msgid "This note does not have geolocation information."
|
||||||
msgstr "Dette notatet har ingen stedsinformasjon."
|
msgstr "Dette notatet har ingen stedsinformasjon."
|
||||||
@@ -1268,6 +1333,16 @@ msgstr "Kan ikke kopiere notat til notatenboken \"%s\""
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "Kan ikke flytte notatet til notatboken \"%s\""
|
msgstr "Kan ikke flytte notatet til notatboken \"%s\""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
"Viktig: Dersom du endrer denne lokasjonen, sørg for at du kopierer alt "
|
||||||
|
"innhold dit før du synkroniserer. Hvis ikke blir alle filer fjernet! Se FAQ "
|
||||||
|
"for flere detaljer: %s"
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Språk"
|
msgstr "Språk"
|
||||||
|
|
||||||
@@ -1298,11 +1373,14 @@ msgstr "Sorter notater etter"
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "Reverser sorteringsrekkefølge"
|
msgstr "Reverser sorteringsrekkefølge"
|
||||||
|
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "Sorter notater etter"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "Lagre stedsinformasjon med notater"
|
msgstr "Lagre stedsinformasjon med notater"
|
||||||
|
|
||||||
msgid "When creating a new to-do:"
|
msgid "When creating a new to-do:"
|
||||||
msgstr "Når nytt gjøre mål opprettes:"
|
msgstr "Når nytt gjøremål opprettes:"
|
||||||
|
|
||||||
msgid "Focus title"
|
msgid "Focus title"
|
||||||
msgstr "Fokuser på tittel"
|
msgstr "Fokuser på tittel"
|
||||||
@@ -1313,6 +1391,46 @@ msgstr "Fokuser på brødtekst"
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "Når du lager et nytt notat:"
|
msgstr "Når du lager et nytt notat:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr "Liste over innhold"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr "Aktiver kryptering"
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr "Liste over innhold"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr "Liste over innhold"
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr "Vis systemmenyikon"
|
msgstr "Vis systemmenyikon"
|
||||||
|
|
||||||
@@ -1334,12 +1452,11 @@ msgstr "Start applikasjonen minimert som systemmenyikon"
|
|||||||
msgid "Global zoom percentage"
|
msgid "Global zoom percentage"
|
||||||
msgstr "Global forstørrelse"
|
msgstr "Global forstørrelse"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Editor font size"
|
msgid "Editor font size"
|
||||||
msgstr "Editor skrifttype"
|
msgstr "Editorskriftstørrelse"
|
||||||
|
|
||||||
msgid "Editor font family"
|
msgid "Editor font family"
|
||||||
msgstr "Editor skrifttype"
|
msgstr "Editorskrifttype"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"This must be *monospace* font or it will not work properly. If the font is "
|
"This must be *monospace* font or it will not work properly. If the font is "
|
||||||
@@ -1352,6 +1469,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "Oppdater applikasjonen automatisk"
|
msgstr "Oppdater applikasjonen automatisk"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr "Få førutgivelse når du sjekker etter oppdateringer"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr "Se førutgivelsessiden for flere detaljer: %s"
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "Synkroniserinsintervall"
|
msgstr "Synkroniserinsintervall"
|
||||||
|
|
||||||
@@ -1391,28 +1515,11 @@ msgstr ""
|
|||||||
"som er navngitt som `sync.NUM.NAME` (dokumentert nedenfor)."
|
"som er navngitt som `sync.NUM.NAME` (dokumentert nedenfor)."
|
||||||
|
|
||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr "Mappe å synkronisere med (absolutt sti)"
|
msgstr "Katalog å synkronisere med (absolutt sti)"
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
"Stien som skal synkroniseres når filsystemsynkronisering er aktivert. Se "
|
|
||||||
"`sync.target`."
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr "Nextcloud WebDAV-URL"
|
msgstr "Nextcloud WebDAV-URL"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
"Viktig: Dersom du endrer denne lokasjonen, sørg for at du kopierer alt "
|
|
||||||
"innhold dit før du synkroniserer. Hvis ikke blir alle filer fjernet! Se FAQ "
|
|
||||||
"for flere detaljer: %s"
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr "Nextcloud-brukernavn"
|
msgstr "Nextcloud-brukernavn"
|
||||||
|
|
||||||
@@ -1440,7 +1547,7 @@ msgstr ""
|
|||||||
"Kommaseparert liste over stier til mapper å laste sertifikater fra, eller "
|
"Kommaseparert liste over stier til mapper å laste sertifikater fra, eller "
|
||||||
"sti til individuelle sertifikatfiler. For eksempel: /my/cert_dir, /other/"
|
"sti til individuelle sertifikatfiler. For eksempel: /my/cert_dir, /other/"
|
||||||
"custom.perm. Merk at dersom du gjør endringer til TLS-innstillingene må du "
|
"custom.perm. Merk at dersom du gjør endringer til TLS-innstillingene må du "
|
||||||
"lagre endringer før du velger \"Sjekk synkroniseringsstatus\"."
|
"lagre endringer før du velger \"Sjekk synkroniseringskonfigurasjon\"."
|
||||||
|
|
||||||
msgid "Ignore TLS certificate errors"
|
msgid "Ignore TLS certificate errors"
|
||||||
msgstr "Ignorer TLS-sertifikatfeil"
|
msgstr "Ignorer TLS-sertifikatfeil"
|
||||||
@@ -1449,24 +1556,45 @@ msgstr "Ignorer TLS-sertifikatfeil"
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "Ugyldig verdi: \"%s\". Mulige verdier er: %s."
|
msgstr "Ugyldig verdi: \"%s\". Mulige verdier er: %s."
|
||||||
|
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Generelle innstillinger"
|
||||||
|
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "Synkronisering"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr "Utseende"
|
||||||
|
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "Notat"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "Applikasjon"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr "Merkelappen \"%s\" eksiterer allerede. Vennligst velg et annet navn."
|
msgstr "Merkelappen \"%s\" eksiterer allerede. Vennligst velg et annet navn."
|
||||||
|
|
||||||
msgid "Joplin Export File"
|
msgid "Joplin Export File"
|
||||||
msgstr "Joplin Eksporter Fil"
|
msgstr "Joplin-eksportert fil"
|
||||||
|
|
||||||
msgid "Markdown"
|
msgid "Markdown"
|
||||||
msgstr "Markdown"
|
msgstr "Markdown"
|
||||||
|
|
||||||
msgid "Joplin Export Directory"
|
msgid "Joplin Export Directory"
|
||||||
msgstr "Joplin Eksporter Katalog"
|
msgstr "Joplin-eksportert katalog"
|
||||||
|
|
||||||
msgid "Evernote Export File"
|
msgid "Evernote Export File"
|
||||||
msgstr "Evernote Eksporter Fil"
|
msgstr "Evernote-eksportert fil"
|
||||||
|
|
||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr "Json Eksporter Katalog"
|
msgstr "Json-eksportert katalog"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Fil"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Katalog"
|
msgstr "Katalog"
|
||||||
@@ -1654,9 +1782,20 @@ msgstr "- Sted: for å legge ved stedsinformation til notatet."
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr "Joplins nettsted"
|
msgstr "Joplins nettsted"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr "Database v%s"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "Fulltekstsøk aktivert: %d"
|
||||||
|
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Innlogging med Dropbox"
|
msgstr "Innlogging med Dropbox"
|
||||||
|
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr "Skriv inn kode her"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr "Masternøkkel: %s"
|
msgstr "Masternøkkel: %s"
|
||||||
@@ -1688,7 +1827,7 @@ msgid "Errors only"
|
|||||||
msgstr "Kun feilmeldinger"
|
msgstr "Kun feilmeldinger"
|
||||||
|
|
||||||
msgid "This note has been modified:"
|
msgid "This note has been modified:"
|
||||||
msgstr "Dette notatet har blitt modifisert:"
|
msgstr "Dette notatet har blitt endret:"
|
||||||
|
|
||||||
msgid "Save changes"
|
msgid "Save changes"
|
||||||
msgstr "Lagre endringer"
|
msgstr "Lagre endringer"
|
||||||
@@ -1708,9 +1847,8 @@ msgstr "Joplins mobilapp støtter for tiden ikke denne type linker: %s"
|
|||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr "Bildetypen er ikke støttet: %s"
|
msgstr "Bildetypen er ikke støttet: %s"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Take photo"
|
msgid "Take photo"
|
||||||
msgstr "Legg ved et bilde"
|
msgstr "Ta bilde"
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr "Legg ved et bilde"
|
msgstr "Legg ved et bilde"
|
||||||
@@ -1734,11 +1872,14 @@ msgid "Show metadata"
|
|||||||
msgstr "Vis metadata"
|
msgstr "Vis metadata"
|
||||||
|
|
||||||
msgid "View on map"
|
msgid "View on map"
|
||||||
msgstr "Se på kart"
|
msgstr "Vis på kart"
|
||||||
|
|
||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr "Gå til kilde-URL"
|
msgstr "Gå til kilde-URL"
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Rediger"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Slett notatbok"
|
msgstr "Slett notatbok"
|
||||||
|
|
||||||
@@ -1753,10 +1894,28 @@ msgid ""
|
|||||||
"menu to access your existing notebooks."
|
"menu to access your existing notebooks."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Klikk på (+)-knappen for å lage et nytt notat eller en ny notatbok. Klikk på "
|
"Klikk på (+)-knappen for å lage et nytt notat eller en ny notatbok. Klikk på "
|
||||||
"sidemenyen for tilgang til dine eksisterende notatbøker."
|
"sidepanelet for tilgang til dine eksisterende notatbøker."
|
||||||
|
|
||||||
msgid "You currently have no notebook. Create one by clicking on (+) button."
|
msgid "You currently have no notebook. Create one by clicking on (+) button."
|
||||||
msgstr "Du har enda ingen notatbok. Lag en ved å klikke på (+)-knappen."
|
msgstr "Du har enda ingen notatbok. Opprett en ved å klikke på (+)-knappen."
|
||||||
|
|
||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "Velkommen"
|
msgstr "Velkommen"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "Dette notatet har blitt endret:"
|
||||||
|
|
||||||
|
#~ msgid "Table of contents"
|
||||||
|
#~ msgstr "Liste over innhold"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||||
|
#~ "See `sync.target`."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Stien som skal synkroniseres når filsystemsynkronisering er aktivert. Se "
|
||||||
|
#~ "`sync.target`."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Joplin v%s"
|
||||||
|
#~ msgstr "Joplin v%s"
|
||||||
|
|||||||
@@ -125,9 +125,10 @@ msgstr "Markeer een to-do als voltooid. "
|
|||||||
msgid "Note is not a to-do: \"%s\""
|
msgid "Note is not a to-do: \"%s\""
|
||||||
msgstr "Notitie is geen to-do: \"%s\""
|
msgstr "Notitie is geen to-do: \"%s\""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Beheert E2EE configuratie. Commando's zijn `enable`, `disable`, `decrypt`, "
|
"Beheert E2EE configuratie. Commando's zijn `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status` and `target-status`."
|
||||||
@@ -584,6 +585,20 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "Notitieboek titel:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "Notitieboeken"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -592,8 +607,8 @@ msgstr ""
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "Bestand"
|
msgstr "Bestand"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "Bestand"
|
msgstr "Synchronisatie status"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "Nieuwe notitie"
|
msgstr "Nieuwe notitie"
|
||||||
@@ -604,6 +619,35 @@ msgstr "Nieuwe to-do"
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "Nieuw notitieboek"
|
msgstr "Nieuw notitieboek"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Algemene opties"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr "Versleutelopties"
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "Bestand"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "Over Joplin"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "Importeer"
|
msgstr "Importeer"
|
||||||
|
|
||||||
@@ -611,8 +655,8 @@ msgstr "Importeer"
|
|||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "Importeer"
|
msgstr "Importeer"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr ""
|
msgstr "Synchroniseer"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -621,7 +665,8 @@ msgstr ""
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Stop"
|
msgstr "Stop"
|
||||||
|
|
||||||
msgid "Edit"
|
#, fuzzy
|
||||||
|
msgid "&Edit"
|
||||||
msgstr "Bewerk"
|
msgstr "Bewerk"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -643,6 +688,9 @@ msgstr ""
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -656,7 +704,7 @@ msgstr "Zoek in alle notities"
|
|||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "Zoek in alle notities"
|
msgstr "Zoek in alle notities"
|
||||||
|
|
||||||
msgid "View"
|
msgid "&View"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -665,22 +713,15 @@ msgstr ""
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Tools"
|
msgid "Focus"
|
||||||
msgstr "Tools"
|
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
|
||||||
msgstr "Synchronisatie status"
|
|
||||||
|
|
||||||
msgid "Web clipper options"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Encryption options"
|
#, fuzzy
|
||||||
msgstr "Versleutelopties"
|
msgid "&Tools"
|
||||||
|
msgstr "Tools"
|
||||||
|
|
||||||
msgid "General Options"
|
#, fuzzy
|
||||||
msgstr "Algemene opties"
|
msgid "&Help"
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr "Help"
|
msgstr "Help"
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -690,16 +731,6 @@ msgstr "Website en documentatie"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "Website en documentatie"
|
msgstr "Website en documentatie"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "Over Joplin"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, fuzzy, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "Op %s: %s"
|
msgstr "Op %s: %s"
|
||||||
@@ -716,9 +747,21 @@ msgstr "Annuleer"
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -787,14 +830,17 @@ msgid ""
|
|||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Check synchronisation configuration"
|
|
||||||
msgstr "Annuleer synchronisatie"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr "Notities en instellingen zijn opgeslaan in %s"
|
msgstr "Notities en instellingen zijn opgeslaan in %s"
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Annuleer synchronisatie"
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -885,6 +931,10 @@ msgstr "Status"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "Versleuteling is:"
|
msgstr "Versleuteling is:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Gebruik: %s"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Terug"
|
msgstr "Terug"
|
||||||
|
|
||||||
@@ -939,36 +989,6 @@ msgstr "Sommige items kunnen niet gedecodeerd worden."
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "Stel wachtwoord in"
|
msgstr "Stel wachtwoord in"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "Voeg tag toe of verwijder tag"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "Kopieer"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "Wissel tussen notitie en to-do type"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "Wissel tussen notitie en to-do type"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "Wissel tussen notitie en to-do type"
|
|
||||||
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "Verwijderen"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "Notities verwijderen?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr "Geen notities. Maak een notitie door op \"Nieuwe notitie\" te klikken."
|
msgstr "Geen notities. Maak een notitie door op \"Nieuwe notitie\" te klikken."
|
||||||
|
|
||||||
@@ -1017,6 +1037,9 @@ msgid ""
|
|||||||
"note."
|
"note."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1107,18 +1130,28 @@ msgstr "Versleutelopties"
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Algemene opties"
|
msgstr "Algemene opties"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, fuzzy, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr ""
|
||||||
|
"Notitieboek verwijderen? Alle notities in dit notitieboek zullen ook "
|
||||||
|
"verwijderd worden."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
msgstr "Deze tag verwijderen van alle notities?"
|
msgstr "Deze tag verwijderen van alle notities?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "Dit item verwijderen van de zijbalk?"
|
msgstr "Dit item verwijderen van de zijbalk?"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Verwijderen"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Hernoem"
|
msgstr "Hernoem"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "Synchroniseer"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "Notitieboeken"
|
msgstr "Notitieboeken"
|
||||||
|
|
||||||
@@ -1133,6 +1166,47 @@ msgstr "Middelen: %d."
|
|||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr "Selecteer waar de synchronisatie status naar geëxporteerd moet worden"
|
msgstr "Selecteer waar de synchronisatie status naar geëxporteerd moet worden"
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "Voeg tag toe of verwijder tag"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "Sluit de applicatie."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "Kopieer"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "Wissel tussen notitie en to-do type"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "Wissel tussen notitie en to-do type"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "Wissel tussen notitie en to-do type"
|
||||||
|
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "Notities verwijderen?"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "Deze notities verwijderen?"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Type a note title to jump to it. Or type # followed by a tag name, or @ "
|
||||||
|
"followed by a notebook name."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Goto Anything..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "Gebruik: %s"
|
msgstr "Gebruik: %s"
|
||||||
@@ -1252,6 +1326,14 @@ msgstr "Versleuteld"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "Versleutelde items kunnen niet aangepast worden"
|
msgstr "Versleutelde items kunnen niet aangepast worden"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "title"
|
||||||
|
msgstr "Untitled"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "Bijgewerkt: %d."
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "Conflicten"
|
msgstr "Conflicten"
|
||||||
|
|
||||||
@@ -1265,14 +1347,6 @@ msgstr ""
|
|||||||
"Notitieboeken kunnen niet \"%s\" genoemd worden, dit is een gereserveerd "
|
"Notitieboeken kunnen niet \"%s\" genoemd worden, dit is een gereserveerd "
|
||||||
"woord."
|
"woord."
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "title"
|
|
||||||
msgstr "Untitled"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "Bijgewerkt: %d."
|
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "Aangemaakt: %d."
|
msgstr "Aangemaakt: %d."
|
||||||
@@ -1288,6 +1362,13 @@ msgstr "Kan notitie niet naar notitieboek \"%s\" kopiëren."
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "Kan notitie niet naar notitieboek \"%s\" verplaatsen."
|
msgstr "Kan notitie niet naar notitieboek \"%s\" verplaatsen."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Taal"
|
msgstr "Taal"
|
||||||
|
|
||||||
@@ -1321,6 +1402,10 @@ msgstr ""
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "Draait de sorteervolgorde om."
|
msgstr "Draait de sorteervolgorde om."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "Bewerk notitieboek"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "Sla geo-locatie op bij notities"
|
msgstr "Sla geo-locatie op bij notities"
|
||||||
|
|
||||||
@@ -1338,6 +1423,43 @@ msgstr ""
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "Maakt een nieuwe notitie aan."
|
msgstr "Maakt een nieuwe notitie aan."
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr "Schakel encryptie in"
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1371,6 +1493,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "Update de applicatie automatisch"
|
msgstr "Update de applicatie automatisch"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "Synchronisatie interval"
|
msgstr "Synchronisatie interval"
|
||||||
|
|
||||||
@@ -1413,23 +1542,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr "Folder om mee te synchroniseren (absolute pad)"
|
msgstr "Folder om mee te synchroniseren (absolute pad)"
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
"Het pad om mee te synchroniseren als bestandssysteem synchronisatie is "
|
|
||||||
"ingeschakeld. Zie `sync.target`."
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1464,6 +1579,28 @@ msgstr ""
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "Ongeldige optie: \"%s\". Geldige waarden zijn: %s."
|
msgstr "Ongeldige optie: \"%s\". Geldige waarden zijn: %s."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Algemene opties"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "Synchronisatie status"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "Notitieboeken"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "Sluit de applicatie."
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1486,6 +1623,9 @@ msgstr "Exporteer Evernote bestanden"
|
|||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr "Exporteer Evernote bestanden"
|
msgstr "Exporteer Evernote bestanden"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Bestand"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1666,10 +1806,22 @@ msgstr ""
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "Verwijderen: %d"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Log in met OneDrive"
|
msgstr "Log in met OneDrive"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr "Ga naar command line modus"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr "Hoofdsleutel: %s"
|
msgstr "Hoofdsleutel: %s"
|
||||||
@@ -1752,6 +1904,9 @@ msgstr "Toon op de kaart"
|
|||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Bewerk"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Verwijder notitieboek"
|
msgstr "Verwijder notitieboek"
|
||||||
|
|
||||||
@@ -1776,6 +1931,17 @@ msgstr ""
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "Welkom"
|
msgstr "Welkom"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "Deze notitie werd aangepast:"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||||
|
#~ "See `sync.target`."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Het pad om mee te synchroniseren als bestandssysteem synchronisatie is "
|
||||||
|
#~ "ingeschakeld. Zie `sync.target`."
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "State: %s."
|
#~ msgid "State: %s."
|
||||||
#~ msgstr "Status: \"%s\""
|
#~ msgstr "Status: \"%s\""
|
||||||
@@ -1818,9 +1984,6 @@ msgstr "Welkom"
|
|||||||
#~ msgid "Give focus to previous pane"
|
#~ msgid "Give focus to previous pane"
|
||||||
#~ msgstr "Focus op het vorige paneel"
|
#~ msgstr "Focus op het vorige paneel"
|
||||||
|
|
||||||
#~ msgid "Enter command line mode"
|
|
||||||
#~ msgstr "Ga naar command line modus"
|
|
||||||
|
|
||||||
#~ msgid "Exit command line mode"
|
#~ msgid "Exit command line mode"
|
||||||
#~ msgstr "Ga uit command line modus"
|
#~ msgstr "Ga uit command line modus"
|
||||||
|
|
||||||
@@ -1830,9 +1993,6 @@ msgstr "Welkom"
|
|||||||
#~ msgid "Cancel the current command."
|
#~ msgid "Cancel the current command."
|
||||||
#~ msgstr "Annuleer het huidige commando."
|
#~ msgstr "Annuleer het huidige commando."
|
||||||
|
|
||||||
#~ msgid "Exit the application."
|
|
||||||
#~ msgstr "Sluit de applicatie."
|
|
||||||
|
|
||||||
#~ msgid "Delete the currently selected note or notebook."
|
#~ msgid "Delete the currently selected note or notebook."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Verwijder de geselecteerde notitie of het geselecteerde notitieboek."
|
#~ "Verwijder de geselecteerde notitie of het geselecteerde notitieboek."
|
||||||
|
|||||||
@@ -127,9 +127,10 @@ msgstr "Markeert een taak als afgerond."
|
|||||||
msgid "Note is not a to-do: \"%s\""
|
msgid "Note is not a to-do: \"%s\""
|
||||||
msgstr "Notitie is geen taak: \"%s\""
|
msgstr "Notitie is geen taak: \"%s\""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Beheert de E2EE-configuratie. Opdrachten zijn: `enable`, `disable`, "
|
"Beheert de E2EE-configuratie. Opdrachten zijn: `enable`, `disable`, "
|
||||||
"`decrypt`, `status` en `target-status`."
|
"`decrypt`, `status` en `target-status`."
|
||||||
@@ -585,6 +586,20 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Bezig met exporteren van \"%s\" in het formaat \"%s\". Even geduld..."
|
msgstr "Bezig met exporteren van \"%s\" in het formaat \"%s\". Even geduld..."
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "Titel van notitieboek:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "Notitieboeken"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Bezig met importeren van \"%s\" in het formaat \"%s\". Even geduld..."
|
msgstr "Bezig met importeren van \"%s\" in het formaat \"%s\". Even geduld..."
|
||||||
@@ -592,8 +607,8 @@ msgstr "Bezig met importeren van \"%s\" in het formaat \"%s\". Even geduld..."
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "PDF-bestand"
|
msgstr "PDF-bestand"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "Bestand"
|
msgstr "Synchronisatiestatus"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "Nieuwe notitie"
|
msgstr "Nieuwe notitie"
|
||||||
@@ -604,14 +619,43 @@ msgstr "Nieuwe taak"
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "Nieuw notitieboek"
|
msgstr "Nieuw notitieboek"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr "Afdrukken"
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Algemene opties"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr "Versleutelingsopties"
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr "Webclipper-opties"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "Bestand"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "Over Joplin"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr "Controleren op updates..."
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "Importeren"
|
msgstr "Importeren"
|
||||||
|
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "Exporteren"
|
msgstr "Exporteren"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr "Afdrukken"
|
msgstr "Synchroniseren"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -620,7 +664,8 @@ msgstr "%s verbergen"
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Afsluiten"
|
msgstr "Afsluiten"
|
||||||
|
|
||||||
msgid "Edit"
|
#, fuzzy
|
||||||
|
msgid "&Edit"
|
||||||
msgstr "Bewerken"
|
msgstr "Bewerken"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -642,6 +687,9 @@ msgstr "Vetgedrukt"
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr "Cursief"
|
msgstr "Cursief"
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr "Datum en tijd invoegen"
|
msgstr "Datum en tijd invoegen"
|
||||||
|
|
||||||
@@ -655,7 +703,8 @@ msgstr "Alle notities doorzoeken"
|
|||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "Alle notities doorzoeken"
|
msgstr "Alle notities doorzoeken"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "&View"
|
||||||
msgstr "Beeld"
|
msgstr "Beeld"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -664,22 +713,16 @@ msgstr "Zijbalk tonen/verbergen"
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr "Bewerkindeling tonen/verbergen"
|
msgstr "Bewerkindeling tonen/verbergen"
|
||||||
|
|
||||||
msgid "Tools"
|
#, fuzzy
|
||||||
|
msgid "Focus"
|
||||||
|
msgstr "Inhoud focussen"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&Tools"
|
||||||
msgstr "Hulpmiddelen"
|
msgstr "Hulpmiddelen"
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
#, fuzzy
|
||||||
msgstr "Synchronisatiestatus"
|
msgid "&Help"
|
||||||
|
|
||||||
msgid "Web clipper options"
|
|
||||||
msgstr "Webclipper-opties"
|
|
||||||
|
|
||||||
msgid "Encryption options"
|
|
||||||
msgstr "Versleutelingsopties"
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr "Algemene opties"
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr "Hulp"
|
msgstr "Hulp"
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -688,16 +731,6 @@ msgstr "Website en documentatie"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "Doneren"
|
msgstr "Doneren"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr "Controleren op updates..."
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "Over Joplin"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "%s openen"
|
msgstr "%s openen"
|
||||||
@@ -714,9 +747,21 @@ msgstr "Annuleren"
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr "De huidige versie is up-to-date."
|
msgstr "De huidige versie is up-to-date."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr "Er is een update beschikbaar. Wil je deze nu downloaden?"
|
msgstr "Er is een update beschikbaar. Wil je deze nu downloaden?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Ja"
|
msgstr "Ja"
|
||||||
|
|
||||||
@@ -790,13 +835,16 @@ msgid ""
|
|||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
|
||||||
msgstr "Synchronisatieconfiguratie controleren"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr "Notities en instellingen worden opgeslagen in: %s"
|
msgstr "Notities en instellingen worden opgeslagen in: %s"
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Synchronisatieconfiguratie controleren"
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr "Toepassen"
|
msgstr "Toepassen"
|
||||||
|
|
||||||
@@ -891,6 +939,10 @@ msgstr "Status"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "Gebruikte versleuteling:"
|
msgstr "Gebruikte versleuteling:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Gebruik: %s"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Terug"
|
msgstr "Terug"
|
||||||
|
|
||||||
@@ -943,36 +995,6 @@ msgstr "Sommige items kunnen niet worden ontsleuteled."
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "Wachtwoord instellen"
|
msgstr "Wachtwoord instellen"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "Labels toevoegen of verwijderen"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr "Dupliceren"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "%s - kopiëren"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "Schakelen tussen notitie en taak"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "Schakelen tussen notitie en taak"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "Schakelen tussen notitie en taak"
|
|
||||||
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr "Markdownlink kopiëren"
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "Verwijderen"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "Notities verwijderen?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Er zijn hier geen notities. Creëer een notitie door de klikken op \"Nieuwe "
|
"Er zijn hier geen notities. Creëer een notitie door de klikken op \"Nieuwe "
|
||||||
@@ -1024,6 +1046,9 @@ msgstr ""
|
|||||||
"Deze notitie bevat geen inhoud. Klik op \"%s\" om de bewerker te openen en "
|
"Deze notitie bevat geen inhoud. Klik op \"%s\" om de bewerker te openen en "
|
||||||
"de notitie te bewerken."
|
"de notitie te bewerken."
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr "vetgedrukte tekst"
|
msgstr "vetgedrukte tekst"
|
||||||
|
|
||||||
@@ -1110,18 +1135,28 @@ msgstr "Versleutelopties"
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Webclipperopties"
|
msgstr "Webclipperopties"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, fuzzy, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr ""
|
||||||
|
"Notitieboek verwijderen? Alle notities en sub-notitieboeken worden eveneens "
|
||||||
|
"verwijderd."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
msgstr "Wil je dit label verwijderen van alle notities?"
|
msgstr "Wil je dit label verwijderen van alle notities?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "Wil je deze zoekopdracht verwijderen uit de zijbalk?"
|
msgstr "Wil je deze zoekopdracht verwijderen uit de zijbalk?"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Verwijderen"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Naam wijzigen"
|
msgstr "Naam wijzigen"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "Synchroniseren"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "Notitieboeken"
|
msgstr "Notitieboeken"
|
||||||
|
|
||||||
@@ -1136,6 +1171,46 @@ msgstr "Bronnen: %d."
|
|||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr "Kies waar de synchronisatiestatus naar moet worden geëxporteerd"
|
msgstr "Kies waar de synchronisatiestatus naar moet worden geëxporteerd"
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "Labels toevoegen of verwijderen"
|
||||||
|
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "Dupliceren"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "%s - kopiëren"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "Schakelen tussen notitie en taak"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "Schakelen tussen notitie en taak"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "Schakelen tussen notitie en taak"
|
||||||
|
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr "Markdownlink kopiëren"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "Notities verwijderen?"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "Deze notities verwijderen?"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Type a note title to jump to it. Or type # followed by a tag name, or @ "
|
||||||
|
"followed by a notebook name."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Goto Anything..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "Gebruik: %s"
|
msgstr "Gebruik: %s"
|
||||||
@@ -1254,6 +1329,12 @@ msgstr "Versleuteld"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "Versleutelde items kunnen niet worden bewerkt"
|
msgstr "Versleutelde items kunnen niet worden bewerkt"
|
||||||
|
|
||||||
|
msgid "title"
|
||||||
|
msgstr "titel"
|
||||||
|
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "bijgewerkt op"
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "Conflicten"
|
msgstr "Conflicten"
|
||||||
|
|
||||||
@@ -1264,12 +1345,6 @@ msgstr "Kan notitieboek niet verplaatsen naar deze locatie"
|
|||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
msgstr "Notitieboeken mogen niet \"%s\" heten; dit is een gereserveerde titel."
|
msgstr "Notitieboeken mogen niet \"%s\" heten; dit is een gereserveerde titel."
|
||||||
|
|
||||||
msgid "title"
|
|
||||||
msgstr "titel"
|
|
||||||
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "bijgewerkt op"
|
|
||||||
|
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "gecreëerd op"
|
msgstr "gecreëerd op"
|
||||||
|
|
||||||
@@ -1284,6 +1359,13 @@ msgstr "Kan notitie niet kopiëren naar notitieboek \"%s\""
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "Kan notitie niet verplaatsen naar notitieboek \"%s\""
|
msgstr "Kan notitie niet verplaatsen naar notitieboek \"%s\""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Taal"
|
msgstr "Taal"
|
||||||
|
|
||||||
@@ -1314,6 +1396,10 @@ msgstr "Notities sorteren op"
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "Sorteervolgorde omdraaien"
|
msgstr "Sorteervolgorde omdraaien"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "Notities sorteren op"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "Locatie opslaan in notities"
|
msgstr "Locatie opslaan in notities"
|
||||||
|
|
||||||
@@ -1329,6 +1415,43 @@ msgstr "Inhoud focussen"
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "Bij het creëren van een nieuwe notitie:"
|
msgstr "Bij het creëren van een nieuwe notitie:"
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr "Versleuteling inschakelen"
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr "Systeemvakpictogram tonen"
|
msgstr "Systeemvakpictogram tonen"
|
||||||
|
|
||||||
@@ -1365,6 +1488,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "Applicatie automatisch bijwerken"
|
msgstr "Applicatie automatisch bijwerken"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "Synchronisatietussenpoos"
|
msgstr "Synchronisatietussenpoos"
|
||||||
|
|
||||||
@@ -1408,23 +1538,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr "Map waarnaar gesynchroniseerd moet worden (absoluut pad)"
|
msgstr "Map waarnaar gesynchroniseerd moet worden (absoluut pad)"
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
"Het pad waarnaar gesynchroniseerd moet worden als bestandssysteem-"
|
|
||||||
"synchronisatie is ingeschakeld. Zie `sync.target`."
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr "Nextcloud WebDAV-URL"
|
msgstr "Nextcloud WebDAV-URL"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr "Nextcloud-gebruikersnaam"
|
msgstr "Nextcloud-gebruikersnaam"
|
||||||
|
|
||||||
@@ -1462,6 +1578,28 @@ msgstr "TLS-certificaatfouten negeren"
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "Ongeldige optie: \"%s\". Geldige waarden zijn: %s."
|
msgstr "Ongeldige optie: \"%s\". Geldige waarden zijn: %s."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Algemene opties"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "Synchronisatiestatus"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "Notitieboeken"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "Sluit de applicatie af."
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1482,6 +1620,9 @@ msgstr "Evernote-exportbestand"
|
|||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr "Joplin-exportmap"
|
msgstr "Joplin-exportmap"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Bestand"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Map"
|
msgstr "Map"
|
||||||
|
|
||||||
@@ -1670,9 +1811,20 @@ msgstr "- Locatie: zodat je locatie-informatie kunt toevoegen aan een notitie."
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr "Joplin-website"
|
msgstr "Joplin-website"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "Te verwijderen: %d"
|
||||||
|
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Inloggen met Dropbox"
|
msgstr "Inloggen met Dropbox"
|
||||||
|
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr "Hoofdsleutel %s"
|
msgstr "Hoofdsleutel %s"
|
||||||
@@ -1755,6 +1907,9 @@ msgstr "Tonen op kaart"
|
|||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Bewerken"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Notitieboek verwijderen"
|
msgstr "Notitieboek verwijderen"
|
||||||
|
|
||||||
@@ -1779,6 +1934,21 @@ msgstr ""
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "Welkom"
|
msgstr "Welkom"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "Deze notitie is bewerkt:"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||||
|
#~ "See `sync.target`."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "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."
|
#~ msgid "State: %s."
|
||||||
#~ msgstr "Status: %s."
|
#~ msgstr "Status: %s."
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ msgstr ""
|
|||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Poedit 2.2\n"
|
"X-Generator: Poedit 2.2.1\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
|
||||||
msgid "To delete a tag, untag the associated notes."
|
msgid "To delete a tag, untag the associated notes."
|
||||||
@@ -124,9 +124,10 @@ msgstr "Marca uma tarefa como feita."
|
|||||||
msgid "Note is not a to-do: \"%s\""
|
msgid "Note is not a to-do: \"%s\""
|
||||||
msgstr "Nota não é uma tarefa: \"%s\""
|
msgstr "Nota não é uma tarefa: \"%s\""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Gerencia a configuração E2EE. Os comandos são `enable`, `disable`, "
|
"Gerencia a configuração E2EE. Os comandos são `enable`, `disable`, "
|
||||||
"`decrypt`, `status` e `target-status`."
|
"`decrypt`, `status` e `target-status`."
|
||||||
@@ -163,8 +164,8 @@ msgstr "Editar nota."
|
|||||||
msgid ""
|
msgid ""
|
||||||
"No text editor is defined. Please set it using `config editor <editor-path>`"
|
"No text editor is defined. Please set it using `config editor <editor-path>`"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nenhum editor de texto está definido. Defina-o usando o comando `config edit "
|
"Nenhum editor de texto está definido. Defina-o usando o comando `config "
|
||||||
"<caminho-do-editor>`"
|
"editor <caminho-do-editor>`"
|
||||||
|
|
||||||
msgid "No active notebook."
|
msgid "No active notebook."
|
||||||
msgstr "Nenhum caderno ativo."
|
msgstr "Nenhum caderno ativo."
|
||||||
@@ -582,6 +583,20 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Exportando para \"%s\" com o formato \"%s\". Por favor, aguarde..."
|
msgstr "Exportando para \"%s\" com o formato \"%s\". Por favor, aguarde..."
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "Título do caderno:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "Cadernos"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Importando de \"%s\" com o formato \"%s\". Por favor, aguarde..."
|
msgstr "Importando de \"%s\" com o formato \"%s\". Por favor, aguarde..."
|
||||||
@@ -589,8 +604,8 @@ msgstr "Importando de \"%s\" com o formato \"%s\". Por favor, aguarde..."
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "Arquivo PDF"
|
msgstr "Arquivo PDF"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "Arquivo"
|
msgstr "Status de sincronização"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "Nova nota"
|
msgstr "Nova nota"
|
||||||
@@ -601,14 +616,43 @@ msgstr "Nova tarefa"
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "Novo caderno"
|
msgstr "Novo caderno"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr "Imprimir"
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Opções Gerais"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr "Opções de Encriptação"
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr "Opções do Web clipper"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "Arquivo"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "Sobre o Joplin"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr "Verificar atualizações..."
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "Importar"
|
msgstr "Importar"
|
||||||
|
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "Exportar"
|
msgstr "Exportar"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr "Imprimir"
|
msgstr "Sincronizar"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -617,7 +661,8 @@ msgstr "Ocultar %s"
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Sair"
|
msgstr "Sair"
|
||||||
|
|
||||||
msgid "Edit"
|
#, fuzzy
|
||||||
|
msgid "&Edit"
|
||||||
msgstr "Editar"
|
msgstr "Editar"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -638,6 +683,9 @@ msgstr "Negrito"
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr "Itálico"
|
msgstr "Itálico"
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr "Inserir Data e Hora"
|
msgstr "Inserir Data e Hora"
|
||||||
|
|
||||||
@@ -647,11 +695,11 @@ msgstr "Editar com editor externo"
|
|||||||
msgid "Search in all the notes"
|
msgid "Search in all the notes"
|
||||||
msgstr "Pesquisar em todas as notas"
|
msgstr "Pesquisar em todas as notas"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "Pesquisar em todas as notas"
|
msgstr "Pesquisar na nota atual"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "&View"
|
||||||
msgstr "Visualizar"
|
msgstr "Visualizar"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -660,22 +708,16 @@ msgstr "Alternar barra lateral"
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr "Alternar layout do editor"
|
msgstr "Alternar layout do editor"
|
||||||
|
|
||||||
msgid "Tools"
|
#, fuzzy
|
||||||
|
msgid "Focus"
|
||||||
|
msgstr "Focar no corpo"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&Tools"
|
||||||
msgstr "Ferramentas"
|
msgstr "Ferramentas"
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
#, fuzzy
|
||||||
msgstr "Status de sincronização"
|
msgid "&Help"
|
||||||
|
|
||||||
msgid "Web clipper options"
|
|
||||||
msgstr "Opções do Web clipper"
|
|
||||||
|
|
||||||
msgid "Encryption options"
|
|
||||||
msgstr "Opções de Encriptação"
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr "Opções Gerais"
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr "Ajuda"
|
msgstr "Ajuda"
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -684,16 +726,6 @@ msgstr "Website e documentação"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "Fazer uma doação"
|
msgstr "Fazer uma doação"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr "Verificar atualizações..."
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "Sobre o Joplin"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "Abrir %s"
|
msgstr "Abrir %s"
|
||||||
@@ -710,9 +742,21 @@ msgstr "Cancelar"
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr "A versão atual está atualizada."
|
msgstr "A versão atual está atualizada."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr "Uma atualização está disponível, você quer baixar agora?"
|
msgstr "Uma atualização está disponível, você quer baixar agora?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Sim"
|
msgstr "Sim"
|
||||||
|
|
||||||
@@ -720,7 +764,7 @@ msgid "No"
|
|||||||
msgstr "Não"
|
msgstr "Não"
|
||||||
|
|
||||||
msgid "Token has been copied to the clipboard!"
|
msgid "Token has been copied to the clipboard!"
|
||||||
msgstr "Token foi copiado para a \\u00e1rea de transfer\\u00eancia!"
|
msgstr "Token foi copiado para a área de transferência!"
|
||||||
|
|
||||||
msgid "The web clipper service is enabled and set to auto-start."
|
msgid "The web clipper service is enabled and set to auto-start."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -775,25 +819,28 @@ msgid "Advanced options"
|
|||||||
msgstr "Mostrar opções avançadas"
|
msgstr "Mostrar opções avançadas"
|
||||||
|
|
||||||
msgid "Authorisation token:"
|
msgid "Authorisation token:"
|
||||||
msgstr "Token de autoriza\\u00e7\\u00e3o:"
|
msgstr "Token de autorização:"
|
||||||
|
|
||||||
msgid "Copy token"
|
msgid "Copy token"
|
||||||
msgstr "Copira token"
|
msgstr "Copiar token"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"This authorisation token is only needed to allow third-party applications to "
|
"This authorisation token is only needed to allow third-party applications to "
|
||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Esse token de autoriza\\u00e7\\u00e3o só é necess\\u00e1rio para permitir "
|
"Esse token de autorização só é necessário para permitir que aplicativos de "
|
||||||
"que aplicativos de terceiros acessem o Joplin."
|
"terceiros acessem o Joplin."
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
|
||||||
msgstr "Verificar a configuração da sincronização"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr "Notas e configurações estão armazenadas em: %s"
|
msgstr "Notas e configurações estão armazenadas em: %s"
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Verificar a configuração da sincronização"
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr "Aplicar"
|
msgstr "Aplicar"
|
||||||
|
|
||||||
@@ -887,6 +934,10 @@ msgstr "Status"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "Encriptação está:"
|
msgstr "Encriptação está:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Uso: %s"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Voltar"
|
msgstr "Voltar"
|
||||||
|
|
||||||
@@ -938,34 +989,6 @@ msgstr "Alguns itens não podem ser decriptados."
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "Configurar a senha"
|
msgstr "Configurar a senha"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "Adicionar ou remover tags"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr "Duplicar"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "%s - Copiar"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "Alternar entre os tipos Nota e Tarefa"
|
|
||||||
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "Alternar para o tipo Nota"
|
|
||||||
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "Alternar para o tipo Tarefa"
|
|
||||||
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr "Copiar link de Markdown"
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "Excluir"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "Excluir notas?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr "Não há notas aqui. Crie uma, clicando em \"Nova nota\"."
|
msgstr "Não há notas aqui. Crie uma, clicando em \"Nova nota\"."
|
||||||
|
|
||||||
@@ -1013,6 +1036,9 @@ msgstr ""
|
|||||||
"Esta nota não possui conteúdo. Clique em \"%s\" para alternar para o editor, "
|
"Esta nota não possui conteúdo. Clique em \"%s\" para alternar para o editor, "
|
||||||
"e edite a nota."
|
"e edite a nota."
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr "texto forte"
|
msgstr "texto forte"
|
||||||
|
|
||||||
@@ -1099,18 +1125,28 @@ msgstr "Opções de Encriptação"
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Opções do clipper"
|
msgstr "Opções do clipper"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, fuzzy, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr ""
|
||||||
|
"Excluir o caderno? Todas as notas e sub-cadernos dentro deste também serão "
|
||||||
|
"excluídas."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
msgstr "Remover esta tag de todas as notas?"
|
msgstr "Remover esta tag de todas as notas?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "Remover essa pesquisa da barra lateral?"
|
msgstr "Remover essa pesquisa da barra lateral?"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Excluir"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Renomear"
|
msgstr "Renomear"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "Sincronizar"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "Cadernos"
|
msgstr "Cadernos"
|
||||||
|
|
||||||
@@ -1127,6 +1163,44 @@ msgstr ""
|
|||||||
"Favor selecionar o local para onde o status de sincronia deveria ser "
|
"Favor selecionar o local para onde o status de sincronia deveria ser "
|
||||||
"exportado"
|
"exportado"
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "Adicionar ou remover tags"
|
||||||
|
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "Duplicar"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "%s - Copiar"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "Alternar entre os tipos Nota e Tarefa"
|
||||||
|
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "Alternar para o tipo Nota"
|
||||||
|
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "Alternar para o tipo Tarefa"
|
||||||
|
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr "Copiar link de Markdown"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "Apagar o caderno \"%s\"?"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "Excluir estas notas?"
|
||||||
|
|
||||||
|
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 ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "Uso: %s"
|
msgstr "Uso: %s"
|
||||||
@@ -1245,6 +1319,12 @@ msgstr "Encriptado"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "Itens encriptados não podem ser modificados"
|
msgstr "Itens encriptados não podem ser modificados"
|
||||||
|
|
||||||
|
msgid "title"
|
||||||
|
msgstr "título"
|
||||||
|
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "data de atualização"
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "Conflitos"
|
msgstr "Conflitos"
|
||||||
|
|
||||||
@@ -1256,12 +1336,6 @@ msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Os cadernos não podem ser nomeados como\"%s\", que é um título reservado."
|
"Os cadernos não podem ser nomeados como\"%s\", que é um título reservado."
|
||||||
|
|
||||||
msgid "title"
|
|
||||||
msgstr "título"
|
|
||||||
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "data de ataualização"
|
|
||||||
|
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "data de criação"
|
msgstr "data de criação"
|
||||||
|
|
||||||
@@ -1276,6 +1350,16 @@ msgstr "Não é possível copiar a nota para o caderno \"%s\""
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "Não é possível mover a nota para o caderno \"%s\""
|
msgstr "Não é possível mover a nota para o caderno \"%s\""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
"Atenção: Se você modificar esse local, tenha certeza de copiar todo o seu "
|
||||||
|
"conteúdo para lá antes de sincronizar, do contrário todos os seus arquivos "
|
||||||
|
"serão removidos! Veja o FAQ para mais detalhes: %s"
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Idioma"
|
msgstr "Idioma"
|
||||||
|
|
||||||
@@ -1306,6 +1390,10 @@ msgstr "Ordenar notas por"
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "Inverter ordem de classificação"
|
msgstr "Inverter ordem de classificação"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "Ordenar notas por"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "Salvar geolocalização com notas"
|
msgstr "Salvar geolocalização com notas"
|
||||||
|
|
||||||
@@ -1321,6 +1409,43 @@ msgstr "Focar no corpo"
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "Quando criar uma nota nova:"
|
msgstr "Quando criar uma nota nova:"
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr "Habilitar encriptação"
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr "Exibir tray icon"
|
msgstr "Exibir tray icon"
|
||||||
|
|
||||||
@@ -1342,9 +1467,8 @@ msgstr "Iniciar aplicativo minimizado na barra de tarefas"
|
|||||||
msgid "Global zoom percentage"
|
msgid "Global zoom percentage"
|
||||||
msgstr "Porcentagem global do zoom"
|
msgstr "Porcentagem global do zoom"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Editor font size"
|
msgid "Editor font size"
|
||||||
msgstr "Família de fontes do editor"
|
msgstr "Tamanho da fonte no Editor"
|
||||||
|
|
||||||
msgid "Editor font family"
|
msgid "Editor font family"
|
||||||
msgstr "Família de fontes do editor"
|
msgstr "Família de fontes do editor"
|
||||||
@@ -1359,6 +1483,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "Atualizar automaticamente o aplicativo"
|
msgstr "Atualizar automaticamente o aplicativo"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "Intervalo de sincronização"
|
msgstr "Intervalo de sincronização"
|
||||||
|
|
||||||
@@ -1401,26 +1532,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr "Diretório para sincronizar (caminho absoluto)"
|
msgstr "Diretório para sincronizar (caminho absoluto)"
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
"O caminho para sincronizar, quando a sincronização do sistema de arquivos "
|
|
||||||
"está habilitada. Veja `sync.target`."
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr "Nextcloud WebDAV URL"
|
msgstr "Nextcloud WebDAV URL"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
"Atenção: Se você modificar esse local, tenha certeza de copiar todo o seu "
|
|
||||||
"conteúdo para lá antes de sincronizar, do contrário todos os seus arquivos "
|
|
||||||
"serão removidos! Veja o FAQ para mais detalhes: %s"
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr "Usuário da Nextcloud"
|
msgstr "Usuário da Nextcloud"
|
||||||
|
|
||||||
@@ -1458,6 +1572,28 @@ msgstr "Ignorar erros de certificados TLS"
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "Valor da opção inválida: \"%s\". Os valores possíveis são: %s."
|
msgstr "Valor da opção inválida: \"%s\". Os valores possíveis são: %s."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Opções Gerais"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "Status de sincronização"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "Cadernos"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "Localização"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr "A tag \"%s\" já existe. Escolha um nome diferente."
|
msgstr "A tag \"%s\" já existe. Escolha um nome diferente."
|
||||||
@@ -1477,6 +1613,9 @@ msgstr "Arquivo de Exportação do Evernote"
|
|||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr "Diretório de Exportação JSON"
|
msgstr "Diretório de Exportação JSON"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Arquivo"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Diretório"
|
msgstr "Diretório"
|
||||||
|
|
||||||
@@ -1553,10 +1692,10 @@ msgid "On %s: %s"
|
|||||||
msgstr "Em %s: %s"
|
msgstr "Em %s: %s"
|
||||||
|
|
||||||
msgid "Permission to use camera"
|
msgid "Permission to use camera"
|
||||||
msgstr "Permissão para utilizar sua c\\u00e2mera"
|
msgstr "Permissão para utilizar sua câmera"
|
||||||
|
|
||||||
msgid "Your permission to use your camera is required."
|
msgid "Your permission to use your camera is required."
|
||||||
msgstr "É necessária a sua permissão para utilizar sua c\\u00e2mera."
|
msgstr "É necessária a sua permissão para utilizar sua câmera."
|
||||||
|
|
||||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
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 (+)."
|
msgstr "Atualmente, não há notas. Crie uma, clicando no botão (+)."
|
||||||
@@ -1668,9 +1807,21 @@ msgstr ""
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr "Site do Joplin"
|
msgstr "Site do Joplin"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "Para excluir: %d"
|
||||||
|
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Login com Dropbox"
|
msgstr "Login com Dropbox"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr "Entrar no modo de linha de comando"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr "Chave Master %s"
|
msgstr "Chave Master %s"
|
||||||
@@ -1722,9 +1873,8 @@ msgstr "O app mobile do Joplin não suporta, atualmente, esse tipo de link: %s"
|
|||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr "Tipo de imagem não suportada: %s"
|
msgstr "Tipo de imagem não suportada: %s"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Take photo"
|
msgid "Take photo"
|
||||||
msgstr "Anexar foto"
|
msgstr "Tirar foto"
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr "Anexar foto"
|
msgstr "Anexar foto"
|
||||||
@@ -1753,6 +1903,9 @@ msgstr "Ver no mapa"
|
|||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr "Ir para a URL de origem"
|
msgstr "Ir para a URL de origem"
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Editar"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Excluir caderno"
|
msgstr "Excluir caderno"
|
||||||
|
|
||||||
@@ -1775,6 +1928,24 @@ msgstr "Você não possui cadernos. Crie um clicando no botão (+)."
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "Bem-vindo"
|
msgstr "Bem-vindo"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "Esta nota foi modificada:"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||||
|
#~ "See `sync.target`."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "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 "Delete notes?"
|
||||||
|
#~ msgstr "Excluir notas?"
|
||||||
|
|
||||||
#~ msgid "State: %s."
|
#~ msgid "State: %s."
|
||||||
#~ msgstr "Estado: \"%s\"."
|
#~ msgstr "Estado: \"%s\"."
|
||||||
|
|
||||||
@@ -1818,9 +1989,6 @@ msgstr "Bem-vindo"
|
|||||||
#~ msgid "Give focus to previous pane"
|
#~ msgid "Give focus to previous pane"
|
||||||
#~ msgstr "Dar o foco para o painel anterior"
|
#~ msgstr "Dar o foco para o painel anterior"
|
||||||
|
|
||||||
#~ msgid "Enter command line mode"
|
|
||||||
#~ msgstr "Entrar no modo de linha de comando"
|
|
||||||
|
|
||||||
#~ msgid "Exit command line mode"
|
#~ msgid "Exit command line mode"
|
||||||
#~ msgstr "Sair do modo de linha de comando"
|
#~ msgstr "Sair do modo de linha de comando"
|
||||||
|
|
||||||
@@ -1874,8 +2042,5 @@ msgstr "Bem-vindo"
|
|||||||
#~ msgid "Delete notebook?"
|
#~ msgid "Delete notebook?"
|
||||||
#~ msgstr "Excluir caderno?"
|
#~ msgstr "Excluir caderno?"
|
||||||
|
|
||||||
#~ msgid "Delete notebook \"%s\"?"
|
|
||||||
#~ msgstr "Apagar o caderno \"%s\"?"
|
|
||||||
|
|
||||||
#~ msgid "File system synchronisation target directory"
|
#~ msgid "File system synchronisation target directory"
|
||||||
#~ msgstr "Diretório de destino de sincronização do sistema de arquivos"
|
#~ msgstr "Diretório de destino de sincronização do sistema de arquivos"
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ msgstr "Notița nu este o sarcină: \"%s\""
|
|||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Enter master password:"
|
msgid "Enter master password:"
|
||||||
@@ -521,6 +521,20 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Se exportă către \"%s\" în format \"%s\". Vă rugăm să așteotați..."
|
msgstr "Se exportă către \"%s\" în format \"%s\". Vă rugăm să așteotați..."
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "Titlul caietului de notițe:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "Caiete de notițe"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -528,8 +542,8 @@ msgstr ""
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "Fișier PDF"
|
msgstr "Fișier PDF"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "Fișier"
|
msgstr "Statusul sincronizării"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "Adăugați o nouă notiță"
|
msgstr "Adăugați o nouă notiță"
|
||||||
@@ -540,14 +554,43 @@ msgstr "Adăugați o nouă sarcină"
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "Adăugați un nou caiet de notițe"
|
msgstr "Adăugați un nou caiet de notițe"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr "Printați"
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Opțiuni Generale"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr "Opțiuni de criptare"
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "Fișier"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "Despre Joplin"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr "Verificați actualizările..."
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "Importați"
|
msgstr "Importați"
|
||||||
|
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "Exportați"
|
msgstr "Exportați"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr "Printați"
|
msgstr "Sincronizați"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -556,7 +599,8 @@ msgstr "Ascundeți %s"
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Ieșiți"
|
msgstr "Ieșiți"
|
||||||
|
|
||||||
msgid "Edit"
|
#, fuzzy
|
||||||
|
msgid "&Edit"
|
||||||
msgstr "Editați"
|
msgstr "Editați"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -578,6 +622,9 @@ msgstr ""
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -591,7 +638,8 @@ msgstr "Căutați în toate notițele"
|
|||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "Căutați în toate notițele"
|
msgstr "Căutați în toate notițele"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "&View"
|
||||||
msgstr "Vizualizați"
|
msgstr "Vizualizați"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -600,22 +648,15 @@ msgstr ""
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Tools"
|
msgid "Focus"
|
||||||
msgstr "Unelte"
|
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
|
||||||
msgstr "Statusul sincronizării"
|
|
||||||
|
|
||||||
msgid "Web clipper options"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Encryption options"
|
#, fuzzy
|
||||||
msgstr "Opțiuni de criptare"
|
msgid "&Tools"
|
||||||
|
msgstr "Unelte"
|
||||||
|
|
||||||
msgid "General Options"
|
#, fuzzy
|
||||||
msgstr "Opțiuni Generale"
|
msgid "&Help"
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr "Ajutor"
|
msgstr "Ajutor"
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -624,16 +665,6 @@ msgstr "Website și documentație"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "Faceți o donație"
|
msgstr "Faceți o donație"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr "Verificați actualizările..."
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "Despre Joplin"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "Deschideți %s"
|
msgstr "Deschideți %s"
|
||||||
@@ -650,9 +681,21 @@ msgstr "Anulați"
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr "Versiunea curentă este actualizată."
|
msgstr "Versiunea curentă este actualizată."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Da"
|
msgstr "Da"
|
||||||
|
|
||||||
@@ -720,13 +763,16 @@ msgid ""
|
|||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr "Aplicați"
|
msgstr "Aplicați"
|
||||||
|
|
||||||
@@ -805,6 +851,10 @@ msgstr "Status"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "Criptarea este:"
|
msgstr "Criptarea este:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Utilizare: %s"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Înapoi"
|
msgstr "Înapoi"
|
||||||
|
|
||||||
@@ -855,36 +905,6 @@ msgstr "Câțiva itemi nu pot fi descriptați."
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "Setați parola"
|
msgstr "Setați parola"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "Adăugați ori eliminați etichete"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr "Duplicați"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "%s - Copiați"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "Schimbați între notiță și sarcină"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "Schimbați între notiță și sarcină"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "Schimbați între notiță și sarcină"
|
|
||||||
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr "Copiați link-ul Markdown"
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "Ștergeți"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "Ștergeți notițele?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -930,6 +950,9 @@ msgid ""
|
|||||||
"note."
|
"note."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1016,18 +1039,26 @@ msgstr "Opțiuni de criptare"
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Opțiuni Clipper"
|
msgstr "Opțiuni Clipper"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Ștergeți"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Redenumiți"
|
msgstr "Redenumiți"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "Sincronizați"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "Caiete de notițe"
|
msgstr "Caiete de notițe"
|
||||||
|
|
||||||
@@ -1042,6 +1073,47 @@ msgstr "Resurse: %d."
|
|||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "Adăugați ori eliminați etichete"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "Duplicați"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "%s - Copiați"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "Schimbați între notiță și sarcină"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "Schimbați între notiță și sarcină"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "Schimbați între notiță și sarcină"
|
||||||
|
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr "Copiați link-ul Markdown"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "Ștergeți notițele?"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "Ștergeți aceste notițe?"
|
||||||
|
|
||||||
|
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 ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "Utilizare: %s"
|
msgstr "Utilizare: %s"
|
||||||
@@ -1152,6 +1224,12 @@ msgstr "Criptat"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "Itemii criptați nu pot fi editați"
|
msgstr "Itemii criptați nu pot fi editați"
|
||||||
|
|
||||||
|
msgid "title"
|
||||||
|
msgstr "titlu"
|
||||||
|
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "data actualizării"
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "Conflicte"
|
msgstr "Conflicte"
|
||||||
|
|
||||||
@@ -1162,12 +1240,6 @@ msgstr "Nu se poate muta caietul de notițe în această locație"
|
|||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "title"
|
|
||||||
msgstr "titlu"
|
|
||||||
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "data actualizării"
|
|
||||||
|
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "data creării"
|
msgstr "data creării"
|
||||||
|
|
||||||
@@ -1182,6 +1254,13 @@ msgstr "Nu se poate copia notița în caietul de notițe \"%s\""
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "Nu se poate muta notița în caietul de notițe \"%s\""
|
msgstr "Nu se poate muta notița în caietul de notițe \"%s\""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Limbă"
|
msgstr "Limbă"
|
||||||
|
|
||||||
@@ -1212,6 +1291,10 @@ msgstr "Sortați notițele după"
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "Inversați ordinea sortării"
|
msgstr "Inversați ordinea sortării"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "Sortați notițele după"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "Salvați geo-locația în notițe"
|
msgstr "Salvați geo-locația în notițe"
|
||||||
|
|
||||||
@@ -1227,6 +1310,43 @@ msgstr ""
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "Când este creată o nouă notiță:"
|
msgstr "Când este creată o nouă notiță:"
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr "Activați criptarea"
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr "Afișați iconița coșul de gunoi"
|
msgstr "Afișați iconița coșul de gunoi"
|
||||||
|
|
||||||
@@ -1260,6 +1380,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "Actualizați automat aplicația"
|
msgstr "Actualizați automat aplicația"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "Intervalul de sincronizare"
|
msgstr "Intervalul de sincronizare"
|
||||||
|
|
||||||
@@ -1297,21 +1424,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr "URL NextCloud WebDAV"
|
msgstr "URL NextCloud WebDAV"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr "Nume utilizator Nextcloud"
|
msgstr "Nume utilizator Nextcloud"
|
||||||
|
|
||||||
@@ -1344,6 +1459,28 @@ msgstr "Ignoră erorile de certificat TLS"
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Opțiuni Generale"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "Statusul sincronizării"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "Caiete de notițe"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "Duplicați"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1363,6 +1500,9 @@ msgstr ""
|
|||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Fișier"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1535,9 +1675,20 @@ msgstr ""
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr "Website Joplin"
|
msgstr "Website Joplin"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "De șters: %d"
|
||||||
|
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Autentificați-vă cu Dropbox"
|
msgstr "Autentificați-vă cu Dropbox"
|
||||||
|
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1620,6 +1771,9 @@ msgstr "Vizualizați pe hartă"
|
|||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Editați"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Ștergeți caiet de notițe"
|
msgstr "Ștergeți caiet de notițe"
|
||||||
|
|
||||||
@@ -1643,6 +1797,14 @@ msgstr ""
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "Bine ați venit"
|
msgstr "Bine ați venit"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "Această notiță a fost modificată:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Joplin v%s"
|
||||||
|
#~ msgstr "Website Joplin"
|
||||||
|
|
||||||
#~ msgid "State: %s."
|
#~ msgid "State: %s."
|
||||||
#~ msgstr "Statut: %s."
|
#~ msgstr "Statut: %s."
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -123,9 +123,10 @@ msgstr "Označi seznam opravil kot končan."
|
|||||||
msgid "Note is not a to-do: \"%s\""
|
msgid "Note is not a to-do: \"%s\""
|
||||||
msgstr "Zabeležka ni formata seznam opravil: \"%s\""
|
msgstr "Zabeležka ni formata seznam opravil: \"%s\""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Upravlja z E2EE nastavitvami. Ukazi so `enable`, `disable`, `decrypt`, "
|
"Upravlja z E2EE nastavitvami. Ukazi so `enable`, `disable`, `decrypt`, "
|
||||||
"`status` in `target-status`."
|
"`status` in `target-status`."
|
||||||
@@ -582,6 +583,20 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Izvažam v \"%s\" kot \"%s\" format. Prosim počakajte..."
|
msgstr "Izvažam v \"%s\" kot \"%s\" format. Prosim počakajte..."
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "Naslov beležnice:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "Beležnice"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Uvažam v \"%s\" kot \"%s\" format. Prosim počakajte..."
|
msgstr "Uvažam v \"%s\" kot \"%s\" format. Prosim počakajte..."
|
||||||
@@ -589,8 +604,8 @@ msgstr "Uvažam v \"%s\" kot \"%s\" format. Prosim počakajte..."
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "PDF datoteka"
|
msgstr "PDF datoteka"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "Datoteka"
|
msgstr "Status sinhronizacije"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "Nova zabeležka"
|
msgstr "Nova zabeležka"
|
||||||
@@ -601,14 +616,43 @@ msgstr "Novi seznam opravil"
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "Nova beležnica"
|
msgstr "Nova beležnica"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr "Natisni"
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Splošne možnosti"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr "Možnosti enkripcije"
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "Datoteka"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "O Joplinu"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr "Preverjanje za posodobitvami..."
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "Uvozi"
|
msgstr "Uvozi"
|
||||||
|
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "Izvozi"
|
msgstr "Izvozi"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr "Natisni"
|
msgstr "Sinhroniziraj"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -617,7 +661,8 @@ msgstr "Skrij %s"
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Izhod"
|
msgstr "Izhod"
|
||||||
|
|
||||||
msgid "Edit"
|
#, fuzzy
|
||||||
|
msgid "&Edit"
|
||||||
msgstr "Uredi"
|
msgstr "Uredi"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -639,6 +684,9 @@ msgstr ""
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -652,7 +700,8 @@ msgstr "Išči znotraj vseh zabeležk"
|
|||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "Išči znotraj vseh zabeležk"
|
msgstr "Išči znotraj vseh zabeležk"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "&View"
|
||||||
msgstr "Pogled"
|
msgstr "Pogled"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -661,22 +710,16 @@ msgstr ""
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr "Spremeni izgled urejevalnika"
|
msgstr "Spremeni izgled urejevalnika"
|
||||||
|
|
||||||
msgid "Tools"
|
#, fuzzy
|
||||||
|
msgid "Focus"
|
||||||
|
msgstr "Fokusiraj vsebino"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&Tools"
|
||||||
msgstr "Orodja"
|
msgstr "Orodja"
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
#, fuzzy
|
||||||
msgstr "Status sinhronizacije"
|
msgid "&Help"
|
||||||
|
|
||||||
msgid "Web clipper options"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Encryption options"
|
|
||||||
msgstr "Možnosti enkripcije"
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr "Splošne možnosti"
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr "Pomoč"
|
msgstr "Pomoč"
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -685,16 +728,6 @@ msgstr "Spletna stran in dokumentacija"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "Doniraj"
|
msgstr "Doniraj"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr "Preverjanje za posodobitvami..."
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "O Joplinu"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "Odpri %s"
|
msgstr "Odpri %s"
|
||||||
@@ -711,9 +744,21 @@ msgstr "Prekliči"
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr "Sedanja verzija je najnovejša."
|
msgstr "Sedanja verzija je najnovejša."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr "Posodobitev je na voljo, jo želite prenesti sedaj?"
|
msgstr "Posodobitev je na voljo, jo želite prenesti sedaj?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Da"
|
msgstr "Da"
|
||||||
|
|
||||||
@@ -781,13 +826,16 @@ msgid ""
|
|||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
|
||||||
msgstr "Preveri nastavitve sinhronizacije"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr "Zabeležke in nastavitve so shranjene v: %s"
|
msgstr "Zabeležke in nastavitve so shranjene v: %s"
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Preveri nastavitve sinhronizacije"
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -881,6 +929,10 @@ msgstr "Status"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "Enkripcija je:"
|
msgstr "Enkripcija je:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Uporaba: %s"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Nazaj"
|
msgstr "Nazaj"
|
||||||
|
|
||||||
@@ -934,37 +986,6 @@ msgstr "Nekateri predmeti ne morejo biti dekriptirani."
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "Nastavi geslo"
|
msgstr "Nastavi geslo"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "Dodaj ali odstrani oznake"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "Kopiraj"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "Menjaj med zabeležko in seznamom opravil"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "Menjaj med zabeležko in seznamom opravil"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "Menjaj med zabeležko in seznamom opravil"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr "Sistem označevanja"
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "Izbriši"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "Izbriši zabeležke?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Trenutno ni tukaj nobene zabeležke. Ustvarite jo z klikom na \"Nova zabeležka"
|
"Trenutno ni tukaj nobene zabeležke. Ustvarite jo z klikom na \"Nova zabeležka"
|
||||||
@@ -1016,6 +1037,9 @@ msgstr ""
|
|||||||
"Ta zabeležka nima vsebine. Kliknite na \"%s\" da menjate med urejevalnikom "
|
"Ta zabeležka nima vsebine. Kliknite na \"%s\" da menjate med urejevalnikom "
|
||||||
"in urejanje zabeležke."
|
"in urejanje zabeležke."
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1104,18 +1128,28 @@ msgstr "Možnosti enkripcije"
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Splošne možnosti"
|
msgstr "Splošne možnosti"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, fuzzy, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr ""
|
||||||
|
"Želite izbrisati beležnico? Vse zabeležke znotraj beležke bodo hkrati "
|
||||||
|
"izbrisane."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
msgstr "Odstranite to oznako iz vseh zabeležk?"
|
msgstr "Odstranite to oznako iz vseh zabeležk?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "Odstranite ta iskalni niz iz stranske vrstice?"
|
msgstr "Odstranite ta iskalni niz iz stranske vrstice?"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Izbriši"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Preimenuj"
|
msgstr "Preimenuj"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "Sinhroniziraj"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "Beležnice"
|
msgstr "Beležnice"
|
||||||
|
|
||||||
@@ -1130,6 +1164,48 @@ msgstr "Viri: %d."
|
|||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr "Prosim izberite, kam želite izvoziti sinhronizacijski status"
|
msgstr "Prosim izberite, kam želite izvoziti sinhronizacijski status"
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "Dodaj ali odstrani oznake"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "Izhod iz aplikacije."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "Kopiraj"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "Menjaj med zabeležko in seznamom opravil"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "Menjaj med zabeležko in seznamom opravil"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "Menjaj med zabeležko in seznamom opravil"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr "Sistem označevanja"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "Izbriši zabeležke?"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "Izbriši te zabeležke?"
|
||||||
|
|
||||||
|
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 ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "Uporaba: %s"
|
msgstr "Uporaba: %s"
|
||||||
@@ -1248,6 +1324,14 @@ msgstr "Enkriptirano"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "Enkriptirani predmeti ne morejo biti spremenjeni"
|
msgstr "Enkriptirani predmeti ne morejo biti spremenjeni"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "title"
|
||||||
|
msgstr "Neimenovano"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "Posodobljeno: %d."
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "Konfikti"
|
msgstr "Konfikti"
|
||||||
|
|
||||||
@@ -1259,14 +1343,6 @@ msgstr "Ni moč premakniti zabeležke v \"%s\" beležnico"
|
|||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
msgstr "Beležnica ne more biti imenovana \"%s\", ker je to rezerviran naslov."
|
msgstr "Beležnica ne more biti imenovana \"%s\", ker je to rezerviran naslov."
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "title"
|
|
||||||
msgstr "Neimenovano"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "Posodobljeno: %d."
|
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "Ustvarjeno: %d."
|
msgstr "Ustvarjeno: %d."
|
||||||
@@ -1282,6 +1358,13 @@ msgstr "Ni moč kopirati zabeležke v \"%s\" beležnico"
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "Ni moč premakniti zabeležke v \"%s\" beležnico"
|
msgstr "Ni moč premakniti zabeležke v \"%s\" beležnico"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Jezik"
|
msgstr "Jezik"
|
||||||
|
|
||||||
@@ -1313,6 +1396,10 @@ msgstr "Razporedi zabeležko po"
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "Obrni vrstni red"
|
msgstr "Obrni vrstni red"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "Razporedi zabeležko po"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "Shrani geo-lokacijo z zabeležkami"
|
msgstr "Shrani geo-lokacijo z zabeležkami"
|
||||||
|
|
||||||
@@ -1328,6 +1415,43 @@ msgstr "Fokusiraj vsebino"
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "Ob ustvarjanju nove zabeležke:"
|
msgstr "Ob ustvarjanju nove zabeležke:"
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr "Omogoči enkripcijo"
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr "Pokaži ikono v območju za obvestila(opravilna vrstica)"
|
msgstr "Pokaži ikono v območju za obvestila(opravilna vrstica)"
|
||||||
|
|
||||||
@@ -1364,6 +1488,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "Samodejno posodobi aplikacijo"
|
msgstr "Samodejno posodobi aplikacijo"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "Časovni interval sinhronizacije"
|
msgstr "Časovni interval sinhronizacije"
|
||||||
|
|
||||||
@@ -1407,23 +1538,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr "Mesto ciljne sinhronizacije (absolutna pot)"
|
msgstr "Mesto ciljne sinhronizacije (absolutna pot)"
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
"Pot za sinhronizacijo, ki bo uporabljena ob omogočeni sinhronizaciji. Poglej "
|
|
||||||
"`sync.target`."
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr "Nextcloud WebDAV URL"
|
msgstr "Nextcloud WebDAV URL"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr "Nextcloud uporabniško ime"
|
msgstr "Nextcloud uporabniško ime"
|
||||||
|
|
||||||
@@ -1456,6 +1573,28 @@ msgstr ""
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "Neveljavna vrednost: \"%s\". Možne vrednosti so : %s."
|
msgstr "Neveljavna vrednost: \"%s\". Možne vrednosti so : %s."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Splošne možnosti"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "Status sinhronizacije"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "Beležnice"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "Izhod iz aplikacije."
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1476,6 +1615,9 @@ msgstr "Evernote izvozna datoteka"
|
|||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr "Joplin izvozno mesto"
|
msgstr "Joplin izvozno mesto"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Datoteka"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Mesto datoteke"
|
msgstr "Mesto datoteke"
|
||||||
|
|
||||||
@@ -1656,10 +1798,21 @@ msgstr ""
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr "Joplin spletna stran"
|
msgstr "Joplin spletna stran"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "Za izbris: %d"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Prijavi se z OneDrive"
|
msgstr "Prijavi se z OneDrive"
|
||||||
|
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr "Glavno geslo %s"
|
msgstr "Glavno geslo %s"
|
||||||
@@ -1742,6 +1895,9 @@ msgstr "Prikaži na zemljevidu"
|
|||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Uredi"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Izbriši beležnico"
|
msgstr "Izbriši beležnico"
|
||||||
|
|
||||||
@@ -1764,6 +1920,21 @@ msgstr "Trenutno nimate nobene beležnice. Ustvarite jo s klikom na (+) gumb."
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "Dobrodošli"
|
msgstr "Dobrodošli"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "Ta zabeležka je bila spremenjena:"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||||
|
#~ "See `sync.target`."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "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."
|
#~ msgid "State: %s."
|
||||||
#~ msgstr "Stanje: %s."
|
#~ msgstr "Stanje: %s."
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ msgstr ""
|
|||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Poedit 2.1.1\n"
|
"X-Generator: Poedit 2.2.1\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
msgid "To delete a tag, untag the associated notes."
|
msgid "To delete a tag, untag the associated notes."
|
||||||
@@ -124,9 +124,10 @@ msgstr "Märker en att-göra som gjord."
|
|||||||
msgid "Note is not a to-do: \"%s\""
|
msgid "Note is not a to-do: \"%s\""
|
||||||
msgstr "Anteckning är inte en att-göra: \"%s\""
|
msgstr "Anteckning är inte en att-göra: \"%s\""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Hanterar E2EE-konfiguration. Kommandon är `enable`,` disable`, `decrypt`,` "
|
"Hanterar E2EE-konfiguration. Kommandon är `enable`,` disable`, `decrypt`,` "
|
||||||
"status` och `target-status`."
|
"status` och `target-status`."
|
||||||
@@ -462,21 +463,20 @@ msgid "Starting synchronisation..."
|
|||||||
msgstr "Startar synkronisering..."
|
msgstr "Startar synkronisering..."
|
||||||
|
|
||||||
msgid "Downloading resources..."
|
msgid "Downloading resources..."
|
||||||
msgstr ""
|
msgstr "Laddar ned resurser..."
|
||||||
|
|
||||||
msgid "Cancelling... Please wait."
|
msgid "Cancelling... Please wait."
|
||||||
msgstr "Avbryter... vänta."
|
msgstr "Avbryter... vänta."
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"<tag-command> can be \"add\", \"remove\" or \"list\" to assign or remove "
|
"<tag-command> can be \"add\", \"remove\" or \"list\" to assign or remove "
|
||||||
"[tag] from [note], or to list the notes associated with [tag]. The command "
|
"[tag] from [note], or to list the notes associated with [tag]. The command "
|
||||||
"`tag list` can be used to list all the tags (use -l for long option)."
|
"`tag list` can be used to list all the tags (use -l for long option)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<tag-command> kan vara \"add\", \"remove\" eller \"list\" för att tilldela "
|
"<tag-command> kan vara \"lägg till\", \"ta bort\" eller \"lisat\" för att "
|
||||||
"eller ta bort [tag] från [note], eller för att lista anteckningarna som är "
|
"tilldela eller ta bort [tag] från [note], eller för att lista anteckningarna "
|
||||||
"associerade med [tag]. Kommandot `tag list` kan användas för att lista alla "
|
"som är associerade med [tag]. Kommandot `tag list` kan användas för att "
|
||||||
"taggar."
|
"lista alla taggar."
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Invalid command: \"%s\""
|
msgid "Invalid command: \"%s\""
|
||||||
@@ -589,6 +589,18 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Exportera till \"%s\" som \"%s\" format. Vänta..."
|
msgstr "Exportera till \"%s\" som \"%s\" format. Vänta..."
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr "Sidofältet"
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr "Anteckningsboken"
|
||||||
|
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "Rubriken"
|
||||||
|
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "Texten"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "Importerar från \"%s\" som \"%s\" format. Vänta..."
|
msgstr "Importerar från \"%s\" som \"%s\" format. Vänta..."
|
||||||
@@ -596,8 +608,8 @@ msgstr "Importerar från \"%s\" som \"%s\" format. Vänta..."
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "PDF-fil"
|
msgstr "PDF-fil"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "Fil"
|
msgstr "Synkroniseringstillstånd"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "Ny anteckning"
|
msgstr "Ny anteckning"
|
||||||
@@ -608,14 +620,43 @@ msgstr "Ny att-göra"
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "Ny anteckningsbok"
|
msgstr "Ny anteckningsbok"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr "Skriv ut"
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Allmänna inställningar"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr "Krypteringsinställningar"
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr "Web clipper-inställningar"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "Fil"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "Om Joplin"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr "Sök efter uppdateringar..."
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "Importera"
|
msgstr "Importera"
|
||||||
|
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "Exportera"
|
msgstr "Exportera"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr "Skriv ut"
|
msgstr "Synkronisera"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -624,7 +665,8 @@ msgstr "Dölj %s"
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Avsluta"
|
msgstr "Avsluta"
|
||||||
|
|
||||||
msgid "Edit"
|
#, fuzzy
|
||||||
|
msgid "&Edit"
|
||||||
msgstr "Redigera"
|
msgstr "Redigera"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -636,9 +678,8 @@ msgstr "Klipp ut"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Klistra in"
|
msgstr "Klistra in"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Select all"
|
msgid "Select all"
|
||||||
msgstr "Välj datum"
|
msgstr "Välj alla"
|
||||||
|
|
||||||
msgid "Bold"
|
msgid "Bold"
|
||||||
msgstr "Fet"
|
msgstr "Fet"
|
||||||
@@ -646,6 +687,9 @@ msgstr "Fet"
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr "Kursiv"
|
msgstr "Kursiv"
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr "Länk"
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr "Infoga datumtid"
|
msgstr "Infoga datumtid"
|
||||||
|
|
||||||
@@ -655,11 +699,11 @@ msgstr "Redigera i extern redigerare"
|
|||||||
msgid "Search in all the notes"
|
msgid "Search in all the notes"
|
||||||
msgstr "Sök i alla anteckningarna"
|
msgstr "Sök i alla anteckningarna"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "Sök i alla anteckningarna"
|
msgstr "Sök i aktuell anteckning"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "&View"
|
||||||
msgstr "Visa"
|
msgstr "Visa"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -668,22 +712,15 @@ msgstr "Växla sidofältet"
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr "Växla redigeringslayout"
|
msgstr "Växla redigeringslayout"
|
||||||
|
|
||||||
msgid "Tools"
|
msgid "Focus"
|
||||||
|
msgstr "Fokus"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&Tools"
|
||||||
msgstr "Verktyg"
|
msgstr "Verktyg"
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
#, fuzzy
|
||||||
msgstr "Synkroniseringstillstånd"
|
msgid "&Help"
|
||||||
|
|
||||||
msgid "Web clipper options"
|
|
||||||
msgstr "Web clipper-inställningar"
|
|
||||||
|
|
||||||
msgid "Encryption options"
|
|
||||||
msgstr "Krypteringsinställningar"
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr "Allmänna inställningar"
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr "Hjälp"
|
msgstr "Hjälp"
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -692,16 +729,6 @@ msgstr "Webbplats och dokumentation"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "Gör en donation"
|
msgstr "Gör en donation"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr "Sök efter uppdateringar..."
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "Om Joplin"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "Öppna %s"
|
msgstr "Öppna %s"
|
||||||
@@ -718,9 +745,21 @@ msgstr "Avbryt"
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr "Nuvarande version är uppdaterad."
|
msgstr "Nuvarande version är uppdaterad."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr "%s (förhandsversion)"
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr "En uppdatering är tillgänglig, vill du hämta den nu?"
|
msgstr "En uppdatering är tillgänglig, vill du hämta den nu?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr "Din version: %s"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr "Ny version: %s"
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Ja"
|
msgstr "Ja"
|
||||||
|
|
||||||
@@ -728,7 +767,7 @@ msgid "No"
|
|||||||
msgstr "Nej"
|
msgstr "Nej"
|
||||||
|
|
||||||
msgid "Token has been copied to the clipboard!"
|
msgid "Token has been copied to the clipboard!"
|
||||||
msgstr ""
|
msgstr "Token har kopierats till urklipp!"
|
||||||
|
|
||||||
msgid "The web clipper service is enabled and set to auto-start."
|
msgid "The web clipper service is enabled and set to auto-start."
|
||||||
msgstr "Web clipper-tjänsten är aktiverad och inställd för automatisk start."
|
msgstr "Web clipper-tjänsten är aktiverad och inställd för automatisk start."
|
||||||
@@ -778,28 +817,32 @@ msgstr "Steg 2: Installera tillägget"
|
|||||||
msgid "Download and install the relevant extension for your browser:"
|
msgid "Download and install the relevant extension for your browser:"
|
||||||
msgstr "Hämta och installera det relevanta tillägget för din webbläsare:"
|
msgstr "Hämta och installera det relevanta tillägget för din webbläsare:"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Advanced options"
|
msgid "Advanced options"
|
||||||
msgstr "Visa avancerade inställningar"
|
msgstr "Avancerade alternativ"
|
||||||
|
|
||||||
msgid "Authorisation token:"
|
msgid "Authorisation token:"
|
||||||
msgstr ""
|
msgstr "Auktoriserings token:"
|
||||||
|
|
||||||
msgid "Copy token"
|
msgid "Copy token"
|
||||||
msgstr ""
|
msgstr "Kopiera token"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"This authorisation token is only needed to allow third-party applications to "
|
"This authorisation token is only needed to allow third-party applications to "
|
||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Denna auktorisering behövs endast för att tillåta tredjepartsprogram att "
|
||||||
msgid "Check synchronisation configuration"
|
"integrera med Joplin."
|
||||||
msgstr "Kontrollera synkroniseringskonfigurationen"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr "Anteckningar och inställningar lagras i: %s"
|
msgstr "Anteckningar och inställningar lagras i: %s"
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr "Bläddra..."
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Kontrollera synkroniseringskonfigurationen"
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr "Tillämpa"
|
msgstr "Tillämpa"
|
||||||
|
|
||||||
@@ -894,6 +937,9 @@ msgstr "Tillstånd"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "Kryptering är:"
|
msgstr "Kryptering är:"
|
||||||
|
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Användning"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "Tillbaka"
|
msgstr "Tillbaka"
|
||||||
|
|
||||||
@@ -946,36 +992,6 @@ msgstr "Några objekt kan inte dekrypteras."
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "Ställ in lösenord"
|
msgstr "Ställ in lösenord"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "Lägg till eller ta bort taggar"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr "Duplikat"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "%s - Kopiera"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "Växla mellan antecknings- och att-göra-typ"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "Växla mellan antecknings- och att-göra-typ"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "Växla mellan antecknings- och att-göra-typ"
|
|
||||||
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr "Kopiera Markdown-länk"
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "Ta bort"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "Ta bort anteckningar?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr "Inga anteckningar här. Skapa en genom att klicka på \"Ny anteckning\"."
|
msgstr "Inga anteckningar här. Skapa en genom att klicka på \"Ny anteckning\"."
|
||||||
|
|
||||||
@@ -986,13 +1002,13 @@ msgstr ""
|
|||||||
"\"Ny anteckningsbok\"."
|
"\"Ny anteckningsbok\"."
|
||||||
|
|
||||||
msgid "Location"
|
msgid "Location"
|
||||||
msgstr ""
|
msgstr "Plats"
|
||||||
|
|
||||||
msgid "URL"
|
msgid "URL"
|
||||||
msgstr ""
|
msgstr "URL"
|
||||||
|
|
||||||
msgid "Note properties"
|
msgid "Note properties"
|
||||||
msgstr ""
|
msgstr "Anteckningens egenskaper"
|
||||||
|
|
||||||
msgid "Open..."
|
msgid "Open..."
|
||||||
msgstr "Öppna..."
|
msgstr "Öppna..."
|
||||||
@@ -1011,7 +1027,7 @@ msgid "Copy Link Address"
|
|||||||
msgstr "Kopiera länkadress"
|
msgstr "Kopiera länkadress"
|
||||||
|
|
||||||
msgid "This attachment is not downloaded or not decrypted yet."
|
msgid "This attachment is not downloaded or not decrypted yet."
|
||||||
msgstr ""
|
msgstr "Denna bilaga är inte nedladdad eller ännu inte dekrypterad."
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported link or message: %s"
|
msgid "Unsupported link or message: %s"
|
||||||
@@ -1025,6 +1041,10 @@ msgstr ""
|
|||||||
"Den här anteckningen har inget innehåll. Klicka på \"%s\" för att växla "
|
"Den här anteckningen har inget innehåll. Klicka på \"%s\" för att växla "
|
||||||
"redigeraren och redigera anteckningen."
|
"redigeraren och redigera anteckningen."
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
"Endast en anteckning i taget kan bli utskriven eller exporterad till PDF."
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr "stark text"
|
msgstr "stark text"
|
||||||
|
|
||||||
@@ -1111,18 +1131,28 @@ msgstr "Krypteringsinställningar"
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Clipper-inställningar"
|
msgstr "Clipper-inställningar"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, fuzzy, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr ""
|
||||||
|
"Ta bort anteckningsboken? Alla anteckningar och delanteckningsböcker i den "
|
||||||
|
"här anteckningsboken tas bort också."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
msgstr "Ta bort den här taggen från alla anteckningar?"
|
msgstr "Ta bort den här taggen från alla anteckningar?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "Ta bort den här sökningen från sidofältet?"
|
msgstr "Ta bort den här sökningen från sidofältet?"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Ta bort"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Byt namn"
|
msgstr "Byt namn"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "Synkronisera"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "Anteckningsböcker"
|
msgstr "Anteckningsböcker"
|
||||||
|
|
||||||
@@ -1130,13 +1160,53 @@ msgstr "Anteckningsböcker"
|
|||||||
msgid "Decrypting items: %d/%d"
|
msgid "Decrypting items: %d/%d"
|
||||||
msgstr "Dekrypterar objekt: %d/%d"
|
msgstr "Dekrypterar objekt: %d/%d"
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "Fetching resources: %d"
|
msgid "Fetching resources: %d"
|
||||||
msgstr "Resurser: %d."
|
msgstr "Hämtar resurser: %d"
|
||||||
|
|
||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr "Välj vart synkroniseringstillståndet ska exporteras till"
|
msgstr "Välj vart synkroniseringstillståndet ska exporteras till"
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "Lägg till eller ta bort taggar"
|
||||||
|
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "Duplikat"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "%s - Kopiera"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "Växla mellan antecknings- och att-göra-typ"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "Växla mellan antecknings- och att-göra-typ"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "Växla mellan antecknings- och att-göra-typ"
|
||||||
|
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr "Kopiera Markdown-länk"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "Ta bort anteckningar?"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "Ta bort dessa anteckningar?"
|
||||||
|
|
||||||
|
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 ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "Användning: %s"
|
msgstr "Användning: %s"
|
||||||
@@ -1255,6 +1325,12 @@ msgstr "Krypterad"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "Krypterade objekt kan inte ändras"
|
msgstr "Krypterade objekt kan inte ändras"
|
||||||
|
|
||||||
|
msgid "title"
|
||||||
|
msgstr "titel"
|
||||||
|
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "uppdaterad datum"
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "Konflikter"
|
msgstr "Konflikter"
|
||||||
|
|
||||||
@@ -1266,14 +1342,8 @@ msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Anteckningsböcker kan inte namnges \"%s\", vilket är en reserverad titel."
|
"Anteckningsböcker kan inte namnges \"%s\", vilket är en reserverad titel."
|
||||||
|
|
||||||
msgid "title"
|
|
||||||
msgstr "titel"
|
|
||||||
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "uppdaterad datum"
|
|
||||||
|
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "Skapad datum"
|
msgstr "skapad datum"
|
||||||
|
|
||||||
msgid "This note does not have geolocation information."
|
msgid "This note does not have geolocation information."
|
||||||
msgstr "Denna anteckning har inte geolokaliseringsinformation."
|
msgstr "Denna anteckning har inte geolokaliseringsinformation."
|
||||||
@@ -1286,6 +1356,16 @@ msgstr "Kan inte kopiera anteckning till \"%s\" anteckningsbok"
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "Kan inte flytta anteckning till \"%s\" anteckningsbok"
|
msgstr "Kan inte flytta anteckning till \"%s\" anteckningsbok"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
"OBS! Om du ändrar denna plats så se till att du har en kopia på allt "
|
||||||
|
"innehåll innan du synkroniserar. Annars kommer samtliga filer att raderas. "
|
||||||
|
"Läs FAQ för mer information: %s"
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Språk"
|
msgstr "Språk"
|
||||||
|
|
||||||
@@ -1316,6 +1396,10 @@ msgstr "Sortera anteckningar efter"
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "Omvänd sorteringsordning"
|
msgstr "Omvänd sorteringsordning"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "Sortera anteckningar efter"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "Spara geolokalisering med anteckningar"
|
msgstr "Spara geolokalisering med anteckningar"
|
||||||
|
|
||||||
@@ -1331,6 +1415,43 @@ msgstr "Fokus på huvuddel"
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "När du skapar en ny anteckning:"
|
msgstr "När du skapar en ny anteckning:"
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr "Aktivera kryptering"
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr "Visa fältikon"
|
msgstr "Visa fältikon"
|
||||||
|
|
||||||
@@ -1342,16 +1463,18 @@ msgid ""
|
|||||||
"this setting so that your notes are constantly being synchronised, thus "
|
"this setting so that your notes are constantly being synchronised, thus "
|
||||||
"reducing the number of conflicts."
|
"reducing the number of conflicts."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Detta tillåter Joplin att köra i bakgrunden. Det är rekommenderat att "
|
||||||
|
"tillåta detta så att anteckningarna synkroniseras löpande. På det sättet "
|
||||||
|
"minskas risken för konflikter."
|
||||||
|
|
||||||
msgid "Start application minimised in the tray icon"
|
msgid "Start application minimised in the tray icon"
|
||||||
msgstr ""
|
msgstr "Starta programmet minimerat"
|
||||||
|
|
||||||
msgid "Global zoom percentage"
|
msgid "Global zoom percentage"
|
||||||
msgstr "Global zoomprocent"
|
msgstr "Global zoomprocent"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Editor font size"
|
msgid "Editor font size"
|
||||||
msgstr "Redigerarens typsnittsfamilj"
|
msgstr "Redigerarens teckenstorlek"
|
||||||
|
|
||||||
msgid "Editor font family"
|
msgid "Editor font family"
|
||||||
msgstr "Redigerarens typsnittsfamilj"
|
msgstr "Redigerarens typsnittsfamilj"
|
||||||
@@ -1367,6 +1490,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "Uppdatera programmet automatiskt"
|
msgstr "Uppdatera programmet automatiskt"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr "Inkludera även förhandsversionen vid uppdateringar"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr "Se sidan för förhandsversioner för mer information: %s"
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "Synkroniseringsintervall"
|
msgstr "Synkroniseringsintervall"
|
||||||
|
|
||||||
@@ -1409,23 +1539,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr "Katalog för att synkronisera med (absolut sökväg)"
|
msgstr "Katalog för att synkronisera med (absolut sökväg)"
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr ""
|
|
||||||
"Sökvägen att synkronisera med när synkronisering av filsystem är aktiverat. "
|
|
||||||
"Se `sync.target`."
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr "Nextcloud-WebDAV-webbadress"
|
msgstr "Nextcloud-WebDAV-webbadress"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr "Nextcloud-användarnamn"
|
msgstr "Nextcloud-användarnamn"
|
||||||
|
|
||||||
@@ -1463,9 +1579,28 @@ msgstr "Ignorera TLS-certifikatfel"
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "Ogiltigt inställningsvärde: \"%s\". Möjliga värden är: %s."
|
msgstr "Ogiltigt inställningsvärde: \"%s\". Möjliga värden är: %s."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Allmänna inställningar"
|
||||||
|
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "Synkronisering"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr "Utseende"
|
||||||
|
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "Anteckning"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "Avslutar programmet"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr ""
|
msgstr "Taggen \"%s\" finns redan. Välj ett annat namn."
|
||||||
|
|
||||||
msgid "Joplin Export File"
|
msgid "Joplin Export File"
|
||||||
msgstr "Joplin-exporteringsfil"
|
msgstr "Joplin-exporteringsfil"
|
||||||
@@ -1479,9 +1614,11 @@ msgstr "Joplin-exporteringskatalog"
|
|||||||
msgid "Evernote Export File"
|
msgid "Evernote Export File"
|
||||||
msgstr "Evernote-exporteringsfil"
|
msgstr "Evernote-exporteringsfil"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr "Joplin-exporteringskatalog"
|
msgstr "Joplin-exportkatalog"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Fil"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Katalog"
|
msgstr "Katalog"
|
||||||
@@ -1558,10 +1695,10 @@ msgid "On %s: %s"
|
|||||||
msgstr "På %s: %s"
|
msgstr "På %s: %s"
|
||||||
|
|
||||||
msgid "Permission to use camera"
|
msgid "Permission to use camera"
|
||||||
msgstr ""
|
msgstr "Tillåtelse att använda kameran"
|
||||||
|
|
||||||
msgid "Your permission to use your camera is required."
|
msgid "Your permission to use your camera is required."
|
||||||
msgstr ""
|
msgstr "Du måste ge tillåtelse att använda kameran."
|
||||||
|
|
||||||
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
msgid "There are currently no notes. Create one by clicking on the (+) button."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1593,9 +1730,8 @@ msgstr "Flytta %d anteckningar till anteckningsboken \"%s\"?"
|
|||||||
msgid "Press to set the decryption password."
|
msgid "Press to set the decryption password."
|
||||||
msgstr "Tryck för att ställa in dekrypteringslösenordet."
|
msgstr "Tryck för att ställa in dekrypteringslösenordet."
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Clear alarm"
|
msgid "Clear alarm"
|
||||||
msgstr "Sätt alarm"
|
msgstr "Ta bort alarm"
|
||||||
|
|
||||||
msgid "Save alarm"
|
msgid "Save alarm"
|
||||||
msgstr "Spara alarm"
|
msgstr "Spara alarm"
|
||||||
@@ -1609,22 +1745,21 @@ msgstr "Bekräfta"
|
|||||||
msgid "Cancel synchronisation"
|
msgid "Cancel synchronisation"
|
||||||
msgstr "Avbryt synkronisering"
|
msgstr "Avbryt synkronisering"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Checking... Please wait."
|
msgid "Checking... Please wait."
|
||||||
msgstr "Avbryter... vänta."
|
msgstr "Kontrollerar... vänta."
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Success! Synchronisation configuration appears to be correct."
|
msgid "Success! Synchronisation configuration appears to be correct."
|
||||||
msgstr "Kontrollera synkroniseringskonfigurationen"
|
msgstr "Lyckades! Synkroniseringsinställningarna verkar vara korrekta."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Error. Please check that URL, username, password, etc. are correct and that "
|
"Error. Please check that URL, username, password, etc. are correct and that "
|
||||||
"the sync target is accessible. The reported error was:"
|
"the sync target is accessible. The reported error was:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Fel. Verifiera att URL, användarnamn, lösenord etc. är korrekta och att "
|
||||||
|
"destinationen är tillgänglig. Rapporterat fel var:"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "The application has been authorised!"
|
msgid "The application has been authorised!"
|
||||||
msgstr "Programmet har godkänts."
|
msgstr "Programmet har blivit godkänt!"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -1634,10 +1769,15 @@ msgid ""
|
|||||||
"\n"
|
"\n"
|
||||||
"Please try again."
|
"Please try again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Kunde inte auktorisera programmet:\n"
|
||||||
|
"\n"
|
||||||
|
"%s\n"
|
||||||
|
"\n"
|
||||||
|
"Försök igen."
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "Decrypted items: %s / %s"
|
msgid "Decrypted items: %s / %s"
|
||||||
msgstr "Dekrypterar objekt: %d/%d"
|
msgstr "Antal dekrypterade objekt: %s / %s"
|
||||||
|
|
||||||
msgid "New tags:"
|
msgid "New tags:"
|
||||||
msgstr "Nya taggar:"
|
msgstr "Nya taggar:"
|
||||||
@@ -1672,9 +1812,20 @@ msgstr ""
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr "Joplin-webbplats"
|
msgstr "Joplin-webbplats"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr "Databas v%s"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "FTS aktiverat: %d"
|
||||||
|
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Logga in med Dropbox"
|
msgstr "Logga in med Dropbox"
|
||||||
|
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr "Ange kod här"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr "Huvudnyckel %s"
|
msgstr "Huvudnyckel %s"
|
||||||
@@ -1727,9 +1878,8 @@ msgstr ""
|
|||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr "Bildstorlek som inte stöds: %s"
|
msgstr "Bildstorlek som inte stöds: %s"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Take photo"
|
msgid "Take photo"
|
||||||
msgstr "Bifoga foto"
|
msgstr "Ta ett foto"
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr "Bifoga foto"
|
msgstr "Bifoga foto"
|
||||||
@@ -1756,7 +1906,10 @@ msgid "View on map"
|
|||||||
msgstr "Visa på karta"
|
msgstr "Visa på karta"
|
||||||
|
|
||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr ""
|
msgstr "Gå till källans URL"
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Redigera"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Ta bort anteckningsbok"
|
msgstr "Ta bort anteckningsbok"
|
||||||
@@ -1783,6 +1936,20 @@ msgstr ""
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "Välkommen"
|
msgstr "Välkommen"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "Denna anteckning har ändrats:"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||||
|
#~ "See `sync.target`."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "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."
|
#~ msgid "State: %s."
|
||||||
#~ msgstr "Tillstånd: %s."
|
#~ msgstr "Tillstånd: %s."
|
||||||
|
|
||||||
|
|||||||
1910
CliClient/locales/tr_TR.po
Normal file
1910
CliClient/locales/tr_TR.po
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -122,9 +122,10 @@ msgstr "標記待辦事項為完成。"
|
|||||||
msgid "Note is not a to-do: \"%s\""
|
msgid "Note is not a to-do: \"%s\""
|
||||||
msgstr "記事不等於待辨事項: \"%s\""
|
msgstr "記事不等於待辨事項: \"%s\""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
"Manages E2EE configuration. Commands are `enable`, `disable`, `decrypt`, "
|
||||||
"`status` and `target-status`."
|
"`status`, `decrypt-file` and `target-status`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"管理 E2EE 設置。命令是 `enable`,`disable`,`decrypt`,`status` 和 `target-"
|
"管理 E2EE 設置。命令是 `enable`,`disable`,`decrypt`,`status` 和 `target-"
|
||||||
"status`。"
|
"status`。"
|
||||||
@@ -548,6 +549,20 @@ msgstr ""
|
|||||||
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
msgid "Exporting to \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "匯出到 \"%s\" 為 \"%s\" 格式。請稍候..."
|
msgstr "匯出到 \"%s\" 為 \"%s\" 格式。請稍候..."
|
||||||
|
|
||||||
|
msgid "Sidebar"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note list"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note title"
|
||||||
|
msgstr "記事本標題:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note body"
|
||||||
|
msgstr "記事本"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
msgstr "從 \"%s\" 匯入為 \"%s\" 格式。請稍候..."
|
msgstr "從 \"%s\" 匯入為 \"%s\" 格式。請稍候..."
|
||||||
@@ -555,8 +570,8 @@ msgstr "從 \"%s\" 匯入為 \"%s\" 格式。請稍候..."
|
|||||||
msgid "PDF File"
|
msgid "PDF File"
|
||||||
msgstr "PDF 檔案"
|
msgstr "PDF 檔案"
|
||||||
|
|
||||||
msgid "File"
|
msgid "Synchronisation status"
|
||||||
msgstr "檔案"
|
msgstr "顯示同步狀態"
|
||||||
|
|
||||||
msgid "New note"
|
msgid "New note"
|
||||||
msgstr "新增記事"
|
msgstr "新增記事"
|
||||||
@@ -567,14 +582,43 @@ msgstr "新增待辦事項"
|
|||||||
msgid "New notebook"
|
msgid "New notebook"
|
||||||
msgstr "新增記事本"
|
msgstr "新增記事本"
|
||||||
|
|
||||||
|
msgid "Print"
|
||||||
|
msgstr "列印"
|
||||||
|
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "一般選項"
|
||||||
|
|
||||||
|
msgid "Encryption options"
|
||||||
|
msgstr "加密選項"
|
||||||
|
|
||||||
|
msgid "Web clipper options"
|
||||||
|
msgstr "Web clipper 選項"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s %s (%s, %s)"
|
||||||
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&File"
|
||||||
|
msgstr "檔案"
|
||||||
|
|
||||||
|
msgid "About Joplin"
|
||||||
|
msgstr "關於 Joplin"
|
||||||
|
|
||||||
|
msgid "Preferences..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check for updates..."
|
||||||
|
msgstr "檢查更新..."
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "匯入"
|
msgstr "匯入"
|
||||||
|
|
||||||
msgid "Export"
|
msgid "Export"
|
||||||
msgstr "匯出"
|
msgstr "匯出"
|
||||||
|
|
||||||
msgid "Print"
|
msgid "Synchronise"
|
||||||
msgstr "列印"
|
msgstr "進行同步"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Hide %s"
|
msgid "Hide %s"
|
||||||
@@ -583,7 +627,8 @@ msgstr "隱藏 %s"
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "結束"
|
msgstr "結束"
|
||||||
|
|
||||||
msgid "Edit"
|
#, fuzzy
|
||||||
|
msgid "&Edit"
|
||||||
msgstr "編輯"
|
msgstr "編輯"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -605,6 +650,9 @@ msgstr "粗體"
|
|||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr "斜體"
|
msgstr "斜體"
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Insert Date Time"
|
msgid "Insert Date Time"
|
||||||
msgstr "插入日期時間"
|
msgstr "插入日期時間"
|
||||||
|
|
||||||
@@ -618,7 +666,8 @@ msgstr "在所有記事中搜尋"
|
|||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "在所有記事中搜尋"
|
msgstr "在所有記事中搜尋"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "&View"
|
||||||
msgstr "檢視"
|
msgstr "檢視"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -627,22 +676,16 @@ msgstr "顯示 / 隱藏側邊欄"
|
|||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr "切換編輯器佈局"
|
msgstr "切換編輯器佈局"
|
||||||
|
|
||||||
msgid "Tools"
|
#, fuzzy
|
||||||
|
msgid "Focus"
|
||||||
|
msgstr "游標置於內文"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&Tools"
|
||||||
msgstr "工具"
|
msgstr "工具"
|
||||||
|
|
||||||
msgid "Synchronisation status"
|
#, fuzzy
|
||||||
msgstr "顯示同步狀態"
|
msgid "&Help"
|
||||||
|
|
||||||
msgid "Web clipper options"
|
|
||||||
msgstr "Web clipper 選項"
|
|
||||||
|
|
||||||
msgid "Encryption options"
|
|
||||||
msgstr "加密選項"
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr "一般選項"
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr "說明"
|
msgstr "說明"
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -651,16 +694,6 @@ msgstr "官方網站及線上說明"
|
|||||||
msgid "Make a donation"
|
msgid "Make a donation"
|
||||||
msgstr "捐助"
|
msgstr "捐助"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
|
||||||
msgstr "檢查更新..."
|
|
||||||
|
|
||||||
msgid "About Joplin"
|
|
||||||
msgstr "關於 Joplin"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s %s (%s, %s)"
|
|
||||||
msgstr "%s %s (%s, %s)"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
msgstr "開啟 %s"
|
msgstr "開啟 %s"
|
||||||
@@ -677,9 +710,21 @@ msgstr "取消"
|
|||||||
msgid "Current version is up-to-date."
|
msgid "Current version is up-to-date."
|
||||||
msgstr "此版本是最新的。"
|
msgstr "此版本是最新的。"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s (pre-release)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr "有可用的更新,您需要立即下載嗎?"
|
msgstr "有可用的更新,您需要立即下載嗎?"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Your version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "New version: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "是"
|
msgstr "是"
|
||||||
|
|
||||||
@@ -749,13 +794,16 @@ msgid ""
|
|||||||
"access Joplin."
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
|
||||||
msgstr "檢測同步設置"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr "所有記事和設置均儲存於: %s"
|
msgstr "所有記事和設置均儲存於: %s"
|
||||||
|
|
||||||
|
msgid "Browse..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "檢測同步設置"
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr "套用"
|
msgstr "套用"
|
||||||
|
|
||||||
@@ -843,6 +891,10 @@ msgstr "狀態"
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "加密:"
|
msgstr "加密:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "使用資訊: %s"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "返回"
|
msgstr "返回"
|
||||||
|
|
||||||
@@ -893,36 +945,6 @@ msgstr "有些項目不能解密。"
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "設置密碼"
|
msgstr "設置密碼"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr "新增或移除標籤"
|
|
||||||
|
|
||||||
msgid "Duplicate"
|
|
||||||
msgstr "新增複本"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "%s - Copy"
|
|
||||||
msgstr "%s - 複本"
|
|
||||||
|
|
||||||
msgid "Switch between note and to-do type"
|
|
||||||
msgstr "切換到記事 / 待辦事項"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to note type"
|
|
||||||
msgstr "切換到記事 / 待辦事項"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Switch to to-do type"
|
|
||||||
msgstr "切換到記事 / 待辦事項"
|
|
||||||
|
|
||||||
msgid "Copy Markdown link"
|
|
||||||
msgstr "複製 Markdown 連結"
|
|
||||||
|
|
||||||
msgid "Delete"
|
|
||||||
msgstr "刪除"
|
|
||||||
|
|
||||||
msgid "Delete notes?"
|
|
||||||
msgstr "刪除此記事?"
|
|
||||||
|
|
||||||
msgid "No notes in here. Create one by clicking on \"New note\"."
|
msgid "No notes in here. Create one by clicking on \"New note\"."
|
||||||
msgstr "當前沒有任何筆記。通過按一下 \"新增筆記\" 去建立。"
|
msgstr "當前沒有任何筆記。通過按一下 \"新增筆記\" 去建立。"
|
||||||
|
|
||||||
@@ -968,6 +990,9 @@ msgid ""
|
|||||||
"note."
|
"note."
|
||||||
msgstr "此筆記沒有內容。按一下 \"%s\" 切換到編輯模式並編輯筆記。"
|
msgstr "此筆記沒有內容。按一下 \"%s\" 切換到編輯模式並編輯筆記。"
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr "重要文字 <strong>"
|
msgstr "重要文字 <strong>"
|
||||||
|
|
||||||
@@ -1054,18 +1079,26 @@ msgstr "加密選項"
|
|||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Clipper 選項"
|
msgstr "Clipper 選項"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, fuzzy, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook \"%s\"?\n"
|
||||||
|
"\n"
|
||||||
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
|
msgstr "決定刪除記事本?此記事本中的所有記事和子記事本也將被刪除。"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
msgstr "是否從所有記事中刪除此標籤?"
|
msgstr "是否從所有記事中刪除此標籤?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "是否從側邊欄中刪除此搜索?"
|
msgstr "是否從側邊欄中刪除此搜索?"
|
||||||
|
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "刪除"
|
||||||
|
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "重新命名"
|
msgstr "重新命名"
|
||||||
|
|
||||||
msgid "Synchronise"
|
|
||||||
msgstr "進行同步"
|
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "記事本"
|
msgstr "記事本"
|
||||||
|
|
||||||
@@ -1080,6 +1113,46 @@ msgstr "資源: %d。"
|
|||||||
msgid "Please select where the sync status should be exported to"
|
msgid "Please select where the sync status should be exported to"
|
||||||
msgstr "請選擇將同步狀態導出到的位置"
|
msgstr "請選擇將同步狀態導出到的位置"
|
||||||
|
|
||||||
|
msgid "Add or remove tags"
|
||||||
|
msgstr "新增或移除標籤"
|
||||||
|
|
||||||
|
msgid "Duplicate"
|
||||||
|
msgstr "新增複本"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "%s - Copy"
|
||||||
|
msgstr "%s - 複本"
|
||||||
|
|
||||||
|
msgid "Switch between note and to-do type"
|
||||||
|
msgstr "切換到記事 / 待辦事項"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to note type"
|
||||||
|
msgstr "切換到記事 / 待辦事項"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to to-do type"
|
||||||
|
msgstr "切換到記事 / 待辦事項"
|
||||||
|
|
||||||
|
msgid "Copy Markdown link"
|
||||||
|
msgstr "複製 Markdown 連結"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete note \"%s\"?"
|
||||||
|
msgstr "刪除此記事?"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Delete these %d notes?"
|
||||||
|
msgstr "刪除這些記事?"
|
||||||
|
|
||||||
|
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 ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
msgstr "使用資訊: %s"
|
msgstr "使用資訊: %s"
|
||||||
@@ -1195,6 +1268,12 @@ msgstr "已加密"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "無法修改已加密項目"
|
msgstr "無法修改已加密項目"
|
||||||
|
|
||||||
|
msgid "title"
|
||||||
|
msgstr "標題"
|
||||||
|
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "更新日期"
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "衝突"
|
msgstr "衝突"
|
||||||
|
|
||||||
@@ -1205,12 +1284,6 @@ msgstr "無法移動記事本到此位置"
|
|||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
msgstr "筆記本無法命名為 \"%s\",這標題已被保留。"
|
msgstr "筆記本無法命名為 \"%s\",這標題已被保留。"
|
||||||
|
|
||||||
msgid "title"
|
|
||||||
msgstr "標題"
|
|
||||||
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "更新日期"
|
|
||||||
|
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "建立日期"
|
msgstr "建立日期"
|
||||||
|
|
||||||
@@ -1225,6 +1298,13 @@ msgstr "無法複製此記事到 \"%s\" 記事本"
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr "無法移動此記事到 \"%s\" 記事本"
|
msgstr "無法移動此記事到 \"%s\" 記事本"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "語言"
|
msgstr "語言"
|
||||||
|
|
||||||
@@ -1255,6 +1335,10 @@ msgstr "排序記事"
|
|||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "顛倒排序順序"
|
msgstr "顛倒排序順序"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Sort notebooks by"
|
||||||
|
msgstr "排序記事"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "在記事中保存地理位置資訊"
|
msgstr "在記事中保存地理位置資訊"
|
||||||
|
|
||||||
@@ -1270,6 +1354,43 @@ msgstr "游標置於內文"
|
|||||||
msgid "When creating a new note:"
|
msgid "When creating a new note:"
|
||||||
msgstr "當新增記事時:"
|
msgstr "當新增記事時:"
|
||||||
|
|
||||||
|
msgid "Enable soft breaks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Enable math expressions"
|
||||||
|
msgstr "啟用加密"
|
||||||
|
|
||||||
|
msgid "Enable ==mark== syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable footnotes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable table of contents extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ~sub~ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ^sup^ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable deflist syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable abbreviation syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable markdown emoji"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable ++insert++ syntax"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable multimarkdown table extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr "顯示系統匣圖示"
|
msgstr "顯示系統匣圖示"
|
||||||
|
|
||||||
@@ -1305,6 +1426,13 @@ msgstr ""
|
|||||||
msgid "Automatically update the application"
|
msgid "Automatically update the application"
|
||||||
msgstr "自動更新應用程式"
|
msgstr "自動更新應用程式"
|
||||||
|
|
||||||
|
msgid "Get pre-releases when checking for updates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "See the pre-release page for more details: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Synchronisation interval"
|
msgid "Synchronisation interval"
|
||||||
msgstr "同步時間間隔"
|
msgstr "同步時間間隔"
|
||||||
|
|
||||||
@@ -1346,21 +1474,9 @@ msgstr ""
|
|||||||
msgid "Directory to synchronise with (absolute path)"
|
msgid "Directory to synchronise with (absolute path)"
|
||||||
msgstr "要同步的目錄 (絕對路徑)"
|
msgstr "要同步的目錄 (絕對路徑)"
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"The path to synchronise with when file system synchronisation is enabled. "
|
|
||||||
"See `sync.target`."
|
|
||||||
msgstr "啟用檔案系統同步時要同步的路徑。請參閱 `sync.target`。"
|
|
||||||
|
|
||||||
msgid "Nextcloud WebDAV URL"
|
msgid "Nextcloud WebDAV URL"
|
||||||
msgstr "Nextcloud WebDAV 網址"
|
msgstr "Nextcloud WebDAV 網址"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid ""
|
|
||||||
"Attention: If you change this location, make sure you copy all your content "
|
|
||||||
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
|
||||||
"more details: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Nextcloud username"
|
msgid "Nextcloud username"
|
||||||
msgstr "Nextcloud 用戶名稱"
|
msgstr "Nextcloud 用戶名稱"
|
||||||
|
|
||||||
@@ -1396,6 +1512,28 @@ msgstr "忽略 TLS 證書錯誤"
|
|||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "不正確選項值: \"%s\"。可能的值為: %s。"
|
msgstr "不正確選項值: \"%s\"。可能的值為: %s。"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "General"
|
||||||
|
msgstr "一般選項"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Synchronisation"
|
||||||
|
msgstr "顯示同步狀態"
|
||||||
|
|
||||||
|
msgid "Appearance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Note"
|
||||||
|
msgstr "記事本"
|
||||||
|
|
||||||
|
msgid "Plugins"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Application"
|
||||||
|
msgstr "離開本程式。"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1416,6 +1554,9 @@ msgstr "Evernote 匯出檔"
|
|||||||
msgid "Json Export Directory"
|
msgid "Json Export Directory"
|
||||||
msgstr "Joplin 匯出目錄"
|
msgstr "Joplin 匯出目錄"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "檔案"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "目錄"
|
msgstr "目錄"
|
||||||
|
|
||||||
@@ -1594,9 +1735,20 @@ msgstr "- 位置: 允許將地理位置資訊附加到筆記。"
|
|||||||
msgid "Joplin website"
|
msgid "Joplin website"
|
||||||
msgstr "Joplin 官方網站"
|
msgstr "Joplin 官方網站"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Database v%s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "FTS enabled: %d"
|
||||||
|
msgstr "標示刪除: %d"
|
||||||
|
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "以 Dropbox 登錄"
|
msgstr "以 Dropbox 登錄"
|
||||||
|
|
||||||
|
msgid "Enter code here"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
msgstr "主密碼 %s"
|
msgstr "主密碼 %s"
|
||||||
@@ -1679,6 +1831,9 @@ msgstr "在地圖上顯示"
|
|||||||
msgid "Go to source URL"
|
msgid "Go to source URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "編輯"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "刪除記事本"
|
msgstr "刪除記事本"
|
||||||
|
|
||||||
@@ -1699,6 +1854,19 @@ msgstr "您當前沒有任何筆記本。通過按一下 (+) 鍵去建立一本
|
|||||||
msgid "Welcome"
|
msgid "Welcome"
|
||||||
msgstr "歡迎"
|
msgstr "歡迎"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "This note has no history"
|
||||||
|
#~ msgstr "此記事已被修改:"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "The path to synchronise with when file system synchronisation is enabled. "
|
||||||
|
#~ "See `sync.target`."
|
||||||
|
#~ msgstr "啟用檔案系統同步時要同步的路徑。請參閱 `sync.target`。"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Joplin v%s"
|
||||||
|
#~ msgstr "Joplin 官方網站"
|
||||||
|
|
||||||
#~ msgid "State: %s."
|
#~ msgid "State: %s."
|
||||||
#~ msgstr "狀態: %s。"
|
#~ msgstr "狀態: %s。"
|
||||||
|
|
||||||
|
|||||||
248
CliClient/package-lock.json
generated
248
CliClient/package-lock.json
generated
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "joplin",
|
"name": "joplin",
|
||||||
"version": "1.0.118",
|
"version": "1.0.125",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -29,16 +29,16 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"acorn": {
|
"acorn": {
|
||||||
"version": "6.0.2",
|
"version": "6.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.6.tgz",
|
||||||
"integrity": "sha512-GXmKIvbrN3TV7aVqAzVFaMW8F8wzVX7voEBRO3bDA64+EX37YSayggRJP5Xig6HYHBkWKpFg9W5gg6orklubhg=="
|
"integrity": "sha512-5M3G/A4uBSMIlfJ+h9W125vJvPFH/zirISsW5qfxF5YzEvXJCtolLoQvM5yZft0DvMcUrPGKPOlgEu55I6iUtA=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"acorn-walk": {
|
"acorn-walk": {
|
||||||
"version": "6.0.1",
|
"version": "6.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz",
|
||||||
"integrity": "sha512-PqVQ8c6a3kyqdsUZlC7nljp3FFuxipBRHKu+7C1h8QygBFlzTaDX5HD383jej3Peed+1aDG8HwkfB1Z1HMNPkw=="
|
"integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw=="
|
||||||
},
|
},
|
||||||
"ajv": {
|
"ajv": {
|
||||||
"version": "5.5.2",
|
"version": "5.5.2",
|
||||||
@@ -210,7 +210,7 @@
|
|||||||
},
|
},
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "2.3.6",
|
"version": "2.3.6",
|
||||||
"resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
|
||||||
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
|
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"core-util-is": "~1.0.0",
|
"core-util-is": "~1.0.0",
|
||||||
@@ -346,9 +346,9 @@
|
|||||||
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
|
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
|
||||||
},
|
},
|
||||||
"color": {
|
"color": {
|
||||||
"version": "3.0.0",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/color/-/color-3.1.1.tgz",
|
||||||
"integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==",
|
"integrity": "sha512-PvUltIXRjehRKPSy89VnDWFKY58xyhTLyxIg21vwQBI6qLwZNPmC8k3C1uytIgFKEpOIzN4y32iPm8231zFHIg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"color-convert": "^1.9.1",
|
"color-convert": "^1.9.1",
|
||||||
"color-string": "^1.5.2"
|
"color-string": "^1.5.2"
|
||||||
@@ -488,12 +488,12 @@
|
|||||||
"integrity": "sha1-GK6XmmoMqZSwYlhTkW0mYruuCxo="
|
"integrity": "sha1-GK6XmmoMqZSwYlhTkW0mYruuCxo="
|
||||||
},
|
},
|
||||||
"data-urls": {
|
"data-urls": {
|
||||||
"version": "1.0.1",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz",
|
||||||
"integrity": "sha512-0HdcMZzK6ubMUnsMmQmG0AcLQPvbvb47R0+7CCZQCYgcd8OUWG91CG7sM6GoXgjz+WLl4ArFzHtBMy/QqSF4eg==",
|
"integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"abab": "^2.0.0",
|
"abab": "^2.0.0",
|
||||||
"whatwg-mimetype": "^2.1.0",
|
"whatwg-mimetype": "^2.2.0",
|
||||||
"whatwg-url": "^7.0.0"
|
"whatwg-url": "^7.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -555,6 +555,11 @@
|
|||||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
|
||||||
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
|
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
|
||||||
},
|
},
|
||||||
|
"diacritics": {
|
||||||
|
"version": "1.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/diacritics/-/diacritics-1.3.0.tgz",
|
||||||
|
"integrity": "sha1-PvqHMj67hj5mls67AILUj/PW96E="
|
||||||
|
},
|
||||||
"domexception": {
|
"domexception": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
|
||||||
@@ -692,9 +697,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"expand-template": {
|
"expand-template": {
|
||||||
"version": "1.1.1",
|
"version": "2.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
|
||||||
"integrity": "sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg=="
|
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="
|
||||||
},
|
},
|
||||||
"extend": {
|
"extend": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
@@ -1422,9 +1427,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"joplin-turndown": {
|
"joplin-turndown": {
|
||||||
"version": "4.0.9",
|
"version": "4.0.11",
|
||||||
"resolved": "https://registry.npmjs.org/joplin-turndown/-/joplin-turndown-4.0.9.tgz",
|
"resolved": "https://registry.npmjs.org/joplin-turndown/-/joplin-turndown-4.0.11.tgz",
|
||||||
"integrity": "sha512-8MOxX4t5Ai22muHhXPMGNoKc/AB7gSo0eUvNh6dyd6b3vcSiMIRZE8UHpMjS9ruJQ+8e+8TtJXc0nfbexeHwrA==",
|
"integrity": "sha512-2oiwWX0nKYi1NVcaprSsrXQkYdGoRtPWFmnXdWQnQW44jlgjFV38B4VrgliwX5ZMq7cbx6A9IBwfXcBL2YV2NA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"jsdom": "^11.9.0"
|
"jsdom": "^11.9.0"
|
||||||
}
|
}
|
||||||
@@ -1483,6 +1488,17 @@
|
|||||||
"xml-name-validator": "^3.0.0"
|
"xml-name-validator": "^3.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"ajv": {
|
||||||
|
"version": "6.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.7.0.tgz",
|
||||||
|
"integrity": "sha512-RZXPviBTtfmtka9n9sy1N5M5b82CbxWIR6HIis4s3WQTXDJamc/0gpCWNGz6EWdWp4DOfjzJfhz/AS9zVPjjWg==",
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
"aws4": {
|
"aws4": {
|
||||||
"version": "1.8.0",
|
"version": "1.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
|
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
|
||||||
@@ -1501,46 +1517,46 @@
|
|||||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
||||||
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
|
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
|
||||||
},
|
},
|
||||||
|
"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="
|
||||||
|
},
|
||||||
"form-data": {
|
"form-data": {
|
||||||
"version": "2.3.2",
|
"version": "2.3.3",
|
||||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
|
||||||
"integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
|
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"asynckit": "^0.4.0",
|
"asynckit": "^0.4.0",
|
||||||
"combined-stream": "1.0.6",
|
"combined-stream": "^1.0.6",
|
||||||
"mime-types": "^2.1.12"
|
"mime-types": "^2.1.12"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"combined-stream": {
|
|
||||||
"version": "1.0.6",
|
|
||||||
"resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
|
|
||||||
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
|
|
||||||
"requires": {
|
|
||||||
"delayed-stream": "~1.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"har-validator": {
|
"har-validator": {
|
||||||
"version": "5.1.0",
|
"version": "5.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
|
||||||
"integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
|
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"ajv": "^5.3.0",
|
"ajv": "^6.5.5",
|
||||||
"har-schema": "^2.0.0"
|
"har-schema": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"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=="
|
||||||
|
},
|
||||||
"mime-db": {
|
"mime-db": {
|
||||||
"version": "1.36.0",
|
"version": "1.37.0",
|
||||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz",
|
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
|
||||||
"integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw=="
|
"integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg=="
|
||||||
},
|
},
|
||||||
"mime-types": {
|
"mime-types": {
|
||||||
"version": "2.1.20",
|
"version": "2.1.21",
|
||||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz",
|
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
|
||||||
"integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==",
|
"integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"mime-db": "~1.36.0"
|
"mime-db": "~1.37.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"oauth-sign": {
|
"oauth-sign": {
|
||||||
@@ -1837,9 +1853,14 @@
|
|||||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||||
},
|
},
|
||||||
"nan": {
|
"nan": {
|
||||||
"version": "2.11.0",
|
"version": "2.13.2",
|
||||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz",
|
"resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz",
|
||||||
"integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw=="
|
"integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw=="
|
||||||
|
},
|
||||||
|
"napi-build-utils": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA=="
|
||||||
},
|
},
|
||||||
"ndarray": {
|
"ndarray": {
|
||||||
"version": "1.0.18",
|
"version": "1.0.18",
|
||||||
@@ -1883,9 +1904,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node-abi": {
|
"node-abi": {
|
||||||
"version": "2.4.4",
|
"version": "2.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.4.4.tgz",
|
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.8.0.tgz",
|
||||||
"integrity": "sha512-DQ9Mo2mf/XectC+s6+grPPRQ1Z9gI3ZbrGv6nyXRkjwT3HrE0xvtvrfnH7YHYBLgC/KLadg+h3XHnhZw1sv88A==",
|
"integrity": "sha512-1/aa2clS0pue0HjckL62CsbhWWU35HARvBDXcJtYKbYR7LnIutmpxmXbuDMV9kEviD2lP/wACOgWmmwljghHyQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"semver": "^5.4.1"
|
"semver": "^5.4.1"
|
||||||
}
|
}
|
||||||
@@ -2171,21 +2192,22 @@
|
|||||||
"integrity": "sha1-EdHhK5y2TWPjDBQ6Mw9MH1Z9qF8="
|
"integrity": "sha1-EdHhK5y2TWPjDBQ6Mw9MH1Z9qF8="
|
||||||
},
|
},
|
||||||
"prebuild-install": {
|
"prebuild-install": {
|
||||||
"version": "4.0.0",
|
"version": "5.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.0.tgz",
|
||||||
"integrity": "sha512-7tayxeYboJX0RbVzdnKyGl2vhQRWr6qfClEXDhOkXjuaOKCw2q8aiuFhONRYVsG/czia7KhpykIlI2S2VaPunA==",
|
"integrity": "sha512-aaLVANlj4HgZweKttFNUVNRxDukytuIuxeK2boIMHjagNJCiVKWFsKF4tCE3ql3GbrD2tExPQ7/pwtEJcHNZeg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"detect-libc": "^1.0.3",
|
"detect-libc": "^1.0.3",
|
||||||
"expand-template": "^1.0.2",
|
"expand-template": "^2.0.3",
|
||||||
"github-from-package": "0.0.0",
|
"github-from-package": "0.0.0",
|
||||||
"minimist": "^1.2.0",
|
"minimist": "^1.2.0",
|
||||||
"mkdirp": "^0.5.1",
|
"mkdirp": "^0.5.1",
|
||||||
"node-abi": "^2.2.0",
|
"napi-build-utils": "^1.0.1",
|
||||||
|
"node-abi": "^2.7.0",
|
||||||
"noop-logger": "^0.1.1",
|
"noop-logger": "^0.1.1",
|
||||||
"npmlog": "^4.0.1",
|
"npmlog": "^4.0.1",
|
||||||
"os-homedir": "^1.0.1",
|
"os-homedir": "^1.0.1",
|
||||||
"pump": "^2.0.1",
|
"pump": "^2.0.1",
|
||||||
"rc": "^1.1.6",
|
"rc": "^1.2.7",
|
||||||
"simple-get": "^2.7.0",
|
"simple-get": "^2.7.0",
|
||||||
"tar-fs": "^1.13.0",
|
"tar-fs": "^1.13.0",
|
||||||
"tunnel-agent": "^0.6.0",
|
"tunnel-agent": "^0.6.0",
|
||||||
@@ -2194,8 +2216,18 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"minimist": {
|
"minimist": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
||||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
|
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
|
||||||
|
},
|
||||||
|
"simple-get": {
|
||||||
|
"version": "2.8.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz",
|
||||||
|
"integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==",
|
||||||
|
"requires": {
|
||||||
|
"decompress-response": "^3.3.0",
|
||||||
|
"once": "^1.3.1",
|
||||||
|
"simple-concat": "^1.0.0"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -2427,50 +2459,63 @@
|
|||||||
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
|
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
|
||||||
},
|
},
|
||||||
"sharp": {
|
"sharp": {
|
||||||
"version": "0.20.8",
|
"version": "0.22.1",
|
||||||
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.20.8.tgz",
|
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.22.1.tgz",
|
||||||
"integrity": "sha512-A8NaPGWRDKpmHTi8sl2xzozYXhTQWBb/GaJ8ZPU7L/vKW8wVvd4Yq+isJ0c7p9sX5gnjPQcM3eOfHuvvnZ2fOQ==",
|
"integrity": "sha512-lXzSk/FL5b/MpWrT1pQZneKe25stVjEbl6uhhJcTULm7PhmJgKKRbTDM/vtjyUuC/RLqL2PRyC4rpKwbv3soEw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"color": "^3.0.0",
|
"color": "^3.1.1",
|
||||||
"detect-libc": "^1.0.3",
|
"detect-libc": "^1.0.3",
|
||||||
"fs-copy-file-sync": "^1.1.1",
|
"fs-copy-file-sync": "^1.1.1",
|
||||||
"nan": "^2.11.0",
|
"nan": "^2.13.2",
|
||||||
"npmlog": "^4.1.2",
|
"npmlog": "^4.1.2",
|
||||||
"prebuild-install": "^4.0.0",
|
"prebuild-install": "^5.3.0",
|
||||||
"semver": "^5.5.1",
|
"semver": "^6.0.0",
|
||||||
"simple-get": "^2.8.1",
|
"simple-get": "^3.0.3",
|
||||||
"tar": "^4.4.6",
|
"tar": "^4.4.8",
|
||||||
"tunnel-agent": "^0.6.0"
|
"tunnel-agent": "^0.6.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"chownr": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz",
|
||||||
|
"integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g=="
|
||||||
|
},
|
||||||
"minipass": {
|
"minipass": {
|
||||||
"version": "2.3.4",
|
"version": "2.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz",
|
||||||
"integrity": "sha512-mlouk1OHlaUE8Odt1drMtG1bAJA4ZA6B/ehysgV0LUIrDHdKgo1KorZq3pK0b/7Z7LJIQ12MNM6aC+Tn6lUZ5w==",
|
"integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"safe-buffer": "^5.1.2",
|
"safe-buffer": "^5.1.2",
|
||||||
"yallist": "^3.0.0"
|
"yallist": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"minizlib": {
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
"safe-buffer": {
|
"safe-buffer": {
|
||||||
"version": "5.1.2",
|
"version": "5.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
||||||
},
|
},
|
||||||
"semver": {
|
"semver": {
|
||||||
"version": "5.5.1",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/semver/-/semver-6.0.0.tgz",
|
||||||
"integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw=="
|
"integrity": "sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ=="
|
||||||
},
|
},
|
||||||
"tar": {
|
"tar": {
|
||||||
"version": "4.4.6",
|
"version": "4.4.8",
|
||||||
"resolved": "https://registry.npmjs.org/tar/-/tar-4.4.6.tgz",
|
"resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz",
|
||||||
"integrity": "sha512-tMkTnh9EdzxyfW+6GK6fCahagXsnYk6kE6S9Gr9pjVdys769+laCTbodXDhPAjzVtEBazRgP0gYqOjnk9dQzLg==",
|
"integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"chownr": "^1.0.1",
|
"chownr": "^1.1.1",
|
||||||
"fs-minipass": "^1.2.5",
|
"fs-minipass": "^1.2.5",
|
||||||
"minipass": "^2.3.3",
|
"minipass": "^2.3.4",
|
||||||
"minizlib": "^1.1.0",
|
"minizlib": "^1.1.1",
|
||||||
"mkdirp": "^0.5.0",
|
"mkdirp": "^0.5.0",
|
||||||
"safe-buffer": "^5.1.2",
|
"safe-buffer": "^5.1.2",
|
||||||
"yallist": "^3.0.2"
|
"yallist": "^3.0.2"
|
||||||
@@ -2489,9 +2534,9 @@
|
|||||||
"integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY="
|
"integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY="
|
||||||
},
|
},
|
||||||
"simple-get": {
|
"simple-get": {
|
||||||
"version": "2.8.1",
|
"version": "3.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.0.3.tgz",
|
||||||
"integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==",
|
"integrity": "sha512-Wvre/Jq5vgoz31Z9stYWPLn0PqRqmBDpFSdypAnHu5AvRVCYPRYGnvryNLiXu8GOBNDH82J2FRHUGMjjHUpXFw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"decompress-response": "^3.3.0",
|
"decompress-response": "^3.3.0",
|
||||||
"once": "^1.3.1",
|
"once": "^1.3.1",
|
||||||
@@ -2788,7 +2833,7 @@
|
|||||||
"requires": {
|
"requires": {
|
||||||
"chalk": "^2.1.0",
|
"chalk": "^2.1.0",
|
||||||
"emphasize": "^1.5.0",
|
"emphasize": "^1.5.0",
|
||||||
"node-emoji": "git+https://github.com/laurent22/node-emoji.git#9fa01eac463e94dde1316ef8c53089eeef4973b5",
|
"node-emoji": "git+https://github.com/laurent22/node-emoji.git",
|
||||||
"slice-ansi": "^1.0.0",
|
"slice-ansi": "^1.0.0",
|
||||||
"string-width": "^2.1.1",
|
"string-width": "^2.1.1",
|
||||||
"terminal-kit": "^1.13.11",
|
"terminal-kit": "^1.13.11",
|
||||||
@@ -2910,6 +2955,21 @@
|
|||||||
"resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
|
||||||
"integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg="
|
"integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg="
|
||||||
},
|
},
|
||||||
|
"uri-js": {
|
||||||
|
"version": "4.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
|
||||||
|
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
|
||||||
|
"requires": {
|
||||||
|
"punycode": "^2.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"punycode": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
|
||||||
|
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"url-parse": {
|
"url-parse": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz",
|
||||||
@@ -2958,17 +3018,17 @@
|
|||||||
"integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="
|
"integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="
|
||||||
},
|
},
|
||||||
"whatwg-encoding": {
|
"whatwg-encoding": {
|
||||||
"version": "1.0.4",
|
"version": "1.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
|
||||||
"integrity": "sha512-vM9KWN6MP2mIHZ86ytcyIv7e8Cj3KTfO2nd2c8PFDqcI4bxFmQp83ibq4wadq7rL9l9sZV6o9B0LTt8ygGAAXg==",
|
"integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"iconv-lite": "0.4.23"
|
"iconv-lite": "0.4.24"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"iconv-lite": {
|
"iconv-lite": {
|
||||||
"version": "0.4.23",
|
"version": "0.4.24",
|
||||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
|
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
||||||
"integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
|
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"safer-buffer": ">= 2.1.2 < 3"
|
"safer-buffer": ">= 2.1.2 < 3"
|
||||||
}
|
}
|
||||||
@@ -2976,9 +3036,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"whatwg-mimetype": {
|
"whatwg-mimetype": {
|
||||||
"version": "2.2.0",
|
"version": "2.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
|
||||||
"integrity": "sha512-5YSO1nMd5D1hY3WzAQV3PzZL83W3YeyR1yW9PcH26Weh1t+Vzh9B6XkDh7aXm83HBZ4nSMvkjvN2H2ySWIvBgw=="
|
"integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g=="
|
||||||
},
|
},
|
||||||
"whatwg-url": {
|
"whatwg-url": {
|
||||||
"version": "6.5.0",
|
"version": "6.5.0",
|
||||||
|
|||||||
@@ -15,11 +15,12 @@
|
|||||||
"years": [
|
"years": [
|
||||||
2016,
|
2016,
|
||||||
2017,
|
2017,
|
||||||
2018
|
2018,
|
||||||
|
2019
|
||||||
],
|
],
|
||||||
"owner": "Laurent Cozic"
|
"owner": "Laurent Cozic"
|
||||||
},
|
},
|
||||||
"version": "1.0.118",
|
"version": "1.0.125",
|
||||||
"bin": {
|
"bin": {
|
||||||
"joplin": "./main.js"
|
"joplin": "./main.js"
|
||||||
},
|
},
|
||||||
@@ -31,6 +32,7 @@
|
|||||||
"async-mutex": "^0.1.3",
|
"async-mutex": "^0.1.3",
|
||||||
"base-64": "^0.1.0",
|
"base-64": "^0.1.0",
|
||||||
"compare-version": "^0.1.2",
|
"compare-version": "^0.1.2",
|
||||||
|
"diacritics": "^1.3.0",
|
||||||
"es6-promise-pool": "^2.5.0",
|
"es6-promise-pool": "^2.5.0",
|
||||||
"follow-redirects": "^1.2.4",
|
"follow-redirects": "^1.2.4",
|
||||||
"form-data": "^2.1.4",
|
"form-data": "^2.1.4",
|
||||||
@@ -39,7 +41,7 @@
|
|||||||
"html-minifier": "^3.5.15",
|
"html-minifier": "^3.5.15",
|
||||||
"image-data-uri": "^2.0.0",
|
"image-data-uri": "^2.0.0",
|
||||||
"image-type": "^3.0.0",
|
"image-type": "^3.0.0",
|
||||||
"joplin-turndown": "^4.0.9",
|
"joplin-turndown": "^4.0.11",
|
||||||
"joplin-turndown-plugin-gfm": "^1.0.7",
|
"joplin-turndown-plugin-gfm": "^1.0.7",
|
||||||
"jssha": "^2.3.0",
|
"jssha": "^2.3.0",
|
||||||
"levenshtein": "^1.0.5",
|
"levenshtein": "^1.0.5",
|
||||||
@@ -58,7 +60,7 @@
|
|||||||
"redux": "^3.7.2",
|
"redux": "^3.7.2",
|
||||||
"sax": "^1.2.2",
|
"sax": "^1.2.2",
|
||||||
"server-destroy": "^1.0.1",
|
"server-destroy": "^1.0.1",
|
||||||
"sharp": "^0.20.8",
|
"sharp": "^0.22.1",
|
||||||
"sprintf-js": "^1.1.1",
|
"sprintf-js": "^1.1.1",
|
||||||
"sqlite3": "^4.0.1",
|
"sqlite3": "^4.0.1",
|
||||||
"string-padding": "^1.0.2",
|
"string-padding": "^1.0.2",
|
||||||
|
|||||||
@@ -22,18 +22,22 @@ trap finish EXIT
|
|||||||
|
|
||||||
cd "$ROOT_DIR"
|
cd "$ROOT_DIR"
|
||||||
npm test tests-build/ArrayUtils.js
|
npm test tests-build/ArrayUtils.js
|
||||||
|
npm test tests-build/encryption.js
|
||||||
npm test tests-build/EnexToMd.js
|
npm test tests-build/EnexToMd.js
|
||||||
npm test tests-build/HtmlToMd.js
|
npm test tests-build/HtmlToMd.js
|
||||||
npm test tests-build/markdownUtils.js
|
npm test tests-build/markdownUtils.js
|
||||||
npm test tests-build/models_BaseItem.js
|
npm test tests-build/models_BaseItem.js
|
||||||
npm test tests-build/models_Folder.js
|
npm test tests-build/models_Folder.js
|
||||||
|
npm test tests-build/models_ItemChange.js
|
||||||
npm test tests-build/models_Note.js
|
npm test tests-build/models_Note.js
|
||||||
npm test tests-build/models_Tag.js
|
npm test tests-build/models_Resource.js
|
||||||
npm test tests-build/models_Setting.js
|
npm test tests-build/models_Setting.js
|
||||||
|
npm test tests-build/models_Tag.js
|
||||||
npm test tests-build/pathUtils.js
|
npm test tests-build/pathUtils.js
|
||||||
npm test tests-build/services_InteropService.js
|
npm test tests-build/services_InteropService.js
|
||||||
npm test tests-build/services_ResourceService.js
|
npm test tests-build/services_ResourceService.js
|
||||||
npm test tests-build/urlUtils.js
|
|
||||||
npm test tests-build/encryption.js
|
|
||||||
npm test tests-build/services_rest_Api.js
|
npm test tests-build/services_rest_Api.js
|
||||||
npm test tests-build/synchronizer.js
|
npm test tests-build/services_SearchEngine.js
|
||||||
|
npm test tests-build/StringUtils.js
|
||||||
|
npm test tests-build/synchronizer.js
|
||||||
|
npm test tests-build/urlUtils.js
|
||||||
@@ -35,7 +35,7 @@ describe('EnexToMd', function() {
|
|||||||
const htmlPath = basePath + '/' + htmlFilename;
|
const htmlPath = basePath + '/' + htmlFilename;
|
||||||
const mdPath = basePath + '/' + filename(htmlFilename) + '.md';
|
const mdPath = basePath + '/' + filename(htmlFilename) + '.md';
|
||||||
|
|
||||||
// if (htmlFilename !== 'text2.html') continue;
|
// if (htmlFilename !== 'list5.html') continue;
|
||||||
|
|
||||||
const html = await shim.fsDriver().readFile(htmlPath);
|
const html = await shim.fsDriver().readFile(htmlPath);
|
||||||
let expectedMd = await shim.fsDriver().readFile(mdPath);
|
let expectedMd = await shim.fsDriver().readFile(mdPath);
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ describe('HtmlToMd', function() {
|
|||||||
const htmlPath = basePath + '/' + htmlFilename;
|
const htmlPath = basePath + '/' + htmlFilename;
|
||||||
const mdPath = basePath + '/' + filename(htmlFilename) + '.md';
|
const mdPath = basePath + '/' + filename(htmlFilename) + '.md';
|
||||||
|
|
||||||
// if (htmlFilename !== 'anchor_with_url_with_spaces.html') continue;
|
// if (htmlFilename !== 'picture.html') continue;
|
||||||
|
|
||||||
const html = await shim.fsDriver().readFile(htmlPath);
|
const html = await shim.fsDriver().readFile(htmlPath);
|
||||||
let expectedMd = await shim.fsDriver().readFile(mdPath);
|
let expectedMd = await shim.fsDriver().readFile(mdPath);
|
||||||
|
|||||||
45
CliClient/tests/StringUtils.js
Normal file
45
CliClient/tests/StringUtils.js
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
require('app-module-path').addPath(__dirname);
|
||||||
|
|
||||||
|
const { time } = require('lib/time-utils.js');
|
||||||
|
const { fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
||||||
|
const StringUtils = require('lib/string-utils');
|
||||||
|
|
||||||
|
process.on('unhandledRejection', (reason, p) => {
|
||||||
|
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('StringUtils', function() {
|
||||||
|
|
||||||
|
beforeEach(async (done) => {
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should surround keywords with strings', async (done) => {
|
||||||
|
const testCases = [
|
||||||
|
[[], 'test', 'a', 'b', 'test'],
|
||||||
|
[['test'], 'test', 'a', 'b', 'atestb'],
|
||||||
|
[['test'], 'Test', 'a', 'b', 'aTestb'],
|
||||||
|
[['te[]st'], 'Te[]st', 'a', 'b', 'aTe[]stb'],
|
||||||
|
// [['test1', 'test2'], 'bla test1 blabla test1 bla test2 not this one - test22', 'a', 'b', 'bla atest1b blabla atest1b bla atest2b not this one - test22'],
|
||||||
|
[['test1', 'test2'], 'bla test1 test1 bla test2', '<span class="highlighted-keyword">', '</span>', 'bla <span class="highlighted-keyword">test1</span> <span class="highlighted-keyword">test1</span> bla <span class="highlighted-keyword">test2</span>'],
|
||||||
|
// [[{ type:'regex', value:'test.*?'}], 'bla test1 test1 bla test2 test tttest', 'a', 'b', 'bla atest1b atest1b bla atest2b atestb tttest'],
|
||||||
|
];
|
||||||
|
|
||||||
|
for (let i = 0; i < testCases.length; i++) {
|
||||||
|
const t = testCases[i];
|
||||||
|
|
||||||
|
const keywords = t[0];
|
||||||
|
const input = t[1];
|
||||||
|
const prefix = t[2];
|
||||||
|
const suffix = t[3];
|
||||||
|
const expected = t[4];
|
||||||
|
|
||||||
|
const actual = StringUtils.surroundKeywords(keywords, input, prefix, suffix);
|
||||||
|
|
||||||
|
expect(actual).toBe(expected, 'Test case ' + i);
|
||||||
|
}
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
16
CliClient/tests/enex_to_md/list5.html
Normal file
16
CliClient/tests/enex_to_md/list5.html
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<ul>
|
||||||
|
<li lang="en-US">
|
||||||
|
<div>Protocols</div>
|
||||||
|
</li>
|
||||||
|
<ul type="circle">
|
||||||
|
<li lang="en-US">
|
||||||
|
<div>two common network protocols used to send data packets over a network</div>
|
||||||
|
</li>
|
||||||
|
<li lang="en-US">
|
||||||
|
<div>TCP Transmission control protocol</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<li lang="en-US">
|
||||||
|
<div>Network port - a network port is a process-specific or an application-specific software construct serving as a communication endpoint, which is used by the Transport Layer protocols of Internet Protocol suite, such as UDP and TCP</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
7
CliClient/tests/enex_to_md/list5.md
Normal file
7
CliClient/tests/enex_to_md/list5.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
- Protocols
|
||||||
|
|
||||||
|
- two common network protocols used to send data packets over a network
|
||||||
|
|
||||||
|
- TCP Transmission control protocol
|
||||||
|
|
||||||
|
- Network port - a network port is a process-specific or an application-specific software construct serving as a communication endpoint, which is used by the Transport Layer protocols of Internet Protocol suite, such as UDP and TCP
|
||||||
@@ -1 +1 @@
|
|||||||
<a href="https://joplin.cozic.net"><h1 id="joplin"><img class="title-icon" src="https://joplin.cozic.net/images/Icon512.png">oplin</h1></a>
|
<a href="https://joplinapp.org"><h1 id="joplin"><img class="title-icon" src="https://joplinapp.org/images/Icon512.png">oplin</h1></a>
|
||||||
@@ -1 +1 @@
|
|||||||
[# oplin](https://joplin.cozic.net)
|
[# oplin](https://joplinapp.org)
|
||||||
47
CliClient/tests/html_to_md/picture.html
Normal file
47
CliClient/tests/html_to_md/picture.html
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
<figure itemprop="associatedMedia image" itemscope="" itemtype="http://schema.org/ImageObject" data-component="image" data-media-id="75583fcfe2eb74f1e89ea320355ff4156f4ade7b" id="img-1">
|
||||||
|
<meta itemprop="representativeOfPage" content="true">
|
||||||
|
<meta itemprop="url" content="https://i.guim.co.uk/img/media/75583fcfe2eb74f1e89ea320355ff4156f4ade7b/0_49_3904_2342/master/3904.jpg?width=700&quality=85&auto=format&fit=max&s=2a6a7ba9738c6a6a79eab39ba46c34cd">
|
||||||
|
<meta itemprop="width" content="3904">
|
||||||
|
<meta itemprop="height" content="2342">
|
||||||
|
<a href="#img-1" data-link-name="Launch Article Lightbox" data-is-ajax="">
|
||||||
|
<div>
|
||||||
|
<picture>
|
||||||
|
<!--[if IE 9]><video style="display: none;"><![endif]-->
|
||||||
|
<source media="(min-width: 980px) and (-webkit-min-device-pixel-ratio: 1.25), (min-width: 980px) and (min-resolution: 120dpi)" sizes="620px" srcset="https://i.guim.co.uk/img/media/75583fcfe2eb74f1e89ea320355ff4156f4ade7b/0_49_3904_2342/master/3904.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=bacff59339e5ba117f957c24218ef76b 1240w">
|
||||||
|
<source media="(min-width: 980px)" sizes="620px" srcset="https://i.guim.co.uk/img/media/75583fcfe2eb74f1e89ea320355ff4156f4ade7b/0_49_3904_2342/master/3904.jpg?width=620&quality=85&auto=format&fit=max&s=f1427ce6689688d3d6e0087fe9cb5c18 620w">
|
||||||
|
<source media="(min-width: 740px) and (-webkit-min-device-pixel-ratio: 1.25), (min-width: 740px) and (min-resolution: 120dpi)" sizes="700px" srcset="https://i.guim.co.uk/img/media/75583fcfe2eb74f1e89ea320355ff4156f4ade7b/0_49_3904_2342/master/3904.jpg?width=700&quality=45&auto=format&fit=max&dpr=2&s=70accd3c6e7d2c36f5ccc7321eab097e 1400w">
|
||||||
|
<source media="(min-width: 740px)" sizes="700px" srcset="https://i.guim.co.uk/img/media/75583fcfe2eb74f1e89ea320355ff4156f4ade7b/0_49_3904_2342/master/3904.jpg?width=700&quality=85&auto=format&fit=max&s=2a6a7ba9738c6a6a79eab39ba46c34cd 700w">
|
||||||
|
<source media="(min-width: 660px) and (-webkit-min-device-pixel-ratio: 1.25), (min-width: 660px) and (min-resolution: 120dpi)" sizes="620px" srcset="https://i.guim.co.uk/img/media/75583fcfe2eb74f1e89ea320355ff4156f4ade7b/0_49_3904_2342/master/3904.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=bacff59339e5ba117f957c24218ef76b 1240w">
|
||||||
|
<source media="(min-width: 660px)" sizes="620px" srcset="https://i.guim.co.uk/img/media/75583fcfe2eb74f1e89ea320355ff4156f4ade7b/0_49_3904_2342/master/3904.jpg?width=620&quality=85&auto=format&fit=max&s=f1427ce6689688d3d6e0087fe9cb5c18 620w">
|
||||||
|
<source media="(min-width: 480px) and (-webkit-min-device-pixel-ratio: 1.25), (min-width: 480px) and (min-resolution: 120dpi)" sizes="645px" srcset="https://i.guim.co.uk/img/media/75583fcfe2eb74f1e89ea320355ff4156f4ade7b/0_49_3904_2342/master/3904.jpg?width=645&quality=45&auto=format&fit=max&dpr=2&s=6751fcff1b880acc45ed5aab6511a2ca 1290w">
|
||||||
|
<source media="(min-width: 480px)" sizes="645px" srcset="https://i.guim.co.uk/img/media/75583fcfe2eb74f1e89ea320355ff4156f4ade7b/0_49_3904_2342/master/3904.jpg?width=645&quality=85&auto=format&fit=max&s=d18702564383ce5d613d22b96ec6d726 645w">
|
||||||
|
<source media="(min-width: 0px) and (-webkit-min-device-pixel-ratio: 1.25), (min-width: 0px) and (min-resolution: 120dpi)" sizes="465px" srcset="https://i.guim.co.uk/img/media/75583fcfe2eb74f1e89ea320355ff4156f4ade7b/0_49_3904_2342/master/3904.jpg?width=465&quality=45&auto=format&fit=max&dpr=2&s=a7b87fb26b9813d197f3c236a5282ca4 930w">
|
||||||
|
<source media="(min-width: 0px)" sizes="465px" srcset="https://i.guim.co.uk/img/media/75583fcfe2eb74f1e89ea320355ff4156f4ade7b/0_49_3904_2342/master/3904.jpg?width=465&quality=85&auto=format&fit=max&s=821ae9e950ae92371b40a35e98a31116 465w">
|
||||||
|
<!--[if IE 9]></video><![endif]-->
|
||||||
|
<img itemprop="contentUrl" alt="A blood moon" src="https://i.guim.co.uk/img/media/75583fcfe2eb74f1e89ea320355ff4156f4ade7b/0_49_3904_2342/master/3904.jpg?width=300&quality=85&auto=format&fit=max&s=1e9b643d2c109a1e271f50046eac1324">
|
||||||
|
</picture>
|
||||||
|
</div>
|
||||||
|
<span>
|
||||||
|
<svg width="22" height="22" viewBox="0 0 22 22">
|
||||||
|
<path d="M3.4 20.2L9 14.5 7.5 13l-5.7 5.6L1 14H0v7.5l.5.5H8v-1l-4.6-.8M18.7 1.9L13 7.6 14.4 9l5.7-5.7.5 4.7h1.2V.6l-.5-.5H14v1.2l4.7.6"></path>
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<label for="show-caption">
|
||||||
|
<span>
|
||||||
|
<svg width="6" height="14" viewBox="0 0 6 14">
|
||||||
|
<path d="M4.6 12l-.4 1.4c-.7.2-1.9.6-3 .6-.7 0-1.2-.2-1.2-.9 0-.2 0-.3.1-.5l2-6.7H.7l.4-1.5 4.2-.6h.2L3 12h1.6zm-.3-9.2c-.9 0-1.4-.5-1.4-1.3C2.9.5 3.7 0 4.6 0 5.4 0 6 .5 6 1.3c0 1-.8 1.5-1.7 1.5z"></path>
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
</label>
|
||||||
|
<figcaption itemprop="description">
|
||||||
|
<span>
|
||||||
|
<svg width="11" height="10" viewBox="0 0 11 10">
|
||||||
|
<path fill-rule="evenodd" d="M5.5 0L11 10H0z"></path>
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
A blood moon last occurred in July 2018, though clouds largely obscured the celestial phenomenon in the UK.
|
||||||
|
Photograph: JM F Almeida/Getty Images
|
||||||
|
</figcaption>
|
||||||
|
</figure>
|
||||||
3
CliClient/tests/html_to_md/picture.md
Normal file
3
CliClient/tests/html_to_md/picture.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[](#img-1)
|
||||||
|
|
||||||
|
A blood moon last occurred in July 2018, though clouds largely obscured the celestial phenomenon in the UK. Photograph: JM F Almeida/Getty Images
|
||||||
@@ -52,4 +52,77 @@ describe('models_Folder', function() {
|
|||||||
expect(all.length).toBe(0);
|
expect(all.length).toBe(0);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
it('should sort by last modified, based on content', asyncTest(async () => {
|
||||||
|
let folders;
|
||||||
|
|
||||||
|
let f1 = await Folder.save({ title: "folder1" }); await sleep(0.1);
|
||||||
|
let f2 = await Folder.save({ title: "folder2" }); await sleep(0.1);
|
||||||
|
let f3 = await Folder.save({ title: "folder3" }); await sleep(0.1);
|
||||||
|
let n1 = await Note.save({ title: 'note1', parent_id: f2.id });
|
||||||
|
|
||||||
|
folders = await Folder.orderByLastModified(await Folder.all(), 'desc');
|
||||||
|
expect(folders.length).toBe(3);
|
||||||
|
expect(folders[0].id).toBe(f2.id);
|
||||||
|
expect(folders[1].id).toBe(f3.id);
|
||||||
|
expect(folders[2].id).toBe(f1.id);
|
||||||
|
|
||||||
|
let n2 = await Note.save({ title: 'note1', parent_id: f1.id });
|
||||||
|
|
||||||
|
folders = await Folder.orderByLastModified(await Folder.all(), 'desc');
|
||||||
|
expect(folders[0].id).toBe(f1.id);
|
||||||
|
expect(folders[1].id).toBe(f2.id);
|
||||||
|
expect(folders[2].id).toBe(f3.id);
|
||||||
|
|
||||||
|
await Note.save({ id: n1.id, title: 'note1 mod' });
|
||||||
|
|
||||||
|
folders = await Folder.orderByLastModified(await Folder.all(), 'desc');
|
||||||
|
expect(folders[0].id).toBe(f2.id);
|
||||||
|
expect(folders[1].id).toBe(f1.id);
|
||||||
|
expect(folders[2].id).toBe(f3.id);
|
||||||
|
|
||||||
|
folders = await Folder.orderByLastModified(await Folder.all(), 'asc');
|
||||||
|
expect(folders[0].id).toBe(f3.id);
|
||||||
|
expect(folders[1].id).toBe(f1.id);
|
||||||
|
expect(folders[2].id).toBe(f2.id);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should sort by last modified, based on content (sub-folders too)', asyncTest(async () => {
|
||||||
|
let folders;
|
||||||
|
|
||||||
|
let f1 = await Folder.save({ title: "folder1" }); await sleep(0.1);
|
||||||
|
let f2 = await Folder.save({ title: "folder2" }); await sleep(0.1);
|
||||||
|
let f3 = await Folder.save({ title: "folder3", parent_id: f1.id }); await sleep(0.1);
|
||||||
|
let n1 = await Note.save({ title: 'note1', parent_id: f3.id });
|
||||||
|
|
||||||
|
folders = await Folder.orderByLastModified(await Folder.all(), 'desc');
|
||||||
|
expect(folders.length).toBe(3);
|
||||||
|
expect(folders[0].id).toBe(f1.id);
|
||||||
|
expect(folders[1].id).toBe(f3.id);
|
||||||
|
expect(folders[2].id).toBe(f2.id);
|
||||||
|
|
||||||
|
let n2 = await Note.save({ title: 'note2', parent_id: f2.id });
|
||||||
|
folders = await Folder.orderByLastModified(await Folder.all(), 'desc');
|
||||||
|
|
||||||
|
expect(folders[0].id).toBe(f2.id);
|
||||||
|
expect(folders[1].id).toBe(f1.id);
|
||||||
|
expect(folders[2].id).toBe(f3.id);
|
||||||
|
|
||||||
|
await Note.save({ id: n1.id, title: 'note1 MOD' });
|
||||||
|
|
||||||
|
folders = await Folder.orderByLastModified(await Folder.all(), 'desc');
|
||||||
|
expect(folders[0].id).toBe(f1.id);
|
||||||
|
expect(folders[1].id).toBe(f3.id);
|
||||||
|
expect(folders[2].id).toBe(f2.id);
|
||||||
|
|
||||||
|
let f4 = await Folder.save({ title: "folder4", parent_id: f1.id }); await sleep(0.1);
|
||||||
|
let n3 = await Note.save({ title: 'note3', parent_id: f4.id });
|
||||||
|
|
||||||
|
folders = await Folder.orderByLastModified(await Folder.all(), 'desc');
|
||||||
|
expect(folders.length).toBe(4);
|
||||||
|
expect(folders[0].id).toBe(f1.id);
|
||||||
|
expect(folders[1].id).toBe(f4.id);
|
||||||
|
expect(folders[2].id).toBe(f3.id);
|
||||||
|
expect(folders[3].id).toBe(f2.id);
|
||||||
|
}));
|
||||||
|
|
||||||
});
|
});
|
||||||
53
CliClient/tests/models_ItemChange.js
Normal file
53
CliClient/tests/models_ItemChange.js
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
require('app-module-path').addPath(__dirname);
|
||||||
|
|
||||||
|
const { time } = require('lib/time-utils.js');
|
||||||
|
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
||||||
|
const SearchEngine = require('lib/services/SearchEngine');
|
||||||
|
const ResourceService = require('lib/services/ResourceService');
|
||||||
|
const ItemChangeUtils = require('lib/services/ItemChangeUtils');
|
||||||
|
const Note = require('lib/models/Note');
|
||||||
|
const Setting = require('lib/models/Setting');
|
||||||
|
const ItemChange = require('lib/models/ItemChange');
|
||||||
|
|
||||||
|
process.on('unhandledRejection', (reason, p) => {
|
||||||
|
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
||||||
|
});
|
||||||
|
|
||||||
|
let searchEngine = null;
|
||||||
|
|
||||||
|
describe('models_ItemChange', function() {
|
||||||
|
|
||||||
|
beforeEach(async (done) => {
|
||||||
|
await setupDatabaseAndSynchronizer(1);
|
||||||
|
searchEngine = new SearchEngine();
|
||||||
|
searchEngine.setDb(db());
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should delete old changes that have been processed', asyncTest(async () => {
|
||||||
|
const n1 = await Note.save({ title: "abcd efgh" }); // 3
|
||||||
|
|
||||||
|
await ItemChange.waitForAllSaved();
|
||||||
|
|
||||||
|
expect(await ItemChange.lastChangeId()).toBe(1);
|
||||||
|
|
||||||
|
const resourceService = new ResourceService();
|
||||||
|
|
||||||
|
await searchEngine.syncTables();
|
||||||
|
|
||||||
|
// If we run this now, it should not delete any change because
|
||||||
|
// the resource service has not yet processed the change
|
||||||
|
await ItemChangeUtils.deleteProcessedChanges();
|
||||||
|
|
||||||
|
expect(await ItemChange.lastChangeId()).toBe(1);
|
||||||
|
|
||||||
|
await resourceService.indexNoteResources();
|
||||||
|
|
||||||
|
// Now that the resource service has processed the change,
|
||||||
|
// the change can be deleted.
|
||||||
|
await ItemChangeUtils.deleteProcessedChanges();
|
||||||
|
|
||||||
|
expect(await ItemChange.lastChangeId()).toBe(0);
|
||||||
|
}));
|
||||||
|
|
||||||
|
});
|
||||||
@@ -4,6 +4,7 @@ const { time } = require('lib/time-utils.js');
|
|||||||
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
||||||
const Folder = require('lib/models/Folder.js');
|
const Folder = require('lib/models/Folder.js');
|
||||||
const Note = require('lib/models/Note.js');
|
const Note = require('lib/models/Note.js');
|
||||||
|
const NoteTag = require('lib/models/NoteTag.js');
|
||||||
const Tag = require('lib/models/Tag.js');
|
const Tag = require('lib/models/Tag.js');
|
||||||
const BaseModel = require('lib/BaseModel.js');
|
const BaseModel = require('lib/BaseModel.js');
|
||||||
const { shim } = require('lib/shim');
|
const { shim } = require('lib/shim');
|
||||||
@@ -42,4 +43,18 @@ describe('models_Tag', function() {
|
|||||||
expect(hasThrown).toBe(true);
|
expect(hasThrown).toBe(true);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
it('should not return tags without notes', asyncTest(async () => {
|
||||||
|
let folder1 = await Folder.save({ title: "folder1" });
|
||||||
|
let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
||||||
|
await Tag.setNoteTagsByTitles(note1.id, ['un']);
|
||||||
|
|
||||||
|
let tags = await Tag.allWithNotes();
|
||||||
|
expect(tags.length).toBe(1);
|
||||||
|
|
||||||
|
await Note.delete(note1.id);
|
||||||
|
|
||||||
|
tags = await Tag.allWithNotes();
|
||||||
|
expect(tags.length).toBe(0);
|
||||||
|
}));
|
||||||
|
|
||||||
});
|
});
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
require('app-module-path').addPath(__dirname);
|
require('app-module-path').addPath(__dirname);
|
||||||
|
|
||||||
const { friendlySafeFilename } = require('lib/path-utils.js');
|
const { extractExecutablePath, quotePath, unquotePath, friendlySafeFilename } = require('lib/path-utils.js');
|
||||||
const { fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
const { fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
||||||
|
|
||||||
process.on('unhandledRejection', (reason, p) => {
|
process.on('unhandledRejection', (reason, p) => {
|
||||||
@@ -36,4 +36,41 @@ describe('pathUtils', function() {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should quote and unquote paths', async (done) => {
|
||||||
|
const testCases = [
|
||||||
|
['', ''],
|
||||||
|
['/my/path', '/my/path'],
|
||||||
|
['/my/path with spaces', '"/my/path with spaces"'],
|
||||||
|
['/my/weird"path', '"/my/weird\\"path"'],
|
||||||
|
['c:\\Windows\\test.dll', 'c:\\Windows\\test.dll'],
|
||||||
|
['c:\\Windows\\test test.dll', '"c:\\Windows\\test test.dll"'],
|
||||||
|
];
|
||||||
|
|
||||||
|
for (let i = 0; i < testCases.length; i++) {
|
||||||
|
const t = testCases[i];
|
||||||
|
expect(quotePath(t[0])).toBe(t[1]);
|
||||||
|
expect(unquotePath(quotePath(t[0]))).toBe(t[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should extract executable path from command', async (done) => {
|
||||||
|
const testCases = [
|
||||||
|
['', ''],
|
||||||
|
['/my/cmd -some -args', '/my/cmd'],
|
||||||
|
['"/my/cmd" -some -args', '"/my/cmd"'],
|
||||||
|
['"/my/cmd"', '"/my/cmd"'],
|
||||||
|
['"/my/cmd and space" -some -flags', '"/my/cmd and space"'],
|
||||||
|
['"" -some -flags', '""'],
|
||||||
|
];
|
||||||
|
|
||||||
|
for (let i = 0; i < testCases.length; i++) {
|
||||||
|
const t = testCases[i];
|
||||||
|
expect(extractExecutablePath(t[0])).toBe(t[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
require('app-module-path').addPath(__dirname);
|
require('app-module-path').addPath(__dirname);
|
||||||
|
|
||||||
const { time } = require('lib/time-utils.js');
|
const { time } = require('lib/time-utils.js');
|
||||||
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
const { asyncTest, resourceService, decryptionWorker, encryptionService, loadEncryptionMasterKey, allSyncTargetItemsEncrypted, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
||||||
const InteropService = require('lib/services/InteropService.js');
|
const InteropService = require('lib/services/InteropService.js');
|
||||||
const Folder = require('lib/models/Folder.js');
|
const Folder = require('lib/models/Folder.js');
|
||||||
const Note = require('lib/models/Note.js');
|
const Note = require('lib/models/Note.js');
|
||||||
@@ -15,6 +15,7 @@ const fs = require('fs-extra');
|
|||||||
const ArrayUtils = require('lib/ArrayUtils');
|
const ArrayUtils = require('lib/ArrayUtils');
|
||||||
const ObjectUtils = require('lib/ObjectUtils');
|
const ObjectUtils = require('lib/ObjectUtils');
|
||||||
const { shim } = require('lib/shim.js');
|
const { shim } = require('lib/shim.js');
|
||||||
|
const SearchEngine = require('lib/services/SearchEngine');
|
||||||
|
|
||||||
process.on('unhandledRejection', (reason, p) => {
|
process.on('unhandledRejection', (reason, p) => {
|
||||||
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
||||||
@@ -37,6 +38,7 @@ describe('services_ResourceService', function() {
|
|||||||
|
|
||||||
beforeEach(async (done) => {
|
beforeEach(async (done) => {
|
||||||
await setupDatabaseAndSynchronizer(1);
|
await setupDatabaseAndSynchronizer(1);
|
||||||
|
await setupDatabaseAndSynchronizer(2);
|
||||||
await switchClient(1);
|
await switchClient(1);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
@@ -146,4 +148,69 @@ describe('services_ResourceService', function() {
|
|||||||
expect(before.last_seen_time).toBe(after.last_seen_time);
|
expect(before.last_seen_time).toBe(after.last_seen_time);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
it('should not delete resources that are associated with an encrypted note', asyncTest(async () => {
|
||||||
|
// https://github.com/laurent22/joplin/issues/1433
|
||||||
|
//
|
||||||
|
// Client 1 and client 2 have E2EE setup.
|
||||||
|
//
|
||||||
|
// - Client 1 creates note N1 and add resource R1 to it
|
||||||
|
// - Client 1 syncs
|
||||||
|
// - Client 2 syncs and get N1
|
||||||
|
// - Client 2 add resource R2 to N1
|
||||||
|
// - Client 2 syncs
|
||||||
|
// - Client 1 syncs
|
||||||
|
// - Client 1 runs resource indexer - but because N1 hasn't been decrypted yet, it found that R1 is no longer associated with any note
|
||||||
|
// - Client 1 decrypts notes, but too late
|
||||||
|
//
|
||||||
|
// Eventually R1 is deleted because service thinks that it was at some point associated with a note, but no longer.
|
||||||
|
|
||||||
|
const masterKey = await loadEncryptionMasterKey();
|
||||||
|
await encryptionService().enableEncryption(masterKey, '123456');
|
||||||
|
await encryptionService().loadMasterKeysFromSettings();
|
||||||
|
let folder1 = await Folder.save({ title: "folder1" });
|
||||||
|
let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
||||||
|
await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg'); // R1
|
||||||
|
await resourceService().indexNoteResources();
|
||||||
|
await synchronizer().start();
|
||||||
|
expect(await allSyncTargetItemsEncrypted()).toBe(true);
|
||||||
|
|
||||||
|
await switchClient(2);
|
||||||
|
|
||||||
|
await synchronizer().start();
|
||||||
|
await encryptionService().enableEncryption(masterKey, '123456');
|
||||||
|
await encryptionService().loadMasterKeysFromSettings();
|
||||||
|
await decryptionWorker().start();
|
||||||
|
{
|
||||||
|
const n1 = await Note.load(note1.id);
|
||||||
|
await shim.attachFileToNote(n1, __dirname + '/../tests/support/photo.jpg'); // R2
|
||||||
|
}
|
||||||
|
await synchronizer().start();
|
||||||
|
|
||||||
|
await switchClient(1);
|
||||||
|
|
||||||
|
await synchronizer().start();
|
||||||
|
await resourceService().indexNoteResources();
|
||||||
|
await resourceService().deleteOrphanResources(0); // Previously, R1 would be deleted here because it's not indexed
|
||||||
|
expect((await Resource.all()).length).toBe(2);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should double-check if the resource is still linked before deleting it', asyncTest(async () => {
|
||||||
|
SearchEngine.instance().setDb(db()); // /!\ Note that we use the global search engine here, which we shouldn't but will work for now
|
||||||
|
|
||||||
|
let folder1 = await Folder.save({ title: "folder1" });
|
||||||
|
let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
||||||
|
note1 = await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg');
|
||||||
|
await resourceService().indexNoteResources();
|
||||||
|
const bodyWithResource = note1.body;
|
||||||
|
await Note.save({ id: note1.id, body: '' });
|
||||||
|
await resourceService().indexNoteResources();
|
||||||
|
await Note.save({ id: note1.id, body: bodyWithResource });
|
||||||
|
await SearchEngine.instance().syncTables();
|
||||||
|
await resourceService().deleteOrphanResources(0);
|
||||||
|
|
||||||
|
expect((await Resource.all()).length).toBe(1); // It should not have deleted the resource
|
||||||
|
const nr = (await NoteResource.all())[0];
|
||||||
|
expect(!!nr.is_associated).toBe(true); // And it should have fixed the situation by re-indexing the note content
|
||||||
|
}));
|
||||||
|
|
||||||
});
|
});
|
||||||
@@ -1,9 +1,11 @@
|
|||||||
require('app-module-path').addPath(__dirname);
|
require('app-module-path').addPath(__dirname);
|
||||||
|
|
||||||
const { time } = require('lib/time-utils.js');
|
const { time } = require('lib/time-utils.js');
|
||||||
const { fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
const { fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, asyncTest, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
||||||
const SearchEngine = require('lib/services/SearchEngine');
|
const SearchEngine = require('lib/services/SearchEngine');
|
||||||
const Note = require('lib/models/Note');
|
const Note = require('lib/models/Note');
|
||||||
|
const ItemChange = require('lib/models/ItemChange');
|
||||||
|
const Setting = require('lib/models/Setting');
|
||||||
|
|
||||||
process.on('unhandledRejection', (reason, p) => {
|
process.on('unhandledRejection', (reason, p) => {
|
||||||
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
||||||
@@ -23,53 +25,71 @@ describe('services_SearchEngine', function() {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should keep the content and FTS table in sync', async (done) => {
|
it('should keep the content and FTS table in sync', asyncTest(async () => {
|
||||||
let rows, n1, n2, n3;
|
let rows, n1, n2, n3;
|
||||||
|
|
||||||
n1 = await Note.save({ title: "a" });
|
n1 = await Note.save({ title: "a" });
|
||||||
n2 = await Note.save({ title: "b" });
|
n2 = await Note.save({ title: "b" });
|
||||||
|
await engine.syncTables();
|
||||||
rows = await engine.search('a');
|
rows = await engine.search('a');
|
||||||
expect(rows.length).toBe(1);
|
expect(rows.length).toBe(1);
|
||||||
expect(rows[0].title).toBe('a');
|
expect(rows[0].title).toBe('a');
|
||||||
|
|
||||||
await Note.delete(n1.id);
|
await Note.delete(n1.id);
|
||||||
|
await engine.syncTables();
|
||||||
rows = await engine.search('a');
|
rows = await engine.search('a');
|
||||||
expect(rows.length).toBe(0);
|
expect(rows.length).toBe(0);
|
||||||
rows = await engine.search('b');
|
rows = await engine.search('b');
|
||||||
expect(rows[0].title).toBe('b');
|
expect(rows[0].title).toBe('b');
|
||||||
|
|
||||||
await Note.save({ id: n2.id, title: 'c' });
|
await Note.save({ id: n2.id, title: 'c' });
|
||||||
|
await engine.syncTables();
|
||||||
rows = await engine.search('b');
|
rows = await engine.search('b');
|
||||||
expect(rows.length).toBe(0);
|
expect(rows.length).toBe(0);
|
||||||
rows = await engine.search('c');
|
rows = await engine.search('c');
|
||||||
expect(rows[0].title).toBe('c');
|
expect(rows[0].title).toBe('c');
|
||||||
|
|
||||||
await Note.save({ id: n2.id, encryption_applied: 1 });
|
await Note.save({ id: n2.id, encryption_applied: 1 });
|
||||||
|
await engine.syncTables();
|
||||||
rows = await engine.search('c');
|
rows = await engine.search('c');
|
||||||
expect(rows.length).toBe(0);
|
expect(rows.length).toBe(0);
|
||||||
|
|
||||||
await Note.save({ id: n2.id, encryption_applied: 0 });
|
await Note.save({ id: n2.id, encryption_applied: 0 });
|
||||||
|
await engine.syncTables();
|
||||||
rows = await engine.search('c');
|
rows = await engine.search('c');
|
||||||
expect(rows.length).toBe(1);
|
expect(rows.length).toBe(1);
|
||||||
|
}));
|
||||||
|
|
||||||
done();
|
it('should, after initial indexing, save the last change ID', asyncTest(async () => {
|
||||||
});
|
const n1 = await Note.save({ title: "abcd efgh" }); // 3
|
||||||
|
const n2 = await Note.save({ title: "abcd aaaaa abcd abcd" }); // 1
|
||||||
|
|
||||||
it('should order search results by relevance (1)', async (done) => {
|
expect(Setting.value('searchEngine.initialIndexingDone')).toBe(false);
|
||||||
|
|
||||||
|
await ItemChange.waitForAllSaved();
|
||||||
|
const lastChangeId = await ItemChange.lastChangeId();
|
||||||
|
|
||||||
|
await engine.syncTables();
|
||||||
|
|
||||||
|
expect(Setting.value('searchEngine.lastProcessedChangeId')).toBe(lastChangeId);
|
||||||
|
expect(Setting.value('searchEngine.initialIndexingDone')).toBe(true);
|
||||||
|
}));
|
||||||
|
|
||||||
|
|
||||||
|
it('should order search results by relevance (1)', asyncTest(async () => {
|
||||||
const n1 = await Note.save({ title: "abcd efgh" }); // 3
|
const n1 = await Note.save({ title: "abcd efgh" }); // 3
|
||||||
const n2 = await Note.save({ title: "abcd aaaaa abcd abcd" }); // 1
|
const n2 = await Note.save({ title: "abcd aaaaa abcd abcd" }); // 1
|
||||||
const n3 = await Note.save({ title: "abcd aaaaa bbbb eeee abcd" }); // 2
|
const n3 = await Note.save({ title: "abcd aaaaa bbbb eeee abcd" }); // 2
|
||||||
|
|
||||||
|
await engine.syncTables();
|
||||||
const rows = await engine.search('abcd');
|
const rows = await engine.search('abcd');
|
||||||
|
|
||||||
expect(rows[0].id).toBe(n2.id);
|
expect(rows[0].id).toBe(n2.id);
|
||||||
expect(rows[1].id).toBe(n3.id);
|
expect(rows[1].id).toBe(n3.id);
|
||||||
expect(rows[2].id).toBe(n1.id);
|
expect(rows[2].id).toBe(n1.id);
|
||||||
|
}));
|
||||||
|
|
||||||
done();
|
it('should order search results by relevance (2)', asyncTest(async () => {
|
||||||
});
|
|
||||||
|
|
||||||
it('should order search results by relevance (2)', async (done) => {
|
|
||||||
// 1
|
// 1
|
||||||
const n1 = await Note.save({ title: "abcd efgh", body: "XX abcd XX efgh" });
|
const n1 = await Note.save({ title: "abcd efgh", body: "XX abcd XX efgh" });
|
||||||
// 4
|
// 4
|
||||||
@@ -81,6 +101,7 @@ describe('services_SearchEngine', function() {
|
|||||||
// 5
|
// 5
|
||||||
const n5 = await Note.save({ title: "occurence many times but very abcd spread appart spread appart spread appart spread appart spread appart efgh occurence many times but very abcd spread appart spread appart spread appart spread appart spread appart efgh occurence many times but very abcd spread appart spread appart spread appart spread appart spread appart efgh occurence many times but very abcd spread appart spread appart spread appart spread appart spread appart efgh occurence many times but very abcd spread appart spread appart spread appart spread appart spread appart efgh" });
|
const n5 = await Note.save({ title: "occurence many times but very abcd spread appart spread appart spread appart spread appart spread appart efgh occurence many times but very abcd spread appart spread appart spread appart spread appart spread appart efgh occurence many times but very abcd spread appart spread appart spread appart spread appart spread appart efgh occurence many times but very abcd spread appart spread appart spread appart spread appart spread appart efgh occurence many times but very abcd spread appart spread appart spread appart spread appart spread appart efgh" });
|
||||||
|
|
||||||
|
await engine.syncTables();
|
||||||
const rows = await engine.search('abcd efgh');
|
const rows = await engine.search('abcd efgh');
|
||||||
|
|
||||||
expect(rows[0].id).toBe(n1.id);
|
expect(rows[0].id).toBe(n1.id);
|
||||||
@@ -88,15 +109,70 @@ describe('services_SearchEngine', function() {
|
|||||||
expect(rows[2].id).toBe(n3.id);
|
expect(rows[2].id).toBe(n3.id);
|
||||||
expect(rows[3].id).toBe(n2.id);
|
expect(rows[3].id).toBe(n2.id);
|
||||||
expect(rows[4].id).toBe(n5.id);
|
expect(rows[4].id).toBe(n5.id);
|
||||||
|
}));
|
||||||
|
|
||||||
done();
|
it('should order search results by relevance (last updated first)', asyncTest(async () => {
|
||||||
});
|
let rows;
|
||||||
|
|
||||||
it('should supports various query types', async (done) => {
|
const n1 = await Note.save({ title: "abcd" });
|
||||||
|
await sleep(0.1);
|
||||||
|
const n2 = await Note.save({ title: "abcd" });
|
||||||
|
await sleep(0.1);
|
||||||
|
const n3 = await Note.save({ title: "abcd" });
|
||||||
|
await sleep(0.1);
|
||||||
|
|
||||||
|
await engine.syncTables();
|
||||||
|
rows = await engine.search('abcd');
|
||||||
|
|
||||||
|
expect(rows[0].id).toBe(n3.id);
|
||||||
|
expect(rows[1].id).toBe(n2.id);
|
||||||
|
expect(rows[2].id).toBe(n1.id);
|
||||||
|
|
||||||
|
await Note.save({ id: n1.id, title: "abcd" });
|
||||||
|
|
||||||
|
await engine.syncTables();
|
||||||
|
rows = await engine.search('abcd');
|
||||||
|
expect(rows[0].id).toBe(n1.id);
|
||||||
|
expect(rows[1].id).toBe(n3.id);
|
||||||
|
expect(rows[2].id).toBe(n2.id);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should order search results by relevance (completed to-dos last)', asyncTest(async () => {
|
||||||
|
let rows;
|
||||||
|
|
||||||
|
const n1 = await Note.save({ title: "abcd", is_todo: 1 });
|
||||||
|
await sleep(0.1);
|
||||||
|
const n2 = await Note.save({ title: "abcd", is_todo: 1 });
|
||||||
|
await sleep(0.1);
|
||||||
|
const n3 = await Note.save({ title: "abcd", is_todo: 1 });
|
||||||
|
await sleep(0.1);
|
||||||
|
|
||||||
|
await engine.syncTables();
|
||||||
|
rows = await engine.search('abcd');
|
||||||
|
|
||||||
|
expect(rows[0].id).toBe(n3.id);
|
||||||
|
expect(rows[1].id).toBe(n2.id);
|
||||||
|
expect(rows[2].id).toBe(n1.id);
|
||||||
|
|
||||||
|
await Note.save({ id: n3.id, todo_completed: Date.now() });
|
||||||
|
|
||||||
|
await engine.syncTables();
|
||||||
|
rows = await engine.search('abcd');
|
||||||
|
expect(rows[0].id).toBe(n2.id);
|
||||||
|
expect(rows[1].id).toBe(n1.id);
|
||||||
|
expect(rows[2].id).toBe(n3.id);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should supports various query types', asyncTest(async () => {
|
||||||
let rows;
|
let rows;
|
||||||
|
|
||||||
const n1 = await Note.save({ title: "abcd efgh ijkl", body: "aaaa bbbb" });
|
const n1 = await Note.save({ title: "abcd efgh ijkl", body: "aaaa bbbb" });
|
||||||
const n2 = await Note.save({ title: "iiii efgh bbbb", body: "aaaa bbbb" });
|
const n2 = await Note.save({ title: "iiii efgh bbbb", body: "aaaa bbbb" });
|
||||||
|
const n3 = await Note.save({ title: "Агентство Рейтер" });
|
||||||
|
const n4 = await Note.save({ title: "Dog" });
|
||||||
|
const n5 = await Note.save({ title: "СООБЩИЛО" });
|
||||||
|
|
||||||
|
await engine.syncTables();
|
||||||
|
|
||||||
rows = await engine.search('abcd ijkl');
|
rows = await engine.search('abcd ijkl');
|
||||||
expect(rows.length).toBe(1);
|
expect(rows.length).toBe(1);
|
||||||
@@ -122,10 +198,82 @@ describe('services_SearchEngine', function() {
|
|||||||
rows = await engine.search('body:bbbb iiii');
|
rows = await engine.search('body:bbbb iiii');
|
||||||
expect(rows.length).toBe(1);
|
expect(rows.length).toBe(1);
|
||||||
|
|
||||||
done();
|
rows = await engine.search('Рейтер');
|
||||||
});
|
expect(rows.length).toBe(1);
|
||||||
|
|
||||||
it('should parse normal query strings', async (done) => {
|
rows = await engine.search('рейтер');
|
||||||
|
expect(rows.length).toBe(1);
|
||||||
|
|
||||||
|
rows = await engine.search('Dog');
|
||||||
|
expect(rows.length).toBe(1);
|
||||||
|
|
||||||
|
rows = await engine.search('dog');
|
||||||
|
expect(rows.length).toBe(1);
|
||||||
|
|
||||||
|
rows = await engine.search('сообщило');
|
||||||
|
expect(rows.length).toBe(1);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should support queries with or without accents', asyncTest(async () => {
|
||||||
|
let rows;
|
||||||
|
const n1 = await Note.save({ title: "père noël" });
|
||||||
|
|
||||||
|
await engine.syncTables();
|
||||||
|
|
||||||
|
expect((await engine.search('père')).length).toBe(1);
|
||||||
|
expect((await engine.search('pere')).length).toBe(1);
|
||||||
|
expect((await engine.search('noe*')).length).toBe(1);
|
||||||
|
expect((await engine.search('noë*')).length).toBe(1);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should support queries with Chinese characters', asyncTest(async () => {
|
||||||
|
let rows;
|
||||||
|
const n1 = await Note.save({ title: "我是法国人" });
|
||||||
|
|
||||||
|
await engine.syncTables();
|
||||||
|
|
||||||
|
expect((await engine.search('我')).length).toBe(1);
|
||||||
|
expect((await engine.search('法国人')).length).toBe(1);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should support queries with Japanese characters', asyncTest(async () => {
|
||||||
|
let rows;
|
||||||
|
const n1 = await Note.save({ title: "私は日本語を話すことができません" });
|
||||||
|
|
||||||
|
await engine.syncTables();
|
||||||
|
|
||||||
|
expect((await engine.search('日本')).length).toBe(1);
|
||||||
|
expect((await engine.search('できません')).length).toBe(1);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should support queries with Korean characters', asyncTest(async () => {
|
||||||
|
let rows;
|
||||||
|
const n1 = await Note.save({ title: "이것은 한국말이다" });
|
||||||
|
|
||||||
|
await engine.syncTables();
|
||||||
|
|
||||||
|
expect((await engine.search('이것은')).length).toBe(1);
|
||||||
|
expect((await engine.search('말')).length).toBe(1);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should support field restricted queries with Chinese characters', asyncTest(async () => {
|
||||||
|
let rows;
|
||||||
|
const n1 = await Note.save({ title: "你好", body: "我是法国人" });
|
||||||
|
|
||||||
|
await engine.syncTables();
|
||||||
|
|
||||||
|
expect((await engine.search('title:你好*')).length).toBe(1);
|
||||||
|
expect((await engine.search('body:你好')).length).toBe(0);
|
||||||
|
expect((await engine.search('title:你好 body:法国人')).length).toBe(1);
|
||||||
|
expect((await engine.search('title:你好 body:bla')).length).toBe(0);
|
||||||
|
expect((await engine.search('title:你好 我是')).length).toBe(1);
|
||||||
|
expect((await engine.search('title:bla 我是')).length).toBe(0);
|
||||||
|
|
||||||
|
// For non-alpha char, only the first field is looked at, the following ones are ignored
|
||||||
|
expect((await engine.search('title:你好 title:hello')).length).toBe(1);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should parse normal query strings', asyncTest(async () => {
|
||||||
let rows;
|
let rows;
|
||||||
|
|
||||||
const testCases = [
|
const testCases = [
|
||||||
@@ -134,6 +282,7 @@ describe('services_SearchEngine', function() {
|
|||||||
['title:abcd efgh', { _: ['efgh'], title: ['abcd'] }],
|
['title:abcd efgh', { _: ['efgh'], title: ['abcd'] }],
|
||||||
['title:abcd', { title: ['abcd'] }],
|
['title:abcd', { title: ['abcd'] }],
|
||||||
['"abcd efgh"', { _: ['abcd efgh'] }],
|
['"abcd efgh"', { _: ['abcd efgh'] }],
|
||||||
|
['title:abcd title:efgh', { title: ['abcd', 'efgh'] }],
|
||||||
];
|
];
|
||||||
|
|
||||||
for (let i = 0; i < testCases.length; i++) {
|
for (let i = 0; i < testCases.length; i++) {
|
||||||
@@ -142,47 +291,36 @@ describe('services_SearchEngine', function() {
|
|||||||
const expected = t[1];
|
const expected = t[1];
|
||||||
const actual = engine.parseQuery(input);
|
const actual = engine.parseQuery(input);
|
||||||
|
|
||||||
expect(JSON.stringify(actual.terms._)).toBe(JSON.stringify(expected._));
|
const _Values = actual.terms._ ? actual.terms._.map(v => v.value) : undefined;
|
||||||
expect(JSON.stringify(actual.terms.title)).toBe(JSON.stringify(expected.title));
|
const titleValues = actual.terms.title ? actual.terms.title.map(v => v.value) : undefined;
|
||||||
expect(JSON.stringify(actual.terms.body)).toBe(JSON.stringify(expected.body));
|
const bodyValues = actual.terms.body ? actual.terms.body.map(v => v.value) : undefined;
|
||||||
|
|
||||||
|
expect(JSON.stringify(_Values)).toBe(JSON.stringify(expected._), 'Test case (_) ' + i);
|
||||||
|
expect(JSON.stringify(titleValues)).toBe(JSON.stringify(expected.title), 'Test case (title) ' + i);
|
||||||
|
expect(JSON.stringify(bodyValues)).toBe(JSON.stringify(expected.body), 'Test case (body) ' + i);
|
||||||
}
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
done();
|
it('should handle queries with special characters', asyncTest(async () => {
|
||||||
});
|
|
||||||
|
|
||||||
it('should parse query strings with wildcards', async (done) => {
|
|
||||||
let rows;
|
let rows;
|
||||||
|
|
||||||
const testCases = [
|
const testCases = [
|
||||||
['do*', ['do', 'dog', 'domino'], [] ],
|
['did-not-match', 'did-not-match'],
|
||||||
// "*" is a wildcard only when used at the end (to searhc for documents with the specified prefix)
|
['does match', 'does match'],
|
||||||
// If it's at the beginning, it's ignored, if it's in the middle, it's treated as a litteral "*".
|
|
||||||
['*an*', ['an', 'anneau'], ['piano', 'plan'] ],
|
|
||||||
['no*no', ['no*no'], ['nonono'] ],
|
|
||||||
];
|
];
|
||||||
|
|
||||||
for (let i = 0; i < testCases.length; i++) {
|
for (let i = 0; i < testCases.length; i++) {
|
||||||
const t = testCases[i];
|
const t = testCases[i];
|
||||||
const input = t[0];
|
const content = t[0];
|
||||||
const shouldMatch = t[1];
|
const query = t[1];
|
||||||
const shouldNotMatch = t[2];
|
|
||||||
const regex = new RegExp(engine.parseQuery(input).terms._[0].value, 'gmi');
|
|
||||||
|
|
||||||
for (let j = 0; j < shouldMatch.length; j++) {
|
const n = await Note.save({ title: content });
|
||||||
const r = shouldMatch[j].match(regex);
|
await engine.syncTables();
|
||||||
expect(!!r).toBe(true, '"' + input + '" should match "' + shouldMatch[j] + '"');
|
rows = await engine.search(query);
|
||||||
}
|
expect(rows.length).toBe(1);
|
||||||
|
|
||||||
// for (let j = 0; j < shouldNotMatch.length; j++) {
|
await Note.delete(n.id);
|
||||||
// const r = shouldNotMatch[j].match(regex);
|
|
||||||
// // console.info(input, shouldNotMatch)
|
|
||||||
// expect(!!r).toBe(false, '"' + input + '" should not match "' + shouldNotMatch[j] + '"');
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
}));
|
||||||
expect(engine.parseQuery('*').termCount).toBe(0);
|
|
||||||
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
});
|
||||||
@@ -170,6 +170,17 @@ describe('services_rest_Api', function() {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should create folders with supplied ID', async (done) => {
|
||||||
|
const response = await api.route('POST', 'folders', null, JSON.stringify({
|
||||||
|
id: '12345678123456781234567812345678',
|
||||||
|
title: 'from api',
|
||||||
|
}));
|
||||||
|
|
||||||
|
expect(response.id).toBe('12345678123456781234567812345678');
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
it('should create notes with images', async (done) => {
|
it('should create notes with images', async (done) => {
|
||||||
let response = null;
|
let response = null;
|
||||||
const f = await Folder.save({ title: "mon carnet" });
|
const f = await Folder.save({ title: "mon carnet" });
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
require('app-module-path').addPath(__dirname);
|
require('app-module-path').addPath(__dirname);
|
||||||
|
|
||||||
const { time } = require('lib/time-utils.js');
|
const { time } = require('lib/time-utils.js');
|
||||||
const { setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, encryptionService, loadEncryptionMasterKey, fileContentEqual, decryptionWorker, checkThrowAsync, asyncTest } = require('test-utils.js');
|
const { setupDatabase, allSyncTargetItemsEncrypted, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, encryptionService, loadEncryptionMasterKey, fileContentEqual, decryptionWorker, checkThrowAsync, asyncTest } = require('test-utils.js');
|
||||||
const { shim } = require('lib/shim.js');
|
const { shim } = require('lib/shim.js');
|
||||||
const fs = require('fs-extra');
|
const fs = require('fs-extra');
|
||||||
const Folder = require('lib/models/Folder.js');
|
const Folder = require('lib/models/Folder.js');
|
||||||
@@ -15,6 +15,7 @@ const MasterKey = require('lib/models/MasterKey');
|
|||||||
const BaseItem = require('lib/models/BaseItem.js');
|
const BaseItem = require('lib/models/BaseItem.js');
|
||||||
const BaseModel = require('lib/BaseModel.js');
|
const BaseModel = require('lib/BaseModel.js');
|
||||||
const SyncTargetRegistry = require('lib/SyncTargetRegistry.js');
|
const SyncTargetRegistry = require('lib/SyncTargetRegistry.js');
|
||||||
|
const WelcomeUtils = require('lib/WelcomeUtils');
|
||||||
|
|
||||||
process.on('unhandledRejection', (reason, p) => {
|
process.on('unhandledRejection', (reason, p) => {
|
||||||
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
||||||
@@ -28,38 +29,6 @@ async function allItems() {
|
|||||||
return folders.concat(notes);
|
return folders.concat(notes);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function allSyncTargetItemsEncrypted() {
|
|
||||||
const list = await fileApi().list();
|
|
||||||
const files = list.items;
|
|
||||||
|
|
||||||
//console.info(Setting.value('resourceDir'));
|
|
||||||
|
|
||||||
let totalCount = 0;
|
|
||||||
let encryptedCount = 0;
|
|
||||||
for (let i = 0; i < files.length; i++) {
|
|
||||||
const file = files[i];
|
|
||||||
const remoteContentString = await fileApi().get(file.path);
|
|
||||||
const remoteContent = await BaseItem.unserialize(remoteContentString);
|
|
||||||
const ItemClass = BaseItem.itemClass(remoteContent);
|
|
||||||
|
|
||||||
if (!ItemClass.encryptionSupported()) continue;
|
|
||||||
|
|
||||||
totalCount++;
|
|
||||||
|
|
||||||
if (remoteContent.type_ === BaseModel.TYPE_RESOURCE) {
|
|
||||||
const content = await fileApi().get('.resource/' + remoteContent.id);
|
|
||||||
totalCount++;
|
|
||||||
if (content.substr(0, 5) === 'JED01') output = encryptedCount++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!!remoteContent.encryption_applied) encryptedCount++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!totalCount) throw new Error('No encryptable item on sync target');
|
|
||||||
|
|
||||||
return totalCount === encryptedCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function localItemsSameAsRemote(locals, expect) {
|
async function localItemsSameAsRemote(locals, expect) {
|
||||||
let error = null;
|
let error = null;
|
||||||
try {
|
try {
|
||||||
@@ -1099,4 +1068,46 @@ describe('Synchronizer', function() {
|
|||||||
expect(note2.title).toBe("un UPDATE");
|
expect(note2.title).toBe("un UPDATE");
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
it("should create a new Welcome notebook on each client", asyncTest(async () => {
|
||||||
|
// Create the Welcome items on two separate clients
|
||||||
|
|
||||||
|
await WelcomeUtils.createWelcomeItems();
|
||||||
|
await synchronizer().start();
|
||||||
|
|
||||||
|
await switchClient(2);
|
||||||
|
|
||||||
|
await WelcomeUtils.createWelcomeItems();
|
||||||
|
const beforeFolderCount = (await Folder.all()).length;
|
||||||
|
const beforeNoteCount = (await Note.all()).length;
|
||||||
|
expect(beforeFolderCount === 1).toBe(true);
|
||||||
|
expect(beforeNoteCount > 1).toBe(true);
|
||||||
|
|
||||||
|
await synchronizer().start();
|
||||||
|
|
||||||
|
const afterFolderCount = (await Folder.all()).length;
|
||||||
|
const afterNoteCount = (await Note.all()).length;
|
||||||
|
|
||||||
|
expect(afterFolderCount).toBe(beforeFolderCount * 2);
|
||||||
|
expect(afterNoteCount).toBe(beforeNoteCount * 2);
|
||||||
|
|
||||||
|
// Changes to the Welcome items should be synced to all clients
|
||||||
|
|
||||||
|
const f1 = (await Folder.all())[0];
|
||||||
|
await Folder.save({ id: f1.id, title: 'Welcome MOD' });
|
||||||
|
|
||||||
|
await synchronizer().start();
|
||||||
|
|
||||||
|
await switchClient(1);
|
||||||
|
|
||||||
|
await synchronizer().start();
|
||||||
|
|
||||||
|
const f1_1 = await Folder.load(f1.id);
|
||||||
|
expect(f1_1.title).toBe('Welcome MOD');
|
||||||
|
|
||||||
|
// Now check that it created the duplicate tag
|
||||||
|
|
||||||
|
const tags = await Tag.modelSelectAll('SELECT * FROM tags WHERE title = "organising"');
|
||||||
|
expect(tags.length).toBe(2);
|
||||||
|
}));
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ const SyncTargetNextcloud = require('lib/SyncTargetNextcloud.js');
|
|||||||
const SyncTargetDropbox = require('lib/SyncTargetDropbox.js');
|
const SyncTargetDropbox = require('lib/SyncTargetDropbox.js');
|
||||||
const EncryptionService = require('lib/services/EncryptionService.js');
|
const EncryptionService = require('lib/services/EncryptionService.js');
|
||||||
const DecryptionWorker = require('lib/services/DecryptionWorker.js');
|
const DecryptionWorker = require('lib/services/DecryptionWorker.js');
|
||||||
|
const ResourceService = require('lib/services/ResourceService.js');
|
||||||
const WebDavApi = require('lib/WebDavApi');
|
const WebDavApi = require('lib/WebDavApi');
|
||||||
const DropboxApi = require('lib/DropboxApi');
|
const DropboxApi = require('lib/DropboxApi');
|
||||||
|
|
||||||
@@ -37,6 +38,7 @@ let databases_ = [];
|
|||||||
let synchronizers_ = [];
|
let synchronizers_ = [];
|
||||||
let encryptionServices_ = [];
|
let encryptionServices_ = [];
|
||||||
let decryptionWorkers_ = [];
|
let decryptionWorkers_ = [];
|
||||||
|
let resourceServices_ = [];
|
||||||
let fileApi_ = null;
|
let fileApi_ = null;
|
||||||
let currentClient_ = 1;
|
let currentClient_ = 1;
|
||||||
|
|
||||||
@@ -102,6 +104,8 @@ function sleep(n) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function switchClient(id) {
|
async function switchClient(id) {
|
||||||
|
if (!databases_[id]) throw new Error('Call setupDatabaseAndSynchronizer(' + id + ') first!!');
|
||||||
|
|
||||||
await time.msleep(sleepTime); // Always leave a little time so that updated_time properties don't overlap
|
await time.msleep(sleepTime); // Always leave a little time so that updated_time properties don't overlap
|
||||||
await Setting.saveAll();
|
await Setting.saveAll();
|
||||||
|
|
||||||
@@ -137,6 +141,7 @@ async function clearDatabase(id = null) {
|
|||||||
'DELETE FROM settings',
|
'DELETE FROM settings',
|
||||||
'DELETE FROM deleted_items',
|
'DELETE FROM deleted_items',
|
||||||
'DELETE FROM sync_items',
|
'DELETE FROM sync_items',
|
||||||
|
'DELETE FROM notes_normalized',
|
||||||
];
|
];
|
||||||
|
|
||||||
await databases_[id].transactionExecBatch(queries);
|
await databases_[id].transactionExecBatch(queries);
|
||||||
@@ -197,6 +202,7 @@ async function setupDatabaseAndSynchronizer(id = null) {
|
|||||||
encryptionServices_[id] = new EncryptionService();
|
encryptionServices_[id] = new EncryptionService();
|
||||||
decryptionWorkers_[id] = new DecryptionWorker();
|
decryptionWorkers_[id] = new DecryptionWorker();
|
||||||
decryptionWorkers_[id].setEncryptionService(encryptionServices_[id]);
|
decryptionWorkers_[id].setEncryptionService(encryptionServices_[id]);
|
||||||
|
resourceServices_[id] = new ResourceService();
|
||||||
|
|
||||||
await fileApi().clearRoot();
|
await fileApi().clearRoot();
|
||||||
}
|
}
|
||||||
@@ -221,6 +227,11 @@ function decryptionWorker(id = null) {
|
|||||||
return decryptionWorkers_[id];
|
return decryptionWorkers_[id];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function resourceService(id = null) {
|
||||||
|
if (id === null) id = currentClient_;
|
||||||
|
return resourceServices_[id];
|
||||||
|
}
|
||||||
|
|
||||||
async function loadEncryptionMasterKey(id = null, useExisting = false) {
|
async function loadEncryptionMasterKey(id = null, useExisting = false) {
|
||||||
const service = encryptionService(id);
|
const service = encryptionService(id);
|
||||||
|
|
||||||
@@ -313,4 +324,34 @@ function asyncTest(callback) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = { setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync, encryptionService, loadEncryptionMasterKey, fileContentEqual, decryptionWorker, asyncTest };
|
async function allSyncTargetItemsEncrypted() {
|
||||||
|
const list = await fileApi().list();
|
||||||
|
const files = list.items;
|
||||||
|
|
||||||
|
let totalCount = 0;
|
||||||
|
let encryptedCount = 0;
|
||||||
|
for (let i = 0; i < files.length; i++) {
|
||||||
|
const file = files[i];
|
||||||
|
const remoteContentString = await fileApi().get(file.path);
|
||||||
|
const remoteContent = await BaseItem.unserialize(remoteContentString);
|
||||||
|
const ItemClass = BaseItem.itemClass(remoteContent);
|
||||||
|
|
||||||
|
if (!ItemClass.encryptionSupported()) continue;
|
||||||
|
|
||||||
|
totalCount++;
|
||||||
|
|
||||||
|
if (remoteContent.type_ === BaseModel.TYPE_RESOURCE) {
|
||||||
|
const content = await fileApi().get('.resource/' + remoteContent.id);
|
||||||
|
totalCount++;
|
||||||
|
if (content.substr(0, 5) === 'JED01') output = encryptedCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!!remoteContent.encryption_applied) encryptedCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!totalCount) throw new Error('No encryptable item on sync target');
|
||||||
|
|
||||||
|
return totalCount === encryptedCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { resourceService, allSyncTargetItemsEncrypted, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync, encryptionService, loadEncryptionMasterKey, fileContentEqual, decryptionWorker, asyncTest };
|
||||||
1
CliClientDemo/.gitignore
vendored
1
CliClientDemo/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
node_modules
|
|
||||||
Binary file not shown.
@@ -1,31 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
const spawn = require('child_process').spawn;
|
|
||||||
const os = require('os');
|
|
||||||
const fs = require('fs-extra');
|
|
||||||
|
|
||||||
const joplinPath = __dirname + '/node_modules/.bin/joplin';
|
|
||||||
const profileDir = os.homedir() + '/.config/demo-joplin';
|
|
||||||
const dbFilename = 'database.sqlite';
|
|
||||||
|
|
||||||
fs.ensureDirSync(profileDir);
|
|
||||||
if (!fs.pathExistsSync(profileDir + '/' + dbFilename)) {
|
|
||||||
fs.copySync(__dirname + '/' + dbFilename, profileDir + '/' + dbFilename);
|
|
||||||
}
|
|
||||||
|
|
||||||
const opt = {
|
|
||||||
cwd: __dirname,
|
|
||||||
env: (function() {
|
|
||||||
process.env.NODE_PATH = '.';
|
|
||||||
return process.env;
|
|
||||||
}()),
|
|
||||||
stdio: [process.stdin, process.stdout, process.stderr]
|
|
||||||
};
|
|
||||||
|
|
||||||
const app = spawn(joplinPath, ['--is-demo', '--profile', profileDir], opt);
|
|
||||||
|
|
||||||
app.on('close', (code) => {
|
|
||||||
process.exit(code);
|
|
||||||
});
|
|
||||||
2124
CliClientDemo/package-lock.json
generated
2124
CliClientDemo/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -1,33 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "demo-joplin",
|
|
||||||
"version": "1.0.8",
|
|
||||||
"description": "Demo for Joplin CLI",
|
|
||||||
"bin": {
|
|
||||||
"demo-joplin": "./index.js"
|
|
||||||
},
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/laurent22/joplin/issues"
|
|
||||||
},
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/laurent22/joplin"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=8.7.0"
|
|
||||||
},
|
|
||||||
"copyright": {
|
|
||||||
"title": "Demo for Joplin CLI",
|
|
||||||
"years": [
|
|
||||||
2016,
|
|
||||||
2017,
|
|
||||||
2018
|
|
||||||
],
|
|
||||||
"owner": "Laurent Cozic"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"fs-extra": "^4.0.2",
|
|
||||||
"joplin": "^0.10.69"
|
|
||||||
},
|
|
||||||
"author": "Laurent Cozic",
|
|
||||||
"license": "MIT"
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
||||||
npm version patch
|
|
||||||
npm publish
|
|
||||||
@@ -30,6 +30,21 @@
|
|||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getImageSizes(element) {
|
||||||
|
const images = element.getElementsByTagName('img');
|
||||||
|
const output = {};
|
||||||
|
for (let i = 0; i < images.length; i++) {
|
||||||
|
const img = images[i];
|
||||||
|
output[img.src] = {
|
||||||
|
width: img.width,
|
||||||
|
height: img.height,
|
||||||
|
naturalWidth: img.naturalWidth,
|
||||||
|
naturalHeight: img.naturalHeight,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
// Cleans up element by removing all its invisible children (which we don't want to render as Markdown)
|
// Cleans up element by removing all its invisible children (which we don't want to render as Markdown)
|
||||||
function cleanUpElement(element) {
|
function cleanUpElement(element) {
|
||||||
const childNodes = element.childNodes;
|
const childNodes = element.childNodes;
|
||||||
@@ -74,7 +89,7 @@
|
|||||||
async function prepareCommandResponse(command) {
|
async function prepareCommandResponse(command) {
|
||||||
console.info('Got command: ' + command.name);
|
console.info('Got command: ' + command.name);
|
||||||
|
|
||||||
const clippedContentResponse = (title, html) => {
|
const clippedContentResponse = (title, html, imageSizes) => {
|
||||||
return {
|
return {
|
||||||
name: 'clippedContent',
|
name: 'clippedContent',
|
||||||
title: title,
|
title: title,
|
||||||
@@ -83,6 +98,7 @@
|
|||||||
url: location.origin + location.pathname + location.search,
|
url: location.origin + location.pathname + location.search,
|
||||||
parent_id: command.parent_id,
|
parent_id: command.parent_id,
|
||||||
tags: command.tags || '',
|
tags: command.tags || '',
|
||||||
|
image_sizes: imageSizes,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,20 +115,20 @@
|
|||||||
response.warning = 'Could not retrieve simplified version of page - full page has been saved instead.';
|
response.warning = 'Could not retrieve simplified version of page - full page has been saved instead.';
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
return clippedContentResponse(article.title, article.body);
|
return clippedContentResponse(article.title, article.body, getImageSizes(document));
|
||||||
|
|
||||||
} else if (command.name === "completePageHtml") {
|
} else if (command.name === "completePageHtml") {
|
||||||
|
|
||||||
const cleanDocument = document.body.cloneNode(true);
|
const cleanDocument = document.body.cloneNode(true);
|
||||||
cleanUpElement(cleanDocument);
|
cleanUpElement(cleanDocument);
|
||||||
return clippedContentResponse(pageTitle(), cleanDocument.innerHTML);
|
return clippedContentResponse(pageTitle(), cleanDocument.innerHTML, getImageSizes(document));
|
||||||
|
|
||||||
} else if (command.name === "selectedHtml") {
|
} else if (command.name === "selectedHtml") {
|
||||||
|
|
||||||
const range = window.getSelection().getRangeAt(0);
|
const range = window.getSelection().getRangeAt(0);
|
||||||
const container = document.createElement('div');
|
const container = document.createElement('div');
|
||||||
container.appendChild(range.cloneContents());
|
container.appendChild(range.cloneContents());
|
||||||
return clippedContentResponse(pageTitle(), container.innerHTML);
|
return clippedContentResponse(pageTitle(), container.innerHTML, getImageSizes(document));
|
||||||
|
|
||||||
} else if (command.name === 'screenshot') {
|
} else if (command.name === 'screenshot') {
|
||||||
|
|
||||||
@@ -233,6 +249,10 @@
|
|||||||
|
|
||||||
return {};
|
return {};
|
||||||
|
|
||||||
|
} else if (command.name === "pageUrl") {
|
||||||
|
let url = location.origin + location.pathname + location.search;
|
||||||
|
return clippedContentResponse(pageTitle(), url, getImageSizes(document));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
throw new Error('Unknown command: ' + JSON.stringify(command));
|
throw new Error('Unknown command: ' + JSON.stringify(command));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
{
|
{
|
||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"name": "Joplin Web Clipper [DEV]",
|
"name": "Joplin Web Clipper [DEV]",
|
||||||
"version": "1.0.7",
|
"version": "1.0.13",
|
||||||
"description": "Capture and save web pages and screenshots from your browser to Joplin.",
|
"description": "Capture and save web pages and screenshots from your browser to Joplin.",
|
||||||
"homepage_url": "https://joplin.cozic.net",
|
"homepage_url": "https://joplinapp.org",
|
||||||
|
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",
|
||||||
"icons": {
|
"icons": {
|
||||||
|
"32": "icons/32.png",
|
||||||
"48": "icons/48.png",
|
"48": "icons/48.png",
|
||||||
"96": "icons/96.png"
|
"96": "icons/96.png"
|
||||||
},
|
},
|
||||||
|
|||||||
1
Clipper/joplin-webclipper/popup/.env
Normal file
1
Clipper/joplin-webclipper/popup/.env
Normal file
@@ -0,0 +1 @@
|
|||||||
|
INLINE_RUNTIME_CHUNK=false
|
||||||
22036
Clipper/joplin-webclipper/popup/package-lock.json
generated
22036
Clipper/joplin-webclipper/popup/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@
|
|||||||
"react": "^16.3.2",
|
"react": "^16.3.2",
|
||||||
"react-dom": "^16.3.2",
|
"react-dom": "^16.3.2",
|
||||||
"react-redux": "^5.0.7",
|
"react-redux": "^5.0.7",
|
||||||
"react-scripts": "1.1.4",
|
"react-scripts": "^2.1.5",
|
||||||
"redux": "^4.0.0"
|
"redux": "^4.0.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -19,7 +19,13 @@
|
|||||||
"postinstall": "node scripts/postinstall.js"
|
"postinstall": "node scripts/postinstall.js"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"cra-build-watch": "^1.0.1",
|
"cra-build-watch": "^1.4.0",
|
||||||
"fs-extra": "^6.0.1"
|
"fs-extra": "^6.0.1"
|
||||||
}
|
},
|
||||||
|
"browserslist": [
|
||||||
|
">0.2%",
|
||||||
|
"not dead",
|
||||||
|
"not ie <= 11",
|
||||||
|
"not op_mini all"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ class AppComponent extends Component {
|
|||||||
this.state = ({
|
this.state = ({
|
||||||
contentScriptLoaded: false,
|
contentScriptLoaded: false,
|
||||||
selectedTags: [],
|
selectedTags: [],
|
||||||
|
contentScriptError: '',
|
||||||
});
|
});
|
||||||
|
|
||||||
this.confirm_click = () => {
|
this.confirm_click = () => {
|
||||||
@@ -49,6 +50,12 @@ class AppComponent extends Component {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.clipUrl_click = () => {
|
||||||
|
bridge().sendCommandToActiveTab({
|
||||||
|
name: 'pageUrl',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
this.clipScreenshot_click = async () => {
|
this.clipScreenshot_click = async () => {
|
||||||
try {
|
try {
|
||||||
const baseUrl = await bridge().clipperServerBaseUrl();
|
const baseUrl = await bridge().clipperServerBaseUrl();
|
||||||
@@ -67,7 +74,7 @@ class AppComponent extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.clipperServerHelpLink_click = () => {
|
this.clipperServerHelpLink_click = () => {
|
||||||
bridge().tabsCreate({ url: 'https://joplin.cozic.net/clipper' });
|
bridge().tabsCreate({ url: 'https://joplinapp.org/clipper/' });
|
||||||
}
|
}
|
||||||
|
|
||||||
this.folderSelect_change = (event) => {
|
this.folderSelect_change = (event) => {
|
||||||
@@ -120,7 +127,14 @@ class AppComponent extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async componentDidMount() {
|
async componentDidMount() {
|
||||||
await this.loadContentScripts();
|
try {
|
||||||
|
await this.loadContentScripts();
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Could not load content scripts', error);
|
||||||
|
this.setState({ contentScriptError: error.message });
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
this.setState({
|
this.setState({
|
||||||
contentScriptLoaded: true,
|
contentScriptLoaded: true,
|
||||||
});
|
});
|
||||||
@@ -160,7 +174,11 @@ class AppComponent extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
if (!this.state.contentScriptLoaded) return 'Loading...';
|
if (!this.state.contentScriptLoaded) {
|
||||||
|
let msg = 'Loading...';
|
||||||
|
if (this.state.contentScriptError) msg = 'The Joplin extension is not available on this tab due to: ' + this.state.contentScriptError;
|
||||||
|
return <div style={{padding: 10, fontSize: 12, maxWidth: 200}}>{msg}</div>;
|
||||||
|
}
|
||||||
|
|
||||||
const warningComponent = !this.props.warning ? null : <div className="Warning">{ this.props.warning }</div>
|
const warningComponent = !this.props.warning ? null : <div className="Warning">{ this.props.warning }</div>
|
||||||
|
|
||||||
@@ -192,12 +210,12 @@ class AppComponent extends Component {
|
|||||||
} else if (hasContent) {
|
} else if (hasContent) {
|
||||||
previewComponent = (
|
previewComponent = (
|
||||||
<div className="Preview">
|
<div className="Preview">
|
||||||
|
<a className={"Confirm Button"} onClick={this.confirm_click}>Confirm</a>
|
||||||
<h2>Preview:</h2>
|
<h2>Preview:</h2>
|
||||||
<input className={"Title"} value={content.title} onChange={this.contentTitle_change}/>
|
<input className={"Title"} value={content.title} onChange={this.contentTitle_change}/>
|
||||||
<div className={"BodyWrapper"}>
|
<div className={"BodyWrapper"}>
|
||||||
<div className={"Body"} dangerouslySetInnerHTML={{__html: content.body_html}}></div>
|
<div className={"Body"} dangerouslySetInnerHTML={{__html: content.body_html}}></div>
|
||||||
</div>
|
</div>
|
||||||
<a className={"Confirm Button"} onClick={this.confirm_click}>Confirm</a>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -296,6 +314,7 @@ class AppComponent extends Component {
|
|||||||
<li><a className="Button" onClick={this.clipComplete_click}>Clip complete page</a></li>
|
<li><a className="Button" onClick={this.clipComplete_click}>Clip complete page</a></li>
|
||||||
<li><a className="Button" onClick={this.clipSelection_click}>Clip selection</a></li>
|
<li><a className="Button" onClick={this.clipSelection_click}>Clip selection</a></li>
|
||||||
<li><a className="Button" onClick={this.clipScreenshot_click}>Clip screenshot</a></li>
|
<li><a className="Button" onClick={this.clipScreenshot_click}>Clip screenshot</a></li>
|
||||||
|
<li><a className="Button" onClick={this.clipUrl_click}>Clip URL</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
{ foldersComp() }
|
{ foldersComp() }
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ class Bridge {
|
|||||||
source_url: command.url,
|
source_url: command.url,
|
||||||
parent_id: command.parent_id,
|
parent_id: command.parent_id,
|
||||||
tags: command.tags || '',
|
tags: command.tags || '',
|
||||||
|
image_sizes: command.image_sizes || {},
|
||||||
};
|
};
|
||||||
|
|
||||||
this.dispatch({ type: 'CLIPPED_CONTENT_SET', content: content });
|
this.dispatch({ type: 'CLIPPED_CONTENT_SET', content: content });
|
||||||
|
|||||||
1
ElectronClient/.gitignore
vendored
1
ElectronClient/.gitignore
vendored
@@ -3,4 +3,5 @@ app/packageInfo.js
|
|||||||
dist/
|
dist/
|
||||||
app/lib/
|
app/lib/
|
||||||
app/gui/*.min.js
|
app/gui/*.min.js
|
||||||
|
app/plugins/*.min.js
|
||||||
.DS_Store
|
.DS_Store
|
||||||
@@ -54,11 +54,15 @@ class ElectronAppWrapper {
|
|||||||
y: windowState.y,
|
y: windowState.y,
|
||||||
width: windowState.width,
|
width: windowState.width,
|
||||||
height: windowState.height,
|
height: windowState.height,
|
||||||
|
backgroundColor: '#fff', // required to enable sub pixel rendering, can't be in css
|
||||||
|
webPreferences: {
|
||||||
|
nodeIntegration: true,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
// Linux icon workaround for bug https://github.com/electron-userland/electron-builder/issues/2098
|
// Linux icon workaround for bug https://github.com/electron-userland/electron-builder/issues/2098
|
||||||
// Fix: https://github.com/electron-userland/electron-builder/issues/2269
|
// Fix: https://github.com/electron-userland/electron-builder/issues/2269
|
||||||
if (shim.isLinux()) windowOptions.icon = __dirname + '/build/icons/128x128.png';
|
if (shim.isLinux()) windowOptions.icon = path.join(__dirname, '..', 'build/icons/128x128.png');
|
||||||
|
|
||||||
require('electron-context-menu')({
|
require('electron-context-menu')({
|
||||||
shouldShowMenu: (event, params) => {
|
shouldShowMenu: (event, params) => {
|
||||||
@@ -77,7 +81,7 @@ class ElectronAppWrapper {
|
|||||||
}))
|
}))
|
||||||
|
|
||||||
// Uncomment this to view errors if the application does not start
|
// Uncomment this to view errors if the application does not start
|
||||||
if (this.env_ === 'dev') this.win_.webContents.openDevTools();
|
// if (this.env_ === 'dev') this.win_.webContents.openDevTools();
|
||||||
|
|
||||||
this.win_.on('close', (event) => {
|
this.win_.on('close', (event) => {
|
||||||
// If it's on macOS, the app is completely closed only if the user chooses to close the app (willQuitApp_ will be true)
|
// If it's on macOS, the app is completely closed only if the user chooses to close the app (willQuitApp_ will be true)
|
||||||
@@ -191,19 +195,24 @@ class ElectronAppWrapper {
|
|||||||
ensureSingleInstance() {
|
ensureSingleInstance() {
|
||||||
if (this.env_ === 'dev') return false;
|
if (this.env_ === 'dev') return false;
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
const gotTheLock = this.electronApp_.requestSingleInstanceLock();
|
||||||
const alreadyRunning = this.electronApp_.makeSingleInstance((commandLine, workingDirectory) => {
|
|
||||||
const win = this.window();
|
|
||||||
if (!win) return;
|
|
||||||
if (win.isMinimized()) win.restore();
|
|
||||||
win.show();
|
|
||||||
win.focus();
|
|
||||||
});
|
|
||||||
|
|
||||||
if (alreadyRunning) this.electronApp_.quit();
|
if (!gotTheLock) {
|
||||||
|
// Another instance is already running - exit
|
||||||
|
this.electronApp_.quit();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
resolve(alreadyRunning);
|
// Someone tried to open a second instance - focus our window instead
|
||||||
|
this.electronApp_.on('second-instance', (event, commandLine, workingDirectory) => {
|
||||||
|
const win = this.window();
|
||||||
|
if (!win) return;
|
||||||
|
if (win.isMinimized()) win.restore();
|
||||||
|
win.show();
|
||||||
|
win.focus();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
async start() {
|
async start() {
|
||||||
@@ -211,8 +220,8 @@ class ElectronAppWrapper {
|
|||||||
// the "ready" event. So we use the function below to make sure that the app is ready.
|
// the "ready" event. So we use the function below to make sure that the app is ready.
|
||||||
await this.waitForElectronAppReady();
|
await this.waitForElectronAppReady();
|
||||||
|
|
||||||
const alreadyRunning = await this.ensureSingleInstance();
|
const alreadyRunning = this.ensureSingleInstance();
|
||||||
if (alreadyRunning) return;
|
if (alreadyRunning) return;
|
||||||
|
|
||||||
this.createWindow();
|
this.createWindow();
|
||||||
|
|
||||||
@@ -231,4 +240,4 @@ class ElectronAppWrapper {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = { ElectronAppWrapper };
|
module.exports = { ElectronAppWrapper };
|
||||||
|
|||||||
@@ -23,12 +23,16 @@ const DecryptionWorker = require('lib/services/DecryptionWorker');
|
|||||||
const InteropService = require('lib/services/InteropService');
|
const InteropService = require('lib/services/InteropService');
|
||||||
const InteropServiceHelper = require('./InteropServiceHelper.js');
|
const InteropServiceHelper = require('./InteropServiceHelper.js');
|
||||||
const ResourceService = require('lib/services/ResourceService');
|
const ResourceService = require('lib/services/ResourceService');
|
||||||
const SearchEngine = require('lib/services/SearchEngine');
|
|
||||||
const ClipperServer = require('lib/ClipperServer');
|
const ClipperServer = require('lib/ClipperServer');
|
||||||
const ExternalEditWatcher = require('lib/services/ExternalEditWatcher');
|
const ExternalEditWatcher = require('lib/services/ExternalEditWatcher');
|
||||||
const { bridge } = require('electron').remote.require('./bridge');
|
const { bridge } = require('electron').remote.require('./bridge');
|
||||||
const Menu = bridge().Menu;
|
const Menu = bridge().Menu;
|
||||||
const MenuItem = bridge().MenuItem;
|
const MenuItem = bridge().MenuItem;
|
||||||
|
const PluginManager = require('lib/services/PluginManager');
|
||||||
|
|
||||||
|
const pluginClasses = [
|
||||||
|
require('./plugins/GotoAnything.min'),
|
||||||
|
];
|
||||||
|
|
||||||
const appDefaultState = Object.assign({}, defaultState, {
|
const appDefaultState = Object.assign({}, defaultState, {
|
||||||
route: {
|
route: {
|
||||||
@@ -43,6 +47,7 @@ const appDefaultState = Object.assign({}, defaultState, {
|
|||||||
sidebarVisibility: true,
|
sidebarVisibility: true,
|
||||||
windowContentSize: bridge().windowContentSize(),
|
windowContentSize: bridge().windowContentSize(),
|
||||||
watchedNoteFiles: [],
|
watchedNoteFiles: [],
|
||||||
|
lastEditorScrollPercents: {},
|
||||||
});
|
});
|
||||||
|
|
||||||
class Application extends BaseApplication {
|
class Application extends BaseApplication {
|
||||||
@@ -172,6 +177,14 @@ class Application extends BaseApplication {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'EDITOR_SCROLL_PERCENT_SET':
|
||||||
|
|
||||||
|
newState = Object.assign({}, state);
|
||||||
|
const newPercents = Object.assign({}, newState.lastEditorScrollPercents);
|
||||||
|
newPercents[action.noteId] = action.percent;
|
||||||
|
newState.lastEditorScrollPercents = newPercents;
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
error.message = 'In reducer: ' + error.message + ' Action: ' + JSON.stringify(action);
|
error.message = 'In reducer: ' + error.message + ' Action: ' + JSON.stringify(action);
|
||||||
@@ -198,10 +211,6 @@ class Application extends BaseApplication {
|
|||||||
this.updateEditorFont();
|
this.updateEditorFont();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (["NOTE_UPDATE_ONE", "NOTE_DELETE", "FOLDER_UPDATE_ONE", "FOLDER_DELETE"].indexOf(action.type) >= 0) {
|
|
||||||
if (!await reg.syncTarget().syncStarted()) reg.scheduleSync(30 * 1000, { syncSteps: ["update_remote", "delete_remote"] });
|
|
||||||
}
|
|
||||||
|
|
||||||
if (['EVENT_NOTE_ALARM_FIELD_CHANGE', 'NOTE_DELETE'].indexOf(action.type) >= 0) {
|
if (['EVENT_NOTE_ALARM_FIELD_CHANGE', 'NOTE_DELETE'].indexOf(action.type) >= 0) {
|
||||||
await AlarmService.updateNoteNotification(action.id, action.type === 'NOTE_DELETE');
|
await AlarmService.updateNoteNotification(action.id, action.type === 'NOTE_DELETE');
|
||||||
}
|
}
|
||||||
@@ -230,27 +239,82 @@ class Application extends BaseApplication {
|
|||||||
this.updateMenu(screen);
|
this.updateMenu(screen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
focusElement_(target) {
|
||||||
|
this.dispatch({
|
||||||
|
type: 'WINDOW_COMMAND',
|
||||||
|
name: 'focusElement',
|
||||||
|
target: target,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
updateMenu(screen) {
|
updateMenu(screen) {
|
||||||
if (this.lastMenuScreen_ === screen) return;
|
if (this.lastMenuScreen_ === screen) return;
|
||||||
|
|
||||||
const sortNoteItems = [];
|
const sortNoteFolderItems = (type) => {
|
||||||
const sortNoteOptions = Setting.enumOptions('notes.sortOrder.field');
|
const sortItems = [];
|
||||||
for (let field in sortNoteOptions) {
|
const sortOptions = Setting.enumOptions(type + '.sortOrder.field');
|
||||||
if (!sortNoteOptions.hasOwnProperty(field)) continue;
|
for (let field in sortOptions) {
|
||||||
sortNoteItems.push({
|
if (!sortOptions.hasOwnProperty(field)) continue;
|
||||||
label: sortNoteOptions[field],
|
sortItems.push({
|
||||||
screens: ['Main'],
|
label: sortOptions[field],
|
||||||
|
screens: ['Main'],
|
||||||
|
type: 'checkbox',
|
||||||
|
checked: Setting.value(type + '.sortOrder.field') === field,
|
||||||
|
click: () => {
|
||||||
|
Setting.setValue(type + '.sortOrder.field', field);
|
||||||
|
this.refreshMenu();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
sortItems.push({ type: 'separator' });
|
||||||
|
|
||||||
|
sortItems.push({
|
||||||
|
label: Setting.settingMetadata(type + '.sortOrder.reverse').label(),
|
||||||
type: 'checkbox',
|
type: 'checkbox',
|
||||||
checked: Setting.value('notes.sortOrder.field') === field,
|
checked: Setting.value(type + '.sortOrder.reverse'),
|
||||||
|
screens: ['Main'],
|
||||||
click: () => {
|
click: () => {
|
||||||
Setting.setValue('notes.sortOrder.field', field);
|
Setting.setValue(type + '.sortOrder.reverse', !Setting.value(type + '.sortOrder.reverse'));
|
||||||
this.refreshMenu();
|
},
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return sortItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const sortNoteItems = sortNoteFolderItems('notes');
|
||||||
|
const sortFolderItems = sortNoteFolderItems('folders');
|
||||||
|
|
||||||
|
const focusItems = [];
|
||||||
|
|
||||||
|
focusItems.push({
|
||||||
|
label: _('Sidebar'),
|
||||||
|
click: () => { this.focusElement_('sideBar') },
|
||||||
|
accelerator: 'CommandOrControl+Shift+S',
|
||||||
|
});
|
||||||
|
|
||||||
|
focusItems.push({
|
||||||
|
label: _('Note list'),
|
||||||
|
click: () => { this.focusElement_('noteList') },
|
||||||
|
accelerator: 'CommandOrControl+Shift+L',
|
||||||
|
});
|
||||||
|
|
||||||
|
focusItems.push({
|
||||||
|
label: _('Note title'),
|
||||||
|
click: () => { this.focusElement_('noteTitle') },
|
||||||
|
accelerator: 'CommandOrControl+Shift+N',
|
||||||
|
});
|
||||||
|
|
||||||
|
focusItems.push({
|
||||||
|
label: _('Note body'),
|
||||||
|
click: () => { this.focusElement_('noteBody') },
|
||||||
|
accelerator: 'CommandOrControl+Shift+B',
|
||||||
|
});
|
||||||
|
|
||||||
const importItems = [];
|
const importItems = [];
|
||||||
const exportItems = [];
|
const exportItems = [];
|
||||||
|
const preferencesItems = [];
|
||||||
|
const toolsItemsFirst = [];
|
||||||
const ioService = new InteropService();
|
const ioService = new InteropService();
|
||||||
const ioModules = ioService.modules();
|
const ioModules = ioService.modules();
|
||||||
for (let i = 0; i < ioModules.length; i++) {
|
for (let i = 0; i < ioModules.length; i++) {
|
||||||
@@ -298,6 +362,9 @@ class Application extends BaseApplication {
|
|||||||
importOptions.path = path;
|
importOptions.path = path;
|
||||||
importOptions.format = module.format;
|
importOptions.format = module.format;
|
||||||
importOptions.destinationFolderId = !module.isNoteArchive && moduleSource === 'file' ? selectedFolderId : null;
|
importOptions.destinationFolderId = !module.isNoteArchive && moduleSource === 'file' ? selectedFolderId : null;
|
||||||
|
importOptions.onError = (error) => {
|
||||||
|
console.warn(error);
|
||||||
|
}
|
||||||
|
|
||||||
const service = new InteropService();
|
const service = new InteropService();
|
||||||
try {
|
try {
|
||||||
@@ -328,38 +395,203 @@ class Application extends BaseApplication {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const template = [
|
/* We need a dummy entry, otherwise the ternary operator to show a
|
||||||
{
|
* menu item only on a specific OS does not work. */
|
||||||
label: _('File'),
|
const noItem = {
|
||||||
submenu: [{
|
type: 'separator',
|
||||||
label: _('New note'),
|
visible: false
|
||||||
accelerator: 'CommandOrControl+N',
|
}
|
||||||
screens: ['Main'],
|
|
||||||
click: () => {
|
const syncStatusItem = {
|
||||||
this.dispatch({
|
label: _('Synchronisation status'),
|
||||||
type: 'WINDOW_COMMAND',
|
click: () => {
|
||||||
name: 'newNote',
|
this.dispatch({
|
||||||
});
|
type: 'NAV_GO',
|
||||||
}
|
routeName: 'Status',
|
||||||
}, {
|
});
|
||||||
label: _('New to-do'),
|
}
|
||||||
accelerator: 'CommandOrControl+T',
|
}
|
||||||
screens: ['Main'],
|
|
||||||
click: () => {
|
const newNoteItem = {
|
||||||
this.dispatch({
|
label: _('New note'),
|
||||||
type: 'WINDOW_COMMAND',
|
accelerator: 'CommandOrControl+N',
|
||||||
name: 'newTodo',
|
screens: ['Main'],
|
||||||
});
|
click: () => {
|
||||||
}
|
this.dispatch({
|
||||||
}, {
|
type: 'WINDOW_COMMAND',
|
||||||
label: _('New notebook'),
|
name: 'newNote',
|
||||||
screens: ['Main'],
|
});
|
||||||
click: () => {
|
}
|
||||||
this.dispatch({
|
}
|
||||||
type: 'WINDOW_COMMAND',
|
|
||||||
name: 'newNotebook',
|
const newTodoItem = {
|
||||||
});
|
label: _('New to-do'),
|
||||||
}
|
accelerator: 'CommandOrControl+T',
|
||||||
|
screens: ['Main'],
|
||||||
|
click: () => {
|
||||||
|
this.dispatch({
|
||||||
|
type: 'WINDOW_COMMAND',
|
||||||
|
name: 'newTodo',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const newNotebookItem = {
|
||||||
|
label: _('New notebook'),
|
||||||
|
screens: ['Main'],
|
||||||
|
click: () => {
|
||||||
|
this.dispatch({
|
||||||
|
type: 'WINDOW_COMMAND',
|
||||||
|
name: 'newNotebook',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const printItem = {
|
||||||
|
label: _('Print'),
|
||||||
|
accelerator: 'CommandOrControl+P',
|
||||||
|
screens: ['Main'],
|
||||||
|
click: () => {
|
||||||
|
this.dispatch({
|
||||||
|
type: 'WINDOW_COMMAND',
|
||||||
|
name: 'print',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
preferencesItems.push({
|
||||||
|
label: _('General Options'),
|
||||||
|
accelerator: 'CommandOrControl+,',
|
||||||
|
click: () => {
|
||||||
|
this.dispatch({
|
||||||
|
type: 'NAV_GO',
|
||||||
|
routeName: 'Config',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
label: _('Encryption options'),
|
||||||
|
click: () => {
|
||||||
|
this.dispatch({
|
||||||
|
type: 'NAV_GO',
|
||||||
|
routeName: 'EncryptionConfig',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
label: _('Web clipper options'),
|
||||||
|
click: () => {
|
||||||
|
this.dispatch({
|
||||||
|
type: 'NAV_GO',
|
||||||
|
routeName: 'ClipperConfig',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
toolsItemsFirst.push(syncStatusItem, {
|
||||||
|
type: 'separator',
|
||||||
|
screens: ['Main'],
|
||||||
|
});
|
||||||
|
|
||||||
|
const toolsItems = toolsItemsFirst.concat(preferencesItems);
|
||||||
|
|
||||||
|
function _checkForUpdates(ctx) {
|
||||||
|
bridge().checkForUpdates(false, bridge().window(), ctx.checkForUpdateLoggerPath(), { includePreReleases: Setting.value('autoUpdate.includePreReleases') });
|
||||||
|
}
|
||||||
|
|
||||||
|
function _showAbout() {
|
||||||
|
const p = packageInfo;
|
||||||
|
let message = [
|
||||||
|
p.description,
|
||||||
|
'',
|
||||||
|
'Copyright © 2016-2019 Laurent Cozic',
|
||||||
|
_('%s %s (%s, %s)', p.name, p.version, Setting.value('env'), process.platform),
|
||||||
|
];
|
||||||
|
bridge().showInfoMessageBox(message.join('\n'), {
|
||||||
|
icon: bridge().electronApp().buildDir() + '/icons/32x32.png',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const rootMenuFile = {
|
||||||
|
/* Using a dummy entry for macOS here, because first menu
|
||||||
|
* becomes 'Joplin' and we need a nenu called 'File' later. */
|
||||||
|
label: shim.isMac() ? '&JoplinMainMenu' : _('&File'),
|
||||||
|
/* `&` before one of the char in the label name mean, that
|
||||||
|
* <Alt + F> will open this menu. It's needed becase electron
|
||||||
|
* opens the first menu on Alt press if no hotkey assigned.
|
||||||
|
* Issue: https://github.com/laurent22/joplin/issues/934 */
|
||||||
|
submenu: [{
|
||||||
|
label: _('About Joplin'),
|
||||||
|
visible: shim.isMac() ? true : false,
|
||||||
|
click: () => _showAbout()
|
||||||
|
}, {
|
||||||
|
type: 'separator',
|
||||||
|
visible: shim.isMac() ? true : false
|
||||||
|
}, {
|
||||||
|
label: _('Preferences...'),
|
||||||
|
visible: shim.isMac() ? true : false,
|
||||||
|
submenu: preferencesItems
|
||||||
|
}, {
|
||||||
|
label: _('Check for updates...'),
|
||||||
|
visible: shim.isMac() ? true : false,
|
||||||
|
click: () => _checkForUpdates(this)
|
||||||
|
}, {
|
||||||
|
type: 'separator',
|
||||||
|
visible: shim.isMac() ? true : false
|
||||||
|
},
|
||||||
|
shim.isMac() ? noItem : newNoteItem,
|
||||||
|
shim.isMac() ? noItem : newTodoItem,
|
||||||
|
shim.isMac() ? noItem : newNotebookItem, {
|
||||||
|
type: 'separator',
|
||||||
|
visible: shim.isMac() ? false : true
|
||||||
|
}, {
|
||||||
|
label: _('Import'),
|
||||||
|
visible: shim.isMac() ? false : true,
|
||||||
|
submenu: importItems,
|
||||||
|
}, {
|
||||||
|
label: _('Export'),
|
||||||
|
visible: shim.isMac() ? false : true,
|
||||||
|
submenu: exportItems,
|
||||||
|
}, {
|
||||||
|
type: 'separator',
|
||||||
|
}, {
|
||||||
|
label: _('Synchronise'),
|
||||||
|
accelerator: 'CommandOrControl+S',
|
||||||
|
screens: ['Main'],
|
||||||
|
click: async () => {
|
||||||
|
this.dispatch({
|
||||||
|
type: 'WINDOW_COMMAND',
|
||||||
|
name: 'synchronize',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, shim.isMac() ? syncStatusItem : noItem, {
|
||||||
|
type: 'separator',
|
||||||
|
}, shim.isMac() ? noItem : printItem, {
|
||||||
|
type: 'separator',
|
||||||
|
platforms: ['darwin'],
|
||||||
|
}, {
|
||||||
|
label: _('Hide %s', 'Joplin'),
|
||||||
|
platforms: ['darwin'],
|
||||||
|
accelerator: 'CommandOrControl+H',
|
||||||
|
click: () => { bridge().electronApp().hide() }
|
||||||
|
}, {
|
||||||
|
type: 'separator',
|
||||||
|
}, {
|
||||||
|
label: _('Quit'),
|
||||||
|
accelerator: 'CommandOrControl+Q',
|
||||||
|
click: () => { bridge().electronApp().quit() }
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
|
||||||
|
const rootMenuFileMacOs = {
|
||||||
|
label: _('&File'),
|
||||||
|
visible: shim.isMac() ? true : false,
|
||||||
|
submenu: [
|
||||||
|
newNoteItem,
|
||||||
|
newTodoItem,
|
||||||
|
newNotebookItem, {
|
||||||
|
label: _('Close Window'),
|
||||||
|
platforms: ['darwin'],
|
||||||
|
accelerator: 'Command+W',
|
||||||
|
selector: 'performClose:',
|
||||||
}, {
|
}, {
|
||||||
type: 'separator',
|
type: 'separator',
|
||||||
}, {
|
}, {
|
||||||
@@ -370,33 +602,14 @@ class Application extends BaseApplication {
|
|||||||
submenu: exportItems,
|
submenu: exportItems,
|
||||||
}, {
|
}, {
|
||||||
type: 'separator',
|
type: 'separator',
|
||||||
}, {
|
},
|
||||||
label: _('Print'),
|
printItem
|
||||||
accelerator: 'CommandOrControl+P',
|
]
|
||||||
screens: ['Main'],
|
};
|
||||||
click: () => {
|
|
||||||
this.dispatch({
|
const rootMenus = {
|
||||||
type: 'WINDOW_COMMAND',
|
edit: {
|
||||||
name: 'print',
|
label: _('&Edit'),
|
||||||
});
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
type: 'separator',
|
|
||||||
platforms: ['darwin'],
|
|
||||||
}, {
|
|
||||||
label: _('Hide %s', 'Joplin'),
|
|
||||||
platforms: ['darwin'],
|
|
||||||
accelerator: 'CommandOrControl+H',
|
|
||||||
click: () => { bridge().electronApp().hide() }
|
|
||||||
}, {
|
|
||||||
type: 'separator',
|
|
||||||
}, {
|
|
||||||
label: _('Quit'),
|
|
||||||
accelerator: 'CommandOrControl+Q',
|
|
||||||
click: () => { bridge().electronApp().quit() }
|
|
||||||
}]
|
|
||||||
}, {
|
|
||||||
label: _('Edit'),
|
|
||||||
submenu: [{
|
submenu: [{
|
||||||
label: _('Copy'),
|
label: _('Copy'),
|
||||||
role: 'copy',
|
role: 'copy',
|
||||||
@@ -436,10 +649,22 @@ class Application extends BaseApplication {
|
|||||||
name: 'textItalic',
|
name: 'textItalic',
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
}, {
|
||||||
|
label: _('Link'),
|
||||||
|
screens: ['Main'],
|
||||||
|
accelerator: 'CommandOrControl+K',
|
||||||
|
click: () => {
|
||||||
|
this.dispatch({
|
||||||
|
type: 'WINDOW_COMMAND',
|
||||||
|
name: 'textLink',
|
||||||
|
});
|
||||||
|
},
|
||||||
|
}, {
|
||||||
|
type: 'separator',
|
||||||
|
screens: ['Main'],
|
||||||
}, {
|
}, {
|
||||||
label: _('Insert Date Time'),
|
label: _('Insert Date Time'),
|
||||||
screens: ['Main'],
|
screens: ['Main'],
|
||||||
visible: false,
|
|
||||||
accelerator: 'CommandOrControl+Shift+T',
|
accelerator: 'CommandOrControl+Shift+T',
|
||||||
click: () => {
|
click: () => {
|
||||||
this.dispatch({
|
this.dispatch({
|
||||||
@@ -466,7 +691,7 @@ class Application extends BaseApplication {
|
|||||||
}, {
|
}, {
|
||||||
label: _('Search in all the notes'),
|
label: _('Search in all the notes'),
|
||||||
screens: ['Main'],
|
screens: ['Main'],
|
||||||
accelerator: 'F6',
|
accelerator: shim.isMac() ? 'Shift+Command+F' : 'F6',
|
||||||
click: () => {
|
click: () => {
|
||||||
this.dispatch({
|
this.dispatch({
|
||||||
type: 'WINDOW_COMMAND',
|
type: 'WINDOW_COMMAND',
|
||||||
@@ -484,12 +709,13 @@ class Application extends BaseApplication {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
}],
|
}],
|
||||||
}, {
|
},
|
||||||
label: _('View'),
|
view: {
|
||||||
|
label: _('&View'),
|
||||||
submenu: [{
|
submenu: [{
|
||||||
label: _('Toggle sidebar'),
|
label: _('Toggle sidebar'),
|
||||||
screens: ['Main'],
|
screens: ['Main'],
|
||||||
accelerator: 'F10',
|
accelerator: shim.isMac() ? 'Option+Command+S' : 'F10',
|
||||||
click: () => {
|
click: () => {
|
||||||
this.dispatch({
|
this.dispatch({
|
||||||
type: 'WINDOW_COMMAND',
|
type: 'WINDOW_COMMAND',
|
||||||
@@ -514,13 +740,9 @@ class Application extends BaseApplication {
|
|||||||
screens: ['Main'],
|
screens: ['Main'],
|
||||||
submenu: sortNoteItems,
|
submenu: sortNoteItems,
|
||||||
}, {
|
}, {
|
||||||
label: Setting.settingMetadata('notes.sortOrder.reverse').label(),
|
label: Setting.settingMetadata('folders.sortOrder.field').label(),
|
||||||
type: 'checkbox',
|
|
||||||
checked: Setting.value('notes.sortOrder.reverse'),
|
|
||||||
screens: ['Main'],
|
screens: ['Main'],
|
||||||
click: () => {
|
submenu: sortFolderItems,
|
||||||
Setting.setValue('notes.sortOrder.reverse', !Setting.value('notes.sortOrder.reverse'));
|
|
||||||
},
|
|
||||||
}, {
|
}, {
|
||||||
label: Setting.settingMetadata('uncompletedTodosOnTop').label(),
|
label: Setting.settingMetadata('uncompletedTodosOnTop').label(),
|
||||||
type: 'checkbox',
|
type: 'checkbox',
|
||||||
@@ -537,81 +759,67 @@ class Application extends BaseApplication {
|
|||||||
click: () => {
|
click: () => {
|
||||||
Setting.setValue('showCompletedTodos', !Setting.value('showCompletedTodos'));
|
Setting.setValue('showCompletedTodos', !Setting.value('showCompletedTodos'));
|
||||||
},
|
},
|
||||||
}],
|
|
||||||
}, {
|
|
||||||
label: _('Tools'),
|
|
||||||
submenu: [{
|
|
||||||
label: _('Synchronisation status'),
|
|
||||||
click: () => {
|
|
||||||
this.dispatch({
|
|
||||||
type: 'NAV_GO',
|
|
||||||
routeName: 'Status',
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}, {
|
}, {
|
||||||
type: 'separator',
|
type: 'separator',
|
||||||
screens: ['Main'],
|
screens: ['Main'],
|
||||||
},{
|
}, {
|
||||||
label: _('Web clipper options'),
|
label: _('Focus'),
|
||||||
click: () => {
|
screens: ['Main'],
|
||||||
this.dispatch({
|
submenu: focusItems,
|
||||||
type: 'NAV_GO',
|
|
||||||
routeName: 'ClipperConfig',
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},{
|
|
||||||
label: _('Encryption options'),
|
|
||||||
click: () => {
|
|
||||||
this.dispatch({
|
|
||||||
type: 'NAV_GO',
|
|
||||||
routeName: 'EncryptionConfig',
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},{
|
|
||||||
label: _('General Options'),
|
|
||||||
accelerator: 'CommandOrControl+,',
|
|
||||||
click: () => {
|
|
||||||
this.dispatch({
|
|
||||||
type: 'NAV_GO',
|
|
||||||
routeName: 'Config',
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}],
|
}],
|
||||||
}, {
|
},
|
||||||
label: _('Help'),
|
tools: {
|
||||||
|
label: _('&Tools'),
|
||||||
|
submenu: shim.isMac() ? [] : toolsItems,
|
||||||
|
},
|
||||||
|
help: {
|
||||||
|
label: _('&Help'),
|
||||||
submenu: [{
|
submenu: [{
|
||||||
label: _('Website and documentation'),
|
label: _('Website and documentation'),
|
||||||
accelerator: 'F1',
|
accelerator: 'F1',
|
||||||
click () { bridge().openExternal('https://joplin.cozic.net') }
|
click () { bridge().openExternal('https://joplinapp.org') }
|
||||||
}, {
|
}, {
|
||||||
label: _('Make a donation'),
|
label: _('Make a donation'),
|
||||||
click () { bridge().openExternal('https://joplin.cozic.net/donate') }
|
click () { bridge().openExternal('https://joplinapp.org/donate/') }
|
||||||
}, {
|
}, {
|
||||||
label: _('Check for updates...'),
|
label: _('Check for updates...'),
|
||||||
click: () => {
|
visible: shim.isMac() ? false : true,
|
||||||
bridge().checkForUpdates(false, bridge().window(), this.checkForUpdateLoggerPath());
|
click: () => _checkForUpdates(this)
|
||||||
}
|
|
||||||
}, {
|
}, {
|
||||||
type: 'separator',
|
type: 'separator',
|
||||||
|
visible: shim.isMac() ? false : true,
|
||||||
screens: ['Main'],
|
screens: ['Main'],
|
||||||
}, {
|
}, {
|
||||||
label: _('About Joplin'),
|
label: _('About Joplin'),
|
||||||
click: () => {
|
visible: shim.isMac() ? false : true,
|
||||||
const p = packageInfo;
|
click: () => _showAbout()
|
||||||
let message = [
|
|
||||||
p.description,
|
|
||||||
'',
|
|
||||||
'Copyright © 2016-2018 Laurent Cozic',
|
|
||||||
_('%s %s (%s, %s)', p.name, p.version, Setting.value('env'), process.platform),
|
|
||||||
];
|
|
||||||
bridge().showInfoMessageBox(message.join('\n'), {
|
|
||||||
icon: bridge().electronApp().buildDir() + '/icons/32x32.png',
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
if (shim.isMac()) {
|
||||||
|
rootMenus.macOsApp = rootMenuFile;
|
||||||
|
rootMenus.file = rootMenuFileMacOs;
|
||||||
|
} else {
|
||||||
|
rootMenus.file = rootMenuFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
const pluginMenuItems = PluginManager.instance().menuItems();
|
||||||
|
for (const item of pluginMenuItems) {
|
||||||
|
let itemParent = rootMenus[item.parent] ? rootMenus[item.parent] : 'tools';
|
||||||
|
itemParent.submenu.push(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
const template = [
|
||||||
|
rootMenus.file,
|
||||||
|
rootMenus.edit,
|
||||||
|
rootMenus.view,
|
||||||
|
rootMenus.tools,
|
||||||
|
rootMenus.help,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
if (shim.isMac()) template.splice(0, 0, rootMenus.macOsApp);
|
||||||
|
|
||||||
function isEmptyMenu(template) {
|
function isEmptyMenu(template) {
|
||||||
for (let i = 0; i < template.length; i++) {
|
for (let i = 0; i < template.length; i++) {
|
||||||
const t = template[i];
|
const t = template[i];
|
||||||
@@ -725,6 +933,10 @@ class Application extends BaseApplication {
|
|||||||
bridge().window().webContents.openDevTools();
|
bridge().window().webContents.openDevTools();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PluginManager.instance().dispatch_ = this.dispatch.bind(this);
|
||||||
|
PluginManager.instance().setLogger(reg.logger());
|
||||||
|
PluginManager.instance().register(pluginClasses);
|
||||||
|
|
||||||
this.updateMenu('Main');
|
this.updateMenu('Main');
|
||||||
|
|
||||||
this.initRedux();
|
this.initRedux();
|
||||||
@@ -772,7 +984,7 @@ class Application extends BaseApplication {
|
|||||||
if (shim.isWindows() || shim.isMac()) {
|
if (shim.isWindows() || shim.isMac()) {
|
||||||
const runAutoUpdateCheck = () => {
|
const runAutoUpdateCheck = () => {
|
||||||
if (Setting.value('autoUpdateEnabled')) {
|
if (Setting.value('autoUpdateEnabled')) {
|
||||||
bridge().checkForUpdates(true, bridge().window(), this.checkForUpdateLoggerPath());
|
bridge().checkForUpdates(true, bridge().window(), this.checkForUpdateLoggerPath(), { includePreReleases: Setting.value('autoUpdate.includePreReleases') });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -794,9 +1006,6 @@ class Application extends BaseApplication {
|
|||||||
|
|
||||||
ResourceService.runInBackground();
|
ResourceService.runInBackground();
|
||||||
|
|
||||||
SearchEngine.instance().setDb(reg.db());
|
|
||||||
SearchEngine.instance().setLogger(reg.logger());
|
|
||||||
|
|
||||||
if (Setting.value('env') === 'dev') {
|
if (Setting.value('env') === 'dev') {
|
||||||
AlarmService.updateAllNotifications();
|
AlarmService.updateAllNotifications();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -116,9 +116,9 @@ class Bridge {
|
|||||||
return require('electron').shell.openItem(fullPath)
|
return require('electron').shell.openItem(fullPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
checkForUpdates(inBackground, window, logFilePath) {
|
checkForUpdates(inBackground, window, logFilePath, options) {
|
||||||
const { checkForUpdates } = require('./checkForUpdates.js');
|
const { checkForUpdates } = require('./checkForUpdates.js');
|
||||||
checkForUpdates(inBackground, window, logFilePath);
|
checkForUpdates(inBackground, window, logFilePath, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,15 +29,35 @@ function onCheckEnded() {
|
|||||||
isCheckingForUpdate_ = false;
|
isCheckingForUpdate_ = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function fetchLatestRelease() {
|
async function fetchLatestRelease(options) {
|
||||||
const response = await fetch('https://api.github.com/repos/laurent22/joplin/releases/latest');
|
options = Object.assign({}, { includePreReleases: false }, options);
|
||||||
|
|
||||||
if (!response.ok) {
|
let json = null;
|
||||||
const responseText = await response.text();
|
|
||||||
throw new Error('Cannot get latest release info: ' + responseText.substr(0,500));
|
if (options.includePreReleases) {
|
||||||
|
// This end-point will include all releases, including pre-releases (but not draft), so we take
|
||||||
|
// whatever is the latest release. It might be the same as releases/latest, or it might be
|
||||||
|
// a pre-release.
|
||||||
|
const response = await fetch('https://api.github.com/repos/laurent22/joplin/releases');
|
||||||
|
|
||||||
|
if (!response.ok) {
|
||||||
|
const responseText = await response.text();
|
||||||
|
throw new Error('Cannot get latest release info: ' + responseText.substr(0,500));
|
||||||
|
}
|
||||||
|
|
||||||
|
json = await response.json();
|
||||||
|
if (!json.length) throw new Error('Cannot get latest release info: ' + responseText.substr(0,500));
|
||||||
|
json = json[0];
|
||||||
|
} else {
|
||||||
|
const response = await fetch('https://api.github.com/repos/laurent22/joplin/releases/latest');
|
||||||
|
|
||||||
|
if (!response.ok) {
|
||||||
|
const responseText = await response.text();
|
||||||
|
throw new Error('Cannot get latest release info: ' + responseText.substr(0,500));
|
||||||
|
}
|
||||||
|
|
||||||
|
json = await response.json();
|
||||||
}
|
}
|
||||||
|
|
||||||
const json = await response.json();
|
|
||||||
|
|
||||||
const version = json.tag_name.substr(1);
|
const version = json.tag_name.substr(1);
|
||||||
let downloadUrl = null;
|
let downloadUrl = null;
|
||||||
@@ -69,10 +89,11 @@ async function fetchLatestRelease() {
|
|||||||
downloadUrl: downloadUrl,
|
downloadUrl: downloadUrl,
|
||||||
notes: json.body,
|
notes: json.body,
|
||||||
pageUrl: json.html_url,
|
pageUrl: json.html_url,
|
||||||
|
prerelease: json.prerelease,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkForUpdates(inBackground, window, logFilePath) {
|
function checkForUpdates(inBackground, window, logFilePath, options) {
|
||||||
if (isCheckingForUpdate_) {
|
if (isCheckingForUpdate_) {
|
||||||
autoUpdateLogger_.info('checkForUpdates: Skipping check because it is already running');
|
autoUpdateLogger_.info('checkForUpdates: Skipping check because it is already running');
|
||||||
return;
|
return;
|
||||||
@@ -91,18 +112,26 @@ function checkForUpdates(inBackground, window, logFilePath) {
|
|||||||
|
|
||||||
checkInBackground_ = inBackground;
|
checkInBackground_ = inBackground;
|
||||||
|
|
||||||
fetchLatestRelease().then(release => {
|
autoUpdateLogger_.info('checkForUpdates: Checking with options ' + JSON.stringify(options));
|
||||||
|
|
||||||
|
fetchLatestRelease(options).then(release => {
|
||||||
autoUpdateLogger_.info('Current version: ' + packageInfo.version);
|
autoUpdateLogger_.info('Current version: ' + packageInfo.version);
|
||||||
autoUpdateLogger_.info('Latest version: ' + release.version);
|
autoUpdateLogger_.info('Latest version: ' + release.version);
|
||||||
|
autoUpdateLogger_.info('Is Pre-release:', release.prerelease);
|
||||||
|
|
||||||
if (compareVersions(release.version, packageInfo.version) <= 0) {
|
if (compareVersions(release.version, packageInfo.version) <= 0) {
|
||||||
if (!checkInBackground_) dialog.showMessageBox({ message: _('Current version is up-to-date.') })
|
if (!checkInBackground_) dialog.showMessageBox({
|
||||||
|
type: 'info',
|
||||||
|
message: _('Current version is up-to-date.'),
|
||||||
|
buttons: [_('OK')],
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
const releaseNotes = release.notes.trim() ? "\n\n" + release.notes.trim() : '';
|
const releaseNotes = release.notes.trim() ? "\n\n" + release.notes.trim() : '';
|
||||||
|
const newVersionString = release.prerelease ? _('%s (pre-release)', release.version) : release.version;
|
||||||
|
|
||||||
const buttonIndex = dialog.showMessageBox(parentWindow_, {
|
const buttonIndex = dialog.showMessageBox(parentWindow_, {
|
||||||
type: 'info',
|
type: 'info',
|
||||||
message: _('An update is available, do you want to download it now?' + releaseNotes),
|
message: _('An update is available, do you want to download it now?') + '\n\n' + _('Your version: %s', packageInfo.version) + '\n' + _('New version: %s', newVersionString) + releaseNotes,
|
||||||
buttons: [_('Yes'), _('No')]
|
buttons: [_('Yes'), _('No')]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,40 +0,0 @@
|
|||||||
const fs = require('fs-extra');
|
|
||||||
const spawnSync = require('child_process').spawnSync;
|
|
||||||
|
|
||||||
const babelPath = __dirname + '/node_modules/.bin/babel' + (process.platform === 'win32' ? '.cmd' : '');
|
|
||||||
const guiPath = __dirname + '/gui';
|
|
||||||
|
|
||||||
function fileIsNewerThan(path1, path2) {
|
|
||||||
if (!fs.existsSync(path2)) return true;
|
|
||||||
|
|
||||||
const stat1 = fs.statSync(path1);
|
|
||||||
const stat2 = fs.statSync(path2);
|
|
||||||
|
|
||||||
return stat1.mtime > stat2.mtime;
|
|
||||||
}
|
|
||||||
|
|
||||||
fs.readdirSync(guiPath).forEach((filename) => {
|
|
||||||
const jsxPath = guiPath + '/' + filename;
|
|
||||||
const p = jsxPath.split('.');
|
|
||||||
if (p.length <= 1) return;
|
|
||||||
const ext = p[p.length - 1];
|
|
||||||
if (ext !== 'jsx') return;
|
|
||||||
p.pop();
|
|
||||||
|
|
||||||
const basePath = p.join('.');
|
|
||||||
|
|
||||||
const jsPath = basePath + '.min.js';
|
|
||||||
|
|
||||||
if (fileIsNewerThan(jsxPath, jsPath)) {
|
|
||||||
console.info('Compiling ' + jsxPath + '...');
|
|
||||||
const result = spawnSync(babelPath, ['--presets', 'react', '--out-file',jsPath, jsxPath]);
|
|
||||||
if (result.status !== 0) {
|
|
||||||
const msg = [];
|
|
||||||
if (result.stdout) msg.push(result.stdout.toString());
|
|
||||||
if (result.stderr) msg.push(result.stderr.toString());
|
|
||||||
console.error(msg.join('\n'));
|
|
||||||
if (result.error) console.error(result.error);
|
|
||||||
process.exit(result.status);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
53
ElectronClient/app/compile.js
Normal file
53
ElectronClient/app/compile.js
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
const fs = require('fs-extra');
|
||||||
|
const spawnSync = require('child_process').spawnSync;
|
||||||
|
|
||||||
|
const babelPath = __dirname + '/node_modules/.bin/babel' + (process.platform === 'win32' ? '.cmd' : '');
|
||||||
|
const basePath = __dirname + '/../..';
|
||||||
|
|
||||||
|
function fileIsNewerThan(path1, path2) {
|
||||||
|
if (!fs.existsSync(path2)) return true;
|
||||||
|
|
||||||
|
const stat1 = fs.statSync(path1);
|
||||||
|
const stat2 = fs.statSync(path2);
|
||||||
|
|
||||||
|
return stat1.mtime > stat2.mtime;
|
||||||
|
}
|
||||||
|
|
||||||
|
function convertJsx(path) {
|
||||||
|
fs.readdirSync(path).forEach((filename) => {
|
||||||
|
const jsxPath = path + '/' + filename;
|
||||||
|
const p = jsxPath.split('.');
|
||||||
|
if (p.length <= 1) return;
|
||||||
|
const ext = p[p.length - 1];
|
||||||
|
if (ext !== 'jsx') return;
|
||||||
|
p.pop();
|
||||||
|
|
||||||
|
const basePath = p.join('.');
|
||||||
|
|
||||||
|
const jsPath = basePath + '.min.js';
|
||||||
|
|
||||||
|
if (fileIsNewerThan(jsxPath, jsPath)) {
|
||||||
|
console.info('Compiling ' + jsxPath + '...');
|
||||||
|
const result = spawnSync(babelPath, ['--presets', 'react', '--out-file', jsPath, jsxPath]);
|
||||||
|
if (result.status !== 0) {
|
||||||
|
const msg = [];
|
||||||
|
if (result.stdout) msg.push(result.stdout.toString());
|
||||||
|
if (result.stderr) msg.push(result.stderr.toString());
|
||||||
|
console.error(msg.join('\n'));
|
||||||
|
if (result.error) console.error(result.error);
|
||||||
|
process.exit(result.status);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
convertJsx(__dirname + '/gui');
|
||||||
|
convertJsx(__dirname + '/plugins');
|
||||||
|
|
||||||
|
const libContent = [
|
||||||
|
fs.readFileSync(basePath + '/ReactNativeClient/lib/string-utils-common.js', 'utf8'),
|
||||||
|
fs.readFileSync(basePath + '/ReactNativeClient/lib/markJsUtils.js', 'utf8'),
|
||||||
|
fs.readFileSync(basePath + '/ReactNativeClient/lib/MdToHtml/webviewLib.js', 'utf8'),
|
||||||
|
];
|
||||||
|
|
||||||
|
fs.writeFileSync(__dirname + '/gui/note-viewer/lib.js', libContent.join('\n'), 'utf8');
|
||||||
50
ElectronClient/app/electronRebuild.js
Normal file
50
ElectronClient/app/electronRebuild.js
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
const execCommand = function(command) {
|
||||||
|
const exec = require('child_process').exec
|
||||||
|
|
||||||
|
console.info('Running: ' + command);
|
||||||
|
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
let childProcess = exec(command, (error, stdout, stderr) => {
|
||||||
|
if (error) {
|
||||||
|
if (error.signal == 'SIGTERM') {
|
||||||
|
resolve('Process was killed');
|
||||||
|
} else {
|
||||||
|
reject(error);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
resolve(stdout.trim());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const isLinux = () => {
|
||||||
|
return process && process.platform === 'linux';
|
||||||
|
}
|
||||||
|
|
||||||
|
const isWindows = () => {
|
||||||
|
return process && process.platform === 'win32';
|
||||||
|
}
|
||||||
|
|
||||||
|
const isMac = () => {
|
||||||
|
return process && process.platform === 'darwin';
|
||||||
|
}
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
// electron-rebuild --arch ia32 && electron-rebuild --arch x64
|
||||||
|
|
||||||
|
let exePath = __dirname + '/node_modules/.bin/electron-rebuild';
|
||||||
|
if (isWindows()) exePath += '.cmd';
|
||||||
|
|
||||||
|
if (isWindows()) {
|
||||||
|
console.info(await execCommand(['"' + exePath + '"', '--arch ia32'].join(' ')));
|
||||||
|
console.info(await execCommand(['"' + exePath + '"', '--arch x64'].join(' ')));
|
||||||
|
} else {
|
||||||
|
console.info(await execCommand(['"' + exePath + '"'].join(' ')));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
main().catch((error) => {
|
||||||
|
console.error(error);
|
||||||
|
process.exit(1);
|
||||||
|
});
|
||||||
@@ -7,6 +7,7 @@ const { Header } = require('./Header.min.js');
|
|||||||
const { themeStyle } = require('../theme.js');
|
const { themeStyle } = require('../theme.js');
|
||||||
const pathUtils = require('lib/path-utils.js');
|
const pathUtils = require('lib/path-utils.js');
|
||||||
const { _ } = require('lib/locale.js');
|
const { _ } = require('lib/locale.js');
|
||||||
|
const { commandArgumentsToString } = require('lib/string-utils');
|
||||||
const SyncTargetRegistry = require('lib/SyncTargetRegistry');
|
const SyncTargetRegistry = require('lib/SyncTargetRegistry');
|
||||||
const shared = require('lib/components/shared/config-shared.js');
|
const shared = require('lib/components/shared/config-shared.js');
|
||||||
|
|
||||||
@@ -43,6 +44,49 @@ class ConfigScreenComponent extends React.Component {
|
|||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sectionToComponent(key, section, settings) {
|
||||||
|
const theme = themeStyle(this.props.theme);
|
||||||
|
const settingComps = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < section.metadatas.length; i++) {
|
||||||
|
const md = section.metadatas[i];
|
||||||
|
|
||||||
|
const settingComp = this.settingToComponent(md.key, settings[md.key]);
|
||||||
|
settingComps.push(settingComp);
|
||||||
|
}
|
||||||
|
|
||||||
|
const sectionStyle = {
|
||||||
|
marginBottom: 20,
|
||||||
|
};
|
||||||
|
|
||||||
|
const headerStyle = Object.assign({}, theme.headerStyle, {
|
||||||
|
borderBottomWidth: 1,
|
||||||
|
borderBottomColor: theme.dividerColor,
|
||||||
|
borderBottomStyle: 'solid',
|
||||||
|
paddingBottom: '.4em',
|
||||||
|
});
|
||||||
|
|
||||||
|
if (section.name === 'general') {
|
||||||
|
sectionStyle.borderTopWidth = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
const noteComp = section.name !== 'general' ? null : (
|
||||||
|
<div style={Object.assign({}, theme.textStyle, {marginBottom: 10})}>
|
||||||
|
{_('Notes and settings are stored in: %s', pathUtils.toSystemSlashes(Setting.value('profileDir'), process.platform))}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div key={key} style={sectionStyle}>
|
||||||
|
<h2 style={headerStyle}>{Setting.sectionNameToLabel(section.name)}</h2>
|
||||||
|
{noteComp}
|
||||||
|
<div>
|
||||||
|
{settingComps}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
settingToComponent(key, value) {
|
settingToComponent(key, value) {
|
||||||
const theme = themeStyle(this.props.theme);
|
const theme = themeStyle(this.props.theme);
|
||||||
|
|
||||||
@@ -56,6 +100,15 @@ class ConfigScreenComponent extends React.Component {
|
|||||||
color: theme.color,
|
color: theme.color,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const subLabel = Object.assign({}, labelStyle, {
|
||||||
|
opacity: 0.7,
|
||||||
|
marginBottom: Math.round(rowStyle.marginBottom * 0.7),
|
||||||
|
});
|
||||||
|
|
||||||
|
const invisibleLabel = Object.assign({}, labelStyle, {
|
||||||
|
opacity: 0,
|
||||||
|
});
|
||||||
|
|
||||||
const controlStyle = {
|
const controlStyle = {
|
||||||
display: 'inline-block',
|
display: 'inline-block',
|
||||||
color: theme.color,
|
color: theme.color,
|
||||||
@@ -70,6 +123,7 @@ class ConfigScreenComponent extends React.Component {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const updateSettingValue = (key, value) => {
|
const updateSettingValue = (key, value) => {
|
||||||
|
// console.info(key + ' = ' + value);
|
||||||
return shared.updateSettingValue(this, key, value);
|
return shared.updateSettingValue(this, key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,23 +173,93 @@ class ConfigScreenComponent extends React.Component {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
} else if (md.type === Setting.TYPE_STRING) {
|
} else if (md.type === Setting.TYPE_STRING) {
|
||||||
const onTextChange = (event) => {
|
|
||||||
updateSettingValue(key, event.target.value);
|
|
||||||
}
|
|
||||||
|
|
||||||
const inputStyle = Object.assign({}, controlStyle, {
|
const inputStyle = Object.assign({}, controlStyle, {
|
||||||
width: '50%',
|
width: '50%',
|
||||||
minWidth: '20em',
|
minWidth: '20em',
|
||||||
border: '1px solid' });
|
border: '1px solid' });
|
||||||
const inputType = md.secure === true ? 'password' : 'text';
|
const inputType = md.secure === true ? 'password' : 'text';
|
||||||
|
|
||||||
return (
|
if (md.subType === 'file_path_and_args') {
|
||||||
<div key={key} style={rowStyle}>
|
inputStyle.marginBottom = subLabel.marginBottom;
|
||||||
<div style={labelStyle}><label>{md.label()}</label></div>
|
|
||||||
<input type={inputType} style={inputStyle} value={this.state.settings[key]} onChange={(event) => {onTextChange(event)}} />
|
const splitCmd = cmdString => {
|
||||||
{ descriptionComp }
|
const path = pathUtils.extractExecutablePath(cmdString);
|
||||||
</div>
|
const args = cmdString.substr(path.length + 1);
|
||||||
);
|
return [pathUtils.unquotePath(path), args];
|
||||||
|
}
|
||||||
|
|
||||||
|
const joinCmd = cmdArray => {
|
||||||
|
if (!cmdArray[0] && !cmdArray[1]) return '';
|
||||||
|
let cmdString = pathUtils.quotePath(cmdArray[0]);
|
||||||
|
if (!cmdString) cmdString = '""';
|
||||||
|
if (cmdArray[1]) cmdString += ' ' + cmdArray[1];
|
||||||
|
return cmdString;
|
||||||
|
}
|
||||||
|
|
||||||
|
const onPathChange = event => {
|
||||||
|
const cmd = splitCmd(this.state.settings[key]);
|
||||||
|
cmd[0] = event.target.value;
|
||||||
|
updateSettingValue(key, joinCmd(cmd));
|
||||||
|
}
|
||||||
|
|
||||||
|
const onArgsChange = event => {
|
||||||
|
const cmd = splitCmd(this.state.settings[key]);
|
||||||
|
cmd[1] = event.target.value;
|
||||||
|
updateSettingValue(key, joinCmd(cmd));
|
||||||
|
}
|
||||||
|
|
||||||
|
const browseButtonClick = () => {
|
||||||
|
const paths = bridge().showOpenDialog();
|
||||||
|
if (!paths || !paths.length) return;
|
||||||
|
const cmd = splitCmd(this.state.settings[key]);
|
||||||
|
cmd[0] = paths[0]
|
||||||
|
updateSettingValue(key, joinCmd(cmd));
|
||||||
|
}
|
||||||
|
|
||||||
|
const cmd = splitCmd(this.state.settings[key]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div key={key} style={rowStyle}>
|
||||||
|
<div style={{display:'flex'}}>
|
||||||
|
<div style={{flex:0, whiteSpace: 'nowrap'}}>
|
||||||
|
<div style={labelStyle}><label>{md.label()}</label></div>
|
||||||
|
</div>
|
||||||
|
<div style={{flex:0}}>
|
||||||
|
<div style={subLabel}>Path:</div>
|
||||||
|
<div style={subLabel}>Arguments:</div>
|
||||||
|
</div>
|
||||||
|
<div style={{flex:1}}>
|
||||||
|
<div style={{display: 'flex', flexDirection: 'row', alignItems: 'center', marginBottom: inputStyle.marginBottom}}>
|
||||||
|
<input type={inputType} style={Object.assign({}, inputStyle, {marginBottom:0})} onChange={(event) => {onPathChange(event)}} value={cmd[0]} />
|
||||||
|
<button onClick={browseButtonClick} style={Object.assign({}, theme.buttonStyle, { marginLeft: 5, minHeight: 20, height: 20 })}>{_('Browse...')}</button>
|
||||||
|
</div>
|
||||||
|
<input type={inputType} style={inputStyle} onChange={(event) => {onArgsChange(event)}} value={cmd[1]}/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style={{display:'flex'}}>
|
||||||
|
<div style={{flex:0, whiteSpace: 'nowrap'}}>
|
||||||
|
<div style={invisibleLabel}><label>{md.label()}</label></div>
|
||||||
|
</div>
|
||||||
|
<div style={{flex:1}}>
|
||||||
|
{ descriptionComp }
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
const onTextChange = (event) => {
|
||||||
|
updateSettingValue(key, event.target.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div key={key} style={rowStyle}>
|
||||||
|
<div style={labelStyle}><label>{md.label()}</label></div>
|
||||||
|
<input type={inputType} style={inputStyle} value={this.state.settings[key]} onChange={(event) => {onTextChange(event)}} />
|
||||||
|
{ descriptionComp }
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
} else if (md.type === Setting.TYPE_INT) {
|
} else if (md.type === Setting.TYPE_INT) {
|
||||||
const onNumChange = (event) => {
|
const onNumChange = (event) => {
|
||||||
updateSettingValue(key, event.target.value);
|
updateSettingValue(key, event.target.value);
|
||||||
@@ -170,21 +294,31 @@ class ConfigScreenComponent extends React.Component {
|
|||||||
|
|
||||||
render() {
|
render() {
|
||||||
const theme = themeStyle(this.props.theme);
|
const theme = themeStyle(this.props.theme);
|
||||||
|
|
||||||
const style = Object.assign({
|
const style = Object.assign({
|
||||||
backgroundColor: theme.backgroundColor
|
backgroundColor: theme.backgroundColor
|
||||||
}, this.props.style, { overflow: 'auto' });
|
}, this.props.style, {
|
||||||
const settings = this.state.settings;
|
overflow: 'hidden',
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'column',
|
||||||
|
});
|
||||||
|
|
||||||
const headerStyle = Object.assign({}, theme.headerStyle, { width: style.width });
|
let settings = this.state.settings;
|
||||||
|
|
||||||
const containerStyle = Object.assign({}, theme.containerStyle, { padding: 10 });
|
const containerStyle = Object.assign({}, theme.containerStyle, { padding: 10, paddingTop: 0 });
|
||||||
|
|
||||||
|
const hasChanges = !!this.state.changedSettingKeys.length;
|
||||||
|
|
||||||
const buttonStyle = Object.assign({}, theme.buttonStyle, {
|
const buttonStyle = Object.assign({}, theme.buttonStyle, {
|
||||||
display: this.state.changedSettingKeys.length ? 'inline-block' : 'none',
|
display: 'inline-block',
|
||||||
marginRight: 10,
|
marginRight: 10,
|
||||||
});
|
});
|
||||||
|
|
||||||
const settingComps = shared.settingsToComponents(this, 'desktop', settings);
|
const buttonStyleApprove = Object.assign({}, buttonStyle, {
|
||||||
|
opacity: hasChanges ? 1 : theme.disabledOpacity,
|
||||||
|
});
|
||||||
|
|
||||||
|
const settingComps = shared.settingsToComponents2(this, 'desktop', settings);
|
||||||
|
|
||||||
const syncTargetMd = SyncTargetRegistry.idToMetadata(settings['sync.target']);
|
const syncTargetMd = SyncTargetRegistry.idToMetadata(settings['sync.target']);
|
||||||
|
|
||||||
@@ -199,22 +333,29 @@ class ConfigScreenComponent extends React.Component {
|
|||||||
|
|
||||||
settingComps.push(
|
settingComps.push(
|
||||||
<div key="check_sync_config_button" style={this.rowStyle_}>
|
<div key="check_sync_config_button" style={this.rowStyle_}>
|
||||||
<button style={buttonStyle} disabled={this.state.checkSyncConfigResult === 'checking'} onClick={this.checkSyncConfig_}>{_('Check synchronisation configuration')}</button>
|
<button disabled={this.state.checkSyncConfigResult === 'checking'} style={buttonStyle} onClick={this.checkSyncConfig_}>{_('Check synchronisation configuration')}</button>
|
||||||
{ statusComp }
|
{ statusComp }
|
||||||
</div>);
|
</div>);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const buttonBarStyle = {
|
||||||
|
display: 'flex',
|
||||||
|
alignItems: 'center',
|
||||||
|
padding: 15,
|
||||||
|
borderBottomWidth: 1,
|
||||||
|
borderBottomStyle: 'solid',
|
||||||
|
borderBottomColor: theme.dividerColor,
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div style={style}>
|
<div style={style}>
|
||||||
<Header style={headerStyle} />
|
<div style={buttonBarStyle}>
|
||||||
|
<button onClick={() => {this.onCancelClick()}} style={buttonStyle}>{'⬅ ' + _('Cancel')}</button>
|
||||||
|
<button disabled={!hasChanges} onClick={() => {this.onSaveClick()}} style={buttonStyleApprove}>{_('OK')}</button>
|
||||||
|
<button disabled={!hasChanges} onClick={() => {this.onApplyClick()}} style={buttonStyleApprove}>{_('Apply')}</button>
|
||||||
|
</div>
|
||||||
<div style={containerStyle}>
|
<div style={containerStyle}>
|
||||||
<div style={Object.assign({}, theme.textStyle, {marginBottom: 20})}>
|
|
||||||
{_('Notes and settings are stored in: %s', pathUtils.toSystemSlashes(Setting.value('profileDir'), process.platform))}
|
|
||||||
</div>
|
|
||||||
{ settingComps }
|
{ settingComps }
|
||||||
<button onClick={() => {this.onSaveClick()}} style={buttonStyle}>{_('OK')}</button>
|
|
||||||
<button onClick={() => {this.onCancelClick()}} style={buttonStyle}>{_('Cancel')}</button>
|
|
||||||
<button onClick={() => {this.onApplyClick()}} style={buttonStyle}>{_('Apply')}</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ class EncryptionConfigScreenComponent extends React.Component {
|
|||||||
<div style={containerStyle}>
|
<div style={containerStyle}>
|
||||||
{<div style={{backgroundColor: theme.warningBackgroundColor, paddingLeft: 10, paddingRight: 10, paddingTop: 2, paddingBottom: 2 }}>
|
{<div style={{backgroundColor: theme.warningBackgroundColor, paddingLeft: 10, paddingRight: 10, paddingTop: 2, paddingBottom: 2 }}>
|
||||||
<p style={theme.textStyle}>
|
<p style={theme.textStyle}>
|
||||||
<span>{_('For more information about End-To-End Encryption (E2EE) and advices on how to enable it please check the documentation:')}</span> <a onClick={() => {bridge().openExternal('https://joplin.cozic.net/e2ee')}} href="#">https://joplin.cozic.net/e2ee</a>
|
<span>{_('For more information about End-To-End Encryption (E2EE) and advices on how to enable it please check the documentation:')}</span> <a onClick={() => {bridge().openExternal('https://joplinapp.org/e2ee/')}} href="#">https://joplinapp.org/e2ee/</a>
|
||||||
</p>
|
</p>
|
||||||
</div>}
|
</div>}
|
||||||
<h1 style={theme.h1Style}>{_('Status')}</h1>
|
<h1 style={theme.h1Style}>{_('Status')}</h1>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ const { connect } = require('react-redux');
|
|||||||
const { reg } = require('lib/registry.js');
|
const { reg } = require('lib/registry.js');
|
||||||
const { themeStyle } = require('../theme.js');
|
const { themeStyle } = require('../theme.js');
|
||||||
const { _ } = require('lib/locale.js');
|
const { _ } = require('lib/locale.js');
|
||||||
|
const { bridge } = require('electron').remote.require('./bridge');
|
||||||
|
|
||||||
class HeaderComponent extends React.Component {
|
class HeaderComponent extends React.Component {
|
||||||
|
|
||||||
@@ -10,6 +11,7 @@ class HeaderComponent extends React.Component {
|
|||||||
super();
|
super();
|
||||||
this.state = {
|
this.state = {
|
||||||
searchQuery: '',
|
searchQuery: '',
|
||||||
|
showSearchUsageLink: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
this.scheduleSearchChangeEventIid_ = null;
|
this.scheduleSearchChangeEventIid_ = null;
|
||||||
@@ -37,6 +39,27 @@ class HeaderComponent extends React.Component {
|
|||||||
triggerOnQuery('');
|
triggerOnQuery('');
|
||||||
if (this.searchElement_) this.searchElement_.focus();
|
if (this.searchElement_) this.searchElement_.focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.search_onFocus = event => {
|
||||||
|
if (this.hideSearchUsageLinkIID_) {
|
||||||
|
clearTimeout(this.hideSearchUsageLinkIID_);
|
||||||
|
this.hideSearchUsageLinkIID_ = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.setState({ showSearchUsageLink: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
this.search_onBlur = event => {
|
||||||
|
if (this.hideSearchUsageLinkIID_) return;
|
||||||
|
|
||||||
|
this.hideSearchUsageLinkIID_ = setTimeout(() => {
|
||||||
|
this.setState({ showSearchUsageLink: false });
|
||||||
|
}, 5000);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.searchUsageLink_click = event => {
|
||||||
|
bridge().openExternal('https://joplinapp.org/#searching');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async componentWillReceiveProps(nextProps) {
|
async componentWillReceiveProps(nextProps) {
|
||||||
@@ -45,6 +68,13 @@ class HeaderComponent extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
componentWillUnmount() {
|
||||||
|
if (this.hideSearchUsageLinkIID_) {
|
||||||
|
clearTimeout(this.hideSearchUsageLinkIID_);
|
||||||
|
this.hideSearchUsageLinkIID_ = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async doCommand(command) {
|
async doCommand(command) {
|
||||||
if (!command) return;
|
if (!command) return;
|
||||||
|
|
||||||
@@ -72,11 +102,14 @@ class HeaderComponent extends React.Component {
|
|||||||
let icon = null;
|
let icon = null;
|
||||||
if (options.iconName) {
|
if (options.iconName) {
|
||||||
const iconStyle = {
|
const iconStyle = {
|
||||||
fontSize: Math.round(style.fontSize * 1.4),
|
fontSize: Math.round(style.fontSize * 1.1),
|
||||||
color: style.color,
|
color: style.color,
|
||||||
};
|
};
|
||||||
if (options.title) iconStyle.marginRight = 5;
|
if (options.title) iconStyle.marginRight = 5;
|
||||||
if (options.iconRotation) iconStyle.transform = 'rotate(' + options.iconRotation + 'deg)';
|
if("undefined" != typeof(options.iconRotation)) {
|
||||||
|
iconStyle.transition = "transform 0.15s ease-in-out";
|
||||||
|
iconStyle.transform = 'rotate(' + options.iconRotation + 'deg)';
|
||||||
|
}
|
||||||
icon = <i style={iconStyle} className={"fa " + options.iconName}></i>
|
icon = <i style={iconStyle} className={"fa " + options.iconName}></i>
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -100,11 +133,16 @@ class HeaderComponent extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
makeSearch(key, style, options, state) {
|
makeSearch(key, style, options, state) {
|
||||||
|
const theme = themeStyle(this.props.theme);
|
||||||
|
|
||||||
const inputStyle = {
|
const inputStyle = {
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
flex: 1,
|
flex: 1,
|
||||||
paddingLeft: 4,
|
paddingLeft: 6,
|
||||||
paddingRight: 4,
|
paddingRight: 6,
|
||||||
|
paddingTop: 1, // vertical alignment with buttons
|
||||||
|
paddingBottom: 0, // vertical alignment with buttons
|
||||||
|
height: style.fontSize * 2,
|
||||||
color: style.color,
|
color: style.color,
|
||||||
fontSize: style.fontSize,
|
fontSize: style.fontSize,
|
||||||
fontFamily: style.fontFamily,
|
fontFamily: style.fontFamily,
|
||||||
@@ -137,6 +175,10 @@ class HeaderComponent extends React.Component {
|
|||||||
const icon = <i style={iconStyle} className={"fa " + iconName}></i>
|
const icon = <i style={iconStyle} className={"fa " + iconName}></i>
|
||||||
if (options.onQuery) this.searchOnQuery_ = options.onQuery;
|
if (options.onQuery) this.searchOnQuery_ = options.onQuery;
|
||||||
|
|
||||||
|
const usageLink = !this.state.showSearchUsageLink ? null : (
|
||||||
|
<a onClick={this.searchUsageLink_click} style={theme.urlStyle} href="#">{_('Usage')}</a>
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div key={key} style={containerStyle}>
|
<div key={key} style={containerStyle}>
|
||||||
<input
|
<input
|
||||||
@@ -146,12 +188,15 @@ class HeaderComponent extends React.Component {
|
|||||||
value={state.searchQuery}
|
value={state.searchQuery}
|
||||||
onChange={this.search_onChange}
|
onChange={this.search_onChange}
|
||||||
ref={elem => this.searchElement_ = elem}
|
ref={elem => this.searchElement_ = elem}
|
||||||
|
onFocus={this.search_onFocus}
|
||||||
|
onBlur={this.search_onBlur}
|
||||||
/>
|
/>
|
||||||
<a
|
<a
|
||||||
href="#"
|
href="#"
|
||||||
style={searchButton}
|
style={searchButton}
|
||||||
onClick={this.search_onClear}
|
onClick={this.search_onClear}
|
||||||
>{icon}</a>
|
>{icon}</a>
|
||||||
|
{usageLink}
|
||||||
</div>);
|
</div>);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,13 +6,23 @@ class ItemList extends React.Component {
|
|||||||
super();
|
super();
|
||||||
|
|
||||||
this.scrollTop_ = 0;
|
this.scrollTop_ = 0;
|
||||||
|
|
||||||
|
this.listRef = React.createRef();
|
||||||
|
|
||||||
|
this.onScroll = this.onScroll.bind(this);
|
||||||
|
this.onKeyDown = this.onKeyDown.bind(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
visibleItemCount(props) {
|
||||||
|
if (typeof props === 'undefined') props = this.props;
|
||||||
|
return Math.ceil(props.style.height / props.itemHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
updateStateItemIndexes(props) {
|
updateStateItemIndexes(props) {
|
||||||
if (typeof props === 'undefined') props = this.props;
|
if (typeof props === 'undefined') props = this.props;
|
||||||
|
|
||||||
const topItemIndex = Math.floor(this.scrollTop_ / props.itemHeight);
|
const topItemIndex = Math.floor(this.scrollTop_ / props.itemHeight);
|
||||||
const visibleItemCount = Math.ceil(props.style.height / props.itemHeight);
|
const visibleItemCount = this.visibleItemCount(props);
|
||||||
|
|
||||||
let bottomItemIndex = topItemIndex + visibleItemCount;
|
let bottomItemIndex = topItemIndex + visibleItemCount;
|
||||||
if (bottomItemIndex >= props.items.length) bottomItemIndex = props.items.length - 1;
|
if (bottomItemIndex >= props.items.length) bottomItemIndex = props.items.length - 1;
|
||||||
@@ -31,8 +41,33 @@ class ItemList extends React.Component {
|
|||||||
this.updateStateItemIndexes(newProps);
|
this.updateStateItemIndexes(newProps);
|
||||||
}
|
}
|
||||||
|
|
||||||
onScroll(scrollTop) {
|
onScroll(event) {
|
||||||
|
this.scrollTop_ = event.target.scrollTop;
|
||||||
|
this.updateStateItemIndexes();
|
||||||
|
}
|
||||||
|
|
||||||
|
onKeyDown(event) {
|
||||||
|
if (this.props.onKeyDown) this.props.onKeyDown(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
makeItemIndexVisible(itemIndex) {
|
||||||
|
const top = Math.min(this.props.items.length - 1, this.state.topItemIndex + 1);
|
||||||
|
const bottom = Math.max(0, this.state.bottomItemIndex - 1)
|
||||||
|
|
||||||
|
if (itemIndex >= top && itemIndex <= bottom) return;
|
||||||
|
|
||||||
|
let scrollTop = 0;
|
||||||
|
if (itemIndex < top) {
|
||||||
|
scrollTop = this.props.itemHeight * itemIndex;
|
||||||
|
} else {
|
||||||
|
scrollTop = this.props.itemHeight * itemIndex - (this.visibleItemCount() - 1) * this.props.itemHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (scrollTop < 0) scrollTop = 0;
|
||||||
|
|
||||||
this.scrollTop_ = scrollTop;
|
this.scrollTop_ = scrollTop;
|
||||||
|
this.listRef.current.scrollTop = scrollTop;
|
||||||
|
|
||||||
this.updateStateItemIndexes();
|
this.updateStateItemIndexes();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,10 +96,8 @@ class ItemList extends React.Component {
|
|||||||
let classes = ['item-list'];
|
let classes = ['item-list'];
|
||||||
if (this.props.className) classes.push(this.props.className);
|
if (this.props.className) classes.push(this.props.className);
|
||||||
|
|
||||||
const that = this;
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={classes.join(' ')} style={style} onScroll={ (event) => { this.onScroll(event.target.scrollTop) }}>
|
<div ref={this.listRef} className={classes.join(' ')} style={style} onScroll={this.onScroll} onKeyDown={this.onKeyDown}>
|
||||||
{ itemComps }
|
{ itemComps }
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ const { _ } = require('lib/locale.js');
|
|||||||
const layoutUtils = require('lib/layout-utils.js');
|
const layoutUtils = require('lib/layout-utils.js');
|
||||||
const { bridge } = require('electron').remote.require('./bridge');
|
const { bridge } = require('electron').remote.require('./bridge');
|
||||||
const eventManager = require('../eventManager');
|
const eventManager = require('../eventManager');
|
||||||
|
const VerticalResizer = require('./VerticalResizer.min');
|
||||||
|
const PluginManager = require('lib/services/PluginManager');
|
||||||
|
|
||||||
class MainScreenComponent extends React.Component {
|
class MainScreenComponent extends React.Component {
|
||||||
|
|
||||||
@@ -24,6 +26,16 @@ class MainScreenComponent extends React.Component {
|
|||||||
super();
|
super();
|
||||||
|
|
||||||
this.notePropertiesDialog_close = this.notePropertiesDialog_close.bind(this);
|
this.notePropertiesDialog_close = this.notePropertiesDialog_close.bind(this);
|
||||||
|
this.sidebar_onDrag = this.sidebar_onDrag.bind(this);
|
||||||
|
this.noteList_onDrag = this.noteList_onDrag.bind(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
sidebar_onDrag(event) {
|
||||||
|
Setting.setValue('style.sidebar.width', this.props.sidebarWidth + event.deltaX);
|
||||||
|
}
|
||||||
|
|
||||||
|
noteList_onDrag(event) {
|
||||||
|
Setting.setValue('style.noteList.width', Setting.value('style.noteList.width') + event.deltaX);
|
||||||
}
|
}
|
||||||
|
|
||||||
notePropertiesDialog_close() {
|
notePropertiesDialog_close() {
|
||||||
@@ -199,6 +211,15 @@ class MainScreenComponent extends React.Component {
|
|||||||
type: 'SEARCH_SELECT',
|
type: 'SEARCH_SELECT',
|
||||||
id: this.searchId_,
|
id: this.searchId_,
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
const note = await Note.load(this.props.selectedNoteId);
|
||||||
|
if (note) {
|
||||||
|
this.props.dispatch({
|
||||||
|
type: "FOLDER_AND_NOTE_SELECT",
|
||||||
|
folderId: note.parent_id,
|
||||||
|
noteId: note.id,
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (command.name === 'commandNoteProperties') {
|
} else if (command.name === 'commandNoteProperties') {
|
||||||
@@ -265,8 +286,8 @@ class MainScreenComponent extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
styles(themeId, width, height, messageBoxVisible, isSidebarVisible) {
|
styles(themeId, width, height, messageBoxVisible, isSidebarVisible, sidebarWidth, noteListWidth) {
|
||||||
const styleKey = themeId + '_' + width + '_' + height + '_' + messageBoxVisible + '_' + (+isSidebarVisible);
|
const styleKey = [themeId, width, height, messageBoxVisible, (+isSidebarVisible), sidebarWidth, noteListWidth].join('_');
|
||||||
if (styleKey === this.styleKey_) return this.styles_;
|
if (styleKey === this.styleKey_) return this.styles_;
|
||||||
|
|
||||||
const theme = themeStyle(themeId);
|
const theme = themeStyle(themeId);
|
||||||
@@ -288,14 +309,20 @@ class MainScreenComponent extends React.Component {
|
|||||||
backgroundColor: theme.warningBackgroundColor,
|
backgroundColor: theme.warningBackgroundColor,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.styles_.verticalResizer = {
|
||||||
|
width: 5,
|
||||||
|
height: height,
|
||||||
|
display: 'inline-block',
|
||||||
|
};
|
||||||
|
|
||||||
const rowHeight = height - theme.headerHeight - (messageBoxVisible ? this.styles_.messageBox.height : 0);
|
const rowHeight = height - theme.headerHeight - (messageBoxVisible ? this.styles_.messageBox.height : 0);
|
||||||
|
|
||||||
this.styles_.sideBar = {
|
this.styles_.sideBar = {
|
||||||
width: Math.floor(layoutUtils.size(width * .2, 150, 300)),
|
width: sidebarWidth - this.styles_.verticalResizer.width,
|
||||||
height: rowHeight,
|
height: rowHeight,
|
||||||
display: 'inline-block',
|
display: 'inline-block',
|
||||||
verticalAlign: 'top',
|
verticalAlign: 'top',
|
||||||
};
|
};
|
||||||
|
|
||||||
if (isSidebarVisible === false) {
|
if (isSidebarVisible === false) {
|
||||||
this.styles_.sideBar.width = 0;
|
this.styles_.sideBar.width = 0;
|
||||||
@@ -303,14 +330,14 @@ class MainScreenComponent extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.styles_.noteList = {
|
this.styles_.noteList = {
|
||||||
width: Math.floor(layoutUtils.size(width * .2, 150, 300)),
|
width: noteListWidth - this.styles_.verticalResizer.width,
|
||||||
height: rowHeight,
|
height: rowHeight,
|
||||||
display: 'inline-block',
|
display: 'inline-block',
|
||||||
verticalAlign: 'top',
|
verticalAlign: 'top',
|
||||||
};
|
};
|
||||||
|
|
||||||
this.styles_.noteText = {
|
this.styles_.noteText = {
|
||||||
width: Math.floor(layoutUtils.size(width - this.styles_.sideBar.width - this.styles_.noteList.width, 0)),
|
width: Math.floor(width - this.styles_.sideBar.width - this.styles_.noteList.width - 10),
|
||||||
height: rowHeight,
|
height: rowHeight,
|
||||||
display: 'inline-block',
|
display: 'inline-block',
|
||||||
verticalAlign: 'top',
|
verticalAlign: 'top',
|
||||||
@@ -338,15 +365,15 @@ class MainScreenComponent extends React.Component {
|
|||||||
render() {
|
render() {
|
||||||
const theme = themeStyle(this.props.theme);
|
const theme = themeStyle(this.props.theme);
|
||||||
const style = Object.assign({
|
const style = Object.assign({
|
||||||
color: theme.color,
|
color: theme.color,
|
||||||
backgroundColor: theme.backgroundColor,
|
backgroundColor: theme.backgroundColor,
|
||||||
}, this.props.style);
|
}, this.props.style);
|
||||||
const promptOptions = this.state.promptOptions;
|
const promptOptions = this.state.promptOptions;
|
||||||
const folders = this.props.folders;
|
const folders = this.props.folders;
|
||||||
const notes = this.props.notes;
|
const notes = this.props.notes;
|
||||||
const messageBoxVisible = this.props.hasDisabledSyncItems || this.props.showMissingMasterKeyMessage;
|
const messageBoxVisible = this.props.hasDisabledSyncItems || this.props.showMissingMasterKeyMessage;
|
||||||
const sidebarVisibility = this.props.sidebarVisibility;
|
const sidebarVisibility = this.props.sidebarVisibility;
|
||||||
const styles = this.styles(this.props.theme, style.width, style.height, messageBoxVisible, sidebarVisibility);
|
const styles = this.styles(this.props.theme, style.width, style.height, messageBoxVisible, sidebarVisibility, this.props.sidebarWidth, this.props.noteListWidth);
|
||||||
const selectedFolderId = this.props.selectedFolderId;
|
const selectedFolderId = this.props.selectedFolderId;
|
||||||
const onConflictFolder = this.props.selectedFolderId === Folder.conflictFolderId();
|
const onConflictFolder = this.props.selectedFolderId === Folder.conflictFolderId();
|
||||||
|
|
||||||
@@ -375,7 +402,7 @@ class MainScreenComponent extends React.Component {
|
|||||||
|
|
||||||
headerItems.push({
|
headerItems.push({
|
||||||
title: _('New notebook'),
|
title: _('New notebook'),
|
||||||
iconName: 'fa-folder-o',
|
iconName: 'fa-book',
|
||||||
onClick: () => { this.doCommand({ name: 'newNotebook' }) },
|
onClick: () => { this.doCommand({ name: 'newNotebook' }) },
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -432,6 +459,9 @@ class MainScreenComponent extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const dialogInfo = PluginManager.instance().pluginDialogToShow(this.props.plugins);
|
||||||
|
const pluginDialog = !dialogInfo ? null : <dialogInfo.Dialog {...dialogInfo.props}/>;
|
||||||
|
|
||||||
const modalLayerStyle = Object.assign({}, styles.modalLayer, { display: this.state.modalLayer.visible ? 'block' : 'none' });
|
const modalLayerStyle = Object.assign({}, styles.modalLayer, { display: this.state.modalLayer.visible ? 'block' : 'none' });
|
||||||
|
|
||||||
const notePropertiesDialogOptions = this.state.notePropertiesDialogOptions;
|
const notePropertiesDialogOptions = this.state.notePropertiesDialogOptions;
|
||||||
@@ -440,12 +470,11 @@ class MainScreenComponent extends React.Component {
|
|||||||
<div style={style}>
|
<div style={style}>
|
||||||
<div style={modalLayerStyle}>{this.state.modalLayer.message}</div>
|
<div style={modalLayerStyle}>{this.state.modalLayer.message}</div>
|
||||||
|
|
||||||
<NotePropertiesDialog
|
{ notePropertiesDialogOptions.visible && <NotePropertiesDialog
|
||||||
theme={this.props.theme}
|
theme={this.props.theme}
|
||||||
noteId={notePropertiesDialogOptions.noteId}
|
noteId={notePropertiesDialogOptions.noteId}
|
||||||
visible={!!notePropertiesDialogOptions.visible}
|
|
||||||
onClose={this.notePropertiesDialog_close}
|
onClose={this.notePropertiesDialog_close}
|
||||||
/>
|
/> }
|
||||||
|
|
||||||
<PromptDialog
|
<PromptDialog
|
||||||
autocomplete={promptOptions && ('autocomplete' in promptOptions) ? promptOptions.autocomplete : null}
|
autocomplete={promptOptions && ('autocomplete' in promptOptions) ? promptOptions.autocomplete : null}
|
||||||
@@ -462,8 +491,12 @@ class MainScreenComponent extends React.Component {
|
|||||||
<Header style={styles.header} showBackButton={false} items={headerItems} />
|
<Header style={styles.header} showBackButton={false} items={headerItems} />
|
||||||
{messageComp}
|
{messageComp}
|
||||||
<SideBar style={styles.sideBar} />
|
<SideBar style={styles.sideBar} />
|
||||||
|
<VerticalResizer style={styles.verticalResizer} onDrag={this.sidebar_onDrag}/>
|
||||||
<NoteList style={styles.noteList} />
|
<NoteList style={styles.noteList} />
|
||||||
|
<VerticalResizer style={styles.verticalResizer} onDrag={this.noteList_onDrag}/>
|
||||||
<NoteText style={styles.noteText} visiblePanes={this.props.noteVisiblePanes} />
|
<NoteText style={styles.noteText} visiblePanes={this.props.noteVisiblePanes} />
|
||||||
|
|
||||||
|
{pluginDialog}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -482,6 +515,10 @@ const mapStateToProps = (state) => {
|
|||||||
showMissingMasterKeyMessage: state.notLoadedMasterKeys.length && state.masterKeys.length,
|
showMissingMasterKeyMessage: state.notLoadedMasterKeys.length && state.masterKeys.length,
|
||||||
selectedFolderId: state.selectedFolderId,
|
selectedFolderId: state.selectedFolderId,
|
||||||
sidebarVisibility: state.sidebarVisibility,
|
sidebarVisibility: state.sidebarVisibility,
|
||||||
|
sidebarWidth: state.settings['style.sidebar.width'],
|
||||||
|
noteListWidth: state.settings['style.noteList.width'],
|
||||||
|
selectedNoteId: state.selectedNoteIds.length === 1 ? state.selectedNoteIds[0] : null,
|
||||||
|
plugins: state.plugins,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,11 @@ class NavigatorComponent extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
updateWindowTitle(title) {
|
updateWindowTitle(title) {
|
||||||
bridge().window().setTitle(title);
|
try {
|
||||||
|
if (bridge().window()) bridge().window().setTitle(title);
|
||||||
|
} catch (error) {
|
||||||
|
console.warn('updateWindowTitle', error);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ const { connect } = require('react-redux');
|
|||||||
const { time } = require('lib/time-utils.js');
|
const { time } = require('lib/time-utils.js');
|
||||||
const { themeStyle } = require('../theme.js');
|
const { themeStyle } = require('../theme.js');
|
||||||
const BaseModel = require('lib/BaseModel');
|
const BaseModel = require('lib/BaseModel');
|
||||||
|
const markJsUtils = require('lib/markJsUtils');
|
||||||
const { _ } = require('lib/locale.js');
|
const { _ } = require('lib/locale.js');
|
||||||
const { bridge } = require('electron').remote.require('./bridge');
|
const { bridge } = require('electron').remote.require('./bridge');
|
||||||
const Menu = bridge().Menu;
|
const Menu = bridge().Menu;
|
||||||
@@ -12,15 +13,22 @@ const eventManager = require('../eventManager');
|
|||||||
const InteropService = require('lib/services/InteropService');
|
const InteropService = require('lib/services/InteropService');
|
||||||
const InteropServiceHelper = require('../InteropServiceHelper.js');
|
const InteropServiceHelper = require('../InteropServiceHelper.js');
|
||||||
const Search = require('lib/models/Search');
|
const Search = require('lib/models/Search');
|
||||||
|
const { stateUtils } = require('lib/reducer');
|
||||||
const Mark = require('mark.js/dist/mark.min.js');
|
const Mark = require('mark.js/dist/mark.min.js');
|
||||||
const SearchEngine = require('lib/services/SearchEngine');
|
const SearchEngine = require('lib/services/SearchEngine');
|
||||||
|
const NoteListUtils = require('./utils/NoteListUtils');
|
||||||
|
const { replaceRegexDiacritics, pregQuote } = require('lib/string-utils');
|
||||||
|
|
||||||
class NoteListComponent extends React.Component {
|
class NoteListComponent extends React.Component {
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
|
this.itemListRef = React.createRef();
|
||||||
|
this.itemAnchorRefs_ = {};
|
||||||
|
|
||||||
this.itemRenderer = this.itemRenderer.bind(this);
|
this.itemRenderer = this.itemRenderer.bind(this);
|
||||||
|
this.onKeyDown = this.onKeyDown.bind(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
style() {
|
style() {
|
||||||
@@ -77,101 +85,10 @@ class NoteListComponent extends React.Component {
|
|||||||
|
|
||||||
if (!noteIds.length) return;
|
if (!noteIds.length) return;
|
||||||
|
|
||||||
const notes = noteIds.map((id) => BaseModel.byId(this.props.notes, id));
|
const menu = NoteListUtils.makeContextMenu(noteIds, {
|
||||||
|
notes: this.props.notes,
|
||||||
let hasEncrypted = false;
|
dispatch: this.props.dispatch,
|
||||||
for (let i = 0; i < notes.length; i++) {
|
});
|
||||||
if (!!notes[i].encryption_applied) hasEncrypted = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
const menu = new Menu()
|
|
||||||
|
|
||||||
if (!hasEncrypted) {
|
|
||||||
menu.append(new MenuItem({label: _('Add or remove tags'), enabled: noteIds.length === 1, click: async () => {
|
|
||||||
this.props.dispatch({
|
|
||||||
type: 'WINDOW_COMMAND',
|
|
||||||
name: 'setTags',
|
|
||||||
noteId: noteIds[0],
|
|
||||||
});
|
|
||||||
}}));
|
|
||||||
|
|
||||||
menu.append(new MenuItem({label: _('Duplicate'), click: async () => {
|
|
||||||
for (let i = 0; i < noteIds.length; i++) {
|
|
||||||
const note = await Note.load(noteIds[i]);
|
|
||||||
await Note.duplicate(noteIds[i], {
|
|
||||||
uniqueTitle: _('%s - Copy', note.title),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}}));
|
|
||||||
|
|
||||||
if (noteIds.length <= 1) {
|
|
||||||
menu.append(new MenuItem({label: _('Switch between note and to-do type'), click: async () => {
|
|
||||||
for (let i = 0; i < noteIds.length; i++) {
|
|
||||||
const note = await Note.load(noteIds[i]);
|
|
||||||
await Note.save(Note.toggleIsTodo(note), { userSideValidation: true });
|
|
||||||
eventManager.emit('noteTypeToggle', { noteId: note.id });
|
|
||||||
}
|
|
||||||
}}));
|
|
||||||
} else {
|
|
||||||
const switchNoteType = async (noteIds, type) => {
|
|
||||||
for (let i = 0; i < noteIds.length; i++) {
|
|
||||||
const note = await Note.load(noteIds[i]);
|
|
||||||
const newNote = Note.changeNoteType(note, type);
|
|
||||||
if (newNote === note) continue;
|
|
||||||
await Note.save(newNote, { userSideValidation: true });
|
|
||||||
eventManager.emit('noteTypeToggle', { noteId: note.id });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
menu.append(new MenuItem({label: _('Switch to note type'), click: async () => {
|
|
||||||
await switchNoteType(noteIds, 'note');
|
|
||||||
}}));
|
|
||||||
|
|
||||||
menu.append(new MenuItem({label: _('Switch to to-do type'), click: async () => {
|
|
||||||
await switchNoteType(noteIds, 'todo');
|
|
||||||
}}));
|
|
||||||
}
|
|
||||||
|
|
||||||
menu.append(new MenuItem({label: _('Copy Markdown link'), click: async () => {
|
|
||||||
const { clipboard } = require('electron');
|
|
||||||
const links = [];
|
|
||||||
for (let i = 0; i < noteIds.length; i++) {
|
|
||||||
const note = await Note.load(noteIds[i]);
|
|
||||||
links.push(Note.markdownTag(note));
|
|
||||||
}
|
|
||||||
clipboard.writeText(links.join(' '));
|
|
||||||
}}));
|
|
||||||
|
|
||||||
const exportMenu = new Menu();
|
|
||||||
|
|
||||||
const ioService = new InteropService();
|
|
||||||
const ioModules = ioService.modules();
|
|
||||||
for (let i = 0; i < ioModules.length; i++) {
|
|
||||||
const module = ioModules[i];
|
|
||||||
if (module.type !== 'exporter') continue;
|
|
||||||
|
|
||||||
exportMenu.append(new MenuItem({ label: module.fullLabel() , click: async () => {
|
|
||||||
await InteropServiceHelper.export(this.props.dispatch.bind(this), module, { sourceNoteIds: noteIds });
|
|
||||||
}}));
|
|
||||||
}
|
|
||||||
|
|
||||||
exportMenu.append(new MenuItem({ label: 'PDF - ' + _('PDF File') , click: () => {
|
|
||||||
this.props.dispatch({
|
|
||||||
type: 'WINDOW_COMMAND',
|
|
||||||
name: 'exportPdf',
|
|
||||||
});
|
|
||||||
}}));
|
|
||||||
|
|
||||||
const exportMenuItem = new MenuItem({label: _('Export'), submenu: exportMenu});
|
|
||||||
|
|
||||||
menu.append(exportMenuItem);
|
|
||||||
}
|
|
||||||
|
|
||||||
menu.append(new MenuItem({label: _('Delete'), click: async () => {
|
|
||||||
const ok = bridge().showConfirmMessageBox(noteIds.length > 1 ? _('Delete notes?') : _('Delete note?'));
|
|
||||||
if (!ok) return;
|
|
||||||
await Note.batchDelete(noteIds);
|
|
||||||
}}));
|
|
||||||
|
|
||||||
menu.popup(bridge().window());
|
menu.popup(bridge().window());
|
||||||
}
|
}
|
||||||
@@ -181,7 +98,7 @@ class NoteListComponent extends React.Component {
|
|||||||
const width = this.props.style.width;
|
const width = this.props.style.width;
|
||||||
|
|
||||||
const onTitleClick = async (event, item) => {
|
const onTitleClick = async (event, item) => {
|
||||||
if (event.ctrlKey) {
|
if (event.ctrlKey || event.metaKey) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
this.props.dispatch({
|
this.props.dispatch({
|
||||||
type: 'NOTE_SELECT_TOGGLE',
|
type: 'NOTE_SELECT_TOGGLE',
|
||||||
@@ -276,11 +193,10 @@ class NoteListComponent extends React.Component {
|
|||||||
for (let i = 0; i < highlightedWords.length; i++) {
|
for (let i = 0; i < highlightedWords.length; i++) {
|
||||||
const w = highlightedWords[i];
|
const w = highlightedWords[i];
|
||||||
|
|
||||||
if (w.type === 'regex') {
|
markJsUtils.markKeyword(mark, w, {
|
||||||
mark.markRegExp(new RegExp(w.value, 'gmi'), { acrossElements: true });
|
pregQuote: pregQuote,
|
||||||
} else {
|
replaceRegexDiacritics: replaceRegexDiacritics,
|
||||||
mark.mark([w]);
|
});
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note: in this case it is safe to use dangerouslySetInnerHTML because titleElement
|
// Note: in this case it is safe to use dangerouslySetInnerHTML because titleElement
|
||||||
@@ -301,11 +217,15 @@ class NoteListComponent extends React.Component {
|
|||||||
<i style={watchedIconStyle} className={"fa fa-external-link"}></i>
|
<i style={watchedIconStyle} className={"fa fa-external-link"}></i>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (!this.itemAnchorRefs_[item.id]) this.itemAnchorRefs_[item.id] = React.createRef();
|
||||||
|
const ref = this.itemAnchorRefs_[item.id];
|
||||||
|
|
||||||
// Need to include "todo_completed" in key so that checkbox is updated when
|
// Need to include "todo_completed" in key so that checkbox is updated when
|
||||||
// item is changed via sync.
|
// item is changed via sync.
|
||||||
return <div key={item.id + '_' + item.todo_completed} style={style}>
|
return <div key={item.id + '_' + item.todo_completed} style={style}>
|
||||||
{checkbox}
|
{checkbox}
|
||||||
<a
|
<a
|
||||||
|
ref={ref}
|
||||||
className="list-item"
|
className="list-item"
|
||||||
onContextMenu={(event) => this.itemContextMenu(event)}
|
onContextMenu={(event) => this.itemContextMenu(event)}
|
||||||
href="#"
|
href="#"
|
||||||
@@ -321,11 +241,147 @@ class NoteListComponent extends React.Component {
|
|||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
itemAnchorRef(itemId) {
|
||||||
|
if (this.itemAnchorRefs_[itemId] && this.itemAnchorRefs_[itemId].current) return this.itemAnchorRefs_[itemId].current;
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
doCommand(command) {
|
||||||
|
if (!command) return;
|
||||||
|
|
||||||
|
let commandProcessed = true;
|
||||||
|
|
||||||
|
if (command.name === 'focusElement' && command.target === 'noteList') {
|
||||||
|
if (this.props.selectedNoteIds.length) {
|
||||||
|
const ref = this.itemAnchorRef(this.props.selectedNoteIds[0]);
|
||||||
|
if (ref) ref.focus();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
commandProcessed = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (commandProcessed) {
|
||||||
|
this.props.dispatch({
|
||||||
|
type: 'WINDOW_COMMAND',
|
||||||
|
name: null,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidUpdate(prevProps, prevState, snapshot) {
|
||||||
|
if (prevProps.windowCommand !== this.props.windowCommand) {
|
||||||
|
this.doCommand(this.props.windowCommand);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (prevProps.selectedNoteIds !== this.props.selectedNoteIds && this.props.selectedNoteIds.length === 1) {
|
||||||
|
const id = this.props.selectedNoteIds[0];
|
||||||
|
for (let i = 0; i < this.props.notes.length; i++) {
|
||||||
|
if (this.props.notes[i].id === id) {
|
||||||
|
this.itemListRef.current.makeItemIndexVisible(i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async onKeyDown(event) {
|
||||||
|
const keyCode = event.keyCode;
|
||||||
|
const noteIds = this.props.selectedNoteIds;
|
||||||
|
|
||||||
|
if (noteIds.length === 1 && (keyCode === 40 || keyCode === 38)) { // DOWN / UP
|
||||||
|
const noteId = noteIds[0];
|
||||||
|
let noteIndex = BaseModel.modelIndexById(this.props.notes, noteId);
|
||||||
|
const inc = keyCode === 38 ? -1 : +1;
|
||||||
|
|
||||||
|
noteIndex += inc;
|
||||||
|
|
||||||
|
if (noteIndex < 0) noteIndex = 0;
|
||||||
|
if (noteIndex > this.props.notes.length - 1) noteIndex = this.props.notes.length - 1;
|
||||||
|
|
||||||
|
const newSelectedNote = this.props.notes[noteIndex];
|
||||||
|
|
||||||
|
this.props.dispatch({
|
||||||
|
type: 'NOTE_SELECT',
|
||||||
|
id: newSelectedNote.id,
|
||||||
|
});
|
||||||
|
|
||||||
|
this.itemListRef.current.makeItemIndexVisible(noteIndex);
|
||||||
|
|
||||||
|
this.focusNoteId_(newSelectedNote.id);
|
||||||
|
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (noteIds.length && (keyCode === 46 || (keyCode === 8 && event.metaKey))) { // DELETE / CMD+Backspace
|
||||||
|
event.preventDefault();
|
||||||
|
await NoteListUtils.confirmDeleteNotes(noteIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (noteIds.length && keyCode === 32) { // SPACE
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
const notes = BaseModel.modelsByIds(this.props.notes, noteIds);
|
||||||
|
const todos = notes.filter(n => !!n.is_todo);
|
||||||
|
if (!todos.length) return;
|
||||||
|
|
||||||
|
for (let i = 0; i < todos.length; i++) {
|
||||||
|
const toggledTodo = Note.toggleTodoCompleted(todos[i]);
|
||||||
|
await Note.save(toggledTodo);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.focusNoteId_(todos[0].id);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (keyCode === 9) { // TAB
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
if (event.shiftKey) {
|
||||||
|
this.props.dispatch({
|
||||||
|
type: 'WINDOW_COMMAND',
|
||||||
|
name: 'focusElement',
|
||||||
|
target: 'sideBar',
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.props.dispatch({
|
||||||
|
type: 'WINDOW_COMMAND',
|
||||||
|
name: 'focusElement',
|
||||||
|
target: 'noteTitle',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
focusNoteId_(noteId) {
|
||||||
|
// - We need to focus the item manually otherwise focus might be lost when the
|
||||||
|
// list is scrolled and items within it are being rebuilt.
|
||||||
|
// - We need to use an interval because when leaving the arrow pressed, the rendering
|
||||||
|
// of items might lag behind and so the ref is not yet available at this point.
|
||||||
|
if (!this.itemAnchorRef(noteId)) {
|
||||||
|
if (this.focusItemIID_) clearInterval(this.focusItemIID_);
|
||||||
|
this.focusItemIID_ = setInterval(() => {
|
||||||
|
if (this.itemAnchorRef(noteId)) {
|
||||||
|
this.itemAnchorRef(noteId).focus();
|
||||||
|
clearInterval(this.focusItemIID_)
|
||||||
|
this.focusItemIID_ = null;
|
||||||
|
}
|
||||||
|
}, 10);
|
||||||
|
} else {
|
||||||
|
this.itemAnchorRef(noteId).focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
componentWillUnmount() {
|
||||||
|
if (this.focusItemIID_) {
|
||||||
|
clearInterval(this.focusItemIID_);
|
||||||
|
this.focusItemIID_ = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const theme = themeStyle(this.props.theme);
|
const theme = themeStyle(this.props.theme);
|
||||||
const style = this.props.style;
|
const style = this.props.style;
|
||||||
let notes = this.props.notes.slice();
|
let notes = this.props.notes.slice();
|
||||||
|
|
||||||
if (!notes.length) {
|
if (!notes.length) {
|
||||||
const padding = 10;
|
const padding = 10;
|
||||||
const emptyDivStyle = Object.assign({
|
const emptyDivStyle = Object.assign({
|
||||||
@@ -340,14 +396,16 @@ class NoteListComponent extends React.Component {
|
|||||||
return <div style={emptyDivStyle}>{ this.props.folders.length ? _('No notes in here. Create one by clicking on "New note".') : _('There is currently no notebook. Create one by clicking on "New notebook".')}</div>
|
return <div style={emptyDivStyle}>{ this.props.folders.length ? _('No notes in here. Create one by clicking on "New note".') : _('There is currently no notebook. Create one by clicking on "New notebook".')}</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ItemList
|
<ItemList
|
||||||
|
ref={this.itemListRef}
|
||||||
itemHeight={this.style().listItem.height}
|
itemHeight={this.style().listItem.height}
|
||||||
style={style}
|
|
||||||
className={"note-list"}
|
className={"note-list"}
|
||||||
items={notes}
|
items={notes}
|
||||||
|
style={style}
|
||||||
itemRenderer={this.itemRenderer}
|
itemRenderer={this.itemRenderer}
|
||||||
></ItemList>
|
onKeyDown={this.onKeyDown}
|
||||||
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -363,6 +421,7 @@ const mapStateToProps = (state) => {
|
|||||||
searches: state.searches,
|
searches: state.searches,
|
||||||
selectedSearchId: state.selectedSearchId,
|
selectedSearchId: state.selectedSearchId,
|
||||||
watchedNoteFiles: state.watchedNoteFiles,
|
watchedNoteFiles: state.watchedNoteFiles,
|
||||||
|
windowCommand: state.windowCommand,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -16,12 +16,13 @@ class NotePropertiesDialog extends React.Component {
|
|||||||
|
|
||||||
this.okButton_click = this.okButton_click.bind(this);
|
this.okButton_click = this.okButton_click.bind(this);
|
||||||
this.cancelButton_click = this.cancelButton_click.bind(this);
|
this.cancelButton_click = this.cancelButton_click.bind(this);
|
||||||
|
this.onKeyDown = this.onKeyDown.bind(this);
|
||||||
|
this.okButton = React.createRef();
|
||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
formNote: null,
|
formNote: null,
|
||||||
editedKey: null,
|
editedKey: null,
|
||||||
editedValue: null,
|
editedValue: null,
|
||||||
visible: false,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.keyToLabel_ = {
|
this.keyToLabel_ = {
|
||||||
@@ -33,13 +34,13 @@ class NotePropertiesDialog extends React.Component {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps(newProps) {
|
componentDidMount() {
|
||||||
if ('visible' in newProps && newProps.visible !== this.state.visible) {
|
this.loadNote(this.props.noteId);
|
||||||
this.setState({ visible: newProps.visible });
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ('noteId' in newProps) {
|
componentDidUpdate() {
|
||||||
this.loadNote(newProps.noteId);
|
if (this.state.editedKey == null) {
|
||||||
|
this.okButton.current.focus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,25 +102,25 @@ class NotePropertiesDialog extends React.Component {
|
|||||||
this.styles_ = {};
|
this.styles_ = {};
|
||||||
this.styleKey_ = styleKey;
|
this.styleKey_ = styleKey;
|
||||||
|
|
||||||
this.styles_.modalLayer = {
|
// this.styles_.modalLayer = {
|
||||||
zIndex: 9999,
|
// zIndex: 9999,
|
||||||
display: 'flex',
|
// display: 'flex',
|
||||||
position: 'absolute',
|
// position: 'absolute',
|
||||||
top: 0,
|
// top: 0,
|
||||||
left: 0,
|
// left: 0,
|
||||||
width: '100%',
|
// width: '100%',
|
||||||
height: '100%',
|
// height: '100%',
|
||||||
backgroundColor: 'rgba(0,0,0,0.6)',
|
// backgroundColor: 'rgba(0,0,0,0.6)',
|
||||||
alignItems: 'flex-start',
|
// alignItems: 'flex-start',
|
||||||
justifyContent: 'center',
|
// justifyContent: 'center',
|
||||||
};
|
// };
|
||||||
|
|
||||||
this.styles_.dialogBox = {
|
// this.styles_.dialogBox = {
|
||||||
backgroundColor: theme.backgroundColor,
|
// backgroundColor: theme.backgroundColor,
|
||||||
padding: 16,
|
// padding: 16,
|
||||||
boxShadow: '6px 6px 20px rgba(0,0,0,0.5)',
|
// boxShadow: '6px 6px 20px rgba(0,0,0,0.5)',
|
||||||
marginTop: 20,
|
// marginTop: 20,
|
||||||
}
|
// }
|
||||||
|
|
||||||
this.styles_.controlBox = {
|
this.styles_.controlBox = {
|
||||||
marginBottom: '1em',
|
marginBottom: '1em',
|
||||||
@@ -152,7 +153,7 @@ class NotePropertiesDialog extends React.Component {
|
|||||||
borderColor: theme.dividerColor,
|
borderColor: theme.dividerColor,
|
||||||
};
|
};
|
||||||
|
|
||||||
this.styles_.dialogTitle = Object.assign({}, theme.h1Style, { marginBottom: '1.2em' });
|
// this.styles_.dialogTitle = Object.assign({}, theme.h1Style, { marginBottom: '1.2em' });
|
||||||
|
|
||||||
return this.styles_;
|
return this.styles_;
|
||||||
}
|
}
|
||||||
@@ -167,10 +168,6 @@ class NotePropertiesDialog extends React.Component {
|
|||||||
await this.cancelProperty();
|
await this.cancelProperty();
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setState({
|
|
||||||
visible: false,
|
|
||||||
});
|
|
||||||
|
|
||||||
if (this.props.onClose) {
|
if (this.props.onClose) {
|
||||||
this.props.onClose();
|
this.props.onClose();
|
||||||
}
|
}
|
||||||
@@ -184,6 +181,14 @@ class NotePropertiesDialog extends React.Component {
|
|||||||
this.closeDialog(false);
|
this.closeDialog(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onKeyDown(event) {
|
||||||
|
if (event.keyCode === 13) {
|
||||||
|
this.closeDialog(true);
|
||||||
|
} else if (event.keyCode === 27) {
|
||||||
|
this.closeDialog(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
editPropertyButtonClick(key, initialValue) {
|
editPropertyButtonClick(key, initialValue) {
|
||||||
this.setState({
|
this.setState({
|
||||||
editedKey: key,
|
editedKey: key,
|
||||||
@@ -222,6 +227,7 @@ class NotePropertiesDialog extends React.Component {
|
|||||||
|
|
||||||
async cancelProperty() {
|
async cancelProperty() {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
|
this.okButton.current.focus();
|
||||||
this.setState({
|
this.setState({
|
||||||
editedKey: null,
|
editedKey: null,
|
||||||
editedValue: null
|
editedValue: null
|
||||||
@@ -347,14 +353,21 @@ class NotePropertiesDialog extends React.Component {
|
|||||||
const formNote = this.state.formNote;
|
const formNote = this.state.formNote;
|
||||||
|
|
||||||
const buttonComps = [];
|
const buttonComps = [];
|
||||||
buttonComps.push(<button key="ok" style={styles.button} onClick={this.okButton_click}>{_('Apply')}</button>);
|
buttonComps.push(
|
||||||
|
<button
|
||||||
|
key="ok"
|
||||||
|
style={styles.button}
|
||||||
|
onClick={this.okButton_click}
|
||||||
|
ref={this.okButton}
|
||||||
|
onKeyDown={this.onKeyDown}
|
||||||
|
>
|
||||||
|
{_('Apply')}
|
||||||
|
</button>
|
||||||
|
);
|
||||||
buttonComps.push(<button key="cancel" style={styles.button} onClick={this.cancelButton_click}>{_('Cancel')}</button>);
|
buttonComps.push(<button key="cancel" style={styles.button} onClick={this.cancelButton_click}>{_('Cancel')}</button>);
|
||||||
|
|
||||||
const noteComps = [];
|
const noteComps = [];
|
||||||
|
|
||||||
const modalLayerStyle = Object.assign({}, styles.modalLayer);
|
|
||||||
if (!this.state.visible) modalLayerStyle.display = 'none';
|
|
||||||
|
|
||||||
if (formNote) {
|
if (formNote) {
|
||||||
for (let key in formNote) {
|
for (let key in formNote) {
|
||||||
if (!formNote.hasOwnProperty(key)) continue;
|
if (!formNote.hasOwnProperty(key)) continue;
|
||||||
@@ -364,9 +377,9 @@ class NotePropertiesDialog extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div style={modalLayerStyle}>
|
<div style={theme.dialogModalLayer}>
|
||||||
<div style={styles.dialogBox}>
|
<div style={theme.dialogBox}>
|
||||||
<div style={styles.dialogTitle}>{_('Note properties')}</div>
|
<div style={theme.dialogTitle}>{_('Note properties')}</div>
|
||||||
<div>{noteComps}</div>
|
<div>{noteComps}</div>
|
||||||
<div style={{ textAlign: 'right', marginTop: 10 }}>
|
<div style={{ textAlign: 'right', marginTop: 10 }}>
|
||||||
{buttonComps}
|
{buttonComps}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ class NoteSearchBarComponent extends React.Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.searchInput_change = this.searchInput_change.bind(this);
|
this.searchInput_change = this.searchInput_change.bind(this);
|
||||||
|
this.searchInput_keyDown = this.searchInput_keyDown.bind(this);
|
||||||
this.previousButton_click = this.previousButton_click.bind(this);
|
this.previousButton_click = this.previousButton_click.bind(this);
|
||||||
this.nextButton_click = this.nextButton_click.bind(this);
|
this.nextButton_click = this.nextButton_click.bind(this);
|
||||||
this.closeButton_click = this.closeButton_click.bind(this);
|
this.closeButton_click = this.closeButton_click.bind(this);
|
||||||
@@ -70,6 +71,24 @@ class NoteSearchBarComponent extends React.Component {
|
|||||||
this.triggerOnChange(query);
|
this.triggerOnChange(query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
searchInput_keyDown(event) {
|
||||||
|
if (event.keyCode === 13) { // ENTER
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
if (!event.shiftKey) {
|
||||||
|
if (this.props.onNext) this.props.onNext();
|
||||||
|
} else {
|
||||||
|
if (this.props.onPrevious) this.props.onPrevious();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.keyCode === 27) { // ESCAPE
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
if (this.props.onClose) this.props.onClose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
previousButton_click(event) {
|
previousButton_click(event) {
|
||||||
if (this.props.onPrevious) this.props.onPrevious();
|
if (this.props.onPrevious) this.props.onPrevious();
|
||||||
}
|
}
|
||||||
@@ -101,7 +120,7 @@ class NoteSearchBarComponent extends React.Component {
|
|||||||
<div style={this.props.style}>
|
<div style={this.props.style}>
|
||||||
<div style={{display: 'flex', flexDirection: 'row', alignItems: 'center' }}>
|
<div style={{display: 'flex', flexDirection: 'row', alignItems: 'center' }}>
|
||||||
{ closeButton }
|
{ closeButton }
|
||||||
<input placeholder={_('Search...')} value={this.state.query} onChange={this.searchInput_change} ref="searchInput" type="text" style={{width: 200, marginRight: 5}}></input>
|
<input placeholder={_('Search...')} value={this.state.query} onChange={this.searchInput_change} onKeyDown={this.searchInput_keyDown} ref="searchInput" type="text" style={{width: 200, marginRight: 5}}></input>
|
||||||
{ nextButton }
|
{ nextButton }
|
||||||
{ previousButton }
|
{ previousButton }
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ const Search = require('lib/models/Search.js');
|
|||||||
const { time } = require('lib/time-utils.js');
|
const { time } = require('lib/time-utils.js');
|
||||||
const Setting = require('lib/models/Setting.js');
|
const Setting = require('lib/models/Setting.js');
|
||||||
const { IconButton } = require('./IconButton.min.js');
|
const { IconButton } = require('./IconButton.min.js');
|
||||||
const { urlDecode, escapeHtml } = require('lib/string-utils');
|
const { urlDecode, escapeHtml, pregQuote, scriptType, substrWithEllipsis } = require('lib/string-utils');
|
||||||
const Toolbar = require('./Toolbar.min.js');
|
const Toolbar = require('./Toolbar.min.js');
|
||||||
const TagList = require('./TagList.min.js');
|
const TagList = require('./TagList.min.js');
|
||||||
const { connect } = require('react-redux');
|
const { connect } = require('react-redux');
|
||||||
@@ -28,6 +28,7 @@ const ArrayUtils = require('lib/ArrayUtils');
|
|||||||
const ObjectUtils = require('lib/ObjectUtils');
|
const ObjectUtils = require('lib/ObjectUtils');
|
||||||
const urlUtils = require('lib/urlUtils');
|
const urlUtils = require('lib/urlUtils');
|
||||||
const dialogs = require('./dialogs');
|
const dialogs = require('./dialogs');
|
||||||
|
const NoteListUtils = require('./utils/NoteListUtils');
|
||||||
const NoteSearchBar = require('./NoteSearchBar.min.js');
|
const NoteSearchBar = require('./NoteSearchBar.min.js');
|
||||||
const markdownUtils = require('lib/markdownUtils');
|
const markdownUtils = require('lib/markdownUtils');
|
||||||
const ExternalEditWatcher = require('lib/services/ExternalEditWatcher');
|
const ExternalEditWatcher = require('lib/services/ExternalEditWatcher');
|
||||||
@@ -35,6 +36,8 @@ const ResourceFetcher = require('lib/services/ResourceFetcher');
|
|||||||
const { toSystemSlashes, safeFilename } = require('lib/path-utils');
|
const { toSystemSlashes, safeFilename } = require('lib/path-utils');
|
||||||
const { clipboard } = require('electron');
|
const { clipboard } = require('electron');
|
||||||
const SearchEngine = require('lib/services/SearchEngine');
|
const SearchEngine = require('lib/services/SearchEngine');
|
||||||
|
const ModelCache = require('lib/services/ModelCache');
|
||||||
|
const NoteTextViewer = require('./NoteTextViewer.min');
|
||||||
|
|
||||||
require('brace/mode/markdown');
|
require('brace/mode/markdown');
|
||||||
// https://ace.c9.io/build/kitchen-sink.html
|
// https://ace.c9.io/build/kitchen-sink.html
|
||||||
@@ -73,11 +76,14 @@ class NoteTextComponent extends React.Component {
|
|||||||
// to automatically set the title.
|
// to automatically set the title.
|
||||||
newAndNoTitleChangeNoteId: null,
|
newAndNoTitleChangeNoteId: null,
|
||||||
bodyHtml: '',
|
bodyHtml: '',
|
||||||
|
lastRenderCssFiles: [],
|
||||||
lastKeys: [],
|
lastKeys: [],
|
||||||
showLocalSearch: false,
|
showLocalSearch: false,
|
||||||
localSearch: Object.assign({}, this.localSearchDefaultState),
|
localSearch: Object.assign({}, this.localSearchDefaultState),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.webviewRef_ = React.createRef();
|
||||||
|
|
||||||
this.lastLoadedNoteId_ = null;
|
this.lastLoadedNoteId_ = null;
|
||||||
|
|
||||||
this.webviewListeners_ = null;
|
this.webviewListeners_ = null;
|
||||||
@@ -103,9 +109,9 @@ class NoteTextComponent extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.onAlarmChange_ = (event) => { if (event.noteId === this.props.noteId) this.reloadNote(this.props); }
|
this.onAlarmChange_ = (event) => { if (event.noteId === this.props.noteId) this.scheduleReloadNote(this.props); }
|
||||||
this.onNoteTypeToggle_ = (event) => { if (event.noteId === this.props.noteId) this.reloadNote(this.props); }
|
this.onNoteTypeToggle_ = (event) => { if (event.noteId === this.props.noteId) this.scheduleReloadNote(this.props); }
|
||||||
this.onTodoToggle_ = (event) => { if (event.noteId === this.props.noteId) this.reloadNote(this.props); }
|
this.onTodoToggle_ = (event) => { if (event.noteId === this.props.noteId) this.scheduleReloadNote(this.props); }
|
||||||
|
|
||||||
this.onEditorPaste_ = async (event = null) => {
|
this.onEditorPaste_ = async (event = null) => {
|
||||||
const formats = clipboard.availableFormats();
|
const formats = clipboard.availableFormats();
|
||||||
@@ -214,7 +220,7 @@ class NoteTextComponent extends React.Component {
|
|||||||
this.externalEditWatcher_noteChange = (event) => {
|
this.externalEditWatcher_noteChange = (event) => {
|
||||||
if (!this.state.note || !this.state.note.id) return;
|
if (!this.state.note || !this.state.note.id) return;
|
||||||
if (event.id === this.state.note.id) {
|
if (event.id === this.state.note.id) {
|
||||||
this.reloadNote(this.props);
|
this.scheduleReloadNote(this.props);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -222,9 +228,10 @@ class NoteTextComponent extends React.Component {
|
|||||||
if (!this.state.note || !this.state.note.body) return;
|
if (!this.state.note || !this.state.note.body) return;
|
||||||
const resourceIds = await Note.linkedResourceIds(this.state.note.body);
|
const resourceIds = await Note.linkedResourceIds(this.state.note.body);
|
||||||
if (resourceIds.indexOf(resource.id) >= 0) {
|
if (resourceIds.indexOf(resource.id) >= 0) {
|
||||||
this.mdToHtml().clearCache();
|
// this.mdToHtml().clearCache();
|
||||||
this.lastSetHtml_ = '';
|
this.lastSetHtml_ = '';
|
||||||
this.updateHtml(this.state.note.body);
|
this.scheduleHtmlUpdate();
|
||||||
|
//this.updateHtml(this.state.note.body);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -257,6 +264,10 @@ class NoteTextComponent extends React.Component {
|
|||||||
showLocalSearch: false,
|
showLocalSearch: false,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.titleField_keyDown = this.titleField_keyDown.bind(this);
|
||||||
|
this.webview_ipcMessage = this.webview_ipcMessage.bind(this);
|
||||||
|
this.webview_domReady = this.webview_domReady.bind(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note:
|
// Note:
|
||||||
@@ -357,7 +368,6 @@ class NoteTextComponent extends React.Component {
|
|||||||
this.saveIfNeeded();
|
this.saveIfNeeded();
|
||||||
|
|
||||||
this.mdToHtml_ = null;
|
this.mdToHtml_ = null;
|
||||||
this.destroyWebview();
|
|
||||||
|
|
||||||
eventManager.removeListener('alarmChange', this.onAlarmChange_);
|
eventManager.removeListener('alarmChange', this.onAlarmChange_);
|
||||||
eventManager.removeListener('noteTypeToggle', this.onNoteTypeToggle_);
|
eventManager.removeListener('noteTypeToggle', this.onNoteTypeToggle_);
|
||||||
@@ -398,6 +408,20 @@ class NoteTextComponent extends React.Component {
|
|||||||
}, 500);
|
}, 500);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
scheduleReloadNote(props, options = null) {
|
||||||
|
if (this.scheduleReloadNoteIID_) {
|
||||||
|
clearTimeout(this.scheduleReloadNoteIID_);
|
||||||
|
this.scheduleReloadNoteIID_ = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.scheduleReloadNoteIID_ = setTimeout(() => {
|
||||||
|
this.reloadNote(props, options);
|
||||||
|
}, 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Generally, reloadNote() should not be called directly so that it's not called multiple times
|
||||||
|
// from multiple places within a short interval of time. Instead use scheduleReloadNote() to
|
||||||
|
// delay reloading a bit and make sure that only one reload operation is performed.
|
||||||
async reloadNote(props, options = null) {
|
async reloadNote(props, options = null) {
|
||||||
if (!options) options = {};
|
if (!options) options = {};
|
||||||
if (!('noReloadIfLocalChanges' in options)) options.noReloadIfLocalChanges = false;
|
if (!('noReloadIfLocalChanges' in options)) options.noReloadIfLocalChanges = false;
|
||||||
@@ -412,12 +436,17 @@ class NoteTextComponent extends React.Component {
|
|||||||
let loadingNewNote = true;
|
let loadingNewNote = true;
|
||||||
let parentFolder = null;
|
let parentFolder = null;
|
||||||
let noteTags = [];
|
let noteTags = [];
|
||||||
|
let scrollPercent = 0;
|
||||||
|
|
||||||
if (props.newNote) {
|
if (props.newNote) {
|
||||||
note = Object.assign({}, props.newNote);
|
note = Object.assign({}, props.newNote);
|
||||||
this.lastLoadedNoteId_ = null;
|
this.lastLoadedNoteId_ = null;
|
||||||
} else {
|
} else {
|
||||||
noteId = props.noteId;
|
noteId = props.noteId;
|
||||||
|
|
||||||
|
scrollPercent = this.props.lastEditorScrollPercents[noteId];
|
||||||
|
if (!scrollPercent) scrollPercent = 0;
|
||||||
|
|
||||||
loadingNewNote = stateNoteId !== noteId;
|
loadingNewNote = stateNoteId !== noteId;
|
||||||
noteTags = await Tag.tagsByNoteId(noteId);
|
noteTags = await Tag.tagsByNoteId(noteId);
|
||||||
this.lastLoadedNoteId_ = noteId;
|
this.lastLoadedNoteId_ = noteId;
|
||||||
@@ -438,7 +467,7 @@ class NoteTextComponent extends React.Component {
|
|||||||
// If we are loading nothing (noteId == null), make sure to
|
// If we are loading nothing (noteId == null), make sure to
|
||||||
// set webviewReady to false too because the webview component
|
// set webviewReady to false too because the webview component
|
||||||
// is going to be removed in render().
|
// is going to be removed in render().
|
||||||
const webviewReady = this.webview_ && this.state.webviewReady && (noteId || props.newNote);
|
const webviewReady = !!this.webviewRef_.current && this.state.webviewReady && (!!noteId || !!props.newNote);
|
||||||
|
|
||||||
// Scroll back to top when loading new note
|
// Scroll back to top when loading new note
|
||||||
if (loadingNewNote) {
|
if (loadingNewNote) {
|
||||||
@@ -455,11 +484,13 @@ class NoteTextComponent extends React.Component {
|
|||||||
if (this.props.newNote) {
|
if (this.props.newNote) {
|
||||||
const focusSettingName = !!note.is_todo ? 'newTodoFocus' : 'newNoteFocus';
|
const focusSettingName = !!note.is_todo ? 'newTodoFocus' : 'newNoteFocus';
|
||||||
|
|
||||||
if (Setting.value(focusSettingName) === 'title') {
|
requestAnimationFrame(() => {
|
||||||
if (this.titleField_) this.titleField_.focus();
|
if (Setting.value(focusSettingName) === 'title') {
|
||||||
} else {
|
if (this.titleField_) this.titleField_.focus();
|
||||||
if (this.editor_) this.editor_.editor.focus();
|
} else {
|
||||||
}
|
if (this.editor_) this.editor_.editor.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.editor_) {
|
if (this.editor_) {
|
||||||
@@ -481,6 +512,11 @@ class NoteTextComponent extends React.Component {
|
|||||||
}
|
}
|
||||||
this.editor_.editor.clearSelection();
|
this.editor_.editor.clearSelection();
|
||||||
this.editor_.editor.moveCursorTo(0,0);
|
this.editor_.editor.moveCursorTo(0,0);
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
this.setEditorPercentScroll(scrollPercent ? scrollPercent : 0);
|
||||||
|
this.setViewerPercentScroll(scrollPercent ? scrollPercent : 0);
|
||||||
|
}, 10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -530,22 +566,24 @@ class NoteTextComponent extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if (newState.note) await shared.refreshAttachedResources(this, newState.note.body);
|
||||||
|
|
||||||
this.updateHtml(newState.note ? newState.note.body : '');
|
this.updateHtml(newState.note ? newState.note.body : '');
|
||||||
}
|
}
|
||||||
|
|
||||||
async componentWillReceiveProps(nextProps) {
|
async componentWillReceiveProps(nextProps) {
|
||||||
if (nextProps.newNote) {
|
if (this.props.newNote !== nextProps.newNote && nextProps.newNote) {
|
||||||
await this.reloadNote(nextProps);
|
await this.scheduleReloadNote(nextProps);
|
||||||
} else if ('noteId' in nextProps && nextProps.noteId !== this.props.noteId) {
|
} else if (('noteId' in nextProps) && nextProps.noteId !== this.props.noteId) {
|
||||||
await this.reloadNote(nextProps);
|
await this.scheduleReloadNote(nextProps);
|
||||||
} else if ('noteTags' in nextProps && this.areNoteTagsModified(nextProps.noteTags, this.state.noteTags)) {
|
} else if ('noteTags' in nextProps && this.areNoteTagsModified(nextProps.noteTags, this.state.noteTags)) {
|
||||||
this.setState({
|
this.setState({
|
||||||
noteTags: nextProps.noteTags
|
noteTags: nextProps.noteTags
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('syncStarted' in nextProps && !nextProps.syncStarted && !this.isModified()) {
|
if ((nextProps.syncStarted !== this.props.syncStarted) && ('syncStarted' in nextProps) && !nextProps.syncStarted && !this.isModified()) {
|
||||||
await this.reloadNote(nextProps, { noReloadIfLocalChanges: true });
|
await this.scheduleReloadNote(nextProps, { noReloadIfLocalChanges: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nextProps.windowCommand) {
|
if (nextProps.windowCommand) {
|
||||||
@@ -602,7 +640,7 @@ class NoteTextComponent extends React.Component {
|
|||||||
const arg0 = args && args.length >= 1 ? args[0] : null;
|
const arg0 = args && args.length >= 1 ? args[0] : null;
|
||||||
const arg1 = args && args.length >= 2 ? args[1] : null;
|
const arg1 = args && args.length >= 2 ? args[1] : null;
|
||||||
|
|
||||||
reg.logger().debug('Got ipc-message: ' + msg, args);
|
console.info('Got ipc-message: ' + msg, args);
|
||||||
|
|
||||||
if (msg.indexOf('checkboxclick:') === 0) {
|
if (msg.indexOf('checkboxclick:') === 0) {
|
||||||
// Ugly hack because setting the body here will make the scrollbar
|
// Ugly hack because setting the body here will make the scrollbar
|
||||||
@@ -611,7 +649,7 @@ class NoteTextComponent extends React.Component {
|
|||||||
// "afterRender" event has been called.
|
// "afterRender" event has been called.
|
||||||
this.restoreScrollTop_ = this.editorScrollTop();
|
this.restoreScrollTop_ = this.editorScrollTop();
|
||||||
|
|
||||||
const newBody = this.mdToHtml_.handleCheckboxClick(msg, this.state.note.body);
|
const newBody = shared.toggleCheckbox(msg, this.state.note.body);
|
||||||
this.saveOneProperty('body', newBody);
|
this.saveOneProperty('body', newBody);
|
||||||
} else if (msg === 'setMarkerCount') {
|
} else if (msg === 'setMarkerCount') {
|
||||||
const ls = Object.assign({}, this.state.localSearch);
|
const ls = Object.assign({}, this.state.localSearch);
|
||||||
@@ -678,6 +716,10 @@ class NoteTextComponent extends React.Component {
|
|||||||
type: "FOLDER_AND_NOTE_SELECT",
|
type: "FOLDER_AND_NOTE_SELECT",
|
||||||
folderId: item.parent_id,
|
folderId: item.parent_id,
|
||||||
noteId: item.id,
|
noteId: item.id,
|
||||||
|
historyNoteAction: {
|
||||||
|
id: this.state.note.id,
|
||||||
|
parent_id: this.state.note.parent_id,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
throw new Error('Unsupported item type: ' + item.type_);
|
throw new Error('Unsupported item type: ' + item.type_);
|
||||||
@@ -687,6 +729,7 @@ class NoteTextComponent extends React.Component {
|
|||||||
// When using the file:// protocol, openExternal doesn't work (does nothing) with URL-encoded paths
|
// When using the file:// protocol, openExternal doesn't work (does nothing) with URL-encoded paths
|
||||||
require('electron').shell.openExternal(urlDecode(msg));
|
require('electron').shell.openExternal(urlDecode(msg));
|
||||||
} else {
|
} else {
|
||||||
|
console.info('OPEN URL');
|
||||||
require('electron').shell.openExternal(msg);
|
require('electron').shell.openExternal(msg);
|
||||||
}
|
}
|
||||||
} else if (msg.indexOf('#') === 0) {
|
} else if (msg.indexOf('#') === 0) {
|
||||||
@@ -710,11 +753,31 @@ class NoteTextComponent extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setEditorPercentScroll(p) {
|
setEditorPercentScroll(p) {
|
||||||
|
const noteId = this.props.noteId;
|
||||||
|
|
||||||
|
if (noteId) {
|
||||||
|
this.props.dispatch({
|
||||||
|
type: 'EDITOR_SCROLL_PERCENT_SET',
|
||||||
|
noteId: noteId,
|
||||||
|
percent: p,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
this.editorSetScrollTop(p * this.editorMaxScroll());
|
this.editorSetScrollTop(p * this.editorMaxScroll());
|
||||||
}
|
}
|
||||||
|
|
||||||
setViewerPercentScroll(p) {
|
setViewerPercentScroll(p) {
|
||||||
this.webview_.send('setPercentScroll', p);
|
const noteId = this.props.noteId;
|
||||||
|
|
||||||
|
if (noteId) {
|
||||||
|
this.props.dispatch({
|
||||||
|
type: 'EDITOR_SCROLL_PERCENT_SET',
|
||||||
|
noteId: noteId,
|
||||||
|
percent: p,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.webviewRef_.current) this.webviewRef_.current.wrappedInstance.send('setPercentScroll', p);
|
||||||
}
|
}
|
||||||
|
|
||||||
editor_scroll() {
|
editor_scroll() {
|
||||||
@@ -724,29 +787,20 @@ class NoteTextComponent extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const m = this.editorMaxScroll();
|
const m = this.editorMaxScroll();
|
||||||
this.setViewerPercentScroll(m ? this.editorScrollTop() / m : 0);
|
const percent = m ? this.editorScrollTop() / m : 0;
|
||||||
|
|
||||||
|
this.setViewerPercentScroll(percent);
|
||||||
}
|
}
|
||||||
|
|
||||||
webview_domReady() {
|
webview_domReady() {
|
||||||
if (!this.webview_) return;
|
if (!this.webviewRef_.current) return;
|
||||||
|
|
||||||
this.setState({
|
this.setState({
|
||||||
webviewReady: true,
|
webviewReady: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
// if (Setting.value('env') === 'dev') this.webview_.openDevTools();
|
if (Setting.value('env') === 'dev') {
|
||||||
}
|
// this.webviewRef_.current.wrappedInstance.openDevTools();
|
||||||
|
|
||||||
webview_ref(element) {
|
|
||||||
if (this.webview_) {
|
|
||||||
if (this.webview_ === element) return;
|
|
||||||
this.destroyWebview();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!element) {
|
|
||||||
this.destroyWebview();
|
|
||||||
} else {
|
|
||||||
this.initWebview(element);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -766,7 +820,7 @@ class NoteTextComponent extends React.Component {
|
|||||||
this.editor_.editor.renderer.on('afterRender', this.onAfterEditorRender_);
|
this.editor_.editor.renderer.on('afterRender', this.onAfterEditorRender_);
|
||||||
|
|
||||||
const cancelledKeys = [];
|
const cancelledKeys = [];
|
||||||
const letters = ['F', 'T', 'P', 'Q', 'L', ','];
|
const letters = ['F', 'T', 'P', 'Q', 'L', ',', 'G'];
|
||||||
for (let i = 0; i < letters.length; i++) {
|
for (let i = 0; i < letters.length; i++) {
|
||||||
const l = letters[i];
|
const l = letters[i];
|
||||||
cancelledKeys.push('Ctrl+' + l);
|
cancelledKeys.push('Ctrl+' + l);
|
||||||
@@ -822,35 +876,6 @@ class NoteTextComponent extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
initWebview(wv) {
|
|
||||||
if (!this.webviewListeners_) {
|
|
||||||
this.webviewListeners_ = {
|
|
||||||
'dom-ready': this.webview_domReady.bind(this),
|
|
||||||
'ipc-message': this.webview_ipcMessage.bind(this),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
for (let n in this.webviewListeners_) {
|
|
||||||
if (!this.webviewListeners_.hasOwnProperty(n)) continue;
|
|
||||||
const fn = this.webviewListeners_[n];
|
|
||||||
wv.addEventListener(n, fn);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.webview_ = wv;
|
|
||||||
}
|
|
||||||
|
|
||||||
destroyWebview() {
|
|
||||||
if (!this.webview_) return;
|
|
||||||
|
|
||||||
for (let n in this.webviewListeners_) {
|
|
||||||
if (!this.webviewListeners_.hasOwnProperty(n)) continue;
|
|
||||||
const fn = this.webviewListeners_[n];
|
|
||||||
this.webview_.removeEventListener(n, fn);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.webview_ = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
aceEditor_change(body) {
|
aceEditor_change(body) {
|
||||||
shared.noteComponent_change(this, 'body', body);
|
shared.noteComponent_change(this, 'body', body);
|
||||||
this.scheduleHtmlUpdate();
|
this.scheduleHtmlUpdate();
|
||||||
@@ -872,28 +897,22 @@ class NoteTextComponent extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
updateHtml(body = null) {
|
async updateHtml(body = null, options = null) {
|
||||||
const mdOptions = {
|
if (!options) options = {};
|
||||||
onResourceLoaded: () => {
|
if (!('useCustomCss' in options)) options.useCustomCss = true;
|
||||||
if (this.resourceLoadedTimeoutId_) {
|
|
||||||
clearTimeout(this.resourceLoadedTimeoutId_);
|
|
||||||
this.resourceLoadedTimeoutId_ = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.resourceLoadedTimeoutId_ = setTimeout(() => {
|
|
||||||
this.resourceLoadedTimeoutId_ = null;
|
|
||||||
this.updateHtml();
|
|
||||||
this.forceUpdate();
|
|
||||||
}, 100);
|
|
||||||
},
|
|
||||||
postMessageSyntax: 'ipcProxySendToHost',
|
|
||||||
};
|
|
||||||
|
|
||||||
const theme = themeStyle(this.props.theme);
|
|
||||||
|
|
||||||
let bodyToRender = body;
|
let bodyToRender = body;
|
||||||
if (bodyToRender === null) bodyToRender = this.state.note && this.state.note.body ? this.state.note.body : '';
|
if (bodyToRender === null) bodyToRender = this.state.note && this.state.note.body ? this.state.note.body : '';
|
||||||
bodyToRender = '<style>' + this.props.customCss + '</style>\n' + bodyToRender;
|
|
||||||
|
const theme = themeStyle(this.props.theme);
|
||||||
|
|
||||||
|
const mdOptions = {
|
||||||
|
codeTheme: theme.codeThemeCss,
|
||||||
|
postMessageSyntax: 'ipcProxySendToHost',
|
||||||
|
userCss: options.useCustomCss ? this.props.customCss : '',
|
||||||
|
resources: await shared.attachedResources(bodyToRender),
|
||||||
|
};
|
||||||
|
|
||||||
let bodyHtml = '';
|
let bodyHtml = '';
|
||||||
|
|
||||||
const visiblePanes = this.props.visiblePanes || ['editor', 'viewer'];
|
const visiblePanes = this.props.visiblePanes || ['editor', 'viewer'];
|
||||||
@@ -903,30 +922,75 @@ class NoteTextComponent extends React.Component {
|
|||||||
bodyToRender = '*' + _('This note has no content. Click on "%s" to toggle the editor and edit the note.', _('Layout')) + '*';
|
bodyToRender = '*' + _('This note has no content. Click on "%s" to toggle the editor and edit the note.', _('Layout')) + '*';
|
||||||
}
|
}
|
||||||
|
|
||||||
bodyHtml = this.mdToHtml().render(bodyToRender, theme, mdOptions);
|
const result = this.mdToHtml().render(bodyToRender, theme, mdOptions);
|
||||||
|
|
||||||
this.setState({ bodyHtml: bodyHtml });
|
this.setState({
|
||||||
|
bodyHtml: result.html,
|
||||||
|
lastRenderCssFiles: result.cssFiles,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
titleField_keyDown(event) {
|
||||||
|
const keyCode = event.keyCode;
|
||||||
|
|
||||||
|
if (keyCode === 9) { // TAB
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
if (event.shiftKey) {
|
||||||
|
this.props.dispatch({
|
||||||
|
type: 'WINDOW_COMMAND',
|
||||||
|
name: 'focusElement',
|
||||||
|
target: 'noteList',
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.props.dispatch({
|
||||||
|
type: 'WINDOW_COMMAND',
|
||||||
|
name: 'focusElement',
|
||||||
|
target: 'noteBody',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async doCommand(command) {
|
async doCommand(command) {
|
||||||
if (!command || !this.state.note) return;
|
if (!command) return;
|
||||||
|
|
||||||
let fn = null;
|
let fn = null;
|
||||||
|
|
||||||
if (command.name === 'exportPdf' && this.webview_) {
|
if (command.name === 'exportPdf') {
|
||||||
fn = this.commandSavePdf;
|
fn = this.commandSavePdf;
|
||||||
} else if (command.name === 'print' && this.webview_) {
|
} else if (command.name === 'print') {
|
||||||
fn = this.commandPrint;
|
fn = this.commandPrint;
|
||||||
} else if (command.name === 'textBold') {
|
}
|
||||||
fn = this.commandTextBold;
|
|
||||||
} else if (command.name === 'textItalic') {
|
if (this.state.note) {
|
||||||
fn = this.commandTextItalic;
|
if (command.name === 'textBold') {
|
||||||
} else if (command.name === 'insertDateTime' ) {
|
fn = this.commandTextBold;
|
||||||
fn = this.commandDateTime;
|
} else if (command.name === 'textItalic') {
|
||||||
} else if (command.name === 'commandStartExternalEditing') {
|
fn = this.commandTextItalic;
|
||||||
fn = this.commandStartExternalEditing;
|
} else if (command.name === 'textLink') {
|
||||||
} else if (command.name === 'showLocalSearch') {
|
fn = this.commandTextLink;
|
||||||
fn = this.commandShowLocalSearch;
|
} else if (command.name === 'insertDateTime') {
|
||||||
|
fn = this.commandDateTime;
|
||||||
|
} else if (command.name === 'commandStartExternalEditing') {
|
||||||
|
fn = this.commandStartExternalEditing;
|
||||||
|
} else if (command.name === 'showLocalSearch') {
|
||||||
|
fn = this.commandShowLocalSearch;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (command.name === 'focusElement' && command.target === 'noteTitle') {
|
||||||
|
fn = () => {
|
||||||
|
if (!this.titleField_) return;
|
||||||
|
this.titleField_.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (command.name === 'focusElement' && command.target === 'noteBody') {
|
||||||
|
fn = () => {
|
||||||
|
if (!this.editor_) return;
|
||||||
|
this.editor_.editor.focus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!fn) return;
|
if (!fn) return;
|
||||||
@@ -997,26 +1061,30 @@ class NoteTextComponent extends React.Component {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
printTo_(target, options) {
|
async printTo_(target, options) {
|
||||||
|
if (this.props.selectedNoteIds.length !== 1 || !this.webviewRef_.current) {
|
||||||
|
throw new Error(_('Only one note can be printed or exported to PDF at a time.'));
|
||||||
|
}
|
||||||
|
|
||||||
const previousBody = this.state.note.body;
|
const previousBody = this.state.note.body;
|
||||||
const tempBody = "# " + this.state.note.title + "\n\n" + previousBody;
|
const tempBody = "# " + this.state.note.title + "\n\n" + previousBody;
|
||||||
|
|
||||||
const previousTheme = Setting.value('theme');
|
const previousTheme = Setting.value('theme');
|
||||||
Setting.setValue('theme', Setting.THEME_LIGHT);
|
Setting.setValue('theme', Setting.THEME_LIGHT);
|
||||||
this.lastSetHtml_ = '';
|
this.lastSetHtml_ = '';
|
||||||
this.updateHtml(tempBody);
|
await this.updateHtml(tempBody, { useCustomCss: false });
|
||||||
this.forceUpdate();
|
this.forceUpdate();
|
||||||
|
|
||||||
const restoreSettings = () => {
|
const restoreSettings = async () => {
|
||||||
Setting.setValue('theme', previousTheme);
|
Setting.setValue('theme', previousTheme);
|
||||||
this.lastSetHtml_ = '';
|
this.lastSetHtml_ = '';
|
||||||
this.updateHtml(previousBody);
|
await this.updateHtml(previousBody);
|
||||||
this.forceUpdate();
|
this.forceUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
if (target === 'pdf') {
|
if (target === 'pdf') {
|
||||||
this.webview_.printToPDF({}, (error, data) => {
|
this.webviewRef_.current.wrappedInstance.printToPDF({ printBackground: true }, (error, data) => {
|
||||||
restoreSettings();
|
restoreSettings();
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
@@ -1026,25 +1094,35 @@ class NoteTextComponent extends React.Component {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (target === 'printer') {
|
} else if (target === 'printer') {
|
||||||
this.webview_.print();
|
this.webviewRef_.current.wrappedInstance.print({ printBackground: true });
|
||||||
restoreSettings();
|
restoreSettings();
|
||||||
}
|
}
|
||||||
}, 100);
|
}, 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
commandSavePdf() {
|
async commandSavePdf() {
|
||||||
const path = bridge().showSaveDialog({
|
try {
|
||||||
filters: [{ name: _('PDF File'), extensions: ['pdf']}],
|
if (!this.state.note) throw new Error(_('Only one note can be printed or exported to PDF at a time.'));
|
||||||
defaultPath: safeFilename(this.state.note.title),
|
|
||||||
});
|
|
||||||
|
|
||||||
if (path) {
|
const path = bridge().showSaveDialog({
|
||||||
this.printTo_('pdf', { path: path });
|
filters: [{ name: _('PDF File'), extensions: ['pdf']}],
|
||||||
|
defaultPath: safeFilename(this.state.note.title),
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!path) return;
|
||||||
|
|
||||||
|
await this.printTo_('pdf', { path: path });
|
||||||
|
} catch (error) {
|
||||||
|
bridge().showErrorMessageBox(error.message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
commandPrint() {
|
async commandPrint() {
|
||||||
this.printTo_('printer');
|
try {
|
||||||
|
await this.printTo_('printer');
|
||||||
|
} catch (error) {
|
||||||
|
bridge().showErrorMessageBox(error.message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async commandStartExternalEditing() {
|
async commandStartExternalEditing() {
|
||||||
@@ -1294,9 +1372,35 @@ class NoteTextComponent extends React.Component {
|
|||||||
const toolbarItems = [];
|
const toolbarItems = [];
|
||||||
if (note && this.state.folder && ['Search', 'Tag'].includes(this.props.notesParentType)) {
|
if (note && this.state.folder && ['Search', 'Tag'].includes(this.props.notesParentType)) {
|
||||||
toolbarItems.push({
|
toolbarItems.push({
|
||||||
title: _('In: %s', this.state.folder.title),
|
title: _('In: %s', substrWithEllipsis(this.state.folder.title, 0, 16)),
|
||||||
iconName: 'fa-folder-o',
|
iconName: 'fa-book',
|
||||||
enabled: false,
|
onClick: () => {
|
||||||
|
this.props.dispatch({
|
||||||
|
type: "FOLDER_AND_NOTE_SELECT",
|
||||||
|
folderId: this.state.folder.id,
|
||||||
|
noteId: note.id,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// enabled: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.props.historyNotes.length) {
|
||||||
|
toolbarItems.push({
|
||||||
|
tooltip: _('Back'),
|
||||||
|
iconName: 'fa-arrow-left',
|
||||||
|
onClick: () => {
|
||||||
|
if (!this.props.historyNotes.length) return;
|
||||||
|
|
||||||
|
const lastItem = this.props.historyNotes[this.props.historyNotes.length - 1];
|
||||||
|
|
||||||
|
this.props.dispatch({
|
||||||
|
type: "FOLDER_AND_NOTE_SELECT",
|
||||||
|
folderId: lastItem.parent_id,
|
||||||
|
noteId: lastItem.id,
|
||||||
|
historyNoteAction: 'pop',
|
||||||
|
});
|
||||||
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1316,25 +1420,6 @@ class NoteTextComponent extends React.Component {
|
|||||||
type: 'separator',
|
type: 'separator',
|
||||||
});
|
});
|
||||||
|
|
||||||
toolbarItems.push({
|
|
||||||
tooltip: _('Note properties'),
|
|
||||||
iconName: 'fa-info-circle',
|
|
||||||
onClick: () => {
|
|
||||||
const n = this.state.note;
|
|
||||||
if (!n || !n.id) return;
|
|
||||||
|
|
||||||
this.props.dispatch({
|
|
||||||
type: 'WINDOW_COMMAND',
|
|
||||||
name: 'commandNoteProperties',
|
|
||||||
noteId: n.id,
|
|
||||||
});
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
toolbarItems.push({
|
|
||||||
type: 'separator',
|
|
||||||
});
|
|
||||||
|
|
||||||
toolbarItems.push({
|
toolbarItems.push({
|
||||||
tooltip: _('Hyperlink'),
|
tooltip: _('Hyperlink'),
|
||||||
iconName: 'fa-link',
|
iconName: 'fa-link',
|
||||||
@@ -1432,9 +1517,80 @@ class NoteTextComponent extends React.Component {
|
|||||||
toolbarItems.push(item);
|
toolbarItems.push(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
toolbarItems.push({
|
||||||
|
tooltip: _('Note properties'),
|
||||||
|
iconName: 'fa-info-circle',
|
||||||
|
onClick: () => {
|
||||||
|
const n = this.state.note;
|
||||||
|
if (!n || !n.id) return;
|
||||||
|
|
||||||
|
this.props.dispatch({
|
||||||
|
type: 'WINDOW_COMMAND',
|
||||||
|
name: 'commandNoteProperties',
|
||||||
|
noteId: n.id,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
return toolbarItems;
|
return toolbarItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
renderNoNotes(rootStyle) {
|
||||||
|
const emptyDivStyle = Object.assign({
|
||||||
|
backgroundColor: 'black',
|
||||||
|
opacity: 0.1,
|
||||||
|
}, rootStyle);
|
||||||
|
return <div style={emptyDivStyle}></div>
|
||||||
|
}
|
||||||
|
|
||||||
|
renderMultiNotes(rootStyle) {
|
||||||
|
const theme = themeStyle(this.props.theme);
|
||||||
|
|
||||||
|
const multiNotesButton_click = item => {
|
||||||
|
if (item.submenu) {
|
||||||
|
item.submenu.popup(bridge().window());
|
||||||
|
} else {
|
||||||
|
item.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const menu = NoteListUtils.makeContextMenu(this.props.selectedNoteIds, {
|
||||||
|
notes: this.props.notes,
|
||||||
|
dispatch: this.props.dispatch,
|
||||||
|
});
|
||||||
|
|
||||||
|
const buttonStyle = Object.assign({}, theme.buttonStyle, {
|
||||||
|
marginBottom: 10,
|
||||||
|
});
|
||||||
|
|
||||||
|
const itemComps = [];
|
||||||
|
const menuItems = menu.items;
|
||||||
|
|
||||||
|
for (let i = 0; i < menuItems.length; i++) {
|
||||||
|
const item = menuItems[i];
|
||||||
|
if (!item.enabled) continue;
|
||||||
|
|
||||||
|
itemComps.push(<button
|
||||||
|
key={item.label}
|
||||||
|
style={buttonStyle}
|
||||||
|
onClick={() => multiNotesButton_click(item)}
|
||||||
|
>{item.label}</button>);
|
||||||
|
}
|
||||||
|
|
||||||
|
rootStyle = Object.assign({}, rootStyle, {
|
||||||
|
paddingTop: rootStyle.paddingLeft,
|
||||||
|
display: 'inline-flex',
|
||||||
|
justifyContent: 'center',
|
||||||
|
});
|
||||||
|
|
||||||
|
return (<div style={rootStyle}>
|
||||||
|
<div style={{display: 'flex', flexDirection: 'column'}}>
|
||||||
|
{itemComps}
|
||||||
|
</div>
|
||||||
|
</div>);
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const style = this.props.style;
|
const style = this.props.style;
|
||||||
const note = this.state.note;
|
const note = this.state.note;
|
||||||
@@ -1454,12 +1610,10 @@ class NoteTextComponent extends React.Component {
|
|||||||
|
|
||||||
const innerWidth = rootStyle.width - rootStyle.paddingLeft - rootStyle.paddingRight - borderWidth;
|
const innerWidth = rootStyle.width - rootStyle.paddingLeft - rootStyle.paddingRight - borderWidth;
|
||||||
|
|
||||||
if (!note || !!note.encryption_applied) {
|
if (this.props.selectedNoteIds.length > 1) {
|
||||||
const emptyDivStyle = Object.assign({
|
return this.renderMultiNotes(rootStyle);
|
||||||
backgroundColor: 'black',
|
} else if (!note || !!note.encryption_applied) { //|| (note && !this.props.newNote && this.props.noteId && note.id !== this.props.noteId)) { // note.id !== props.noteId is when the note has not been loaded yet, and the previous one is still in the state
|
||||||
opacity: 0.1,
|
return this.renderNoNotes(rootStyle);
|
||||||
}, rootStyle);
|
|
||||||
return <div style={emptyDivStyle}></div>
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const titleBarStyle = {
|
const titleBarStyle = {
|
||||||
@@ -1561,8 +1715,10 @@ class NoteTextComponent extends React.Component {
|
|||||||
|
|
||||||
const htmlHasChanged = this.lastSetHtml_ !== html;
|
const htmlHasChanged = this.lastSetHtml_ !== html;
|
||||||
if (htmlHasChanged) {
|
if (htmlHasChanged) {
|
||||||
let options = {codeTheme: theme.codeThemeCss};
|
let options = {
|
||||||
this.webview_.send('setHtml', html, options);
|
cssFiles: this.state.lastRenderCssFiles,
|
||||||
|
};
|
||||||
|
this.webviewRef_.current.wrappedInstance.send('setHtml', html, options);
|
||||||
this.lastSetHtml_ = html;
|
this.lastSetHtml_ = html;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1570,7 +1726,11 @@ class NoteTextComponent extends React.Component {
|
|||||||
const markerOptions = {};
|
const markerOptions = {};
|
||||||
|
|
||||||
if (this.state.showLocalSearch) {
|
if (this.state.showLocalSearch) {
|
||||||
keywords = [this.state.localSearch.query];
|
keywords = [{
|
||||||
|
type: 'text',
|
||||||
|
value: this.state.localSearch.query,
|
||||||
|
accuracy: 'partially',
|
||||||
|
}]
|
||||||
markerOptions.selectedIndex = this.state.localSearch.selectedIndex;
|
markerOptions.selectedIndex = this.state.localSearch.selectedIndex;
|
||||||
} else {
|
} else {
|
||||||
const search = BaseModel.byId(this.props.searches, this.props.selectedSearchId);
|
const search = BaseModel.byId(this.props.searches, this.props.selectedSearchId);
|
||||||
@@ -1584,7 +1744,7 @@ class NoteTextComponent extends React.Component {
|
|||||||
if (htmlHasChanged || keywordHash !== this.lastSetMarkers_ || !ObjectUtils.fieldsEqual(this.lastSetMarkersOptions_, markerOptions)) {
|
if (htmlHasChanged || keywordHash !== this.lastSetMarkers_ || !ObjectUtils.fieldsEqual(this.lastSetMarkersOptions_, markerOptions)) {
|
||||||
this.lastSetMarkers_ = keywordHash;
|
this.lastSetMarkers_ = keywordHash;
|
||||||
this.lastSetMarkersOptions_ = Object.assign({}, markerOptions);
|
this.lastSetMarkersOptions_ = Object.assign({}, markerOptions);
|
||||||
this.webview_.send('setMarkers', keywords, markerOptions);
|
this.webviewRef_.current.wrappedInstance.send('setMarkers', keywords, markerOptions);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1601,6 +1761,7 @@ class NoteTextComponent extends React.Component {
|
|||||||
style={titleEditorStyle}
|
style={titleEditorStyle}
|
||||||
value={note && note.title ? note.title : ''}
|
value={note && note.title ? note.title : ''}
|
||||||
onChange={(event) => { this.title_changeText(event); }}
|
onChange={(event) => { this.title_changeText(event); }}
|
||||||
|
onKeyDown={this.titleField_keyDown}
|
||||||
placeholder={ this.props.newNote ? _('Creating new %s...', isTodo ? _('to-do') : _('note')) : '' }
|
placeholder={ this.props.newNote ? _('Creating new %s...', isTodo ? _('to-do') : _('note')) : '' }
|
||||||
/>
|
/>
|
||||||
|
|
||||||
@@ -1615,32 +1776,13 @@ class NoteTextComponent extends React.Component {
|
|||||||
|
|
||||||
const titleBarDate = <span style={Object.assign({}, theme.textStyle, {color: theme.colorFaded})}>{time.formatMsToLocal(note.user_updated_time)}</span>
|
const titleBarDate = <span style={Object.assign({}, theme.textStyle, {color: theme.colorFaded})}>{time.formatMsToLocal(note.user_updated_time)}</span>
|
||||||
|
|
||||||
const viewer = <webview
|
const viewer = <NoteTextViewer
|
||||||
style={viewerStyle}
|
ref={this.webviewRef_}
|
||||||
preload="gui/note-viewer/preload.js"
|
viewerStyle={viewerStyle}
|
||||||
src="gui/note-viewer/index.html"
|
onDomReady={this.webview_domReady}
|
||||||
webpreferences="contextIsolation"
|
onIpcMessage={this.webview_ipcMessage}
|
||||||
ref={(elem) => { this.webview_ref(elem); } }
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
// const markers = [{
|
|
||||||
// startRow: 2,
|
|
||||||
// startCol: 3,
|
|
||||||
// endRow: 2,
|
|
||||||
// endCol: 6,
|
|
||||||
// type: 'text',
|
|
||||||
// className: 'test-marker'
|
|
||||||
// }];
|
|
||||||
|
|
||||||
// markers={markers}
|
|
||||||
// editorProps={{$useWorker: false}}
|
|
||||||
|
|
||||||
// #note-editor .test-marker {
|
|
||||||
// background-color: red;
|
|
||||||
// color: yellow;
|
|
||||||
// position: absolute;
|
|
||||||
// }
|
|
||||||
|
|
||||||
const editorRootStyle = Object.assign({}, editorStyle);
|
const editorRootStyle = Object.assign({}, editorStyle);
|
||||||
delete editorRootStyle.width;
|
delete editorRootStyle.width;
|
||||||
delete editorRootStyle.height;
|
delete editorRootStyle.height;
|
||||||
@@ -1662,11 +1804,12 @@ class NoteTextComponent extends React.Component {
|
|||||||
showPrintMargin={false}
|
showPrintMargin={false}
|
||||||
onSelectionChange={this.aceEditor_selectionChange}
|
onSelectionChange={this.aceEditor_selectionChange}
|
||||||
onFocus={this.aceEditor_focus}
|
onFocus={this.aceEditor_focus}
|
||||||
|
readOnly={visiblePanes.indexOf('editor') < 0}
|
||||||
|
|
||||||
// Disable warning: "Automatically scrolling cursor into view after
|
// Disable warning: "Automatically scrolling cursor into view after
|
||||||
// selection change this will be disabled in the next version set
|
// selection change this will be disabled in the next version set
|
||||||
// editor.$blockScrolling = Infinity to disable this message"
|
// editor.$blockScrolling = Infinity to disable this message"
|
||||||
editorProps={{$blockScrolling: true}}
|
editorProps={{$blockScrolling: Infinity}}
|
||||||
|
|
||||||
// This is buggy (gets outside the container)
|
// This is buggy (gets outside the container)
|
||||||
highlightActiveLine={false}
|
highlightActiveLine={false}
|
||||||
@@ -1705,6 +1848,8 @@ class NoteTextComponent extends React.Component {
|
|||||||
const mapStateToProps = (state) => {
|
const mapStateToProps = (state) => {
|
||||||
return {
|
return {
|
||||||
noteId: state.selectedNoteIds.length === 1 ? state.selectedNoteIds[0] : null,
|
noteId: state.selectedNoteIds.length === 1 ? state.selectedNoteIds[0] : null,
|
||||||
|
notes: state.notes,
|
||||||
|
selectedNoteIds: state.selectedNoteIds,
|
||||||
noteTags: state.selectedNoteTags,
|
noteTags: state.selectedNoteTags,
|
||||||
folderId: state.selectedFolderId,
|
folderId: state.selectedFolderId,
|
||||||
itemType: state.selectedItemType,
|
itemType: state.selectedItemType,
|
||||||
@@ -1719,6 +1864,8 @@ const mapStateToProps = (state) => {
|
|||||||
selectedSearchId: state.selectedSearchId,
|
selectedSearchId: state.selectedSearchId,
|
||||||
watchedNoteFiles: state.watchedNoteFiles,
|
watchedNoteFiles: state.watchedNoteFiles,
|
||||||
customCss: state.customCss,
|
customCss: state.customCss,
|
||||||
|
lastEditorScrollPercents: state.lastEditorScrollPercents,
|
||||||
|
historyNotes: state.historyNotes,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
135
ElectronClient/app/gui/NoteTextViewer.jsx
Normal file
135
ElectronClient/app/gui/NoteTextViewer.jsx
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
const React = require('react');
|
||||||
|
const { connect } = require('react-redux');
|
||||||
|
const { themeStyle } = require('../theme.js');
|
||||||
|
const { _ } = require('lib/locale.js');
|
||||||
|
|
||||||
|
class NoteTextViewerComponent extends React.Component {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super();
|
||||||
|
|
||||||
|
this.initialized_ = false;
|
||||||
|
|
||||||
|
this.webviewRef_ = React.createRef();
|
||||||
|
this.webviewListeners_ = null;
|
||||||
|
|
||||||
|
this.webview_domReady = this.webview_domReady.bind(this);
|
||||||
|
this.webview_ipcMessage = this.webview_ipcMessage.bind(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
webview_domReady(event) {
|
||||||
|
this.props.onDomReady(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
webview_ipcMessage(event) {
|
||||||
|
this.props.onIpcMessage(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
initWebview() {
|
||||||
|
const wv = this.webviewRef_.current;
|
||||||
|
|
||||||
|
if (!this.webviewListeners_) {
|
||||||
|
this.webviewListeners_ = {
|
||||||
|
'dom-ready': this.webview_domReady.bind(this),
|
||||||
|
'ipc-message': this.webview_ipcMessage.bind(this),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let n in this.webviewListeners_) {
|
||||||
|
if (!this.webviewListeners_.hasOwnProperty(n)) continue;
|
||||||
|
const fn = this.webviewListeners_[n];
|
||||||
|
wv.addEventListener(n, fn);
|
||||||
|
}
|
||||||
|
|
||||||
|
let isAlreadyReady = false;
|
||||||
|
try {
|
||||||
|
isAlreadyReady = !this.webviewRef_.current.isLoading()
|
||||||
|
} catch (error) {
|
||||||
|
// Ignore - it means the view has not started loading, and the DOM ready event has not been emitted yet
|
||||||
|
// Error is "The WebView must be attached to the DOM and the dom-ready event emitted before this method can be called."
|
||||||
|
}
|
||||||
|
|
||||||
|
// Edge-case - the webview was already ready by the time initWebview was
|
||||||
|
// called - so manually call the domReady event to notify caller.
|
||||||
|
if (isAlreadyReady) {
|
||||||
|
this.webview_domReady({});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
destroyWebview() {
|
||||||
|
const wv = this.webviewRef_.current;
|
||||||
|
if (!wv || !this.initialized_) return;
|
||||||
|
|
||||||
|
for (let n in this.webviewListeners_) {
|
||||||
|
if (!this.webviewListeners_.hasOwnProperty(n)) continue;
|
||||||
|
const fn = this.webviewListeners_[n];
|
||||||
|
wv.removeEventListener(n, fn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidUpdate() {
|
||||||
|
if (!this.initialized_ && this.webviewRef_.current) {
|
||||||
|
this.initWebview();
|
||||||
|
this.initialized_ = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
componentWillUnmount() {
|
||||||
|
this.destroyWebview();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------
|
||||||
|
// Wrap WebView functions
|
||||||
|
// ----------------------------------------------------------------
|
||||||
|
|
||||||
|
send(channel, arg0 = null, arg1 = null, arg2 = null, arg3 = null) {
|
||||||
|
return this.webviewRef_.current.send(channel, arg0, arg1, arg2, arg3);
|
||||||
|
}
|
||||||
|
|
||||||
|
printToPDF(options, callback) {
|
||||||
|
// In Electron 4x, printToPDF is broken so need to use this hack:
|
||||||
|
// https://github.com/electron/electron/issues/16171#issuecomment-451090245
|
||||||
|
|
||||||
|
// return this.webviewRef_.current.printToPDF(options, callback);
|
||||||
|
return this.webviewRef_.current.getWebContents().printToPDF(options, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
print(options = {}) {
|
||||||
|
// In Electron 4x, print is broken so need to use this hack:
|
||||||
|
// https://github.com/electron/electron/issues/16219#issuecomment-451454948
|
||||||
|
// Note that this is not a perfect workaround since it means the options are ignored
|
||||||
|
// In particular it means that background images and colours won't be printed (printBackground property will be ignored)
|
||||||
|
|
||||||
|
// return this.webviewRef_.current.getWebContents().print({});
|
||||||
|
return this.webviewRef_.current.getWebContents().executeJavaScript("window.print()")
|
||||||
|
}
|
||||||
|
|
||||||
|
openDevTools() {
|
||||||
|
return this.webviewRef_.current.openDevTools();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------
|
||||||
|
// Wrap WebView functions (END)
|
||||||
|
// ----------------------------------------------------------------
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return <webview
|
||||||
|
ref={this.webviewRef_}
|
||||||
|
style={this.props.viewerStyle}
|
||||||
|
preload="gui/note-viewer/preload.js"
|
||||||
|
src="gui/note-viewer/index.html"
|
||||||
|
webpreferences="contextIsolation"
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const mapStateToProps = (state) => {
|
||||||
|
return {
|
||||||
|
theme: state.settings.theme,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const NoteTextViewer = connect(mapStateToProps, null, null, { withRef: true })(NoteTextViewerComponent);
|
||||||
|
|
||||||
|
module.exports = NoteTextViewer;
|
||||||
@@ -15,6 +15,7 @@ const { ConfigScreen } = require('./ConfigScreen.min.js');
|
|||||||
const { EncryptionConfigScreen } = require('./EncryptionConfigScreen.min.js');
|
const { EncryptionConfigScreen } = require('./EncryptionConfigScreen.min.js');
|
||||||
const { ClipperConfigScreen } = require('./ClipperConfigScreen.min.js');
|
const { ClipperConfigScreen } = require('./ClipperConfigScreen.min.js');
|
||||||
const { Navigator } = require('./Navigator.min.js');
|
const { Navigator } = require('./Navigator.min.js');
|
||||||
|
const WelcomeUtils = require('lib/WelcomeUtils');
|
||||||
|
|
||||||
const { app } = require('../app');
|
const { app } = require('../app');
|
||||||
|
|
||||||
@@ -71,6 +72,8 @@ class RootComponent extends React.Component {
|
|||||||
state: 'ready',
|
state: 'ready',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await WelcomeUtils.install(this.props.dispatch);
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ const { connect } = require("react-redux");
|
|||||||
const shared = require("lib/components/shared/side-menu-shared.js");
|
const shared = require("lib/components/shared/side-menu-shared.js");
|
||||||
const { Synchronizer } = require("lib/synchronizer.js");
|
const { Synchronizer } = require("lib/synchronizer.js");
|
||||||
const BaseModel = require("lib/BaseModel.js");
|
const BaseModel = require("lib/BaseModel.js");
|
||||||
|
const Setting = require('lib/models/Setting.js');
|
||||||
const Folder = require("lib/models/Folder.js");
|
const Folder = require("lib/models/Folder.js");
|
||||||
const Note = require("lib/models/Note.js");
|
const Note = require("lib/models/Note.js");
|
||||||
const Tag = require("lib/models/Tag.js");
|
const Tag = require("lib/models/Tag.js");
|
||||||
@@ -12,6 +13,7 @@ const { bridge } = require("electron").remote.require("./bridge");
|
|||||||
const Menu = bridge().Menu;
|
const Menu = bridge().Menu;
|
||||||
const MenuItem = bridge().MenuItem;
|
const MenuItem = bridge().MenuItem;
|
||||||
const InteropServiceHelper = require("../InteropServiceHelper.js");
|
const InteropServiceHelper = require("../InteropServiceHelper.js");
|
||||||
|
const { substrWithEllipsis } = require('lib/string-utils');
|
||||||
const { shim } = require('lib/shim');
|
const { shim } = require('lib/shim');
|
||||||
|
|
||||||
class SideBarComponent extends React.Component {
|
class SideBarComponent extends React.Component {
|
||||||
@@ -23,7 +25,7 @@ class SideBarComponent extends React.Component {
|
|||||||
this.onFolderDragStart_ = (event) => {
|
this.onFolderDragStart_ = (event) => {
|
||||||
const folderId = event.currentTarget.getAttribute('folderid');
|
const folderId = event.currentTarget.getAttribute('folderid');
|
||||||
if (!folderId) return;
|
if (!folderId) return;
|
||||||
|
|
||||||
event.dataTransfer.setDragImage(new Image(), 1, 1);
|
event.dataTransfer.setDragImage(new Image(), 1, 1);
|
||||||
event.dataTransfer.clearData();
|
event.dataTransfer.clearData();
|
||||||
event.dataTransfer.setData('text/x-jop-folder-ids', JSON.stringify([folderId]));
|
event.dataTransfer.setData('text/x-jop-folder-ids', JSON.stringify([folderId]));
|
||||||
@@ -39,9 +41,15 @@ class SideBarComponent extends React.Component {
|
|||||||
const dt = event.dataTransfer;
|
const dt = event.dataTransfer;
|
||||||
if (!dt) return;
|
if (!dt) return;
|
||||||
|
|
||||||
|
// folderId can be NULL when dropping on the sidebar Notebook header. In that case, it's used
|
||||||
|
// to put the dropped folder at the root. But for notes, folderId needs to always be defined
|
||||||
|
// since there's no such thing as a root note.
|
||||||
|
|
||||||
if (dt.types.indexOf("text/x-jop-note-ids") >= 0) {
|
if (dt.types.indexOf("text/x-jop-note-ids") >= 0) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
||||||
|
if (!folderId) return;
|
||||||
|
|
||||||
const noteIds = JSON.parse(dt.getData("text/x-jop-note-ids"));
|
const noteIds = JSON.parse(dt.getData("text/x-jop-note-ids"));
|
||||||
for (let i = 0; i < noteIds.length; i++) {
|
for (let i = 0; i < noteIds.length; i++) {
|
||||||
await Note.moveToFolder(noteIds[i], folderId);
|
await Note.moveToFolder(noteIds[i], folderId);
|
||||||
@@ -79,6 +87,20 @@ class SideBarComponent extends React.Component {
|
|||||||
id: folderId,
|
id: folderId,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.folderItemsOrder_ = [];
|
||||||
|
this.tagItemsOrder_ = [];
|
||||||
|
|
||||||
|
this.onKeyDown = this.onKeyDown.bind(this);
|
||||||
|
|
||||||
|
this.rootRef = React.createRef();
|
||||||
|
|
||||||
|
this.anchorItemRefs = {};
|
||||||
|
|
||||||
|
this.state = {
|
||||||
|
tagHeaderIsExpanded: Setting.value('tagHeaderIsExpanded'),
|
||||||
|
folderHeaderIsExpanded: Setting.value('folderHeaderIsExpanded')
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
style() {
|
style() {
|
||||||
@@ -130,7 +152,7 @@ class SideBarComponent extends React.Component {
|
|||||||
header: {
|
header: {
|
||||||
height: itemHeight * 1.8,
|
height: itemHeight * 1.8,
|
||||||
fontFamily: theme.fontFamily,
|
fontFamily: theme.fontFamily,
|
||||||
fontSize: theme.fontSize * 1.3,
|
fontSize: theme.fontSize * 1.16,
|
||||||
textDecoration: "none",
|
textDecoration: "none",
|
||||||
boxSizing: "border-box",
|
boxSizing: "border-box",
|
||||||
color: theme.color2,
|
color: theme.color2,
|
||||||
@@ -166,9 +188,8 @@ class SideBarComponent extends React.Component {
|
|||||||
marginTop: 10,
|
marginTop: 10,
|
||||||
marginLeft: 5,
|
marginLeft: 5,
|
||||||
marginRight: 5,
|
marginRight: 5,
|
||||||
minHeight: 70,
|
marginBottom: 10,
|
||||||
wordWrap: "break-word",
|
wordWrap: "break-word",
|
||||||
//width: "100%",
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -186,11 +207,38 @@ class SideBarComponent extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
doCommand(command) {
|
||||||
|
if (!command) return;
|
||||||
|
|
||||||
|
let commandProcessed = true;
|
||||||
|
|
||||||
|
if (command.name === 'focusElement' && command.target === 'sideBar') {
|
||||||
|
if (this.props.sidebarVisibility) {
|
||||||
|
const item = this.selectedItem();
|
||||||
|
if (item) {
|
||||||
|
const anchorRef = this.anchorItemRefs[item.type][item.id];
|
||||||
|
if (anchorRef) anchorRef.current.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (command.name === 'synchronize') {
|
||||||
|
this.sync_click();
|
||||||
|
} else {
|
||||||
|
commandProcessed = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (commandProcessed) {
|
||||||
|
this.props.dispatch({
|
||||||
|
type: 'WINDOW_COMMAND',
|
||||||
|
name: null,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
componentDidUpdate(prevProps) {
|
componentDidUpdate(prevProps) {
|
||||||
if (shim.isLinux()) {
|
if (shim.isLinux()) {
|
||||||
// For some reason, the UI seems to sleep in some Linux distro during
|
// For some reason, the UI seems to sleep in some Linux distro during
|
||||||
// sync. Cannot find the reason for it and cannot replicate, so here
|
// sync. Cannot find the reason for it and cannot replicate, so here
|
||||||
// as a test force the update at regular intervals.
|
// as a test force the update at regular intervals.
|
||||||
// https://github.com/laurent22/joplin/issues/312#issuecomment-429472193
|
// https://github.com/laurent22/joplin/issues/312#issuecomment-429472193
|
||||||
if (!prevProps.syncStarted && this.props.syncStarted) {
|
if (!prevProps.syncStarted && this.props.syncStarted) {
|
||||||
this.clearForceUpdateDuringSync();
|
this.clearForceUpdateDuringSync();
|
||||||
@@ -201,14 +249,20 @@ class SideBarComponent extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (prevProps.syncStarted && !this.props.syncStarted) this.clearForceUpdateDuringSync();
|
if (prevProps.syncStarted && !this.props.syncStarted) this.clearForceUpdateDuringSync();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
this.clearForceUpdateDuringSync();
|
this.clearForceUpdateDuringSync();
|
||||||
}
|
}
|
||||||
|
|
||||||
itemContextMenu(event) {
|
componentDidUpdate(prevProps, prevState, snapshot) {
|
||||||
|
if (prevProps.windowCommand !== this.props.windowCommand) {
|
||||||
|
this.doCommand(this.props.windowCommand);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async itemContextMenu(event) {
|
||||||
const itemId = event.target.getAttribute("data-id");
|
const itemId = event.target.getAttribute("data-id");
|
||||||
if (itemId === Folder.conflictFolderId()) return;
|
if (itemId === Folder.conflictFolderId()) return;
|
||||||
|
|
||||||
@@ -217,9 +271,11 @@ class SideBarComponent extends React.Component {
|
|||||||
|
|
||||||
let deleteMessage = "";
|
let deleteMessage = "";
|
||||||
if (itemType === BaseModel.TYPE_FOLDER) {
|
if (itemType === BaseModel.TYPE_FOLDER) {
|
||||||
deleteMessage = _("Delete notebook? All notes and sub-notebooks within this notebook will also be deleted.");
|
const folder = await Folder.load(itemId);
|
||||||
|
deleteMessage = _('Delete notebook "%s"?\n\nAll notes and sub-notebooks within this notebook will also be deleted.', substrWithEllipsis(folder.title, 0, 32));
|
||||||
} else if (itemType === BaseModel.TYPE_TAG) {
|
} else if (itemType === BaseModel.TYPE_TAG) {
|
||||||
deleteMessage = _("Remove this tag from all the notes?");
|
const tag = await Tag.load(itemId);
|
||||||
|
deleteMessage = _('Remove tag "%s" from all notes?', substrWithEllipsis(tag.title, 0, 32));
|
||||||
} else if (itemType === BaseModel.TYPE_SEARCH) {
|
} else if (itemType === BaseModel.TYPE_SEARCH) {
|
||||||
deleteMessage = _("Remove this search from the sidebar?");
|
deleteMessage = _("Remove this search from the sidebar?");
|
||||||
}
|
}
|
||||||
@@ -303,7 +359,7 @@ class SideBarComponent extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (itemType === BaseModel.TYPE_TAG) {
|
if (itemType === BaseModel.TYPE_TAG) {
|
||||||
menu.append(
|
menu.append(
|
||||||
new MenuItem({
|
new MenuItem({
|
||||||
label: _('Rename'),
|
label: _('Rename'),
|
||||||
@@ -335,17 +391,26 @@ class SideBarComponent extends React.Component {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
searchItem_click(search) {
|
// searchItem_click(search) {
|
||||||
this.props.dispatch({
|
// this.props.dispatch({
|
||||||
type: "SEARCH_SELECT",
|
// type: "SEARCH_SELECT",
|
||||||
id: search ? search.id : null,
|
// id: search ? search.id : null,
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
|
|
||||||
async sync_click() {
|
async sync_click() {
|
||||||
await shared.synchronize_press(this);
|
await shared.synchronize_press(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
anchorItemRef(type, id) {
|
||||||
|
let refs = null;
|
||||||
|
|
||||||
|
if (!this.anchorItemRefs[type]) this.anchorItemRefs[type] = {};
|
||||||
|
if (this.anchorItemRefs[type][id]) return this.anchorItemRefs[type][id];
|
||||||
|
this.anchorItemRefs[type][id] = React.createRef();
|
||||||
|
return this.anchorItemRefs[type][id];
|
||||||
|
}
|
||||||
|
|
||||||
folderItem(folder, selected, hasChildren, depth) {
|
folderItem(folder, selected, hasChildren, depth) {
|
||||||
let style = Object.assign({}, this.style().listItem);
|
let style = Object.assign({}, this.style().listItem);
|
||||||
if (folder.id === Folder.conflictFolderId()) style = Object.assign(style, this.style().conflictFolder);
|
if (folder.id === Folder.conflictFolderId()) style = Object.assign(style, this.style().conflictFolder);
|
||||||
@@ -353,8 +418,6 @@ class SideBarComponent extends React.Component {
|
|||||||
const itemTitle = Folder.displayTitle(folder);
|
const itemTitle = Folder.displayTitle(folder);
|
||||||
|
|
||||||
let containerStyle = Object.assign({}, this.style().listItemContainer);
|
let containerStyle = Object.assign({}, this.style().listItemContainer);
|
||||||
// containerStyle.paddingLeft = containerStyle.paddingLeft + depth * 10;
|
|
||||||
|
|
||||||
if (selected) containerStyle = Object.assign(containerStyle, this.style().listItemSelected);
|
if (selected) containerStyle = Object.assign(containerStyle, this.style().listItemSelected);
|
||||||
|
|
||||||
let expandLinkStyle = Object.assign({}, this.style().listItemExpandIcon);
|
let expandLinkStyle = Object.assign({}, this.style().listItemExpandIcon);
|
||||||
@@ -367,10 +430,13 @@ class SideBarComponent extends React.Component {
|
|||||||
const expandIcon = <i style={expandIconStyle} className={"fa " + iconName}></i>
|
const expandIcon = <i style={expandIconStyle} className={"fa " + iconName}></i>
|
||||||
const expandLink = hasChildren ? <a style={expandLinkStyle} href="#" folderid={folder.id} onClick={this.onFolderToggleClick_}>{expandIcon}</a> : <span style={expandLinkStyle}>{expandIcon}</span>
|
const expandLink = hasChildren ? <a style={expandLinkStyle} href="#" folderid={folder.id} onClick={this.onFolderToggleClick_}>{expandIcon}</a> : <span style={expandLinkStyle}>{expandIcon}</span>
|
||||||
|
|
||||||
|
const anchorRef = this.anchorItemRef('folder', folder.id);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="list-item-container" style={containerStyle} key={folder.id} onDragStart={this.onFolderDragStart_} onDragOver={this.onFolderDragOver_} onDrop={this.onFolderDrop_} draggable={true} folderid={folder.id}>
|
<div className="list-item-container" style={containerStyle} key={folder.id} onDragStart={this.onFolderDragStart_} onDragOver={this.onFolderDragOver_} onDrop={this.onFolderDrop_} draggable={true} folderid={folder.id}>
|
||||||
{ expandLink }
|
{ expandLink }
|
||||||
<a
|
<a
|
||||||
|
ref={anchorRef}
|
||||||
className="list-item"
|
className="list-item"
|
||||||
href="#"
|
href="#"
|
||||||
data-id={folder.id}
|
data-id={folder.id}
|
||||||
@@ -392,10 +458,14 @@ class SideBarComponent extends React.Component {
|
|||||||
tagItem(tag, selected) {
|
tagItem(tag, selected) {
|
||||||
let style = Object.assign({}, this.style().tagItem);
|
let style = Object.assign({}, this.style().tagItem);
|
||||||
if (selected) style = Object.assign(style, this.style().listItemSelected);
|
if (selected) style = Object.assign(style, this.style().listItemSelected);
|
||||||
|
|
||||||
|
const anchorRef = this.anchorItemRef('tag', tag.id);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<a
|
<a
|
||||||
className="list-item"
|
className="list-item"
|
||||||
href="#"
|
href="#"
|
||||||
|
ref={anchorRef}
|
||||||
data-id={tag.id}
|
data-id={tag.id}
|
||||||
data-type={BaseModel.TYPE_TAG}
|
data-type={BaseModel.TYPE_TAG}
|
||||||
onContextMenu={event => this.itemContextMenu(event)}
|
onContextMenu={event => this.itemContextMenu(event)}
|
||||||
@@ -412,26 +482,26 @@ class SideBarComponent extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
searchItem(search, selected) {
|
// searchItem(search, selected) {
|
||||||
let style = Object.assign({}, this.style().listItem);
|
// let style = Object.assign({}, this.style().listItem);
|
||||||
if (selected) style = Object.assign(style, this.style().listItemSelected);
|
// if (selected) style = Object.assign(style, this.style().listItemSelected);
|
||||||
return (
|
// return (
|
||||||
<a
|
// <a
|
||||||
className="list-item"
|
// className="list-item"
|
||||||
href="#"
|
// href="#"
|
||||||
data-id={search.id}
|
// data-id={search.id}
|
||||||
data-type={BaseModel.TYPE_SEARCH}
|
// data-type={BaseModel.TYPE_SEARCH}
|
||||||
onContextMenu={event => this.itemContextMenu(event)}
|
// onContextMenu={event => this.itemContextMenu(event)}
|
||||||
key={search.id}
|
// key={search.id}
|
||||||
style={style}
|
// style={style}
|
||||||
onClick={() => {
|
// onClick={() => {
|
||||||
this.searchItem_click(search);
|
// this.searchItem_click(search);
|
||||||
}}
|
// }}
|
||||||
>
|
// >
|
||||||
{search.title}
|
// {search.title}
|
||||||
</a>
|
// </a>
|
||||||
);
|
// );
|
||||||
}
|
// }
|
||||||
|
|
||||||
makeDivider(key) {
|
makeDivider(key) {
|
||||||
return <div style={{ height: 2, backgroundColor: "blue" }} key={key} />;
|
return <div style={{ height: 2, backgroundColor: "blue" }} key={key} />;
|
||||||
@@ -439,20 +509,148 @@ class SideBarComponent extends React.Component {
|
|||||||
|
|
||||||
makeHeader(key, label, iconName, extraProps = {}) {
|
makeHeader(key, label, iconName, extraProps = {}) {
|
||||||
const style = this.style().header;
|
const style = this.style().header;
|
||||||
const icon = <i style={{ fontSize: style.fontSize * 1.2, marginRight: 5 }} className={"fa " + iconName} />;
|
const icon = <i style={{ fontSize: style.fontSize, marginRight: 5 }} className={"fa " + iconName} />;
|
||||||
|
|
||||||
|
if (extraProps.toggleblock || extraProps.onClick) {
|
||||||
|
style.cursor = "pointer";
|
||||||
|
}
|
||||||
|
|
||||||
|
let headerClick = extraProps.onClick || null;
|
||||||
|
delete extraProps.onClick;
|
||||||
|
|
||||||
|
// check if toggling option is set.
|
||||||
|
let toggleIcon = null;
|
||||||
|
const toggleKey = `${key}IsExpanded`;
|
||||||
|
if (extraProps.toggleblock) {
|
||||||
|
let isExpanded = this.state[toggleKey];
|
||||||
|
toggleIcon = <i className={`fa ${isExpanded ? 'fa-chevron-down' : 'fa-chevron-left'}`} style={{ fontSize: style.fontSize * 0.75,
|
||||||
|
marginRight: 12, marginLeft: 5, marginTop: style.fontSize * 0.125}}></i>;
|
||||||
|
}
|
||||||
|
|
||||||
|
const ref = this.anchorItemRef('headers', key);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div style={style} key={key} {...extraProps}>
|
<div ref={ref} style={style} key={key} {...extraProps} onClick={(event) => {
|
||||||
|
// if a custom click event is attached, trigger that.
|
||||||
|
if (headerClick) {
|
||||||
|
headerClick(key, event);
|
||||||
|
}
|
||||||
|
this.onHeaderClick_(key, event);
|
||||||
|
}}>
|
||||||
{icon}
|
{icon}
|
||||||
{label}
|
<span style={{flex: 1 }}>{label}</span>
|
||||||
|
{toggleIcon}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
selectedItem() {
|
||||||
|
if (this.props.notesParentType === 'Folder' && this.props.selectedFolderId) {
|
||||||
|
return { type: 'folder', id: this.props.selectedFolderId };
|
||||||
|
} else if (this.props.notesParentType === 'Tag' && this.props.selectedTagId) {
|
||||||
|
return { type: 'tag', id: this.props.selectedTagId };
|
||||||
|
} else if (this.props.notesParentType === 'Search' && this.props.selectedSearchId) {
|
||||||
|
return { type: 'search', id: this.props.selectedSearchId };
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
onKeyDown(event) {
|
||||||
|
const keyCode = event.keyCode;
|
||||||
|
const selectedItem = this.selectedItem();
|
||||||
|
|
||||||
|
if (keyCode === 40 || keyCode === 38) { // DOWN / UP
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
const focusItems = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < this.folderItemsOrder_.length; i++) {
|
||||||
|
const id = this.folderItemsOrder_[i];
|
||||||
|
focusItems.push({ id: id, ref: this.anchorItemRefs['folder'][id], type: 'folder' });
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let i = 0; i < this.tagItemsOrder_.length; i++) {
|
||||||
|
const id = this.tagItemsOrder_[i];
|
||||||
|
focusItems.push({ id: id, ref: this.anchorItemRefs['tag'][id], type: 'tag' });
|
||||||
|
}
|
||||||
|
|
||||||
|
let currentIndex = 0;
|
||||||
|
for (let i = 0; i < focusItems.length; i++) {
|
||||||
|
if (!selectedItem || focusItems[i].id === selectedItem.id) {
|
||||||
|
currentIndex = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const inc = keyCode === 38 ? -1 : +1;
|
||||||
|
let newIndex = currentIndex + inc;
|
||||||
|
|
||||||
|
if (newIndex < 0) newIndex = 0;
|
||||||
|
if (newIndex > focusItems.length - 1) newIndex = focusItems.length - 1;
|
||||||
|
|
||||||
|
const focusItem = focusItems[newIndex];
|
||||||
|
|
||||||
|
let actionName = focusItem.type.toUpperCase() + '_SELECT';
|
||||||
|
|
||||||
|
this.props.dispatch({
|
||||||
|
type: actionName,
|
||||||
|
id: focusItem.id,
|
||||||
|
});
|
||||||
|
|
||||||
|
focusItem.ref.current.focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (keyCode === 9) { // TAB
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
if (event.shiftKey) {
|
||||||
|
this.props.dispatch({
|
||||||
|
type: 'WINDOW_COMMAND',
|
||||||
|
name: 'focusElement',
|
||||||
|
target: 'noteBody',
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.props.dispatch({
|
||||||
|
type: 'WINDOW_COMMAND',
|
||||||
|
name: 'focusElement',
|
||||||
|
target: 'noteList',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (selectedItem && selectedItem.type === 'folder' && keyCode === 32) { // SPACE
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
this.props.dispatch({
|
||||||
|
type: 'FOLDER_TOGGLE',
|
||||||
|
id: selectedItem.id,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onHeaderClick_(key, event) {
|
||||||
|
const currentHeader = event.currentTarget;
|
||||||
|
const toggleBlock = +currentHeader.getAttribute('toggleblock');
|
||||||
|
if (toggleBlock) {
|
||||||
|
const toggleKey = `${key}IsExpanded`;
|
||||||
|
const isExpanded = this.state[toggleKey];
|
||||||
|
this.setState({ [toggleKey]: !isExpanded });
|
||||||
|
Setting.setValue(toggleKey, !isExpanded);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
synchronizeButton(type) {
|
synchronizeButton(type) {
|
||||||
const style = this.style().button;
|
const style = Object.assign({}, this.style().button, { marginBottom: 5 });
|
||||||
const iconName = type === "sync" ? "fa-refresh" : "fa-times";
|
const iconName = "fa-refresh";
|
||||||
const label = type === "sync" ? _("Synchronise") : _("Cancel");
|
const label = type === "sync" ? _("Synchronise") : _("Cancel");
|
||||||
const icon = <i style={{ fontSize: style.fontSize, marginRight: 5 }} className={"fa " + iconName} />;
|
let iconStyle = { fontSize: style.fontSize, marginRight: 5 };
|
||||||
|
|
||||||
|
if(type !== 'sync'){
|
||||||
|
iconStyle.animation = 'icon-infinite-rotation 1s linear infinite';
|
||||||
|
}
|
||||||
|
|
||||||
|
const icon = <i style={iconStyle} className={"fa " + iconName} />;
|
||||||
return (
|
return (
|
||||||
<a
|
<a
|
||||||
className="synchronize-button"
|
className="synchronize-button"
|
||||||
@@ -473,28 +671,37 @@ class SideBarComponent extends React.Component {
|
|||||||
const theme = themeStyle(this.props.theme);
|
const theme = themeStyle(this.props.theme);
|
||||||
const style = Object.assign({}, this.style().root, this.props.style, {
|
const style = Object.assign({}, this.style().root, this.props.style, {
|
||||||
overflowX: "hidden",
|
overflowX: "hidden",
|
||||||
overflowY: "auto",
|
overflowY: "hidden",
|
||||||
|
display: 'inline-flex',
|
||||||
|
flexDirection: 'column',
|
||||||
});
|
});
|
||||||
|
|
||||||
let items = [];
|
let items = [];
|
||||||
|
items.push(this.makeHeader("folderHeader", _("Notebooks"), "fa-book", {
|
||||||
items.push(this.makeHeader("folderHeader", _("Notebooks"), "fa-folder-o", {
|
|
||||||
onDrop: this.onFolderDrop_,
|
onDrop: this.onFolderDrop_,
|
||||||
folderid: '',
|
folderid: '',
|
||||||
|
toggleblock: 1
|
||||||
}));
|
}));
|
||||||
|
|
||||||
if (this.props.folders.length) {
|
if (this.props.folders.length) {
|
||||||
const folderItems = shared.renderFolders(this.props, this.folderItem.bind(this));
|
const result = shared.renderFolders(this.props, this.folderItem.bind(this));
|
||||||
items = items.concat(folderItems);
|
const folderItems = result.items;
|
||||||
|
this.folderItemsOrder_ = result.order;
|
||||||
|
items.push(<div className="folders" key="folder_items" style={{display: this.state.folderHeaderIsExpanded ? 'block': 'none'}}>
|
||||||
|
{folderItems}</div>);
|
||||||
}
|
}
|
||||||
|
|
||||||
items.push(this.makeHeader("tagHeader", _("Tags"), "fa-tags"));
|
items.push(this.makeHeader("tagHeader", _("Tags"), "fa-tags", {
|
||||||
|
toggleblock: 1
|
||||||
|
}));
|
||||||
|
|
||||||
if (this.props.tags.length) {
|
if (this.props.tags.length) {
|
||||||
const tagItems = shared.renderTags(this.props, this.tagItem.bind(this));
|
const result = shared.renderTags(this.props, this.tagItem.bind(this));
|
||||||
|
const tagItems = result.items;
|
||||||
|
this.tagItemsOrder_ = result.order;
|
||||||
|
|
||||||
items.push(
|
items.push(
|
||||||
<div className="tags" key="tag_items">
|
<div className="tags" key="tag_items" style={{display: this.state.tagHeaderIsExpanded ? 'block': 'none'}}>
|
||||||
{tagItems}
|
{tagItems}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
@@ -522,17 +729,24 @@ class SideBarComponent extends React.Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
items.push(this.synchronizeButton(this.props.syncStarted ? "cancel" : "sync"));
|
const syncButton = this.synchronizeButton(this.props.syncStarted ? "cancel" : "sync");
|
||||||
|
|
||||||
items.push(
|
const syncReportComp = !syncReportText.length ? null : (
|
||||||
<div style={this.style().syncReport} key="sync_report">
|
<div style={this.style().syncReport} key="sync_report">
|
||||||
{syncReportText}
|
{syncReportText}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="side-bar" style={style}>
|
<div ref={this.rootRef} onKeyDown={this.onKeyDown} className="side-bar" style={style}>
|
||||||
{items}
|
|
||||||
|
<div style={{flex:1, overflowX: 'hidden', overflowY: 'auto'}}>
|
||||||
|
{items}
|
||||||
|
</div>
|
||||||
|
<div style={{flex:0}}>
|
||||||
|
{syncReportComp}
|
||||||
|
{syncButton}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -554,6 +768,8 @@ const mapStateToProps = state => {
|
|||||||
collapsedFolderIds: state.collapsedFolderIds,
|
collapsedFolderIds: state.collapsedFolderIds,
|
||||||
decryptionWorker: state.decryptionWorker,
|
decryptionWorker: state.decryptionWorker,
|
||||||
resourceFetcher: state.resourceFetcher,
|
resourceFetcher: state.resourceFetcher,
|
||||||
|
windowCommand: state.windowCommand,
|
||||||
|
sidebarVisibility: state.sidebarVisibility,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user